Thailand CTF 2019 – What is a URL Again (Write-up)

ในข้อนี้โจทย์มีชื่อว่า What is a URL Again สามารถดาวน์โหลดโจทย์ได้ที่ลิงค์นี้ >>> What is a URL Again.zip

ทำการแตกไฟล์ออกมา จะได้ไฟล์ memdump.mem ออกมา อันนี้ไม่ต้อง file ก็น่าจะรู้นะว่าไฟล์อะไร แฮ่! 🤣

ลอง binwalk ดูซะหน่อยว่ามีไรบ้าง … 🧐
เพียบ… 😵

ในที่นี้เราจะใช้ volatility ในการวิเคราะห์ข้อมูล เนื่องจากเป็น Volatile Data (สงสัยถามกู๋โลดนะครับ 🤣)
ขั้นแรกลองรัน Imageinfo ดูก่อนเพื่อดูข้อมูลคร่าวๆของไฟล์ memdump ไฟล์นี้
$ volatility -f memdump.mem Imageinfo
ซึ่งต่อไปเราต้องระบุ Windows Profile ด้วย โดยในที่นี้จะใช้ Win7SP1x64

ต่อไปจะทำการลิสต์ process ทั้งหมดขึ้นมา โดยเราสามารถใช้ได้หลายคำสั่ง เช่น pslist, psscan, pstree, psxview ในที่นี้ใช้ psxview เนื่องจากดูเป็นระเบียบมากกว่าตัวอื่น ไม่รกดี 😅
$ volatility -f memdump.mem --profile=Win7SP1x64 psxview

จากทุก Process ที่มี มีตัวที่น่าสนใจที่สุดคือ notepad.exe PID: 2892

ไหนลองเช็คซิ ว่าเปิดไฟล์อะไรอยู่หรือเปล่า 🧐
SECRET!! !!!! น่าสนใจๆ 🤔

งั้น Dump เฉพาะในส่วนของ notepad ออกมาละกัน ก่อนอื่นต้องรู้หมายเลข PID ของ Notepad ก่อน ซื่งจะอยู่ในขั้นตอนก่อนหน้าที่ได้ทำการลิสต์ process ซึ่งก็คือ 2892
$ volatility -f memdump.mem --profile=Win7SP1x64 memdump -p 2892 --dump-dir .

ไฟล์ลองค้นด้วยชื่อไฟล์ที่เราเจอจากขั้นตอนก่อนหน้าซิ (SECRET!!.txt) 🧐
เอ๊ะ SeCrEtHeRe แพทเทิร์นคุ้นๆแฮะ 🤔 ซึ่งมีทั้งหมด 3 ชุดด้วยกัน

จะเห็นได้ว่ามันคือ Url escape (encode) นั่นเอง แต่จะสังเกตได้ว่า ค่าแรกสุด % จะหายไป ซึ่งก็แค่เติมลงไปให้เรียบร้อย แล้วไปทำการ unescape/decode ให้เรียบร้อย

หลังจากการทำ Url unescape เราก็จะได้ค่าเลขฐานสองมา ซึ่งจะเห็นได้ว่า 2 ชุดแรกค่าเหมือนกัน งั้นเราก็จะโฟกัสแค่ค่าแรกพอ อันหลังไม่ใช่แน่นอน (ขออนุญาตรวบรัด 🤣)

ให้เราไปทำการแปลงให้เป็น string ซึ่งจะได้ผลลัพท์ทีเป็น Base64 ออกมา c2hvcnR1cmwuYXQvaXRHVTI=

ให้ทำการ Decode Base64 จะได้เป็นลิงค์อันนึงออกมา
$ echo c2hvcnR1cmwuYXQvaXRHVTI= | base64 -d

ลองเอาไปเช็คก่อนซิว่าลิงค์จริงๆคืออะไร แอบฝังอะไรมาให้หรือเปล่า 😆

เอ๊ะ ไฟล์ Flag.zip 🤔
ให้ทำการโหลดมาโลด ว่าแต่คิดว่าจะเปิดดู Flag ได้เลยมั้ย?
แน่นอนว่า.. ไม่มีทาง!! 🤣

ลองแตกไฟล์ดูซิ
แน่นอนว่าติดรหัสผ่าน 😂

รหัสแตกไฟล์อยู่ไหนนนนนน 😭
งั้นลอง grep notepad dump file ดูเลยแล้วกัน เริ่มง่ายๆที่
pass, password, P@ssw0rd … ไม่เจอ 😢

