當前位置:蘿卜系統 > 網絡技術教程 > 詳細頁面

技術共享:華為路由器第二局部的反向破解

技術共享:華為路由器第二局部的反向破解

更新時間:2023-09-03 文章作者:未知 信息來源:網絡 閱讀次數:

網絡故障(network failure)是指由于硬件的問題、軟件的漏洞、病毒的侵入等引起網絡無法提供正常服務或降低服務質量的狀態。

榮耀路由器2固件分享

報價

在第一部分中,我通過UART進行了調試,最后,我使用命令行頁面使用Shell命令來獲取root特權。至此,我已經可以訪問路由器,然后可以像測試儀一樣調試路由器了。剛開始時,感覺該路由器相對容易訪問,不需要昂貴的工具,并且經常產生非常有趣的結果。如果要在硬件方向上倒退,但是沒有時間。這通常無法達到更高的級別,例如網絡漏洞,ISP協議等。

本文僅代表原始作者的意圖,并且本文介紹的工具和技術具有冒犯性,因此請合理合法地使用它們。

評論

下面的圖片是先前分析的結果

榮耀路由器2固件分享

榮耀路由器2固件分享

按Enter鍵,您將看到消息“歡迎使用ATP Cli”和登錄提示。嘗試之后,我們可以使用默認密碼admin:admin成功登錄,然后獲得BusyBox。

-------------------------------
-----Welcome to ATP Cli------
-------------------------------
Login: admin
Password:    #Password is ‘admin'
ATP>shell
BusyBox vv1.9.1 (2013-08-29 11:15:00 CST) built-in shell (ash)
Enter 'help' for a list of built-in commands.
# ls
var   usr   tmp   sbin  proc  mnt   lib   init  etc   dev   bin

在這里我們可以分析固件的三個級別(Ralink IC)

U-boot:設備啟動程序?梢苑治鲈O備的內存映射,可以啟動固件程序,并可以執行一些相對較低級別的任務。

ATP:可以控制裸機,并行處理等;旧希梢钥醋魇荓inux內核。

Busybox:集成了一些最常用的Linux命令和工具的工具箱,它還為我們提供了一些Shell命令。

榮耀路由器2固件分享_榮耀路由器2固件分享

如果在整個過程中獲得低級訪問權限,則肯定不會訪問所有數據。但是這是合理使用BusyBox的好機會,F在,我重點介紹啟動順序,并且在重新啟動過程中顯示的一些數據也非常重要。讓我們看看哪些可以被我使用。

啟動順序

引導順序中有很多隨機項,當然還有一些其他信息,例如壓縮算法(閃存段)

榮耀路由器2固件分享

英特爾的閃存非常有用,我可以在這里進行分析。

榮耀路由器2固件分享

榮耀路由器2固件分享

更多信息

榮耀路由器2固件分享

訪問閃存數據時,我們需要處理壓縮算法,以便更好地了解使用了哪些壓縮算法。

ATP和BusyBox

路由器中的Ralink IC主要與固件(ATP)一起使用,以并行控制存儲單元和處理數據,同時確保硬件的工作狀態。也就是說,它(ATP)可以被視為Linux內核,即以前所知道的ATP的CLI,但是它非常有限。

ATP>help
Welcome to ATP command line tool.
If any question, please input "?" at the end of command.
ATP>?
cls
debug
help
save
?
exit
ATP>

此處的shell命令中未提及help命令,但通常出現在sh和shell中。 ATP CLI中的命令少于10個。當然,沒有控制文件和文件導航的復雜方法,這就是為什么出現BusyBox的原因。

榮耀路由器2固件分享_榮耀路由器2固件分享

BusyBox包含二進制文件和常見的Unix命令,這對開發非常方便。值得注意的是,它可以節省內存。從ls和cd命令到頂部,系統開始啟動腳本程序,所有這些程序都允許我將Ralink IC用作Linux機器。

輸入BusyBox以查看shell命令并運行這些命令

ATP>shell
BusyBox vv1.9.1 (2013-08-29 11:15:00 CST) built-in shell (ash)
Enter 'help' for a list of built-in commands.
# ls
var   usr   tmp   sbin  proc  mnt   lib   init  etc   dev   bin
#
# ls /bin
zebra        swapdev      printserver  ln           ebtables     cat
wpsd         startbsp     pppc         klog         dns          busybox
wlancmd      sntp         ping         kill         dms          brctl
web          smbpasswd    ntfs-3g      iwpriv       dhcps        atserver
usbserver    smbd         nmbd         iwconfig     dhcpc        atmcmd
usbmount     sleep        netstat      iptables     ddnsc        atcmd
upnp         siproxd      mount        ipp          date         at
upg          sh           mldproxy     ipcheck      cwmp         ash
umount       scanner      mknod        ip           cp           adslcmd
tr111        rm           mkdir        igmpproxy    console      acl
tr064        ripd         mii_mgr      hw_nat       cms          ac
telnetd      reg          mic          ethcmd       cli
tc           radvdump     ls           equipcmd     chown
switch       ps           log          echo         chmod
#

