Extract SMTP data from PCAP

ปกติแล้วชีวิตประจำวันสำหรับคนเล่น Internet นั้นคงหนีไม่พ้นการใช้งาน Web Site และ EMail ซึ่งทุกวันนี้ผมเองก็มักได้ยินแต่คนส่วนใหญ่แนะนำว่าเข้าใช้งาน Web ให้ระวังจะ Login ต้องมีดูที่ Address Bar ว่าต้องเป็น HTTPS ก่อนนะ แล้ว EMail ล่ะ ทำไมไม่ค่อยมีคนพูดถึงกันเลย ซึ่งผมคิดว่า EMail ก็ควรระมัดระวังในการใช้ด้วยเหมือนกัน

EMail Security ส่วนมากนั้นมักจะได้ยินเกี่ยวกับการทำ Encryption และ Digital Signature ซึ่งนั่นไม่ค่อยสนุกเท่าไรนัก ดังนั้นเลยคิดว่ามาลองนั่งแกะ SMTP packet ดีกว่า หากเรามี Packet ที่มีข้อมูล SMTP เราจะดูอะไรได้บ้างกันนะ ซึ่งโดยทั่วไปหากดูผ่าน Wireshark ก็คงจะนั่งไล่ Flow กันสนุกเลยทีเดียว

ตัวอย่างที่เอามาวันนี้ยืมมาจาก http://forensicscontest.com/2009/10/10/puzzle-2-ann-skips-bail ซึ่งถ้าเข้า Web ตามไปจะมี File PCAP ให้โหลด (PCAP = Packet Capture) เอามาเปิดดูด้วย WireShark จะพบข้อมูลตามด้านล่าง

รูปตัดมาเฉพาะช่วง Authentication ของ SMTP สิ่งที่เห็นคือช่วงตั้งแต่เริ่ม Authenticate กับ Server จนสำเร็จ ซึ่ง Key หลักของรูปนี้คงจะไม่ยากเท่าไร หากรู้จักกับ SMTP เป็นอย่างดีอยู่แล้ว โดย Password นั้นถูก Encode[1] ในรูปแบบของ Base64  ซึ่งปัจจุบันผมยังเห็น Email Server ตามองค์กรต่างๆหลายที่ยังเปิดใช้งานให้คุยแบบ Plaintext อยู่ซึ่งนั่นถือเป็นความเสี่ยงอย่างร้ายแรงพอสมควร เนื่องจากอาจทำให้ข้อมูลส่วนตัว หรือความลับบริษัทรั่วไหลได้ บางคนอาจคิดว่าถ้าได้ Password แล้วจะทำอะไรได้ หาก Sender ส่งเมล์แล้วไม่ได้ Save ไว้ เข้า Email ไปได้ก็ไม่มีประโชยน์ แต่มันคงจะไม่จริงไปซะหมด เพราะว่าเราสามารถได้ข้อมูลเพิ่มเติมจากอีก เช่น

สามารถอ่านเนื้อ Email ได้จาก WireShark ด้วย

แต่หากมี Attachment ใน Mail ไปด้วย การแยก Attachment นั้นโดยใช้ WireShark คงจะทำได้ยาก เนื่องจากสิ่งที่เห็นใน WireShark นั้นจะเป็น Binary Data แล้วถูกตัดออกเป็นส่วนๆ ตามรูปด้านล่าง ซึ่งคงจะลำบากหากเราต้องมานั่งรวม Data แล้วสร้างเป็น File ขึ้นมาใหม่

ดังนั้นจึงขอแนะนำ Tool ชื่อ “Network Miner” http://sourceforge.net/projects/networkminer/

ที่สามารถช่วยในการวิเคราะห์ Packet ให้เราได้รวมถึงสามารถสร้าง Reconstruct File ให้ได้ด้วย

สุดท้ายแล้วเราก็จะสามารถได้ Attachment มาครอบครอง หากใครสนใจ ลองไปดูโจทย์ที่ผ่านมาแล้วลองทำเพื่อความบันเทิงได้ที่ http://forensicscontest.com/ ครับ

เพิ่มเติม

Encode[1] คือ การแปลงรูปแบบการแสดงผลให้อยู่ในรูปแบบอื่นๆ ซึ่งแตกต่างจาก Encrypt ที่หมายถึงการเข้ารหัส การถอดรหัส (Decrypt) นั้นต้องอาศัย Key ในการถอดรหัส แต่การ Decode นั้นไม่จำเป็นต้องใช้ Key

About these ads

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s