Giter Site home page Giter Site logo

sleepingbag945 / dddd Goto Github PK

View Code? Open in Web Editor NEW
941.0 21.0 90.0 16.06 MB

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

License: MIT License

Go 98.83% Shell 0.04% Dockerfile 0.01% Makefile 0.02% JavaScript 1.10%

dddd's Introduction

工具简介

特点

  • 自动识别输入类型,无需手动分类

  • 便于拓展的主动/被动指纹识别

  • 指纹支持复杂 与/或/非/括号 逻辑运算。人类友好。

  • Nuclei v3支持

  • 便于拓展的指纹漏洞映射数据库,尽量避免无效发包

  • 高效的子域名枚举/爆破,精准的泛解析过滤

  • Hunter、Fofa、Quake支持

  • Hunter 低感知模式

  • 低依赖,多系统开箱即用

  • 高效的HTML报表,包含漏洞请求响应

  • 审计日志,敏感环境必备

快速开始

安装

Release中下载config.zip与您操作系统对应的二进制文件。直接命令行运行即可。

PS: dddd v2.0起,可以独立于config文件夹运行。

最简使用

扫描IP

dddd -t 192.168.0.1

扫描网段

dddd -t 192.168.0.1/24

dddd -t 192.168.0.0-192.168.0.12

扫描网站

dddd -t http://test.com

输出文件

dddd存在三种文件输出

  1. txt格式输出(默认选择)
  2. html格式(默认选择)
  3. 审计日志(可选)

所有结果默认输出在 result.txt,可通过-o参数更改输出文件,-ot参数更改输出格式(json),默认为text。

默认HTML格式漏洞输出为 当前时间戳.html,可通过-ho参数更改输出文件。

-a 参数开启审计日志功能,日志保存在 audit.log,记录详细扫描行为。

扫描可以随时终止,当有指纹识别、漏扫结果等输出时,会实时保存在文件内。

应用场景命令速查

红队外网 (Hunter)

dddd -t 'icp.name="xxxx有限公司"' -hunter -oip

红队外网 (Hunter查询备案,Fofa补充端口)高效梳理资产

dddd -t 'icp.name="xxxx有限公司"' -hunter -fofa -oip

红队外网 (本机枚举子域名)

dddd -t xxx.com -sd

红队内网

./dddd -t 172.16.100.0/24

安服测试/敏感环境 (开启审计日志~~,便于事后甩锅~~)

./dddd -t 172.16.100.1 -a

仅指纹识别

./dddd -t http://www.xxx.com -npoc

./dddd -t 172.16.100.11 -npoc

./dddd -t 172.16.120.11:3307 -npoc

更多信息

若您想知道如何添加指纹添加Poc,更多用法或漏洞报表截图。请点击下边的链接。

更多信息

更新历史

更新历史

免责声明

本工具仅面向合法授权的企业安全建设行为,如您需要测试本工具的可用性,请自行搭建靶机环境。

在使用本工具进行检测时,您应确保该行为符合当地的法律法规,并且已经取得了足够的授权。请勿对非授权目标进行扫描。

如您在使用本工具的过程中存在任何非法行为,您需自行承担相应后果,我们将不承担任何法律及连带责任。

在安装并使用本工具前,请您务必审慎阅读、充分理解各条款内容,限制、免责条款或者其他涉及您重大权益的条款可能会以加粗、加下划线等形式提示您重点注意。 除非您已充分阅读、完全理解并接受本协议所有条款,否则,请您不要安装并使用本工具。您的使用行为或者您以其他任何明示或者默示方式表示接受本协议的,即视为您已阅读并同意本协议的约束。

参考链接

https://github.com/shadow1ng/fscan

https://github.com/lcvvvv/kscan

https://github.com/lcvvvv/gonmap

https://github.com/projectdiscovery/nuclei

https://github.com/projectdiscovery/subfinder

https://github.com/projectdiscovery/httpx

https://github.com/projectdiscovery/naabu

https://github.com/chainreactors/gogo

https://github.com/zan8in/afrog

Star History Chart

Star History Chart

dddd's People

Contributors

sleepingbag945 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dddd's Issues

启动nuclei时报错

[ERR] Could not read nuclei-ignore file: open C:\Users\Administrator.config\nuclei.nuclei-ignore: The system cannot find the file specified.
请问这是要放一个忽略ssl报错的文件进去吗?

报错

image
[FTL] 请检查指纹数据库是否正常。

请问是什么原因

提个改动

-fofa后,-t参数的fofa语句“需要/转译,貌似也不支持多语句,打个比方:
-fofa -t app="泛微-EOffice" && city="Shanghai" 只会匹配到app="泛微-EOffice"
("泛微-EOffice" && city="Shanghai")会报错zsh: bad pattern: (app="泛微-EOffice"

goPoc

在gopoc启动的时候容易卡死不动。

提个小需求

是否可以添加一个输出为json格式的文档.(子域名结果,漏洞结果,还有一些指纹特征相关) 感觉更好筛选一点 也方便录入数据库.

指纹匹配漏报问题

dddd在匹配资产指纹的时候,貌似只会从第一个请求匹配,而指纹定义是以目标的http 200正文为准,所以就导致了指纹和匹配响应的数据包不对等,比如某金蝶eas:http://test.com,第一个响应是302,第二个响应也是302, 直到第三个响应才是应用正文,200状态码,而dddd只会从第一个302的响应去匹配指纹,从而导致漏报。
如下dddd对金蝶eas的指纹定义:
image
用一个存在漏洞的金蝶eas目标测试,并不能识别到金蝶eas:
image
以这个302响应的特征,加入到金蝶eas的指纹规则后,可以识别,并检出漏洞:
image
image

爆破子域名报错

控制台输出:

dddd.version: 1.9

[INF] YAML指纹数据: 8343 条
[INF] 漏洞检测支持指纹: 956 条
[INF] 暴力破解子域名: xxx.tv
[INF] 泛解析: xxx.tv
[INF] 被动子域名收集: xxx.tv
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x10 pc=0x13eee15]

