TP-Link WR740 后门漏洞复现
FirmAE 安装:
git clone --recursive https://github.com/pr0v3rbs/FirmAE
sudo ./download.sh
sudo ./install.sh
sudo ./init.sh
测试服务能否启动 sudo ./ run . sh - c < brand > < firmware >
然后发现报错
这个错误的话是因为缺少--run-as=root 和 --preserve-symlinks文件
解决办法
发现binwalk版本低了:
应该要v2.3.3+5aebd7b
sudo apt-get autoremove binwalk
cd binwalk-2.3.4
sudo python3 setup.py install
就可以解决
然后又遇到了这个报错:
sudo apt-get install bc 可以解决
sudo apt-get install fdisk
就可以成功解决了:
接下来进行到漏洞复现环节
1.固件解包
binwalk -Me wr740nv1_en_3_12_4_up.bin
2.固件敏感信息扫描
sudo ./firmwalker.sh /home/luyouqi/模拟/TP-Link_WR740/_wr740nv1_en_3_12_4_up.bin.extracted/squashfs-root/
然后发现是httpd请的服务,为了判断是否存在后门漏洞 我们通过ida静态分析来查看
3.漏洞分析
跟进后发现:
根据伪代码可知其的功能是:判断命令是否为exit,若不是则验证用户名和密码,验证的用户名:osteam 密码:5up。
通过write(pty,cmd,strlen(cmd))来模拟执行命令
继续跟进引用的函数发现:
-
/userRpmNatDebugRpm26525557/start_art.html
- 用于启动某个特定的调试过程或是展示相关界面。对应的处理程序是
ArtRpmHtm
。
- 用于启动某个特定的调试过程或是展示相关界面。对应的处理程序是
-
/userRpmNatDebugRpm26525557/linux_cmdline.html
- 用于执行某些命令行相关的调试操作。对应的处理程序是
CmdRpmHtm
。
- 用于执行某些命令行相关的调试操作。对应的处理程序是
-
/userRpm/DebugResultRpm.htm
- 用于显示或获取调试结果。对应的处理程序是
DebugResultRpmHtm
- 用于显示或获取调试结果。对应的处理程序是
通过查看引用找到了DebugResultRpmHtm函数的调用位置。根据此处的伪代码可推断出函数httpRpmConfAdd的功能是绑定URL和执行的函数。由函数名httpDebugInit可推断出这是一个调试后门。
4.固件模拟
检查是否可以模拟
sudo ./run.sh -c tp-link '/home/luyouqi/模拟/TP-Link_WR740/wr740nv1_en_3_12_4_up.bin'
在开始模拟
sudo ./run.sh -r tp-link '/home/luyouqi/模拟/TP-Link_WR740/wr740nv1_en_3_12_4_up.bin'
然后用默认的账号密码 admin admin进行登录
然后进行这个路径
http://192.168.1.1/userRpmNatDebugRpm26525557/linux_cmdline.html
就可以利用后门去进行命令执行了
回顾与分析
这种是属于认证后的后门漏洞了 可能在实战在价值不是特别的高,但是也为漏洞挖掘提供了一条新的思路 还通过这个漏洞的复现 去了解了firmwalker.sh扫描的这个功能
参考文献:
https://bbs.kanxue.com/thread-277920.htm
FirmAE 模拟固件_firmae仿真固件失败原因-CSDN博客
0 条评论
可输入 255 字