content-image
ARTICLES | 01 March 2021

The 2016 SANS Holiday Hack Challenge Write-Ups (Part 2/5)

author-image

Incognito Lab

หลังจากที่ผ่าน Part 1: A Most Curious Business Card กันมาแล้ว ในบทความนี้จะเป็นส่วน Part 2: Awesome Package Konveyance ครับ

Part 2: Awesome Package Konveyance


สำหรับใน Part นี้ มี 2 คำถาม ที่เราจะต้องหาคำตอบให้ได้ คือ

  1. What username and password are embedded in the APK file ?
  2. What is the name of the audible component (audio file) in the SantaGram APK file ?

หลังจากที่ผ่าน Part แรกไป ได้ไฟล์ SantaGram_v4.2.apk** มา ใน Part 2 นี้ต้องเอาไฟล์ที่ได้มาหาข้อมูลกันต่อครับ ในเกมส์ 8 bits นั้น มี NPC ที่เป็น Elf อยู่หลายตัว หาก Click ไปที่ NPC ในแต่ละตัวก็จะบอก Hint ที่เป็นประโยชน์ในการไขปริศนาอยู่ **(โดยเฉพาะ Link ไปยัง Resources บนเว็บต่าง ๆ นี่เป็น Hint ที่ดีมากครับ) ใน Part 2 นี้ก็เช่นกัน มี NPC ที่บอก Hint ของ Part นี้อยู่

มาเริ่มกันที่ข้อแรกเลยครับ..

  1. เดินไปที่ Workshop (ต้องไต่บันไดเลยเมฆขึ้นไป) เข้าไปข้างในแล้วไปที่ห้องทางขวาซึ่งจะเป็น Train Station จากนั้นจะพบกับ NPC ตัวหนึ่งชื่อว่า "Shinny Upatree" NPC ตัวนี้จะให้ Hint ถึงวิธีการ Extract และ Decompile ไฟล์ apk ครับ
  2. การที่จะสามารถหา Credential ที่ฝังอยู่ในไฟล์ apk ได้นั้น เราจะต้องทำการ Decompile ไฟล์ apk กลับมาเป็น JAVA Source code ก่อนแล้วจากนั้นจึงหา Credential ใน Source code อีกที ซึ่ง Tools ที่ใช้ในการ Decompile ก็มีมากมาย และที่ Shinny Upatree แนะนำคือ JadX** แต่ใน Write-Ups นี้จะใช้เป็น **dex2jar นะครับ โดยวิธีการของการ Decompile คือ Tool จะทำการ Decompile ไฟล์ .dex (ซึ่งอยู่ใน apk อีกที ) กลับไปเป็นไฟล์ .jar ในภาษา JAVA
  3. Dowload dex2jar แล้วใช้คำสั่ง "d2j-dex2jar.bat** " เพื่อ Decompile ไฟล์ apk และจะได้ผลลัพธ์ออกมาเป็นไฟล์ "**SantaGram_4.2-dex2jar.jar"
  4. ใช้ JD-GUI ในการทำ Reverse engineer เพื่อดู Source Code ในไฟล์ SantaGram_4.2-dex2jar.jar** โดยเมื่อเปิดขึ้นมาแล้ว ก็ค้นหา Keyword ด้วยคำว่า "password" เลยครับ เผื่อว่าจะเจออะไรดี ๆ และแล้วก็เจอจริง ๆ ด้วย..
    จากการค้นหาคำว่า "password
    " จะเห็นว่าเจออยู่ในหลายที่ด้วยกันครับ แต่หากสังเกตใน northpolewonderland.santagram จะพบอยู่ 3 ที่ คือ SignUp.class, SplashScreen.class และ **b.class
  5. เข้าไปดูที่ SplashScreen.class ก็จะเจอ Username และ Password ที่ตามหาอยู่ครับ (ใน b.class ก็เช่นเดียวกัน แต่ใน SignUp.class ไม่มีอะไร เป็นแค่ชื่อตัวแปรตัวหนึ่งเท่านั้น) ซึ่งก็คือ Username : guest** และ Password : **busyreindeer78

หลังจากหาคำตอบของข้อแรกได้แล้ว ก็ไปต่อข้อถัดไปกันเลยครับ

  1. ขั้นตอนต่อไปคือการหาไฟล์ audio ที่อยู่ใน apk ซึ่งจาก Hint ของ Shinny Upatree ได้บอกว่าไฟล์ apk นั้นเป็นแค่ไฟล์ zip ซึ่งสามารถ Extract ออกมาได้ และเพื่อที่จะสำรวจข้างในไฟล์ apk ว่ามีไฟล์ audio ที่เราตามหาอยู่หรือไม่ ก็ต้อง Extract ออกมาครับ ซึ่งอาจจะใช้ Tools เช่น Winzip หรือ 7zip ก็ได้เช่นกัน
  2. เมื่อ Extract ออกมาแล้ว จึงทำการค้นหาไฟล์ audio ใน Directory "/res**" (Directory ต่าง ๆ ใน res ใช้เก็บอะไรบ้าง ดูได้จากที่นี้ครับ https://developer.android.com/guide/topics/resources/providing-resources.html) ซึ่งเป็นโฟลเดอร์ที่ใช้เก็บ Resources ต่าง ๆ ที่ใช้ภายใน Application เช่น รูปภาพ หรือไฟล์เสียง ก็จะพบไฟล์ audio ที่ชื่อ discombobulatedaudio1.mp3 อยู่ใน Directory "**/res/raw" นั้นเองครับ

Summary


  1. What username and password are embedded in the APK file ?
    Answer** guest: **busyreindeer78
  2. What is the name of the audible component (audio file) in the SantaGram APK file ?
    Answer discombobulatedaudio1.mp3

Resources


  1. https://en.wikipedia.org/wiki/Dalvik%5F%28software%29
  2. https://github.com/pxb1988/dex2jar
  3. http://jd.benow.ca/
  4. http://www.willhackforsushi.com/presentations/gitd-hackfest.pptx
  5. https://developer.android.com/guide/topics/resources/providing-resources.html

จบกันไปแล้วนะครับกับ Part 2 และใน Part ต่อ ๆ ไป ก็จะมีความซับซ้อนและยากขึ้นตามลำดับ ( แต่ก็สนุกและท้าทาย ? ) และ Hint ของ NPC ในแต่ละตัวนั้นมีประโยชน์ค่อนข้างมากครับ ทำให้รู้ทิศทางที่ควรจะทำในการแก้โจทย์ได้

แล้วพบกันใหม่ในตอนต่อไป Part 3: A Fresh-Baked Holiday Pi ครับ ?

logologo

INCOGNITO LAB CO., LTD.

38 Soi Petchakasem 30, Petchakasem Road, Pak Khlong Phasi Charoen, Phasi Charoen, Bangkok 10160

©2025 Incognito Lab Co., Ltd. All rights reserved

Terms & Conditions Privacy Policy