Cellebrite Capture the Flag (CTF) – Russell Android 手機
2024.04.24 競賽活動
競賽軟體 Inseyets UFED、Inseyets PA
Android 裝置取證: Russell 手機
我們要感謝所有參加奪旗活動的人,感謝所有支持 Cellebrite 並參與本活動的用戶!
我們在此提供答題說明。某些情況下,我們導出答案的方法可能與您的方法不同,但這就是取證的美妙之處,下面的螢幕截圖來自 PA。
背景故事:
回顧一下,恐怖攻擊計劃於 2023 年 6 月發生在 Southport, NC (北卡羅來納州)。Russell 和 Sharon 的關係可以追溯到很久以前,而他似乎是將阿貝與拉塞爾聯繫在一起的關鍵人物。 那麼,Abe 是誰?他和 Felix 有什麼關係?Felix 為什麼要向美國人提供有關核電廠和武器的資訊?我們打算讓您自由思考這項問題。
Russell Android:
Russell 01 – Call (通話) – Level 1 (10 分)
Russell 接到一則 FaceTime 通話,他何時接起來的 (UTC 時間)?
答案: 2023-06-07 23:24:39
Russell 接到來自 Abe 的一則 FaceTime 通話,來源為 Signal,時間點為 2023-06-07 22:20:41。當 Russell 開啟連結時,他並沒有馬上接起來,以下是來自 Sharon 手機的簡訊。
在 Russell 的手機上,Brave 瀏覽器中有一張螢幕截圖,顯示 Ronen(Abe)和 Josh(Russell)在通話期間。網址列中的 URL 包括“facetime.apple.com/join…”,但左上角看到的時間不正確。
位於路徑 /data/user/10/com.brave.browser/app_chrome/Default/ contains 的檔案 History 包括所需的 url 資訊。
Russell 加入了電話會議,Abe 也隨後加入。
Russell 02 – Bluetooth (藍牙) – Level 1 (10 分)
Russell 手機上的哪個使用者設定檔最後一次連接到他的藍牙喇叭?
答案: Profile 0 or 0 as the last profile to connect to the JBL Flip 6 speaker
需要查看兩個地方,但 PA 確實會解析所需的資訊。首先要查看的是 Networks & Connections (網路和連線) > Device Connectivity (裝置連線),喇叭上次連接到手機的時間是 2023-06-03 17:34:40 UTC。
下一個要查看的是 Device Events,也位於 Networks & Connectivity 之中,該裝置解鎖的時間點為 2023-06-03 17:33:34 UTC,就在藍牙連接活動之前,該紀錄來源為 Digital Wellbeing (數位健康),可在路徑 /data/data/com.google.apps.wellbeing/databases/app_usage 中發現。由於該裝置上有第二個設定檔,Profile 10,因此手機上有一個單獨的檔案版本,但位於不同的路徑 /data/user/10/com.google.android.apps.wellbeing/databases/app_usage。關於此答案,檔案路徑沒有 “10”,它只是 /data/data/,表示設定檔 0 解鎖了手機並隨後連線到喇叭。
Russell 03a – App (應用程式) – Level 1 (10 分)
Russell 使用什麼應用程式向小組發送位置資訊?
答案: what3words 或 com.what3words.android
如果你檢查 Abe 或 Sharon 的手機,很容易可以找到答案。群組訊息透過 Signal 於時間點 2023-06-26 15:00:10 UTC 發送。該訊息只有簡單地寫著 “detonated stammered showing (引爆,結結巴巴地顯示)”。發送者的姓名表示 “Nope (否)”,Abe 的手機上顯示 “Harold”。
在 Prodile 10 底下可找到 com.what3words.android 套件,在 PA 中 Installed Applications > Utilities,可見 “what3words: Navigation & Maps”。
Russell 03b – Directions (方向) – Level 3 (50 分)
Russell 是否得到了上一個問題 (Russell 03a) 中描述的位置前進路線? 如果有,時間點 (UTC) 為?
答案: 2023-06-26 15:02:42 or 2023-06-26 15-02-42
這個問題對參賽者來說是隱藏的,Russell 03a 必須回答正確,否則本問題不會出現。
答案可在檔案 QafeEcXOSgScVMMQLRC3GA_analytics 中找到,它是在 /data/user/10/com.what3words.android/no_backup/ 之中的資料庫檔,可用於追蹤 app 使用量。欄位 events 在 PA 中顯示為空白,使用 pickaxe 之後才能復原紀錄。
依據單字 “detonated” 進行篩選,可以找到一些是件相關的紀錄,包括透過 Waze 取得方向的時間點: 1687791762.932 (2023-06-26 15:02:42)。
Russell 04 – Signal (通訊軟體) – Level 1 (10 分)
Signal 使用的設定檔是否為 Profile 10?
答案: Yes
有多種方法可以找到答案,但我們將在這裡重點介紹兩種。首先是分析 Google Files 應用程式 /data/user/10/com.google.android.apps.nbu.files/databases/app_usage_database 下的檔app_usage_database。 該表app_usage_stats_table有一個 com.thoughtcrime.securesms (Signal 的 apk 名稱) 的條目。
請注意,last_used_ms_timestamp 列中列出的時間不是最後一次使用 Signal 的時間,這在問題 Russell 09 中很重要。
確定是否在 Profile 10 下使用 Signal 的第二種方法是檢查檔 SimpleStorage,該檔案是一個資料庫,其中還可以將應用程式的啟動時間/位置存儲大約 24 小時。幾個月前,Josh 在推特上(或 X’d)發佈了關於這個文件的資訊。
Russell 手機上的兩個設定檔都有自己的 SimpleStorage 版本。對於 Profile 10,它位於 /data/user/10/com.google.android.as/databases/ 中:此檔案是 Android System Intelligence 軟體包的一部分。 表格 EchoAppLaunchMetricsEvents 包含相關資料。對該表的初步檢查未發現 Signal 的記錄。 在提取之前它就已被刪除。
使用 PA 的 Include recovered records 功能 (pickaxe) 後,Signal 的 apk 名稱會出現在復原的紀錄中。
請注意時間戳記。因為您在 Russell 09 會再次看到它。
Russell 05 – Phone (電話) – Level 2 (30 分)
將電話的電話號碼與正確的 ICCID、IMSI 和電信商進行配對。
答案: +19106995488, +19199037779
Phone (手機號碼) |
ICCID (積體電路卡編號) |
IMSI (國際移動使用者識別碼) |
Carrier (電信商) |
+19106995488 +19106995488 | 89148000009288258504 | 311480976205349 | Visible |
+19199037779 +19199037779 | 8901260093141273228 | 310260094127322 | Mint |
PA 不會以這種方式將電話號碼與 ICCID、IMSI 和電信商進行配對,但這十分容易。
資料庫 /data/user_de/0/com.android.providers.telephony/databases/telephony.db 中的條目 siminfo 包含此資料並可進行配對。
Russell 06 – Navigate (地圖導航) – Level 2 (30 分)
Russell 去海邊渡假,地點在哪裡?
答案: 913 Ocean Drive, Emerald Isle, NC 28594
該地址是一棟海濱別墅,可以透過多種方式取得該位置。一種方法是透過在房子後甲板上拍攝的照片中的 metadata 找尋線索。圖片中的 GPS 座標可透露渡假住宿地點。
另一個解答方法可回歸探討我們的技術人員 Jean-Philippe Noat 和 Ian Whiffin 在 2023 年初的網路研討會有關。該檔案 new_recent_history_cache_navigated.cs 包含 Google 地圖導航歷史記錄,可以在 /data/data/com.google.android.apps.maps/files/ 中找到 Profile 0。其中包含導航歷史記錄。該檔案屬於 protobuf (一種資料結構協定),因此可透過 Mushy 進行快速解答。
請注意時間戳記,Russell 11 還需要它。
Russell 07 – Meetup (會面) – Level 3 (50 分)
Sharon、Abe 和 Russell 在何時何地一起碰面 (地點名稱和時間)?
答案: Cloud 9 Rooftop Bar, Wilmington NC, 2023-06-05-23:03
這需要來自 Sharon、Abe 和 Russell 手機的資料。對於 Russell 來說,圖片 PXL_20230605_230852752.jpg 描繪了 Wilmington NC (北卡羅來納州威爾明頓) 的 Cape Fear River 和 Cape Fear Memorial Bridge 的照片。照片的 metadata 包括 GPS 座標。
日期和時間與 Abe 手機 (IMG_1105.HEIC) 上的圖片一致,該圖片也恰好與 Pixel 上的圖片相同。它的 metadata 還包含將 Abe 置於同一位置的 GPS 座標。
就在 IMG_1105.HEIC 之前,Abe 的手機上拍下了 IMG_1104.HEIC,它的位置名稱為: Cloud 9 Rooftop Bar。
在 Sharon 的手機上,20230605_190334.jpg 和 20230605_190335.jpg 這兩張照片照片相隔一秒鐘,顯示 Abe (Ronen) 和 Roussell (Josh),另請注意與圖片相關的位置 metadata。
Mjolnir (雷神之鎚) 出現在 Roussell 的手機上,它來自哪個 app?
答案: Reddit or com.reddit.frontpage
Mjolnir (雷神之鎚) 出現在圖片檔案 Screenshot_20230622-093735.png。
PA 報告了兩件有趣的事情。首先,檔案路徑 /data/media/0/Pictures/Screenshots,其中當然包括暗示。其次,這僅適用於您使用 PA 的情況,與新的 Media Origin 功能相關的資訊:
Capturing Device: Device Captured (裝置取證)
Capture Origin Reasoning: Screenshot App (取證推理: 截圖 App)
這兩個數據點共同表明該圖片很可能是螢幕截圖。但從哪裡來呢? 檢查圖片創建時的 Application Usage (應用程式使用量),發現 com.google.android.markup 和 com.reddit.frontpage 正在被使用。 Markup 是內部 Android apk,但 com.reddit.frontpage (Reddit) 不是。
Russell 09 – Signal (通訊軟體) – Level 2 (30 分)
上一次使用 Profile 10 開啟 Signal 是什麼時候?
答案: 2023-06-28 23:27:24
如果您正確回答了 Russell 04,那麼您就可以回答這個問題,因此請參閱該問題的解答,瞭解如何存取檔案 SimpleStorage 以及為什麼它很重要。轉換與 com.thoughtcrime.securesms 關聯的 timestampMillis 欄位 Unix Epoch 時間戳記取得解答。
Russell 10 – Big MAC – Level 3 (50 分)
Russell 喜歡在旅行和連接到 WiFi 時掩蓋自己的蹤跡。2023-06-07 23:27 UTC 使用了什麼 MAC 位址?
答案: b2:6a:79:dc:9f:08
大約在 2023-06-07 23:27 UTC 時,Russell 手機上創建了一個螢幕截圖,顯示他和 Abe 在一起,該問題與 Russell 01 的螢幕截圖相同。
您不會在 location data on Russell’s phone 手機上找到此時的位置資訊,所以您需要檢查 Abe 的手機。在 PA 中,可以使用 Locations 找尋 Abe 當下的位置,可按照時間戳記進行篩選。
繪製經緯度後可發現 Abe 和 Russell 位於 Shuckin’ Shack Oyster Bar, Wilmington, NC。
上圖中,我們可以看到紅框中 Abe 所在的位置,那就是 Shuckin’ Shack Oyster Bar。餐廳旁邊是 Fat Tony’s Italian Pub,它是 WiFiConfigStore.xml 檔案中看到的 SSID 之一,該檔案位於 /data/misc/apexdata/com.android.wifi/。檢視該檔案可找到 SSID 以及用於連接到該 SSID 的隨機 MAC 位址。
雖然隨機 MAC 位址已在上圖標記為正確答案,但您需要透過檢查 XML 標記 MacRandomizationSetting 的值來確認 MAC 隨機化設定。在 Android 中,可以根據每個網路設定 MAC 隨機化。
該設置的值為 “3”,表示已為 SSID “Fat Tony’s Italian Pub” 啟用 MAC 隨機化。如果該值為“0”,則意味著該特定網路禁用了 MAC 隨機化。
Russell 11 – Navigate (地圖導航) – Level 3 (50 分)
Russell 去海邊渡假了,他第一次導航到他的渡假飯店是什麼時候?
答案: 2023-06-17 20:10:40
您需要正確回答 Russell 06 才能看到這個問題。在該問題的解決方案中,我們討論了檔案 new_recent_history_cache_navigated.cs,其中包含 Google 地圖導航歷史記錄,可以在 Profile 0 的 /data/data/com.google.android.apps.maps/files/ 中找到。 除其他事項外,該檔案還包含導航歷史記錄,包括導航的時間戳記。該檔是一個 protobuf,所以我們使用了 Mushy。
此處突出顯示的時間戳記 (頂端框格) 是導航開始的時間。
為了打發時間,Russell 在 2023-06-17 20:12:53 時向 Sharon 發送一則 WhatsApp 訊息,上面寫著 “Beach-bound (前往海灘)”。
附件照片是從橋上的汽車內拍攝的,圖片名稱 PXL_20230617_200921824.jpg,該圖片有一組 GPS 座標,位於 Emerald Isle Causeway (一座橋)。
Russell 12 – Location (位置) – Level 3 (100 分)
Russell called and audible,並向 Abe 發送一個新的位置,地點在哪裡?
答案: Resurrection Cemetery or Our Lady of Heaven Chapel Mausoleum
這個問題很難,但問題本身有一個小提示 (“語音”)。Calling a audible 是美式足球中使用的一個片語,意思是比賽 (計劃) 已經改變,Russell 在向 Abe 發送新位置時暗示了這一動作。如果您正確回答問題 Russell 6,您就會知道 Russell 使用 what3words 發送位置訊息,這就是他在這裡使用的。此外,如果您正確回答了 Russell 04 和 09 問題,您就會知道哪個檔案可找出答案。
資料庫檔案 SimpleStorage 在 Profile 10 路徑/data/user/10/com.google.android.as/databases/ 有一個名為 PecanConversationMessage 的表格,乍看之下在PA 中,它似乎是空的 (某些工具會顯示此資訊) 表格已填入。
和先前一樣,使用 pickaxe 功能會顯示多個已刪除的條目。
此表記錄來自各種 app 的對話內容,您可以通過獲取列 sessionId 中的值並在 packageName 中找到相應的封包名稱 (在本例中為 com.thoughtcrime.securesms – Signal) 來確定哪個應用格程式。此外,您還可以在 contactName 列中查看哪個使用者發送了郵件。
我們知道發生了變化,因此在 PecanConversationMessage 中搜尋 “change” 一詞只找到三個條目,它們都是相同的。
訊息 “Change of plans. New spot: “Lions Awake Faced”,新地點和 what3words 中的一個位置有關,提取資料中其他地方都找不到。在應用程式中繪製該位置會發現它位於 Resurrection Cemetery/ Our Lady of Heaven Chapel Mausoleum。