งั้นลองใช้ Grep with regex ซิ
$ strings 2892.dmp| grep -i -P "^P@.?.?.?.?.?d"
เย่! P@S5w0rDH3rE มันต้องเป็นรหัสแตกไฟล์แน่ๆ !!!

ไหนลองแตกไฟล์ซิ ใช่รหัส P@S5w0rDH3rE มั้ยนะ 🤔
ก็ยังไม่ใช่ … 😢

ไปคุ้ยใน raw เลยละกัน ลอง Search ด้วยคำที่ได้มาเมื่อกี้ดู
เอ๊ะ Magic Bytes คุ้นๆแฮะ 🤔

แน่นอนว่ามันคือ Magic Bytes ของไฟล์ JPEG ทีนี้จะรู้ได้ไงว่าตั้งแต่ตรงไหนถึงตรงไหน?
ก็เลื่อนดูไปเรื่อยๆไงล่ะ 😂
เห็นอะไรมั้ยครับ?

จะเห็นว่าเมื่อเลื่อนไปเรื่อยๆ จะมีข้อมูลอีกชุดที่ดูแล้วไม่น่าใช่ข้อมูลของรูปแน่ๆ FixedButton อะไรไม่รู้ 😵
ดังนั้นเราจึงเอาเฉพาะแค่ตรง offset ประมาณ 0C992400 ถึงประมาณ 0C992EC0

ไหนมาเช็ค Magic Bytes ดูอีกรอบซิว่าถูกต้องหรือเปล่า 🧐

ไฟล์รูปภาพที่ได้มา จะเห็นว่ามีข้อความอยู่ด้านใน และแน่นอนว่ามันคือรหัสผ่านสำหรับการแตกไฟล์
38nVw%Z_#jdtZ>M?

ทำการแตกไฟล์ด้วยรหัสผ่านที่ได้มาจากรูปในขั้นตอนก่อนหน้า

ได้ Flag มาแล้วจ้าาาา
THCTF{@!Th1S_ls_A-f1Ag!@}

จอบอ. 😁

Thailand CTF 2019 – In the Picture (Write-up)

ในข้อนี้โจทย์มีชื่อว่า In the picture สามารถดาวน์โหลดโจทย์ได้ที่ลิงค์นี้ >>> In the picture.zip

Ps. ขออภัยด้วย Flag ไม่ได้เรียงกันนะครับ 😅

ทำการแตกไฟล์ In the picture.zip
เมื่อทำการแตกไฟล์ออกมา จะได้รูปภาพมา 1 รูป …

ลองเข้าไปส่องข้างในดูหน่อยซิ 🧐
เมื่อใช้คำสั่ง binwalk ส่องดูข้างใน จะพบว่ารูปภาพโดนยัดไฟล์ rar เข้ามา

ให้ทำการดึงไฟล์ rar ออกมาโดยใช้คำสั่ง binwalk -e Question.jpeg เราก็จะได้ไฟล์ rar ที่ต้องการออกมา

ไหนลอง extract ดูซิ …
ติด password จ้าาา ☹️

ลองไปส่งไฟล์รูปอีกทีซิ รอบนี้ใช้คำสั่ง strings Question.jpeg เพื่อดูว่ามีการแอบยัดข้อความอะไรมาหรือเปล่า
แล้วก็โป๊ะเชะ!! DPa$$w0rd:SheepInTheBigCity 😍

นำรหัสผ่านที่ได้เมื่อกี้ไปแตกไฟล์โลด 😁
จะได้ไฟล์ออกมาอีก 3 ไฟล์ (ยังไม่จบอีก 😢)

ลองเช็คไฟล์ทั้ง 3 ไฟล์ซิ ว่าเนื้อแท้มันคือไฟล์อะไร
จะเห็นว่าไฟล์แรกเป็นไฟล์รูป (.jpg) ไฟล์ที่สองเป็นไฟล์เสียง (.wav) ส่วนไฟล์สุดท้ายเป็น data ไว้เดี๋ยวมาเช็คกันอีกที … 😅

ก่อนอื่นทำการเปลี่ยนนามสกุลให้ 2 ไฟล์แรกก่อน hint1.zip เป็น hint1.jpg และ hint2.zip เป็น hint2.wav
ลองส่องไฟล์ hint3.zip จะพบว่าส่วน header มีคำว่า NG !!!
และแน่นอนครับ มันคือไฟล์รูปภาพ 😄

ให้เราไปแก้ค่า Hex โดยการเพิ่ม 89 50 ไป offset แรกสุด

เปลี่ยนนามสกุลไฟล์ให้เป็น .png ซะ

รูปภาพที่ได้ … 🧐

ทีนี้กลับมาดู hint2 ลองแมวมาดูหน่อยซิ 🧐

