[Write-up] Covert Channel 4 TH Capture the Packet

กราบสวัสดีผู้อ่านทุกท่าน หลังจากที่ทีม MAYASEVEN ได้มีส่วนร่วมในการแข่งขัน Thai “Capture the Packet” Contest และทำโจทย์ได้ครบทุกข้อในรอบออนไลน์ ทางทีมมีความรู้สึกสนุกกับการแข่งขันอย่างมาก จึงอยากจะแชร์วิธีการแก้โจทย์ให้ผู้อ่านได้สามารถทำตามและทำความเข้าใจได้อย่างง่าย ๆ กันครับ โดยเลือกหนึ่งในสองข้อยาก นั่นก็คือข้อ Covert Channel 4 มาเฉลย มาเริ่มกันเลย!

จากโจทย์เราจะได้ไฟล์pcapมาหนึ่งไฟล์ชื่อว่า covert_channel3.pcap (จริงๆ ชื่อไฟล์น่าจะเป็น covert_channel4.pcap แต่สงสัยทางผู้จัดงานลืมแก้ชื่อไฟล์!!!) เราก็ใช้ Wireshark เปิดไฟล์ เพื่อวิเคราะห์ข้อมูลข้างในไฟล์

อันดับแรก เราเริ่มวิเคราะห์ packets จากเครื่องมือ Conversations เพื่อดูว่ามีการสื่อสารช่องทางไหนบ้าง และใครเป็นผู้ส่ง ใครเป็นผู้รับ

เราสังเกตว่าจะมีการส่ง packets ที่มีจำนวนมากอยู่สองจุดนั่นก็คือ

  1. 78df:47bb:ddf4:7dcf:f85f:5ae9:cfa6:359f(A) -> 7ee7:418b:58b1:f8b:58e1:f8b:e8fc:3e7 (B)
  2. 78df:47bb:ddf4:7dcf:f85f:5ae9:cfa6:359f (A) -> 7ee7:418b:58b1:f8b:58e1:f8b:e8fc:1e7(C)

ผู้ส่งก็ คือ IPv6:78df:47bb:ddf4:7dcf:f85f:5ae9:cfa6:359f (A)

และส่งข้อมูลไปที่ IPv6: 7ee7:418b:58b1:f8b:58e1:f8b:e8fc:3e7 (B)

กับ 7ee7:418b:58b1:f8b:58e1:f8b:e8fc:1e7 (C)

หลังจากวิเคราะห์ข้อมูลที่ถูกส่งจะพบว่าผู้ส่ง A ได้ request ขอไฟล์รูปภาพ sample.png จาก B และ C จำนวนหลาย requests เราจึงมาวิเคราะห์การ request ของ A โดยเริ่มจากใส่ filter ว่า http.request.uri==”/assets/images/sample.png”

จากนั้นก็ export เฉพาะข้อมูลที่เราสนใจ แยกออกมาอีกไฟล์ เพื่อที่จะใช้ I/O Graph วิเคราะห์ความถี่ในการส่งข้อมูล

เปิดไฟล์ที่เรา export ด้วยโปรแกรม Wireshark แล้วก็เลือก Statistics > I/O Graph เพื่อวิเคราะห์ข้อมูลความถี่

จากรูป เมื่อเราเห็นลักษณะของแท่งในกราฟทำให้เดาได้ว่า มีการส่งข้อความลับด้วยรหัส Morse Code

เราจึงใช้ Morse Code Translatorโดยให้ แท่งสั้นแทนด้วย – และ แท่งยาวแทนด้วย .
ผลที่เราได้คือชุดตัวอักษรนี้ครับ ORUGKIDGNRQWOIDJOMQHW3JQOJZWKYZQMQZX2<BT><BT><BT>

เกร็ดความรู้ <BT> คือ Prosign มีความหมายว่า BREAK ใน Morse code ถ้าอ่านจากใน Wikipedia สัญลักษณ์นี้ก็คือ เท่ากับ( = ) นั่นเอง

 

สุดท้าย เราจะได้ชุดตัวอักษรนี้ครับ ORUGKIDGNRQWOIDJOMQHW3JQOJZWKYZQMQZX2=== ชุดตัวอักษรที่เราได้เป็นตัวอักษรตัวใหญ่หมด ทำให้เราคาดเดาได้ว่ามีการ encode ด้วย base32

เกร็ดความรู้ : (base32 จะประกอบไปด้วยตัวอักษร A-Z  2-7 รวมเป็น 32 ตัวอักษร หมายความว่า base64 จะมี 64 ตัวอักษร คือ A-Z  a-z  0-9  + / และการใช้เครื่องหมาย = คือการทำ padding)

เราสามารถ decode ออกมาได้คำตอบ ก็คือ The Flag is {m0rsec0d3} จบอย่างสวยงามครับ

Download covert_channel3.pcap : https://drive.google.com/file/d/1_XNJ2fmysAer138S3W6Z9Y0MNyQwTWWK/view?usp=sharing
MD5 (covert_channel3.pcap) = 0bac6d30f56e7747666a7d46b297426e

Previous Post
[Write-up] War is so dangerous Reverse 250 Thailand CTF 2019
Next Post
[Write-up] I love video soooooooo much TH Capture the Packet

Related Posts

No results found.

Leave a Reply

Your email address will not be published. Required fields are marked *

Fill out this field
Fill out this field
Please enter a valid email address.
You need to agree with the terms to proceed