goroutine 262 [running]:
github.com/projectdiscovery/subfinder/v2/pkg/subscraping/sources/digitorus.(*Source).Run.func1()
        github.com/projectdiscovery/subfinder/[email protected]/pkg/subscraping/sources/digitorus/digitorus.go:36 +0x255
created by github.com/projectdiscovery/subfinder/v2/pkg/subscraping/sources/digitorus.(*Source).Run in goroutine 226
        github.com/projectdiscovery/subfinder/[email protected]/pkg/subscraping/sources/digitorus/digitorus.go:28 +0x10d

bug

自己写的模板不加载运行,我已经在workflow标注路径,例如:
image
,但是在扫描的时候出现:
image
这个应该不受影响,只是协议弃用,我在官方的nuclei测试我写的playload可用。能解决一下吗

1

这个环境怎么配置呀,怎么安装使用
image

nuclei

请问魔改用的nuclei是哪个版本呢

模板

[WRN] 发现 1 个模板加载了不推荐使用的协议语法

quake调用icp指纹出现问题

quake直接命令行测试显示api错误
image
把指纹放入fofa.txt可运行,但是有个问题是导出的url只有ip+端口而非url链接
image
image
由于我个人对go语言不熟,不太清楚是不是我自身的问题,这是我这边quake调用提取资产url即http_load_url(因为我在佬的代码中没找到http_load_url,觉得可能是这个问题)的python版,仅供参考

def Quake(icp, finger):
    time.sleep(0.5)
    headers = {
        "X-QuakeToken": "",
        "Content-Type": "application/json"
    }
    # icp ="南京信息工程大学"
    data = {
        "query": f"icp_keywords:\"{icp}\" AND {finger}",
        "start": 0,
        "size": 100,
        "ignore_cache": True,
        "start_time": "2023-06-05 00:00:00",
        "end_time": "2023-12-08 00:00:00"
    }

    # proxies = {"http": "http://127.0.0.1:8080", "https": "https://127.0.0.1:8080"}
    res = requests.post(url="https://quake.360.net/api/v3/search/quake_service", headers=headers, json=data,
                        verify=False)
    res = json.loads(res.text)
    data = res["data"]
    # n = 0
    urls = []
    for i in data:
        url = i["service"]["http"]["http_load_url"][0]
        urls.append(url)
    return urls

killed

使用Ubuntu扫描的时候,会突然显示killed

执行时报错

师傅好,我按照说明加了一些poc后报这个错误:
[WRN] Found 3 templates with runtime error (use -validate flag for further examination)
然后我试着将所有文件删除,重新下载执行,还是有这个错误,是什么原因呢?
是会读取什么配置文件吗?

两个小需求

很感谢师傅开源了如此优秀的项目,dddd与我最近一直寻找的需求非常符合,有两个小需求如果方便添加就最好了:

  1. 指纹、漏洞和其他任何的结果能支持json格式导出,方便自动化集成中后续对结果数据的处理。
  2. 因为文档所说新版dddd可以支持tag调用nuclei全部模版,建议调用nuclei时各项参数配置可以灵活配置,比较需要的是:
    -etags: 用以排除类似intrusive标签的模版
    -s: 用以指定某些严重程度的模版

最后,请问目前是不是没有Tags@转换后的workflow,如果没有,后续有时间可以参与维护此指纹和tags仓库。

HTML报告显示数据包问题

html报告只显示poc最后一个数据包,能否显示所发送的所有数据包?
比如nacos的未授权漏洞,只显示删除用户的数据包,是否可以把前面添加用户的数据包也显示出来.
还有文件上传的,只显示最后get的包,post上传包是否可以显示出来?

v1.6.1

运行报错
[INF] YAML指纹数据: 8343 条
panic: time: missing Location in call to Time.In

goroutine 1 [running]:
time.Time.In(...)
time/time.go:1146
github.com/projectdiscovery/gologger.(*Logger).Log(0xc0003bf0c0, 0xc00880b740)
github.com/projectdiscovery/[email protected]/gologger.go:102 +0x305
github.com/projectdiscovery/gologger.(*Event).Msgf(0xc00880b740, {0x3498158?, 0x0?}, {0xc000845db8?, 0x0?, 0x0?})
github.com/projectdiscovery/[email protected]/gologger.go:186 +0x65
dddd/common.prepare()
dddd/common/flag.go:260 +0xfcd
dddd/common.Flag()
dddd/common/flag.go:359 +0xb2e
main.main()
./main.go:22 +0xf

指纹条数太大索引越界

当我使用python处理我的指纹yaml内容新增到三万条时 dddd不能他不能正常运行了 提示索引越界
image

nuclei调用

师傅,Windows下nuclei需要配置吗,每次都是 Nuclei引擎无结果

POC扫描不可用

image
更新2.0之后POC扫描好像有点问题,将生成的result.txt用-t也不行用1.9版本是能扫出漏洞的

nuclei调用poc配置

是否采用nuclei -tags xxx -u 这样的方式,可以简约workflow的配置过程

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.