當前位置:
首頁 > 新聞 > 逆向分析華為E5573 4G Modem

逆向分析華為E5573 4G Modem

這段時間,我花了一些時間去深入的了解了華為的E5573數據機。從目前的結果來看,我已經能夠對其進行逆向破解並寫出POC,而攻擊者可以通過其在此設備上獲得特權代碼執行,並且無需使用此設備的公開越獄所使用的「boot PIN」技巧。

我的這種方法適用於E3372設備,並且應該在大多數(如果不是全部)華為4G數據機上工作。要明確的是,這並不是最好的黑掉它的方法,但是在進行這項工作之前,我找不到有關此主題的任何內容。所以,該方法完全是在我對該設備之前沒有任何認知並且沒有任何可參考文件的情況下完成的。

華為E5573設備是由澳大利亞Optus代售的4G數據機,可在全球任何地方使用。該設備有一個小巧的白色塑料外殼,打開時看起來像這樣:

可識別的調試引腳如下:

1.頂部紅色框中的引腳是UART。頂行的第二和第三個引腳分別是接收(數據輸入)和發送(數據輸出)。

2.左側的三個引腳是黃色的,是另一組調試引腳:最下端的引腳是「boot PIN」 - 如果該引腳在器件通電時接地,則它將啟動到「usb dload」模式,可用於覆蓋設備的啟動載入程序(從而覆蓋固件)。這是通常使用的來進行設備越獄的方法。

3.右側的引腳大概是JTAG - 這個配置在華為的設備中看起來很常見,儘管我看不到任何邏輯分析儀的引腳。

觀察Boot

我的第一步是觀察器件通過UART boot的過程:

此設備然後啟動Linux,並運行自定義密碼提示。僅有的顯示是密碼長度必須為8個字元,再不提供其他信息。

仔細檢查過程,我遇到了讓我非常好奇的一行內容:

[0000028ms]Heap:0x57d3bbe0 -- 0x57d3c180, 1440Here, I

[0000029ms]Please distribute uart with command L/V/M...

[0000029ms] heap:0x57d3bbe0 -- 0x57d3c180, 1440

我們從4pda.ru中得到了一個來自 user forth32的線索:

將其插入Google翻譯,我們了解到其可以通過UART連接到boot各個模塊:「M3控制台」,VxWorks或Linux內核,來發送「m」,「v」或「l」。不過至少還有一種模式可用(「K」),能夠通過公開可用固件的逆向工程來發現。

選擇「L」選項可以進行常規啟動,而選擇V則提供非互動式VxWorks控制台(在E3372上,這是互動式的 - 我不知道為什麼在這裡關閉,並且不了解設備怎麼去重新啟用它)。

選擇「m」會提供更有趣的提示:

以下是能夠幫助我們的內容:

[0000029ms]Welcomehelp

[0000726C]exc: help(00000000, 00000000, 00000000, 00000000, 00000000, 00000000)

[00007270] command list:24

[00007272][0] help

[00007272][1] d

[00007273][2] m

[00007274][3] system_error

[00007275][4] pm_set_debug

[00007277][5] pm_print_debug

[00007278][6] pm_wakeup_acore

[00007279][7] pm_wakeup_ccore

[0000727A][8] pm_appa9_wsrc_set

[0000727C][9] pm_mdma9_wsrc_set

[0000727D][10] pm_mcu_wsrc_set

[0000727E][11] pm_appa9_wsrc_unset

[00007280][12] pm_mdma9_wsrc_unset

[00007874][13] pm_mcu_wsrc_unset

[00007876][14] cpufreq_print_debug

[00007877][15] dump_wdt_hook

[00007878][16] ios_list_echo

[0000787A][17] bsp_wdt_print_debug

[0000787B][18] bsp_wdt_stop

[0000787C][19] bsp_dump_bus_error_status

[0000787E][20] set_pm_test_timer

[0000787F][21] m3_send_a_ipc

[00007881][22] m3_send_c_ipc

[00007882][23] set_pm_dfs_profile

[00007883]exc: help = 0

通過實驗表明,「d」允許我們寫內存,而「w」可以讓我們轉存內存。從這裡開始,我就會將內存轉儲從0運行到0xFFFFFFFF,然後將結果記錄到文件中。這個生成的輸出格式如下:

跨文件運行的字元串顯示,我們正在查看某些任意進程內存,或者更有可能是Balong MCU控制台本身:

不幸的是,內存轉儲不是一個完整的可執行格式,所以載入到IDA不會顯示任何類型的標題。我們從啟動日誌中知道處理器是ARM,所以我們可以簡單地將其載入到IDA中,並開始強制轉換為ARM代碼,現在來查看下我們獲得的內容:

