TP-Link WR740 后门漏洞复现
sn0w 发表于 湖南 IoT安全 1147浏览 · 2024-08-06 10:35

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))来模拟执行命令

继续跟进引用的函数发现:

  1. /userRpmNatDebugRpm26525557/start_art.html
    • 用于启动某个特定的调试过程或是展示相关界面。对应的处理程序是 ArtRpmHtm
  2. /userRpmNatDebugRpm26525557/linux_cmdline.html
    • 用于执行某些命令行相关的调试操作。对应的处理程序是 CmdRpmHtm
  3. /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