MVS2021: iOS

Information

Image: GrayKey iOS image

Files: MVS2021iOS.zip

My Recommendations

This is my personal preference, I like being organized and deleting a folder when I’m done with it.

mkdir Documents/Magnet/ios 

Verify the file with md5sum:

md5sum MVS2021iOS.zip
CLI tools:
sudo apt update
sudo apt-get install -y html2text.
sudo apt-get install -y xlsx2csv
sudo apt-get install -y html2text
sudo apt-get install sqlitebrowser
sudo snap install vlc
I tried to solve some of these questions with Command Line tools only, but iLEAPP is so much more efficient, and faster. ilEAPP:
git clone https://github.com/abrignoni/iLEAPP
cd iLEAPP
virtualenv env
source env/bin/activate
pip3 install -r requirements.txt
python3 ileapp.py -t fs -i /home/remnux/Documents/Magnet/ios -o /home/remnux/Documents/Magnet
mv (Name of your iLEAPP folder) ileapp #Renaming makes it it easier to use in the Terminal
deactivate ##when done

Walkthrough

1. Breaking Quarantine (5)

When does Eli go to a neighboring state? Answer in MM/DD/YYYY
 

In iLEAPP, at the RoutineD Cloud Addresses, on 2021-02-20, Eli went to New York from Vermont, which correlates with the Takeout/Chromebook data, where he was so desperate to cross the border for chicken :o.

Answer: 02/20/2021

2. Burger Time (5)

What fast food restaurant has an application is installed on the device?
				
					 find ios/private/var/containers -name "*.app"
				
			

All are recognizable except, CFAOne.app, which google reveals to be Chick-fil-A.

Alternatively, in iLEAPP, on the Application State DB tab, you will find the Bundle ID “com.engauge.Chick-fil-A”.

Answer: Chick-fil-A

3. Get Zucked! (5)

What is Eli’s facebook password?
 