初始指令看起來不像有效的ARM,但是如果我們繼續執行代碼,我們可以看到有意義的ARM函數(包含正確的push / pop指令)以及開始形成的數據:

回到內存轉儲的開始,我們也可以識別一個類似的模式: 編碼0不是編碼,而是一個數組的dwords。

經過半小時的逆向,我已經聞到了成功的氣息:IDA管理成功地將內存轉儲中的一個函數交叉引用到一個字元串中,這表明這是MCU控制台本身:

這似乎是一個可觸發的參數數量檢測,這已經完全足夠我們開始證明我們可以通過MCU控制台單獨執行任意代碼而無需「boot PIN」。

修改代碼流

為了證明我們可以執行任意代碼,我們需要證明我們可以控制代碼流。上面的檢測是一個奇妙的開始:我們可以觸發這個代碼流,並且結果也是具有邏輯的:如果有超過5個參數,那麼將顯示一個說明有太多參數的消息,該命令將不會執行。因此,如果我們可以降低這個限制,那麼我們可以控制代碼的執行。

通過一個小實驗,我們可以計算出,「m」命令允許我們一次編輯內存,但只能是一個雙位元組的,如下(必須提供一個完整的DWORD,否則將假設丟失的位元組為零並覆蓋您的目標地址):

m 0x1000F000 0xAABBCCDD

我們可以用這個來修改0x1000075C的檢測,如下所示,保持位元組順序:

m 0x1000075C 0x0F02F1BB

這應該意味著我們可以為一個命令提供不超過兩個參數,而在之前我們最多可以提供5個參數。首先,我們來測試一下,使用5個參數的「d」按照預期進行操作(下面的測試用例使用minicom腳本自動化,所以它缺少一些輸出 - 但已經足夠接近了)。

現在,我們在腳本中添加「m」命令,進行嘗試:

我們也可以編輯錯誤信息:

成功!

最後的想法以及進一步的工作

1.識別出那個未知的二進位文件,並將其恢復為完整的格式進行進一步分析。

2.證明我們能夠編輯二進位文件中的資源,以及執行任意代碼。

3.證明此次的特權代碼執行沒有「boot PIN」的技巧,這是一個全新的啟動載入程序(而不是從routerunlock.com上來對您的設備進行越獄)。

4.按理說應該足以載入任意特權代碼,儘管通過UART非常緩慢。

雖然此設備存在比較普遍的越獄(而且要快得多)方式,但我相信我的這項工作可作為E5573設備和那些目前尚未完成越獄的其他設備進行逆向的一個基礎思路。

點擊展開全文

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 嘶吼RoarTalk 的精彩文章:

MOSEC,一個你不能錯過的移動安全技術峰會
域滲透提權分析工具 BloodHound 1.3 中的ACL攻擊路徑介紹
子域名枚舉、探測工具AQUATONE 使用指南
NSA泄漏工具Esteemaudit 補丁簡要分析
為了更有效率地偷錢,Android root木馬開始試水簡訊扣費詐騙

TAG:嘶吼RoarTalk |

您可能感興趣

華為Mate 20 Pro全網首發開箱:40W 快充+逆向無線充+3D 人臉辨識
vivo首批5G手機登場:100%屏佔比+逆向充電+1024G 幸福來得太突然
Ninja ZX-10R險些撞上逆向S1000R,請為自己的騎車行為負責!
vivo5G手機登場:逆向充電+1024G 幸福來得太突然
基於Python的逆向工程1:ELF文件
魔獸世界8.0還有逆向戰火?335變330氣得玩家直接分解
三星S10發布日期確定:屏幕挖孔+逆向充電,頂配賣12000
逆向黑腳趾!全新 Air Jordan 1 Mid 即將發售
iOS 逆向:dumpdecrypted 砸殼記
il2cpp Unity手游逆向破解修改
如何逆向分析WebAssembly二進位代碼
從欠債200萬,到月入500萬,「逆向盈利」到底靠的是什麼?
中國逆向工程有多強?4萬塊美機碎片,獲300項航空技術
三星Galaxy S10真機曝光:也學會了逆向無線充電功能
Android逆向之旅-Hook神器家族的Frida工具使用詳解
美國國家安全局(NSA)發布Ghidra逆向工程工具
「Stop Doing List」的背後,是一種逆向思維
NSA將免費發布逆向工具GHIDRA
對FIMI A3無人機的簡要逆向分析
德國人買了兩輛特斯拉Model 3:拆解後用於逆向工程