Post

Magnet Virtual Summit CTF 2024 - Android Writeup

Info

Link: https://www.magnetforensics.com/blog/2024-magnet-virtual-summit-ctf-winners-and-another-chance-to-play/

Problem: There’s an Android logical image to analyze and a series of questions to answer.

1. Press x to Respawn

Prompt: On what platform did Rocco share his Call of Duty Username?

The Call of Duty folder is in /data/data/com.activision.callofduty.shooter. Under shared_prefs, there’s an XML file __hs_lite_sdk_store.xml that identifies Rocco’s username as OkClick5789.

CoD Username

A quick keyword search in Autopsy gives a hit in /data/data/com.twitter.android/databases/1719897971716685824-dm.db-wal; Rocco shared his username in a Twitter DM.

Twitter CoD Username

Answer: Twitter

2. Warm Up

Prompt: What Southern state’s sports team did Rocco search up?

In Autopsy, under Data Artifacts -> Web History, Chrome history reveals Rocco searched up the Louisiana Ragin’ Cajuns.

Chrome History

Answer: Louisiana Ragin’ Cajuns

3. Can you Handle this

Prompt: What was Rocco’s Twitter account name?

Back in the Twitter databases (/data/data/com.twitter.android/databases), I found Rocco’s username in the users table of the 1719897971716685824-66.db database: RoccoSachs96775.

Twitter Username

Answer: RoccoSachs96775

4. Need to reach those heights

Prompt: What is the SIM operator name?

SIM information can be found in the telephony.db database, which I found in the device encrypted storage at /data/user_de/0/com.android.providers.telephony/databases. The siminfo table contains three entries with two carriers: T-Mobile and Boost Mobile. Considering that Boost Mobile has the data_roaming column set to 1, and the iso_country column set to ‘us’, that’s probably the primary SIM operator.

telephony.db

Answer: Boost Mobile

5. Not to be basic but…

Prompt: What is the default Internet Browser?

According to the Autopsy Data Artifacts -> Web History findings, it seems that Chrome is the most prevalent browser that was used.

Chrome History

New artifact alert! It seems you can find out default applications from the roles.xml file, which can be found on this phone at /data/misc_de/0/apexdata/com.android.permission. This file lists Chrome as the default browser application.

roles.xml

Answer: Chrome

6. Survival Mode Activated

Prompt: What conference did Rocco show interest in?

In Autopsy, under Data Artifacts -> Web History, Chrome history indicates Rocco was interested in Preppercon.

Preppercon

Answer: Preppercon

7. Sign me up!

Prompt: What email is associated with the device?

Android account information can be found in /system_ce/0/accounts_ce.db or /system_de/0/accounts_de.db. In both of these databases, there’s a table accounts, and both contain the email address roccotsachs@gmail.com.

Email Address

Answer: roccotsachs@gmail.com

Prompt: How many messages were sent from Rocco in Twitter Direct Messages?

In the Twitter database (/data/data/com.twitter.android/databases/1719897971716685824-66.db), there’s a table conversation_entries that contains direct messages and user ids. From the filename, and from the users table from task 3, Rocco’s user id seems to be 1719897971716685824.

In the conversation_entries table, it’s just a matter of summing up the DMs corresponding to that ID, which comes out to be 8.

Twitter DMs

Answer: 8

9. No two cents about them

Prompt: According to exCHANGEs in discord with Chad, what did Chad want back from Rocco?

Combing through the Discord folders, I stumble on a database at /data/data/com.discord/files/kv-storage/@account.1185636389107273799/a that contains Discord messages in the table messages0. In this table, there are records between Chad and Rocco that indicate Chad wanted money back from Rocco after he scammed him.

Discord Message

Answer: money

10. You can never be too ready

Prompt: How many additional survival tips were provided in the $9 book Rocco was looking into?

In Autopsy, under Data Artifacts -> Web History, there are a couple Amazon entries.

Amazon Entries

Following the URLs takes me to a page for a ~9 dollar book: How to Fight a Bear…and Win: And 72 Other Real Survival Tips We Hope You’ll Never Need.

How To Fight a Bear and Win

Rocco also took a photo of the book with a $9 sticker on it; it’s located in /data/media/0/DCIM/Camera/PXL_20231215_202654750.jpg.

Book Picture

Answer: 72

11. Tag you’re it!

Prompt: What city was the user in when they identified an AirTag on them?

In the Discord chat messages, there’s one message from Rocco that was sent on 2023-12-27 indicating they had become aware of the AirTag.

Discord AirTag Message

Luckily, there are some photos that were taken on 2023-12-27 with GPS metadata, which I used exiftool to extract (exiftool PXL_20231227_163049844.jpg | grep GPS).

Exiftool

Plugging these coordinates in to Google Maps reveals Rocco was in Windsor, ON.

Windsor, ON

Answer: Windsor, ON

12. A game of Cat and Mouse

Prompt: What game did two beloved cartoon charachters promote in an Ad?

This one is a ridiculous challenge, and I ended up consulting Kevin Pagaro’s writeup for this one. The “ad” is actually part of a tutorial located in the Android tips directory at /data/data/com.google.android.apps.tips/files/download/asset/83c4649ef9ea3b1825f2ee682accc363a31a0e5d. Autopsy doesn’t display it, so I extracted it and tacked on a .mp4 to the filename. 3/4 of the way through, the game Tom and Jerry: Chase is shown.