The iOS image, which was imaged with GrayKey, includes a keychain property list and a “passwords” text file:

				
					 grep "facebook" -B 1 -A 3 ios/*.txt
				
			

Answer: fix_my_flatt2!

4. New Watch Who Dis (5)

What is the MAC address of Eli’s apple watch?


Paired Bluetooth devices are located in the “com.apple.MobileBluetooth.ledevices.paired.db” database, which is at /private/var/containers/Shared/SystemGroup//Library/Database/com.apple.MobileBluetooth.ledevices.paired.db

				
					##Using sudo (root) because SystemGroup directory is protected in iOS
sudo find ios/private/var/containers/Shared/SystemGroup -type f -name "*MobileBluetooth*"
sudo sqlitebrowser ios/private/var/containers/Shared/SystemGroup/3C4306EC-7EC5-4268-A396-4EC44A85C4D7/Library/Database/com.apple.MobileBluetooth.ledevices.paired.db
				
			

In the table “PairedDevices”, there is an entry for Eli’s Apple Watch, and the Resolved Address is its the MAC address.

In iLEAPP, the “Bluetooth Paired” tab shows the same answer (and faster!).

Answer: 50:A6:7F:8F:A5:B6

5. Sanik Speed (5)

What was the fastest heart rate recorded for Eli?
 

Health data is stored in the “healthdb_secure.sqlite” database, which is located in /private/var/mobile/Library/Health.

				
					sqlitebrowser ios/private/var/mobile/Library/Health/healthdb_secure.sqlite
				
			

It’s not an easy database to work around with, so I ran this sqlite query in the “Execute Sqlite” tab and added – order by “HEART RATE” DESC on the last line.

In iLEAPP, you just need to go to the “Heart Rate” tab, and sort by descending number (make sure you select Show:ALL).

Answer: 146

6. Sunny Side Up (5)

How does John like his eggs? (2 words)

 

In iLEAPP, there is no result for “eggs” (which I assume is because the App is not parsed by iLEAPP) so I’m going to search for the string “eggs” in /private/var/mobile/Containers.

				
					grep -s -r "eggs" ios/private/var/mobile/Containers
				
			

We get matches from Apple news, Snapchat Sticker search and a mysterious db.sqlite-wal in ChatFiles. If I had more time I would parse it using Walitean, but I’m going to do this instead:

				
					strings ios/private/var/mobile/Containers/Data/Application/1F287418-C53F-4C57-A0A0-E3CA23CC1376/Library/Application\ Support/ChatFiles/6929690733986661382/db.sqlite-wal | grep “eggs” 
				
			

First line, we get “text”:”I like my eggs in CHICKEN form”

Answer: CHICKEN form

7. Beefstew isn’t a Stoganoff Password (10)

How many Apple Notes did Eli Encrypt?

 

Notes are stored in the NoteStore.sqlite database, which is at /private/var/mobile/Containers/Shared/AppGroup/<GUID>

				
					find ios/private/var/mobile/Containers/Shared/AppGroup/ -type f -name "NoteStore.sqlite"
##Returns location of DB & open it
 sqlitebrowser ios/private/var/mobile/Containers/Shared/AppGroup/E325D0D4-1ADF-4D35-9CF8-6F7DEBFB2156/NoteStore.sqlite
				
			

Since the question asks how many Notes are encrypted, we can go to the “ZICNOTEDATA” table, and under the ZCRYPTOTAG column, count the number of “BLOBS” (which is the number of encrypted notes).

Otherwise, iLEAPP to the rescue! Go to Note Sharing; and there will be three instances of “PasswordProtectedNote” in the Record Type column.

Answer: 3

8. Big Spender (10)

How much (after tax) was Eli’s Chick-fil-A order? Exclude Dollar sign

 

At this point, I’m going to switch my search directory to the ileapp output directory, as it’s easier to grep for strings.

				
					html2text ileapp/*.html | grep "Chick-fil-A" 
				
			

In the output, there is something about a ‘Mobile Ordering Receipt’, so I narrow my search by:

				
					 grep 'Chick-fil-A® Mobile Ordering Receipt' ileapp/*.html
				
			

Eli Flatt received an email to confirm his order, which amounts the order to 28.00 USD, HOWEVER, this is something I got wrong!!!!

UPDATE

This time, I’m going to work directly on the Mail folder in private/var/mobile/Library/Mail since I know there is an email with a receipt.

With grep, I see my email of interest is in the following directory:

ios/private/var/mobile/Library/Mail/MessageData/41 which contains 1.emlxpart and partial.emlx

				
					cat ios/private/var/mobile/Library/Mail/MessageData/41/1.emlxpart
				
			

Outputs the email with metadata, and … if I scroll down

Total – $27.24 USD.

I should’ve considered the “exclude dollar sign” as a flag, would’ve helped with greppin’ the filesystem.I was convinced that since he payed with a gift card it would be 0, but no, Eli still got charged 🙁

Answer: 27.24

9. Getting the Bag (10)

When was the first time Eli got Chipotle? mm/dd/yyyy
 

Grepping for Chipotle gives no realistic answer, so I’m going to look at Media files and open the ios/private/var/mobile/Media/DCIM/100APPLE directory in vlc.

IMG_0001.MOV is a live photo of a Chipotle bag:

To find the date it was taken, which is when Eli “secured the bag”:

				
					ls -la ios/private/var/mobile/Media/DCIM/100APPLE/IMG_0001.MOV
				
			

Answer: 02/12/2021

 

10. News Flash (10)

Who may have the toughest job in Washington?

 

One of the cool things about iOS forensics, is that within each app directory there is a “Snapshot” folder which contains .ktx images, and are kind of like random screenshots taken by iOS. You can sometimes find evidence in those. In iLEAPP in the Application Snapshots tab at sceneID:com.apple.news directory, there’s the answer!

 

Answer: Janet Yellen

11. There’s No Sign of Intelligent Life Anywhere (15)

Eli was sent a flat earth meme. Give the last 5 characters of the MD5 hash of the file.

 

If Eli was sent a meme, then most likely it was through a Social Media app, not parsed by iLEAPP. There’s a recurrence of Snapchat in this Challenge, and it actually took me FOREVER to find this flag. But in the end, and with determination, I FOUND IT!

In this directory, ios/private/var/mobile/Containers/Data/Application/4BE54906-7CC7-4281-B1EB-055263F14F17/Library/Persistent/SCMedia resides all pictures/videos the user saves in a conversation. In VLC, I open the three mov files as a “directory”, the second one is:

Our file of interest is cm-chat-media-video-Uu2LyntLxKFWDKxorL2r2.mov.

				
					 md5sum ios/private/var/mobile/Containers/Data/Application/4BE54906-7CC7-4281-B1EB-055263F14F17/Library/Persistent/SCMedia/cm-chat-media-video-Uu2LyntLxKFWDKxorL2r2.mov
				
			

The MD5 is 2c4a1b057ebd029eb9d450378b3889aa.

Answer: 889aa

12. What falls but never hits the ground? (15)

What was the temperature in Burlington on March 3rd at approximately 3pm? Answer in degrees fahrenheit.

 

Same as Question 10, this answer can be found in the sceneID:com.apple.Maps.

Answer: 27

13. What’s your number? (15)

What was the order number for the Chick-fil-A mobile order?


Back to Question 8, the order number was: 1003871.

Answer: 1003871

14. Chicken on a Sunday? (25)

Okay, so we know Eli likes Chick-fil-A, what 2 other chain fast food restaurants were visited? Include both in answer, formatting will not be an issue.


I found entries for KKD in Burlington, but it is not a “chain”. The answers are actually in the questions themselves: Wendy’s (on the snapshot of question 12) and Chipotle (Question 9).

Answer: Wendy’s and Chipotle

15. DFIRFit Target (25)

On which day were the most steps recorded with an Apple Watch? Answer in MM/DD/YYYY.

Opening the iLEAPP HTML file, navigating to “Steps” – most steps recorded were on 2021-03-03, with 759 steps in 10 minutes!

Answer: 03/03/2021

16. Fowl language (25)

Who was mentioned outside the Chick-Fil-A?

Since I opened the DCIM live photos for question 9, I knew there was a picture outside of Chick-Fil-A (IMG_0003.MOV) with the sound on we can hear someone saying: Johnathan.

Answer: Johnathan

17. Give me a signal (25)

What was the link sent to Eli on Signal?

 

Signal’s database is encrypted with SCL Cipher. I followed this super cool tutorial to decrypt the database. Note that the decrypted property list in the tutorial is actually the keychain.plist provided with the iOS image.

In the decrypted table indexable_text, there is a TikTok link without the punctuation: httpsvmtiktokcomZMejtu5mG, which translates to: https://vm.tiktok.com/ZMejtu5mG/

Answer: https://vm.tiktok.com/ZMejtu5mG/

 

18. Peek-a-boo (25)

What app was used to let Eli know it is Burrito Time?

 

Peek-a-boo is basically the answer itself, as “Picaboo” was the original name of the Snapchat App.

Answer: Snapchat

 

19. The Epitome of Health (25)

What time did the health database last sync? Answer in GMT and HH:MM:SS format


In the healthdb.sqlite, at ios/private/var/mobile/Library/Health/healthdb.sqlite:

				
					sqlitebrowser ios/private/var/mobile/Library/Health/healthdb.sqlite
				
			

The table “cloud_sync_store” has a value displayed in last_sync is your timestamp. Convert it from Cocoa Core Timestamp (iOS’s default timestamp format) to Date Time.

Answer: 05:35:53

20. You can’t beat encryption right? (25)

What user was Eli texting on Wickr?

 

This is the one where no matter what I tried, I did not find a single OpenSource tool or method that could decrypt the wickrLocal.sqlite database. In Magnet Axiom, if you load the .zip file and provide the v_data hash from the keychain.plist (following Axiom’s method ) you have access to the fully decrypted database:


Answer:
jchipps723

21. Lettuce insert a sandwich pun here (50)

Eli was telling his friend about a sandwich he got. When was the message sent where he said he got the sandwich? Answer in yyyy-mm-dd HH:MM:SS

 

Running html2text *.html | grep “sandwich” in the iLEAPP results directory gives no answers. So I’m going to assume the message is in an App not parsed by iLEAPP such as: Snapchat, Wickr, Signal or Tiktok.

				
					grep -r "sandwich" ios/private/var/mobile/Containers/Shared/AppGroup
				
			

The first output is: Binary file ios/private/var/mobile/Containers/Shared/AppGroup/FEB19AB8-2FD0-4768-8587-9FA485D0E90A/User/74f9528c-7e7e-493a-b3a0-56f23882d626/deltaSyncData/ebe29dbb-6b83-5f95-9e1b-86dd6efb1dc8 matches

				
					 strings ios/private/var/mobile/Containers/Shared/AppGroup/FEB19AB8-2FD0-4768-8587-9FA485D0E90A/User/74f9528c-7e7e-493a-b3a0-56f23882d626/deltaSyncData/ebe29dbb-6b83-5f95-9e1b-86dd6efb1dc8
				
			

So I have a lead! there is something about a sandwich conversation in this App. To find out which app it is I do:

				
					 ls -la ios/private/var/mobile/Containers/Shared/AppGroup/FEB19AB8-2FD0-4768-8587-9FA485D0E90A/Library/Preferences
				
			

Usually, there is a property list with the App’s name, and we get: group.snapchat.picaboo.plist.

Snapchat conversations are stored in “arroyo.db” so I’m going to use the find command and open it with sqlitebrowser like we did previously.

				
					find ios/private/var/mobile/Containers -name "arroyo.db"
				
			

Success! at ios/private/var/mobile/Containers/Data/Application/4BE54906-7CC7-4281-B1EB-055263F14F17/Documents/user_scoped/c410029b87cd535dcda1e773b850ea8cc8b07ca206320a03937260a995463acf/arroyo/arroyo.db

				
					 sqlitebrowser ios/private/var/mobile/Containers/Data/Application/4BE54906-7CC7-4281-B1EB-055263F14F17/Documents/user_scoped/c410029b87cd535dcda1e773b850ea8cc8b07ca206320a03937260a995463acf/arroyo/arroyo.db
				
			

In the table conversation_message, client_message_id “13” ; the BLOB at message_content contains the message “I got a spicy chicken sandwich. Not as good as chick fil a though”.

The creation timestamp for this item is : “1614893591699”, using epoch converter this timestamp translates to : Thursday, March 4, 2021 9:33:11.699 PM GMT

Answer: 2021-03-04 21:33:11

 

22. TikTokClock (75)

When was the tiktok sent in signal posted? Answer in yyyy-mm-dd hh:mm:ss GMT

 

Opening the page in a web browser with Developer tools on, if we search for “createTime”, we will eventually find a big block which contains the value: CreateTime: 1607451208. Converted into date-time it’s Tuesday, December 8, 2020 6:13:28 PM GMT.

Answer: 2020-12-08 18:13:28

Discover more from forensicskween

Subscribe now to keep reading and get access to the full archive.

Continue reading

Exit mobile version
%%footer%%