物联网 | 污点分析+AI漏洞挖掘

admin 2022年12月9日20:24:26评论223 views字数 1244阅读4分8秒阅读模式

简介






最近ChatGPT也是特别火,我也是迫不及待的试了试他的代码审计能力,不得不说强呀!使用Satc污点分析工具快速查找漏洞点,使用ChatGPT提高代码理解能力构造请求包,感觉效果还是不错滴,ChatGPT大家都清楚了,简单介绍一下Satc,它是基于变量关键字通常在前端文件和后端函数之间共享的思想,SaTC精确识别后端二进制文件中的输入条目,然后利用本文为嵌入式系统定制的污点引擎,有效地检测出对不可信任的输入的危险使用。参考https://github.com/NSSL-SJTU/SaTC安装,下面以tenda A18为例来试试效果(演示的tenda 漏洞均为公开漏洞)。

漏洞分析






使用Satc的”python satc.py -d /home/satc/ -o /home/satc/res --ghidra_script=ref2sink_cmdi --ghidra_script=ref2sink_bof --taint_check” 命令跑一下-d 指定是输入文件夹 -o指定结果的输出目录,等待程序跑完,去-o 指定的目录下找结果即可。

1

可以看到它根据deviceName,回溯找出了几

层引用。

物联网 | 污点分析+AI漏洞挖掘

这里直接搜索0x000a674c来到了漏洞点,但是如果一点也看不懂怎么办呢?当然是丢给AI了。

物联网 | 污点分析+AI漏洞挖掘
物联网 | 污点分析+AI漏洞挖掘


这么明显了,直接ctrl+x ida看一下这个危险函数的引用,构造poc打一下就行啦。

物联网 | 污点分析+AI漏洞挖掘

Post http://x.x.x.x/goform/setUsbUnload

参数 deviceName=;whoami

2

这里根据macFilterType也找出来了几点链。

物联网 | 污点分析+AI漏洞挖掘

直接搜索最后strcpy前面的那个就是最终的危险函数位置了。这里从src的内容是读取r后面的数据,看不懂怎么办,继续丢AI。

物联网 | 污点分析+AI漏洞挖掘
物联网 | 污点分析+AI漏洞挖掘

接下来就是继续向上找引用

物联网 | 污点分析+AI漏洞挖掘
物联网 | 污点分析+AI漏洞挖掘

这里的getpar是我自己备注的,如果你不懂怎么办,继续丢Ai。

物联网 | 污点分析+AI漏洞挖掘

然后这里需要满足v19为0,满足的条件为macFilterType为white或者black。

物联网 | 污点分析+AI漏洞挖掘
物联网 | 污点分析+AI漏洞挖掘
物联网 | 污点分析+AI漏洞挖掘

最后ctrl+x找引用,构造满足进入危险函数条件的poc。

Post http://x.x.x.x/goform/setMacFilterCfg

参数"macFilterType": "white", "deviceList": "r"+ "A"*500。

物联网 | 污点分析+AI漏洞挖掘

此时触发了异常,就可以用gdb调试看看距离返回地址几个字节,结合libc构造一下gadget就可以了。

3

同样的分析污点分析的结果。

物联网 | 污点分析+AI漏洞挖掘

丢给AI去分析分析。

物联网 | 污点分析+AI漏洞挖掘
物联网 | 污点分析+AI漏洞挖掘

向上找引用构造poc。

物联网 | 污点分析+AI漏洞挖掘

Post  http://x.x.x.x/goform/fast_setting_wifi_set

参数 "ssid": "A"*500

物联网 | 污点分析+AI漏洞挖掘

同样的此时触发了异常,就可以用gdb调试看看距离返回地址几个字节,结合libc构造一下gadget就可以了。

总结






在是文件系统的情况下,污点分析不失为一种好的静态分析方法,结合AI分析让挖掘漏洞更简单!



编辑:陈雅端子


原文始发于微信公众号(DX安全实验室):物联网 | 污点分析+AI漏洞挖掘

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年12月9日20:24:26
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   物联网 | 污点分析+AI漏洞挖掘http://cn-sec.com/archives/1455073.html

发表评论

匿名网友 填写信息