Nothing …

งั้นโยนเข้า Audacity หน่อยเป็นไง 😅
เอ๊ะ… Morse Code แน่ๆ 🤔

และแน่นอนมันคือ Morse Code เมื่อทำการ Translate ออกมาจะได้คำว่า PLAYSOME

ส่วน hint1 นั้น ..

ลองแมวดูซิ เห็นอะไรแว๊บๆ 🧐 🤔

ถ้าดูดีๆมีเครื่องหมาย { ก็น่าจะเป็น ROT13 แน่ๆ งั้น decode โลด
จะได้คำว่า TH{lets ออกมา

เมื่อเอาคำใบ้ทั้ง 3 คำมารวมกันก็จะได้ Flag ออกมา
TH{letsPLAYSOME_CtF!$} เอาไปแก้ format ให้ถูกต้องเป็นอันเรียบร้อย

จอบอ. 😁

Thailand CTF 2019 – Android (Write-up)

ในข้อนี้โจทย์มีชื่อว่า Android สามารถดาวน์โหลดโจทย์ได้ที่ลิงค์นี้ >>> Android.zip

ขั้นแรกให้ทำการแตกไฟล์ออกมาก่อน โดยใช้คำสั่ง unzip Android.zip จะได้โฟลเดอร์ Android_ ออกมา
โดยข้างในโฟลเดอร์ก็จะพบอยู่ 3 ไฟล์ ได้แก่ android.zip (password protected), .git และ README.md

จุดที่น่าสนใจคือ .git ทำให้ทราบได้ว่าใช้ version control ซึ่งจะเก็บประวัติในการแก้ไขโค้ดของเรา อ่านเพิ่มเติมคลิกที่นี่

ให้เราทำการรันคำสั่ง git log เพื่อดูประวัติการ Commit เพราะโดยปกติแล้ว แต่ละครั้งเมื่อเราทำการ Commit จะมีการใส่ Comment ไว้ด้วย เพื่อที่จะได้ทราบว่าเราได้ทำอะไรไปบ้าง

จุดที่น่าสนใจมีอยู่ 2 commit คือ
update (สนใจก่อนการ delete key) : 33d78b5cbb94854ff228172e7dd0159564157655
delete website : 20929d7d0ff6d4fc99fdc25d6196f80f49d0582b

Checkout #1

ทำการรันคำสั่ง git checkout 33d78b5cbb94854ff228172e7dd0159564157655 เพื่อทำการย้อนกลับไปก่อนมีการ delete key

เมื่อทำการเรียกดูรายชื่อไฟล์ จะพบว่ามีไฟล์ aws_s3.key โผล่ขึ้นมา

เมื่อทำการดูไฟล์ข้างใน จะพบค่าค่านึง อันนี้ขอรวบลัดเลยละกัน ไม่ต้องไปรันใน aws console หรือเขียน api ให้ยุ่งยาก เพราะจริงๆมันคือค่า hex นี่เอง

เมื่อทำการ decode ก็จะได้ค่าดังนี้ Th@iL@nDCTF2Ol9

เมื่อนำรหัสที่ได้มาแตกไฟล์ android.zip ปรากฏว่ารหัสผิด 😢

Checkout #2

คราวนี้เรามาดูอีก Commit ที่เกี่ยวกับ Website อะไรสักอย่าง เช่นเดิมครับ ให้รันคำสั่ง git checkout 20929d7d0ff6d4fc99fdc25d6196f80f49d0582b เพื่อย้อนกลับไปก่อนการลบ website

จะเห็นว่ามีโฟลเดอร์ web โผล่ขึ้นมา

เมื่อเข้าไปดูในโฟลเดอร์ web จะพบไฟล์ index.html ให้เราทำการเปิดไฟล์ครับ เพื่ออ่าน source code ด้านใน

เห็นอะไรมั้ยครับ 😏

คล้ายๆอันแรกเลย จากค่า aws_access_key_id และ aws_secret_access_key ให้เราทำการ decode ออกมาครับ อันนี้แล้วแต่ความสะดวกเลย ส่วนตัวผมใช้ perl script ครับ

เมื่อ decode ออกมาก็จะได้ค่าดังนี้ Th@iLanDCTF2Ol9_P@ssCode

นำมาเป็นรหัสแตกไฟล์ android.zip ครับ ถูกต้องสักที เย้ 😄

รวบรัดอีกแล้ว 😆 ไม่ต้องคิดอะไรมากครับ โจทย์นี้คือจะให้เราทำการ Crack Android Pattern ครับ

รันคำสั่งเพื่อค้นการไฟล์ gesture.key โลดครับ จะใช้คำสั่งใน linux (find,grep) หรือถ้าใช้ Windows ก็ search ผ่าน Explorer ได้เลยครับ

ข้อดีของโจทย์นี้คือ จะมี Script สำหรับ Crack Pattern มาให้แล้ว ตามผลลัพท์ที่ 2 ครับ

รันสคริปต์ aplc.py เพื่อทำการ Crack Pattern โลดครับ 😄

$ data/data/com.android.crackkey/androidpatternlock/aplc.py data/system/gesture.key

เท่านี้เราก็จะได้ Flag ออกมา 😎
THCTF{6304852}

จอบอ. 😁

Lenovo PHAB (PB1-750M) has been upgraded to Android 6.0.1 Marshmallow.

​Lenovo PHAB (PB1-750M) has been upgraded to Android 6.0.1 Marshmallow.

Detail:
Android version : 6.0.1
Build (original) : MMB29M
Branch (original) : android-6.0.1_r3
Build number : 750M_S000660_160930_ROW
Software version : PB1-750M_160722

สำหรับไฟล์อัพเดทอยู่ที่ประมาณ 1.1GB กว่าๆ

PS. สำหรับใครอยากรู้ว่าเครื่องตัวเองใช้รอม Branch/build ตัวไหน เข้าไปดูได้ที่
/system/build.prop
อย่างของผมดูตรง to.build.description=___
เอาไปเทียบ version ได้ที่
https://source.android.com/source/build-numbers.html
https://android.googlesource.com/platform/build/+refs

เนื่องจากเครื่องที่ไม่ได้ใช้ Pure Android มักจะเอาไปโมฯแล้วเปลี่ยนเป็นชื่อของตัวเอง

[Thai] – How to Import Android Phone Contacts from Notebook/PC (Excel / CSV / TXT)

Ref : https://support.google.com/mail/answer/14024

Fanpage : http://fb.me/sornram9254Fan
Facebook : http://fb.me/sornram9254
https://blog.sornram9254.com

ปล. ขออภัยนะครับกับความกากของไมค์ 55555
มีเสียงแทรกนิดๆ แต่ก็ยังฟังได้นะ ^^

windows , ios , osx , android – แน่ใจได้อย่างไรว่าเป็น os ที่ดีที่สุด ?

ยกคำตอบที่ผมได้ตอบไว้มาจาก เมื่อไหร่บริษัทไมโครซอฟต์ จะเจ๊งเหรอครับ – Pantip

===========================================================

แน่ใจอย่างไรครับว่า os ของ apple (ios & osx) ดีกว่า os ค่ายอื่นจริงๆ
เปรียบเทียบจากส่วนไหนครับ ????

แต่ละ os มันก็มีข้อดีข้อเสียแตกต่างกันไปครับ

Desktop
อย่าง windows เด่นเรื่อง compatible การเล่นเกม ฯลฯ
osx เด่นเรื่องความง่าย multimedia graphic การตัดต่อ ฯลฯ
linux เด่นเรื่องความเสถียร server security ฯลฯ

Mobile
wp เด่นเรื่องเอกสาร office ฯลฯ
ios เด่นเรื่องความง่าย เกม multimedia ฯลฯ
android เด่นเรื่อง customization ลูกเล่นต่างๆ feature ฯลฯ

สุดท้ายมันก็อยู่ที่เราจะมองครับ
แต่สำหรับผม ผมมองแบบนี้นะ คือ os ไหนจะดีหรือไม่ดี มันขึ้นอยู่กับว่า
เราจะนำไปใช้งานในลักษณะไหน เลือกใช้เหมาะสมกับความต้องการของเราหรือเปล่า
อย่างเช่นทำงานด้าน computer cg แต่ไปใช้ linux server มันก็คงไม่ใช่
เราก็จะมองว่ามันห่วยไปเลย แทนที่จะไปใช้ osx ที่มันมีประสิทธิภาพที่ดีกว่า
หรือถ้าเราจะเปิด server 24/7 แต่ไปใช้ windows ธรรมดาๆ ประสิทธิภาพมันก็แย่
มันคงสู้ windows server หรือ linux server ไม่ได้ครับ
คนนี้ใช้ os นี้อาจบอกว่ามันดี มันเทพมาก แต่อีกคนอาจบอกว่า os นี้มันห่วยมาก

ฝากไว้เท่านี้แหละครับ os จะดีหรือไม่ดีเราวัดกันไม่ได้
มันขึ้นอยู่กับการใช้งานของเรา
เลือกใช้ให้ตรงกับความต้องการของเราครับ
อมยิ้ม36