260 words
1 minute
Network Security | Thailand Cyber Top Talent 2025 junior [Qualifier]

Network Security | Thailand Cyber Top Talent 2025 Junior [Qualifier]#

by ShoIsMyName • Sep 2025

หนีห่าว ว่อเจี้ยวโช วันนี้จะมาแสดงวิธีทำโจทย์ ของงาน cyber top talent 2025 หมวด network security กันนะครับ ส่วนหมวดอื่นๆผมจะคอยทยอยลงนะครับ พอดีช่วงนี้ติดเกม5555555555

1. Love Letter (100 points)#

img

ไฟล์ที่เราได้มาจะมีไฟล์ .pcap มาหนึ่งไฟล์ โดยเราจะเริ่มดู log คร่าวๆกันก่อน img

จากที่เห็นก็ถือว่าไม่ได้เยอะอะไรมาก พอเลื่อนดู tcp udp stream ได้อยู่ แต่จุดที่เราสนใจจะอยู่ที่ tcp.stream eq 4 เพราะมีการ communicate กันระหว่าง MINECRAFT_CLIENT กับ MINECRAFT_SERVER img

tcp.stream eq 4

เนื้อหาข้างในไฟล์ tcp stream จะเป็นแบบนี้ img

ซึ่งเราจะเห็น variable ชื่อว่า “data” ดูเหมือนว่าแต่ละ string ของข้อมูลจะถูกส่งเป็นช่วงๆ เพราะฉะนั้นเราจึงเอา strings มาต่อกัน เราก็จะได้

UEsDBBQAAAAIAKYAEls0JprpZwEAADUCAAAPAAAAbG92ZV9sZXR0ZXIudHh0RZFBb9swDIXv/hW89RIEbdpl3bGHASuw3gYMPdISFROVxECS4xlD//uenAC72AAfyffx6W0lL1yktt0wvNI4a2zEVM/ilCO5ibVQsEJzJc1VvZDNhd40iyscGi1Wot/Td3YTjdHcB00WfcWOs4pDd6C00gSPhq6LlBXCH4ldWMw8aSXH5SKeFm0T5pIkQxf07sT+IrnNINwPww/1XvLWqJnwqVd/iip1G62VT4I/50aW47qxrzbv6ZfRnJ2BgLTteu0uRsoC42ZkZ+kL5XYxZ3/jb3YS1MsmjmuDzytFCbjm94QZ7KGgaO96RSjyf/nEF6FzsX5KQC4LpRkx9ZFO2H2T4KwXsMeF17rbTo6A 7LEIcD3wsjVkT85SAheaxnkrdMemSWiR/mBg8IIJzadNuiYDrT+qh83PvvdmNLx3pysvMk5apAxDiHz6G+7HR/kqj1+Oz8eHY+Cjf+LDgf29+Cf3/E0+h39QSwECFAMUAAAACACmABJbNCaa6WcBAAA1AgAADwAAAAAAAAAAAAAAgAEAAAAAbG92ZV9sZXR0ZXIudHh0UEsFBgAAAAABAAEAPQAAAJQBAAAAAA==

จากนั้นเราเอาไป decode base64 ดู จะเห็นว่าคำนำหน้า output เป็น PK นั่นหมายความว่าข้อมูลนี้เป็น raw ที่สามารถแปลงกลับเป็นไฟล์ปกติได้ img

จากนั้นเราจะใส่ unzip เข้าไปเพื่อ compile file ให้กลับเป็นรูปเดิม img

เราก็จะได้ flag ในที่สุด

flag{f0b3e7e3568616fa6d4a22ad0ed4c89e}

2. Cipher Puzzle (200 points)#

img

ไฟล์ที่เราจะได้มาก็เหมือนกับข้อที่แล้ว มีไฟล์ .pcap แค่อันเดียว ไม่รอช้า ลากเข้า wireshark เลย! img

เอ๊ะแรกคือ log มีน้อย เอ๊ะสองคือมี tcp เยอะเหมือนข้อแรก ผมเลยมุ่งไปที่ tcp stream อันดับแรกเลย และก็บิงโก!! img

เพราะเราเจอข้อความที่เป็น hex และถูกส่ง string เป็นช่วงๆ เหมือนข้อ Love Letter คราวนี้เราก็พอจะเดาได้ว่าเราต้องทำอะไรต่อ เริ่มจากเอา strings มาต่อกัน

2504020b004d071c0e0a0305426d65210e00002c0c154e0e1c4d090b150a436b2747070c170b470704050a02014d0000081b05041c470208121d0608084108081d4d180112414d6b6401030c0615525f0b030f5f595d0258045a5e555d510c0f0008010a55525756595c580b5158106b

จากนั้นก็ hex decrypt เพื่อให้ cipher อยู่ในรูปปกติ แต่เหมือนว่ามันจะถูก xor ด้วย key อะไรบางอย่าง img

วิธีที่เราจะใช้คือ xor brute force ด้วย wordlist เริ่มจากโหลด output ที่ได้จากตอน hex decrypt มาก่อน (.dat) img

หน้าตาก็จะประมาณนี้แหละ

จากนั้นเราจะ brute force ด้วย python code สามารถใช้โค้ดด้านล่างนี้ได้เลย และ wordlist ที่ใช้จะเป็น rockyou.txt (จาก GitHub)

def xor_bytes(data, key: bytes) -> bytes:
return bytes([b ^ key[i % len(key)] for i, b in enumerate(data)])
# download cipher
with open("download.dat", "rb") as f:
ciphertext = f.read()
# import wordlist
with open("rockyou.txt", "r", encoding="utf-8", errors="ignore") as f:
keys = [line.strip().encode() for line in f]
for key in keys:
plaintext = xor_bytes(ciphertext, key)
# filter the answer (ASCII)
if all(32 <= c < 127 or c in (10, 13) for c in plaintext[:200]):
print(f"[KEY: {key.decode(errors='ignore')}] => {plaintext[:200]}")

img

แล้วเราก็จะได้ Key & Flagในที่สุด 🎉

หรือจะเอาไป xor โต้งๆอีกทีใน cyberchef ก็ได้ img

now we got the flag!!!

flag{50fba860c6c53436cbaffe8391619e67}

Thank you for reading kub pom ❤#

img

Tags: Thctt2025, CTF, CTF Writeup, Network Security