第一个iot漏洞分析d

您所在的位置:网站首页 dir-850l设置教程 第一个iot漏洞分析d

第一个iot漏洞分析d

2024-07-11 03:27| 来源: 网络整理| 查看: 265

ftp://ftp2.dlink.com/PRODUCTS/DIR-850L/REVA/DIR-850L_REVA_FIRMWARE_1.14.B07_WW.ZIP固件下载地址 分析工具 1.attifyOs虚拟机(里面的~/tools/firmware-analysis-toolkit工具) 2.binwalk binwalk -eM xxx.bin解压查看bin文件系统 3.Ghidra用来反编译mips(一般路由器的指令集与ARM,8086同等级)的构架的程序

0x01仿真 一般情况下想要运行起来固件有三种方法, 1.用qume仿真 2.买个对应版本的路由器 3.买个路由器刷入对应版本的固件 第一和第三种比较推荐 这里的仿真用最省事的方法用attifyOs虚拟机虚拟机跳过繁琐的软件安装过程。 我这里attifyos虚拟机和主机共享问价比较麻烦,这里用scp 本地文件 iot@ip:远程目录 使用fat模拟固件也比较简单,一条命令一把梭直接解决 fat的地址https://github.com/attify/firmware-analysis-toolkit 还有一个自动仿真工具叫firmdyne地址https://github.com/firmadyne/firmadyne 如果报了莫名的错误可以试一下python3 fat.py xxx.bin 刚开始运行会给一个ip地址,这个ip就是仿真运行的地址 在这里插入图片描述

用root password登录(不需要登录也能把上面的服务开启) 在这里插入图片描述 但是这时只能在本虚拟机访问想要远程访问需要做代理 在这里插入图片描述 用ssh端口转发 主机运行ssh -D 127.0.0.1:9000 user@ip 浏览器设置代理就能访问远程虚拟机了 在这里插入图片描述 0x02反编译环境 Ghidra使用 ctrl+shift+e 搜索字符串 ctrl+e 展示反编译 查看交叉引用 在这里插入图片描述

0x03具体分析过程 1.查看getcfg.php 我也不知道为什么是这个文件不过定义为复现漏洞就不需要纠结为什么是这个文件了。

HTTP/1.1 200 OK Content-Type: text/xml xml version="1.0" encoding="utf-8"

/htdocs/webinc/getcfg/目录下面有一个DIEVICE.ACCOUNT.xml.php运行这个文件可以返回用户名密码 这个可以记录下来,不出意外的话dlink设备应该一直都会是这样。 在这里插入图片描述 `curl -d “SERVICES=DEVICE.ACCOUNT%0aAUTHORIZED_GROUP=1” http://192.168.0.1/getcfg.php`` 在这里插入图片描述

但是从上面的脚本看想要运行这段代码需要过一个验证,需要绕过s_power_user() == 1决定权就落到了AUTHORIZED_GROUP这个全局变量里面。

AUTHORIZED_GROUP变量在这个文件里面没有定义,所以定义在php处理函数里面,这个程序叫phpcgi在这里插入图片描述 在这里phpcgi是一个软连接,指向cgibin cgibin里面有一个phpcgi函数 ,所以查看cgibin文件里面的phpcgi_main函数

int phpcgi_main(int param_1,int param_2,char **param_3) { char *__s1; int iVar1; FILE *__stream; code *pcVar2; void *pvVar3; char acStack48 [24]; int local_18; pvVar3 = (void *)0x0; if ((1


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3