前言
刚好在挖掘TPLink路由器,分析了几个版本的固件之后,正好看到了这个漏洞,所以拿来分析一下。
模拟
模拟器的话就使用FirmAE,不过测试了一下,新版本的固件是无法模拟的,一般固件版本发布时间大于2016的年份是无法进行模拟的,不过官方提供了固件就无需再重新提取固件了。
https://service.tp-link.com.cn/download?classtip=all&p=1&o=0
![TP-Link WR841路由RCE挖掘逆向分析](http://cn-sec.com/wp-content/uploads/sec-in//img/sin/M00/01/71/wKg0C2TTMTiALWA0AAC7eBw-Dzo796.png)
下载固件,使用binwalk解压
binwalk -e wr841nv3.bin –run-as=root
![TP-Link WR841路由RCE挖掘逆向分析](http://cn-sec.com/wp-content/uploads/sec-in//img/sin/M00/01/71/wKg0C2TTMVCAQ7TCAAD5HaLv-Wo084.png)
解压文件目录结构
![TP-Link WR841路由RCE挖掘逆向分析](http://cn-sec.com/wp-content/uploads/sec-in//img/sin/M00/01/71/wKg0C2TTMWOASZtlAABf0WXy4ns588.png)
对于固件而言,一般只要可以解压的都可以模拟。
sudo ./run.sh -r d-link ./wr841nv6.bin
![TP-Link WR841路由RCE挖掘逆向分析](http://cn-sec.com/wp-content/uploads/sec-in//img/sin/M00/01/71/wKg0C2TTMXSAW90qAACX3atZ8XA142.png)
逆向
![TP-Link WR841路由RCE挖掘逆向分析](http://cn-sec.com/wp-content/uploads/sec-in//img/sin/M00/01/71/wKg0C2TTMYeAYWL-AACarJIsMTo395.png)
根据目录文件可以看出是起的httpd的服务,逆向httpd文件,F5反编译
![TP-Link WR841路由RCE挖掘逆向分析](http://cn-sec.com/wp-content/uploads/sec-in//img/sin/M00/01/71/wKg0C2TTMZmAd8meAAC8Zd3frwo468.png)
搜索字符串,直接搜命令执行的函数
![TP-Link WR841路由RCE挖掘逆向分析](http://cn-sec.com/wp-content/uploads/sec-in//img/sin/M00/01/71/wKg0C2TTMaqAb9YQAACRFYMbm6Q662.png)
搜索”cmd”,其实这里搜索其它的函数没有拿到有用的信息,上图中的uri其实抓包的时候发现并没有功能指向
![TP-Link WR841路由RCE挖掘逆向分析](http://cn-sec.com/wp-content/uploads/sec-in//img/sin/M00/01/71/wKg0C2TTMbuAGn9oAACTKLeT_ls373.png)
访问路径
http://192.168.1.1/userRpmNatDebugRpm26525557/linux_cmdline.html
![TP-Link WR841路由RCE挖掘逆向分析](http://cn-sec.com/wp-content/uploads/sec-in//img/sin/M00/01/71/wKg0C2TTMc6APHwhAAB5ePQbtqU006.png)
该页面的使用需要授权,需要账号密码,根据代码路径向上追踪
![TP-Link WR841路由RCE挖掘逆向分析](http://cn-sec.com/wp-content/uploads/sec-in//img/sin/M00/01/71/wKg0C2TTMd2AflKoAAClzlcxOhk921.png)
根据页面的逻辑分析,再执行之后都是由DebugResultRpm.htm
响应结果,所以这里向下看
![TP-Link WR841路由RCE挖掘逆向分析](http://cn-sec.com/wp-content/uploads/sec-in//img/sin/M00/01/71/wKg0C2TTMe2AZZ9iAAEbDy8NBtw486.png)
这里可能调用了cmd执行了内容,且里面也有我们需要的字段passwd
,向上跟进
![TP-Link WR841路由RCE挖掘逆向分析](http://cn-sec.com/wp-content/uploads/sec-in//img/sin/M00/01/71/wKg0C2TTMf2AThQYAAB7oqcMHPQ758.png)
发现httpGetEnv方法调用了cmd
![TP-Link WR841路由RCE挖掘逆向分析](http://cn-sec.com/wp-content/uploads/sec-in//img/sin/M00/01/71/wKg0C2TTMgyABxG9AACzySWWDyk597.png)
F5反编译
![TP-Link WR841路由RCE挖掘逆向分析](http://cn-sec.com/wp-content/uploads/sec-in//img/sin/M00/01/71/wKg0C2TTMhmAbdUhAACTPzmQhR4017.png)
证明猜想没有问题,这里匹配了usr和passwd的字符串,代码中写死了用户名以及密码
osteam/5up
执行命令
![TP-Link WR841路由RCE挖掘逆向分析](http://cn-sec.com/wp-content/uploads/sec-in//img/sin/M00/01/71/wKg0C2TTMiiAEFpcAACOye1-KwI949.png)
小结
逆向过程不难,作为一种思路吧。
原文始发于CN-SEC:TP-Link WR841路由RCE挖掘逆向分析
相关文章
暂无评论...