วิเคราะห์การใช้งานของ SMTP

วิเคราะห์การใช้งานของ SMTP
SMTP (Simple Mail Transfer Protocol) เป็น protocol ที่ใช้ในการพูดคุยเพื่อส่ง email ซึ่งเป็น protocol ที่ไม่มีการเข้ารหัส โดย SMTP นั้นให้บริการที่ port 25/tcp โดยปัจจุบันก็ยังมี mail server อีกจำนวนมากที่ยังให้บริการแบบนี้อยู่ ส่วนการเชื่อมต่อเข้าไปจากผู้ใช้งานเองมักจะกระทำผ่าน mail client เช่น Microsoft Outlook, Mozilla Thunderbird เป็นต้น โดย mail client จะติดต่อไปยัง mail server ผ่าน port 587/tcp ซึ่งต่อมาได้มีการรองรับการเข้ารหัสมีชื่อว่า SMTPS
การทำงานของ SMTP จะมีการพูดคุยเป็นลำดับขั้นตอนที่ชัดเจน โดยกระทำดังนี้
1. Mail client ใดๆสร้าง connection ไปยัง SMTP Server
2. ส่ง greeting message ไปฝั่ง SMTP Server ซึ่งโดยปกติจะเป็น
EHLO <hostname>
จากนั้นฝั่ง server จะตอบกลับมาด้วย 250 OK
3. ฝั่ง Mail Client จะทำการส่ง authentication โดยการส่ง
AUTH LOGIN
จากนั้นฝั่ง server จะตอบกลับมาด้วย “334 VXNlcm5hbWU6” ซึ่งมันคือ base64 ของคำว่า “username:”
4. ฝั่ง Mail Client ส่ง username ไปให้กับทาง Mail Server โดย encode เป็น base64 จากนั้นฝั่ง server จะตอบกลับมาด้วย “334 UGFzc3dvcmQ6” ซึ่งมันคือ base64 ของคำว่า “Password:” 
5. ฝั่ง Mail Client ส่ง password ไปให้กับทาง Mail Server โดย encode เป็น base64 จากนั้นฝั่ง server จะตอบกลับมาด้วย “235 Authentication successful”
6. ฝั่ง Mail Client ส่งคำสั่ง
MAIL FROM:<username@mailserver>
เพื่อระบุว่าต้องการส่งจากใคร จากนั้นจะได้รับ message ตอบกลับมาเป็น “250 Sender <sender@mailserver> ok”
6. ฝั่ง Mail Client ส่งคำสั่ง
RCPT TO:<receiver@mailserver>
เพื่อระบุว่าต้องการส่งให้ใคร จากนั้นจะได้รับ message ตอบกลับมาเป็น “250 Recipient <receiver@mailserver> ok”
7. ระบุเนื้อความของ email โดยส่งคำสั่งไปเป็น
DATA
จากนั้นใส่เนื้อหาของ email และจบข้อความด้วย dot (.)
8. ปิดการใช้งาน โดยส่งคำสั่ง
QUIT
Screen Shot 2562-08-30 at 00.07.15.png
วิเคราะห์การใช้งานของ SMTP (2)
จากที่หัวข้อก่อนหน้านี้เราได้เรียนรู้ SMTP ไปแล้ว จะเห็นว่า SMTP นั้นมีการใช้งานในเชิงแบบ text เป็นหลัก ดังนั้นเมื่อต้องการที่จะส่งไฟล์ จำเป็นจะต้องเปลี่ยนไฟล์ที่เป็น binary เหล่านั้นให้กลายเป็น text ก่อน โดยปกติ Mail Client จะใช้ uuencode ในการ encode ให้เป็น text จากนั้นเมื่อถึงปลายทางก็จะใช้ uudecode ในการ decode กลับมาให้กลายเป็นไฟล์ binary เช่นเดิม
วิเคราะห์การใช้งานของ POP3
POP3 (Post Office Protocol 3) เป็น protocol ที่ใช้สำหรับการดึง email จาก Mail Server ซึ่งมักถูกใช้โดย Mail Client เช่น Microsoft Outlook เป็นต้น เพื่อจะตรวจสอบ mail ใหม่ โดยระบบจะทำการลบ mail บน Mail Server เมื่อผู้ใช้งาน download email ไปยังเครื่องแล้ว อย่างไรก็ตามผู้ดูแลระบบสามารถกำหนดช่วงเวลาที่จะยังคงเก็บ email ไว้ก่อนที่จะลบทิ้งได้ โดย POP3 ใช้ port 110/tcp
CommandDescriptionExample
USER [username]1st login commandUSER Stan
+OK Please enter a password
PASS [password]2nd login commandPASS SeCrEt
+OK valid logon
QUITLogs out and saves any changesQUIT
+OK Bye-bye.
STATReturns total number of messages and total sizeSTAT
+OK 2 320
LISTLists all messagesLIST
+OK 2 messages (320 octets)
1 120
2 200

LIST 2
+OK 2 200
RETR [message]Retrieves the whole messageRETR 1
+OK 120 octets follow.
***
DELE [message]Deletes the specified messageDELE 2
+OK message deleted
NOOPThe POP3 server does nothing, it merely replies with a positive response.NOOP
+OK
RSETUndelete the message if any marked for deletionRSET
+OK maildrop has 2 messages (320 octets)
TOP [message] [number]Returns the headers and number of lines from the messageTOP 1 10
+OK
***
วิเคราะห์การใช้งานของ IMAP
Protocol อีกหนึ่ง protocol ที่ใช้ในการรับส่ง email ของ mail client คือ IMAP (Internet Message Access Protocol) ซึ่งมี feature ที่จะจัดการ email ไว้บน server ได้ โดย IMAP ใช้ port 143/tcp
imap_status_diagram_and_commands.png
วิเคราะห์การใช้งานของ HTTP BASIC AUTHENTICATION
เมื่อเราเข้าไปที่ path ใดๆที่มีการใช้งานเป็นแบบ HTTP Basic Authentication ผู้ใช้งานจะส่ง header ที่ชื่อว่า Authorization โดยมีลักษณะเป็น
Authorization: Basic <base64>
ซึ่งภายใน base64 จะเป็นค่า username และ password ซึ่งเมื่อทำการ decode ออกมา จะได้ค่าออกมาเป็น <username>:<password>
Basic dmljdGltOnZpY3RpbQ==
Screen Shot 2562-08-30 at 11.53.46.png
จากในตัวอย่าง dmljdGltOnZpY3RpbQ== คือ victim:victim นั่นเอง
วิเคราะห์การใช้งานของ DNS
โดยปกติแล้ว DNS หากเป็นการทำงานในลักษณะของ Client/Server จะเป็นการใช้งาน port 53/UDP ในการแลกเปลี่ยนข้อมูลกัน แต่หากเป็นลักษณะการทำงานแบบ DNS Zone Transfer จะใช้งาน 53/TCP แทน

Comments

Popular Posts