您會注意到BusyBox的區別,并且分析文件系統(例如busybox的鏈接文件/ bin /)不是一個好的開始。敏感數據將不會存儲在此處(BusyBox二進制文件)。

分析文件系統

現在,我已經弄清楚了哪些命令可用,然后我會看到那里有有用的數據,因此,在對系統有一個大致的了解之后,我不想在每個地方都顯示詳細的數據。這里也需要top命令。 top命令用于顯示程序正在執行的過程,該權限適用于所有用戶。盡管路由器當前處于空閑狀態,但不會顯示更多信息。

榮耀路由器2固件分享

有一個過程顯示usbmount正在運行,在這里路由器的USB接口也起作用,插入USB閃存驅動器。

usb 1-1: new high speed USB device using rt3xxx-ehci and address 2
[...]
++++++sambacms.c 2374 renice=renice -n +10 -p 1423

插入后,安裝位置為/ mnt / usb1_1 /,然后啟動samba服務器。這些相關文件都在/ etc / samba /

# ls -l /etc/samba/
-rw-r--r--    1 0        0             103 smbpasswd
-rw-r--r--    1 0        0               0 smbusers
-rw-r--r--    1 0        0             480 smb.conf
-rw-------    1 0        0            8192 secrets.tdb
# cat /etc/samba/smbpasswd
nobody:0:XXXXXXXXXXXXXXXXXXX:564E923F5AF30J373F7C8_______4D2A:[U ]:LCT-1ED36884:

更多數據

netstat -a:檢查哪些端口已打開

iptables –list:我們可以設置遠程登錄并繼續連接到網絡,但是我更喜歡保持裸機狀態。

wlancmd幫助:遠程控制無線信號。

/ etc / profile

/ etc / inetd

/ etc / services

/ var /:系統運行時使用的文件位置

/ etc /:系統配置文件等。

/ var /和/ etc /包含很多文件,/ etc / serverkey.pem是什么情況?

榮耀路由器2固件分享

在嵌入式設備中找到TLS證書(私鑰)是正常的?梢栽趩蝹型號的設備上獲取私鑰,這也可以幫助您檢測相同型號的設備。私鑰可以從服務提供商處獲得。另一方面,獲得用于遠程服務器通信的公共證書也是很常見的。我在這里找到了兩個,都來自“同一個人的簽名”。

/etc/servercert.pem:最有可能是服務器密鑰

/etc/root.pem:是否可以連接到服務器(不確定)

更多數據位于/ etc / ppp256 / config和/ etc / ppp258 / config:

榮耀路由器2固件分享

榮耀路由器2固件分享_榮耀路由器2固件分享

用于驗證身份憑證的信息也將通過HTTP接口傳遞,這就是我提出此概念的原因,稍后將對此進行介紹。信息太多,可能需要更多時間進行分析。在這里,您需要使用以前的磁盤來復制數據以進行分析。

收集信息

將收集的數據復制到計算機后,您可以搜索一些文件以查找。 -name * .pem,但不會顯示其他TLS證書。您要在文件中搜索密碼嗎? grep -i -r密碼。

榮耀路由器2固件分享

在這里我可以看到證書信息,該信息主要提供給TR-069、本地服務和STUN協議。 STUN是一種網絡協議,它允許位于NAT(或多個NAT)后面的客戶端從您自己的公用網絡地址中找出您所支持的NAT類型以及將NAT綁定到某個本地端口的Internet端口。當然,這些可以通過HTTP接口來實現,但是這些通常是隱藏的。如果您想信任和理解,可以閱讀本文。這里有很多TR-069協議和其他內容。我還可以獲得BASE64格式的證書信息,但是數據加密稍差一些。

$ echo “QUJCNFVCTU4=” | base64 -D
ABB4UBMN

榮耀路由器2固件分享

這是路由器中設置的WiFi密碼。它向我們展示了兩個有趣的文件,它們不僅涉及內容,而且是路由器工作時的重要組成部分

/var/curcfg.xml:當前的配置文件,主要包括當時設置的WiFi密碼(base64格式)。

/etc/defaultcfg.xml:默認配置文件用于恢復出廠設置,但不包括路由器的默認密碼信息。

ATP(CLI)

