Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[项目申请]: dddd #146

Closed
6 tasks done
SleepingBag945 opened this issue May 18, 2024 · 1 comment
Closed
6 tasks done

[项目申请]: dddd #146

SleepingBag945 opened this issue May 18, 2024 · 1 comment

Comments

@SleepingBag945
Copy link

SleepingBag945 commented May 18, 2024

基本要求

  • 1. 项目完全开源并遵守开源协议
  • 2. 项目提供README等项目描述
  • 3. 项目属于计算机安全范畴
  • 4. 项目具备一定的实用价值
  • 5. 项目不包含恶意功能或源码
  • 6. 项目将会积极维护

项目名称

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-10134CVE-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
Copy link
Collaborator

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants