knownsec / 404StarLink

404StarLink - 推荐优质、有意义、有趣、坚持维护的安全开源项目
7.9k stars 783 forks source link

[项目申请]: dddd #146

Closed SleepingBag945 closed 1 month ago

SleepingBag945 commented 1 month ago

基本要求

项目名称

dddd

项目地址

https://github.com/SleepingBag945/dddd

项目简介

dddd是一款使用简单的批量信息收集,供应链漏洞探测工具,旨在优化红队工作流,减少伤肝的机械性操作。

项目亮点

​ 从22年开始,就接触了基于yaml的nuclei,相比起 Python PoC/Exp 层次不齐的质量与杂乱无章的接口,"使用固定格式的 Yaml 来编写 PoC ,并把 PoC 通过特定引擎来调度执行" 这种方式来构建漏洞验证的体系深深的吸引了我,我也把写nuclei yaml poc作为我沉淀知识的方法之一。

​ 但对于nuclei这种拥有庞大yaml模板量的工具来说,使用模板喷射(template-spray)、主机喷射(host-spray)的方式对一个目标不分青红皂白的遍历对目标来说是巨大的灾难。例如对一个zabbix打wordpress模板无疑浪费了时间与网络资源。对1000个目标打6000个模板(单请求、不同路径),大概是需要600万次,时间成本极高。

​ 于是我想着如何做一个针对性喷射。

​ 解决方案是进行指纹识别,对一个页面的响应进行分析,确定这个页面能匹配到哪些指纹,再针对性打对应的Poc,例如工具检测到响应中存在images/general/zabbix.ico,判断这个页面的指纹是 ZABBIX-监控系统 ,再针对性打CVE-2016-10134、CVE-2019-17382等等漏洞。假设有20个zabbix的Poc(单请求),对1000个zabbix目标只需要2万次请求,大大降低了发现漏洞时间、网络成本。

​ 经过实际使用,发现nuclei自带的-as参数,通过wappalyzer进行指纹识别的智能扫描并不好用,阅读nuclei源码可知这玩意的实现是将wappalyzer识别出的指纹进行拆分,拆分后的结果通过各模板的tags进行匹配,这种方式会漏掉大量漏洞模板,原因有两条,1.tags质量良莠不齐(漏写、错写、资产多名,如yonyou写成yongyou),会导致wappalyzer匹配不到。2.wappalyzer对某些指纹的识别不是很全,添加指纹不是很方便,需要重新编译nuclei。

​ 另一种指纹识别的方案是nuclei的workflow,一开始我也很热衷于此,先运行一些指纹识别性质的模板,再通过workflow模板,自动运行与指纹相关的模板,这貌似能解决大部分问题。但后来对nuclei社区提供的yaml模板进行整理的时候发现,有些指纹他不在根目录,这会导致漏洞打偏。而且编写指纹识别的nuclei yaml偏麻烦,远远没有各类网络空间搜索引擎(hunter、fofa)提供的语法简单方便,于是我便萌生了开发一个基于fofa语法的指纹识别、使用Nuclei引擎针对指纹进行漏洞探测的效率工具的想法,把漏洞更精准、方便的指向资产指纹。在用的时候就不需要先进行指纹识别,再一个个找对应的指纹使用nuclei 的-tags参数跑poc了,极大提升信息收集、漏洞发现的效率。

​ dddd就是这个想法的实现。它支持的类Fofa指纹支持复杂 与/或/非/括号 逻辑运算。人类友好,大部分Fofa指纹可以通过编写Yaml的方式直接移植到dddd上,下列是一个的指纹例子。

Interspire-Email-Marketer:
  - '(title=="Control Panel" && body="Email Marketer") || body="<img src=\"images/logo.jpg\" alt=\"Interspire Email Marketer"'

​ 再通过Yaml的工作流数据库可以很方便的将漏洞指向指纹。

Citrix-ADC:
  type:
    - root
  pocs:
    - CVE-2019-19781
    - CVE-2020-8191
    - CVE-2020-8193
    - CVE-2020-8194

​ 当dddd在实战中识别到Citrix-ADC指纹时会自动对该资产打出上边4个CVE。经过一年的更新,目前沉淀下来2400+Poc,8000+高质量指纹。

​ 当然,除了指纹识别与Nuclei,dddd还配套了其他便捷功能,帮助红队/安服/甲方更便捷的发现资产与漏洞,如Hunter、fofa、Quake资产的导入、端口扫描、子域名枚举、CDN识别、服务爆破、未授权检测等功能。

Knownsec404team commented 1 month ago

您好,感谢投稿。项目未通过404星链计划技术评审环节,期待项目后续的更新和迭代,随时欢迎再次投稿,谢谢!