ATP(CLI)僅提供一些命令。最有趣的一個是-shell-debug,但它看起來并不像真正的調試(調試顯示),而只是為我提供了一些命令igmpproxy,cwmp,sysuptime和atpversion,但是這些并不是很有用。我在考慮cwmp命令是否可以發揮作用。它與路由器的遠程配置有關嗎?

榮耀路由器2固件分享

值得注意的是,CWMP(TR-069)也與路由器遠程相關,甚至可能沒有編碼時間。這時,其他(ATP)命令無效。清除屏幕和幫助菜單,保存并退出,這些似乎對這一步驟幾乎沒有影響。

榮耀路由器2固件分享_榮耀路由器2固件分享

bootloader命令行界面

bootloader命令行界面可以訪問某些內存區域,但是不幸的是,它沒有授予我直接訪問閃存芯片的權限。您可以在下面查看相關信息

Please choose operation:
   3: Boot system code via Flash (default).
   4: Entr boot command line interface.
You choosed 4
Stopped Uboot WatchDog Timer.
4: System Enter Boot Command Line Interface.
U-Boot 1.1.3 (Aug 29 2013 - 11:16:19)
RT3352 # help
?       - alias for 'help'
bootm   - boot application image from memory
cp      - memory copy
erase   - erase SPI FLASH memory
go      - start application at address 'addr'
help    - print online help
md      - memory display
mdio   - Ralink PHY register R/W command !!
mm      - memory modify (auto-incrementing)
mw      - memory write (fill)
nm      - memory modify (constant address)
printenv- print environment variables
reset   - Perform RESET of the CPU
rf      - read/write rf register
saveenv - save environment variables to persistent storage
setenv  - set environment variables
uip - uip command
version - print monitor version
RT3352 #

在這里需要注意的是,除非需要使用它們,否則不要啟用這些命令,mm,mw和nm。當然,這些與這一步驟無關。在某些情況下,它將導致設備重新啟動,然后使設備變成磚頭。在這種情況下,md(內存顯示)和printenv命令引起了我的注意。

RT3352 # printenv
bootcmd=tftp
bootdelay=2
baudrate=57600
ethaddr="00:AA:BB:CC:DD:10"
ipaddr=192.168.1.1
serverip=192.168.1.2
ramargs=setenv bootargs root=/dev/ram rw
addip=setenv bootargs $(bootargs) ip=$(ipaddr):$(serverip):$(gatewayip):$(netmask):$(hostname):$(netdev):off
addmisc=setenv bootargs $(bootargs) console=ttyS0,$(baudrate) ethaddr=$(ethaddr) panic=1
flash_self=run ramargs addip addmisc;bootm $(kernel_addr) $(ramdisk_addr)
kernel_addr=BF0000
u-boot=u-boot.bin
load=tftp 8A100000 $(u-boot)
u_b=protect off 1:0-1;era 1:0-1;cp.b 8A100000 B00000 $(filesize)
loadfs=tftp 8A100000 root.cramfs
u_fs=era bc540000 bc83ffff;cp.b 8A100000 BC540000 $(filesize)
test_tftp=tftp 8A100000 root.cramfs;run test_tftp
stdin=serial
stdout=serial
stderr=serial
ethact=Eth0 (10/100-M)
Environment size: 765/4092 bytes

我可以看到類似于UART的波特率設置信息,以及一些有趣的存儲單元地址。這些地址信息不應是閃存,盡管其內存只需要三個字節即可獲取它:[0x00000000,0x00FFFFFF]。

讓我們看一下其中有什么樣的有用信息,例如訪問接口,該kernel_addr = BF0000呢?

榮耀路由器2固件分享

有關于badd的信息,這意味著地址無效。 md命令之前已經過硬編碼,可以讓您知道您正在嘗試訪問無效的內存地址。這不是一個好的解決方案,但是它無法訪問以前的啟動信息。

榮耀路由器2固件分享

值得注意的是,我之前已經停止了通過bootloader命令行界面將linux內核加載到內存中的過程,因此通過該界面訪問的信息相對有限。

我可以使用此方法(SPI Flash圖像字符串編碼)在內存中查找隨機數據,但這沒有特殊含義。我只是用它來熟悉存儲結構,例如,在0x000d0000處有一個重大更改。

榮耀路由器2固件分享

使用md命令后,您可以看到0x000d0000的更改。

未來的文章將結合固件信息來分析詳細數據,并從系統方向開始獲取更多數據。


本文來自本站,轉載請注明本文網址:
http://www.pc-fly.com/a/tongxingongju/article-340637-1.html


當今,越來越多的業務應用運行于網絡架構之上,保障網絡的持續、高效、安全的運行,成為網絡管理者面臨的巨大挑戰。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

網站地圖xml | 網站地圖html
亚洲嫩草影院久久精品