Tom and Jerry

I think this would take a while to find, but a way to find it would be to look through Autopsy’s files through File Views -> File Types -> By MIME Type -> video.

Answer: Tom and Jerry: Chase

13. Always achieving new heights

Prompt: What was the new score achieved on the video game Rocco watched on Youtube?

There’s a statuses table in the Twitter database (/data/data/com.twitter.android/databases/1719897971716685824-66.db) that contains tweets that Rocco viewed, posted, and retweeted. One of these tweets links a YouTube video of a new Subway Surfers high score.

YouTube Tweet

The high score achieved in the video is 5187.

High Score

Answer: 5187

14. LIVE your life

Prompt: What two sports did Rocco capture in a photo?

In the photos directory (/data/media/0/DCIM/Camera) there’s a live photo PXL_20231218_020011968.jpg where I can just barely make out golfing and skiing.

Trivia

Answer: golfing and skiing

15. Remember your floaties

Prompt: What fun outdoor activity location was searched for?

In Autopsy, under Data Artifacts -> Web History, there’s an entry from Chrome history for Big Water Campgrounds in Timmins, Ontario.

Big Water Campgrounds

Answer: Big Water Campgrounds, Timmins, Ontario

16. R-E-J-E-C-T-E-D Rejected

Prompt: When was the last shutdown that was initiated by Rocco? (YYYY-MM-DD HH:MM:SS) UTC 24 hour time.

There’s an interesting folder /data/system/shutdown-checkpoints that contains files with information about shutdowns, including those requested by the user. One file, checkpoints-1703807249418 contains the latest timestamp for a user-requested shutdown at 2023-12-28 23:47:29 UTC.

Shutdown Request

Answer: 2023-12-28 23:47:29 UTC

17. Out of Stock

Prompt: What is the most recent score in Subway Surfer?

It sure is a hit to the confidence to have to consult Kevin’s writeup again, but I need to keep reminding myself that I’m still learning. And now I know a little more about Android than I did before!

Android keeps track of recent activity in /data/system_ce/0/recent_tasks. In here, there’s a file 256_task.xml that references a Subway Surfer session and a snapshot.

256_task.xml

One directory up, there’s a folder named snapshots. In here, there’s a file 256.jpg that is seemingly linked to the 256_task.xml file, and reveals the score achieved in the latest session: 1899.

256.jpg

Answer: 1899

18. So Salty!

Prompt: What is the handle of the person who is talking about how upset they are with Rocco?

I recall seeing in the Discord messages with Chad an exchange about a Twitter account that was causing Rocco grief.

Chat 1

Chat 2

I find a few screenshots of the tweets in /data/media/0/Pictures/Screenshots that gives the handle: @larissajenna9.

Screenshot

Answer: @larissajenna9

19. Don’t let them see you down

Prompt: What was added using Photoshop?

In /data/media/0/Pictures there’s a folder Photoshop Express with four screenshots of a Connections game. It seems Rocco might have removed the “Next Time!” text.

Screenshot 1

Screenshot 2

It doesn’t seem like Connections would say “Next Time!” when he assumedly won the game. I navigate to the Screenshots folder in /data/media/0/Pictures and find the original screenshot, without the Success sticker and “Good Job!” text, which he added.

Original screenshot

Answer: Success

20. It’s the eye of the tiger

Prompt: When is Rocco’s Bday? (YYYY-MM-DD)

I know Facebook keeps track of birthdays, and luckily, we have a Facebook archive. I find Rocco’s birthday in /facebook-61554919820462-2024-01-06-49fzodcA/personal_information/profile_information/profile_information.html; his birthday is 1974-09-29.

Facebook Birthday

Answer: 1974-09-29

21. Secrets Secrets are no Fun

Prompt: What did Rocco search in the App Store to download the app used to hide photos?

Google Play data can be found in /data/data/com.android.vending. Under databases, I find a database suggestions.db that contains “queries”. One of these is calculator vault, which is an app that is used to hide photos.

Calculator Vault

Answer: calculator vault

22. Stalker Alert

Prompt: Shortly after logging into Facebook with IP address 72.38.231.98, a photo was taken. Where was this photo taken?

The Facebook archive stores information about logins/logouts at /facebook-61554919820462-2024-01-06-49fzodcA/security_and_login_information/logins_and_logouts.html. The login from 72.38.231.98 took place on 2023-12-27 16:16:01 UTC.

Facebook Logins

In Rocco’s photos (/data/media/0/DCIM/Camera) the photo with the closest timestamp is PXL_20231227_163049844.jpg. Running a grep for GPS on the EXIF data (exiftool PXL_20231227_163049844.jpg | grep GPS) gives the coordinates.

GPS Coords

Plugging these coordinates in to Google Maps shows the photo was taken at Devonshire Mall, 3100 Howard Ave Unit B7, Windsor, ON N8X 3Y8, Canada.

Google Maps

Answer: Devonshire Mall, 3100 Howard Ave Unit B7, Windsor, ON N8X 3Y8, Canada

Debrief

It was nice to get back into Android for a change. There’s a lot more to the OS than I figured, and I learned a few new artifacts that I think will come extremely in handy for future challenges. I hope to participate live at next year’s summit, and see if I can hold my own alongside the DF greats.

This post is licensed under CC BY 4.0 by the author.