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

January 9 / 2017

หลังจากที่ผ่าน 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 ครับpart2_1
  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 <apk file>” เพื่อ Decompile ไฟล์ apk และจะได้ผลลัพธ์ออกมาเป็นไฟล์ “SantaGram_4.2-dex2jar.jarpart2_2
  4. ใช้ JD-GUI ในการทำ Reverse engineer เพื่อดู Source Code ในไฟล์ SantaGram_4.2-dex2jar.jar โดยเมื่อเปิดขึ้นมาแล้ว ก็ค้นหา Keyword ด้วยคำว่า “password” เลยครับ เผื่อว่าจะเจออะไรดี ๆ และแล้วก็เจอจริง ๆ ด้วย..part2_3
    จากการค้นหาคำว่า “password” จะเห็นว่าเจออยู่ในหลายที่ด้วยกันครับ แต่หากสังเกตใน northpolewonderland.santagram จะพบอยู่ 3 ที่ คือ SignUp.class, SplashScreen.class และ b.class
  5. เข้าไปดูที่ SplashScreen.class ก็จะเจอ Username และ Password ที่ตามหาอยู่ครับ (ใน b.class ก็เช่นเดียวกัน แต่ใน SignUp.class ไม่มีอะไร เป็นแค่ชื่อตัวแปรตัวหนึ่งเท่านั้น)part2_4
    part2_5
    ซึ่งก็คือ 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” นั้นเองครับ
    part2_7

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_(software)
  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 ครับ 🙂

0

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

กลับมาแล้วครับ สำหรับ Write-Ups ใน Part 3 ซึ่งอาจจะทิ้งช่วงห่างจาก Part 2 นานไปซักหน่อย ก็ขออภัยมา ณ ที่นี้ด้วยครับ โดยสำหรับกิจกรรม The 2016 SANS Holiday Hack Challenge…

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

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

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

Introduction เพิ่งจบไปไม่นานครับ กับกิจกรรม SANS Holiday Hack Challenge ของปี 2016 ซึ่ง SANS มีจัดกิจกรรม Capture The Flag (CTF) แบบนี้เป็นประจำทุกปี และรางวัลของกิจกรรมปีนี้ มีด้วยกันทั้งสิ้น 10 รางวัล โดยประกอบด้วย…
0

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

กลับมาแล้วครับ สำหรับ Write-Ups ใน Part 3 ซึ่งอาจจะทิ้งช่วงห่างจาก Part 2 นานไปซักหน่อย ก็ขออภัยมา ณ ที่นี้ด้วยครับ โดยสำหรับกิจกรรม The 2016 SANS Holiday Hack Challenge…

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

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

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

Introduction เพิ่งจบไปไม่นานครับ กับกิจกรรม SANS Holiday Hack Challenge ของปี 2016 ซึ่ง SANS มีจัดกิจกรรม Capture The Flag (CTF) แบบนี้เป็นประจำทุกปี และรางวัลของกิจกรรมปีนี้ มีด้วยกันทั้งสิ้น 10 รางวัล โดยประกอบด้วย…
0

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

กลับมาแล้วครับ สำหรับ Write-Ups ใน Part 3 ซึ่งอาจจะทิ้งช่วงห่างจาก Part 2 นานไปซักหน่อย ก็ขออภัยมา ณ ที่นี้ด้วยครับ โดยสำหรับกิจกรรม The 2016 SANS Holiday Hack Challenge…

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

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

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

Introduction เพิ่งจบไปไม่นานครับ กับกิจกรรม SANS Holiday Hack Challenge ของปี 2016 ซึ่ง SANS มีจัดกิจกรรม Capture The Flag (CTF) แบบนี้เป็นประจำทุกปี และรางวัลของกิจกรรมปีนี้ มีด้วยกันทั้งสิ้น 10 รางวัล โดยประกอบด้วย…