详细逆向分析一款非常零类的全平台应用开发工具的授权和激活过程
1. 前言
CVE-2018-5767是Tenda-AC15路由器所产生的漏洞,由于未对用户的输入进行合理的限制,直接使用了sscanf函数拷贝到栈上,从而导致了栈溢出的情况。
2. 实验环境
复制代码 隐藏代码
Ubuntu 16.04
GDB调试器
路由器固件:Tenda AC15 15.03.1.16_multi
固件下载地址
复制代码 隐藏代码
https://drivers.softpedia.com/dyn-postdownload.php/d27e8410d32cd9de63a3506c47ded1bc/61ff85c5/75eb7/4/1
3. 固件模拟
使用binwalk分离固件系统,在分离过程中可以看出是小端序
复制代码 隐藏代码
binwalk -Me US_AC15V1.0BR_V15.03.1.16_multi_TD01.bin
https://attach.52pojie.cn/forum/202208/12/162618i85bflubl55627eu.png
通过对squashfs-root
文件系统中的/bin/busybox
查看可得,程序为ARM架构
https://attach.52pojie.cn/forum/202208/12/162636rapxnxki7aas3ks3.png
其实在文件系统中选哪个可执行文件都无所谓,这里的buxybox选取也只是方便。busybox是一个集成了一百多个常用Linux命令和工具的软件,在嵌入式Linux应用中,busybox应用非常广泛,同时大多数Linux发行版的安装程序中都含有busybox。
这里采用qemu配合chroot命令来启动./bin/httpd文件
复制代码 隐藏代码
sudo apt install qemu-user-static libc6-arm* libc6-dev-arm*
cp /usr/bin/qemu-arm-static .
sudo chroot ./ ./qemu-arm-static ./bin/httpd
chroot,即 change root directory (更改 root 目录)。在 linux 系统中,系统默认的目录结构都是以 /,即以根 (root) 开始的。而在使用 chroot 之后,系统的目录结构将以指定的位置作为 / 位置。
https://attach.52pojie.cn/forum/202208/12/162652cqxxd1c1xqxx7adi.png
运行后程序启动失败,输出下列错误
复制代码 隐藏代码
connect: No such file or directory
Connect to server failed.
connect cfm failed!
不太清楚是不是环境有问题,第一次调试的时候程序直接断在了Welcome to …那里,后面反而没有这个问题了,不过这里也写下解决方法
IDA搜索WeLoveLinux字符串,查找索引
一旦您浏览本站,即表示您已接受以下条约:
1.使用辅助可能会违反游戏协议,甚至违法,用户有权决定使用,并自行承担风险;
2.本站辅助严禁用于任何形式的商业用途,若被恶意贩卖,利益与本站无关;
3.本站为非营利性网站,但为了分担服务器等运营费用,收费均为赞助,没有任何利益收益。
死神科技 » 详细逆向分析一款非常零类的全平台应用开发工具的授权和激活过程