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}

จอบอ. 😁

Leave a Reply

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.