0.1 DarKnuclei 入门技巧
DarKnuclei是一款适合针对红蓝对抗的一款工具【可跨平台使用】,不仅仅可以在红队视角下的快速打点,还可以在蓝队视角下针对红队基础设施与服务进行探针扫描,DarKnuclei在针对红队基础设施进行扫描针对C2,采用强/弱特征,通过C2一些特征值去识别探针,在保证准确率的情况下去尽可能识别多C2,内置yaml
语法,使用者可以自己编写yaml
文件,识别特定的C2。
项目地址:https://github.com/RuoJi6/DarKnuclei
0.1.1 前置配置
在使用DarKnuclei之前要进行一些设置,需要满足以下条件:
- 如果需要进行漏洞扫描需要将nuclei加入环境变量【同时需要下载nuclei-templates,并在config.ini中配置】。
- 如需使用测绘功能请修改
config.ini
添加key。 - python版本:
python3
。 - 如果是mac或linux请下载对于的执行程序在plugin目录,并配置
config.ini
。
配置完以上信息,就可以完美的使用DarKnuclei。
0.1.2 在红队视角下
不管是蓝队模块还是会对模块扫描后的结果会保存在project
文件中,其中txt为详细信息,html为简略信息。
在上文中,配置完成之后,我们运行python main.py -h
可以查看帮助信息;
此时NSM WEB GOGO
属于红队模块,RTSCAN
属于蓝队模块,接下来我们展开讲讲红队模块:
0.1.2.1 NSM [测绘资产]
解决问题:在攻防的时候,拿到手资产,是ip或者是域名又或者是公司怎么样进行快速打点?
此模块是通过测绘平台进行扫描,前提是需要配置好fofa,以及quake key。
python3 main.py NSM -h
查看帮助信息。
案例1
在案例1中,我们可以看到输入目标资产的一些信息,查询相关资产【注意如果没有加上-n
或-b
视为只资产测绘进行查询,而不进行指纹识别以及漏洞扫描】
1 | python3 main.py NSM -ip xxx.xxx.xxx.xxx -icp 京ICP证030173号 -domain baidu.com -body 百度公司 -title 百度公司管理 |
在下面两个参数重,根据需求选择,选择之后,将进行相应的模块。
1 | -b, --observer 指纹扫描 |
【DarKnuclei在设计只初参考了大量的扫描器,DarKnuclei在进行漏洞扫描的时候,均是先指纹识别,通过指纹查询对于的POC,才进行对应的漏洞扫描】
0.1.2.2 WEB [WEB扫描]
解决问题:在攻防的时候,拿到一堆资产的时候,怎么样快速打点?
此模块没有测绘功能,需要用户输入目标,或者是目标集合的文件【如:url.txt】,而且需要注意的是,输入的目标需要是http://或者是https://开头的资产才行,否则会跳过此资产。
0.1.2.3 GOGO [GOGO扫描]
解决问题:在攻防的时候,拿到一堆资产的时候,而且资产杂乱,有的是IP,有的是域名,有的带有http
,又或者是https
,这个时候此工具可以快速的识别并整理资产。【自动识别web资产还有扫描IP信息,识别是http或者是https】
强烈推荐此模块,此模块在针对上一个模块中,针对资产杂乱的问题进行解决,并且,可以定制指定端口扫描。
其中,此工具在使用的时候,必须调用下面两个参数,二选一。
1 | -b, --observer 指纹扫描 |
0.1.3 在蓝队视角下 【RTSCAN】
解决问题:在通过设备捕捉到红队IP的时候,蓝队成员在编写溯源报告的时候,针对红队服务器上开放了什么服务,或者说使用了什么C2进行的攻击,不清楚,此工具不仅仅针对红队平台【ARL…..】,可以针对服务【JNDI…】,还可以针对红队部署的C2【vshell…..】等。
在下图中,列出了目前版本覆盖类型以及指纹。
0.1.3.1 特征覆盖
✅ 强特征
☑️ 弱特征
平台/服务
名字 | 类型 | 特征 | 计划中 | 备注 |
---|---|---|---|---|
ARL(灯塔) | platform | ✅ | ||
Scope Sentry | platform | ✅ | ||
NPS | platform | ✅ | ||
AWVS | platform | ✅ | ||
Nessus | platform | ✅ | ||
XSS平台 | platform | ✅ | ||
BeEF | platform | ✅ | ||
H | platform | ✅ | ||
LangSrcCurise | platform | ✅ | ||
Medusa | platform | ✅ | ||
NextScan | platform | ✅ | ||
prismx | platform | ✅ | ||
CyberEdge | platform | ✅ | ||
SerializedPayloadGenerator | platform | ✅ | ||
web-chains | platform | ✅ | ||
RevSuit | platform | ✅ | ||
MemShellParty | platform | ✅ | ||
vulfocus | platform | ✅ | ||
gophish | platform | ✅ | ||
testnet | platform | ✅ | ||
rengine | platform | ✅ | ||
JNDI-Injection-Exploit-Plus | Tools | ✅ | 只针对ldap强特征,rmi,jetty弱特征 | |
JNDI-Injection-Exploit | Tools | ✅ | 只针对ldap强特征,rmi,jetty弱特征 | |
rogue-jndi | Tools | ✅ | 只针对ldap强特征,rmi,jetty弱特征 | |
JNDIMap | Tools | ✅ | 只针对ldap强特征,rmi,jetty弱特征 | |
ysoserial | Tools | ✔️ |
C2
名字 | 版本 | 登录/连接 | 监听端口 | UDP流量 | TCP流量 | HTTP/S流量 | 计划中 | 备注 |
---|---|---|---|---|---|---|---|---|
vshell | 4.9.3~4.6.0 | ✅ | ✅ | ✅ | ✅ | |||
Cobalt Strike | ✅ | ✅ | ||||||
Metasploit | ✅ | ✅ | ||||||
Supershell | 2.0.0 | ✅ | ✅ | |||||
Viper | ✅ | ☑️ | ✔️ | |||||
Daybreak | ✔️ | |||||||
chisel | ✔️ | |||||||
sliver | ✔️ | |||||||
Havoc | ✔️ | |||||||
Iom | ✔️ | |||||||
Villain | ✔️ | |||||||
VenomRA | ✔️ | |||||||
ShadowPad | ✔️ | |||||||
Shad0w | ✔️ | |||||||
Remcos RAT | ✔️ | |||||||
QuasarRAT | ✔️ | |||||||
Pupy-C2 | ✔️ | |||||||
PoshC2 | ✔️ | |||||||
PlugX RAT | ✔️ | |||||||
Orcus-RAT | ✔️ | |||||||
Ninja | ✔️ | |||||||
Mythic | ✔️ | |||||||
Havoc | ✔️ | |||||||
Hak5 Cloud | ✔️ | |||||||
Gh0st | ✔️ | |||||||
Empire | ✔️ | |||||||
DeimosC2 | ✔️ | |||||||
DcRAT | ✔️ | |||||||
Covenant | ✔️ | |||||||
Brute Ratel C4 | ✔️ | |||||||
BitRAT | ✔️ | |||||||
AsyncRAT | ✔️ | |||||||
manjusaka | ✔️ |
0.1.3.2 使用
python3 main.py RTSCAN -a
此命令可以查看支持的C2的类型,name,以及tags等。
在下面命令中,扫描xxx.xxx.xxx
IP中的带有C2 tags的yaml
文件。【如果没有指定端口,将会扫描默认常见红队开放端口】
1 | python3 main.py RTSCAN - i xxx.xxx.xxx -t c2 |
注意:有些扫描时有感的,所以请配置代理。
效果:
0.1.4 日志&报错
在程序运行的时候,不可避免因为代码或者说网络问题出现的错误,日志文件会在log_目录下,以周为单位记录日子,且保留最多3个备份文件,超过的旧文件会被删除。
日志的多个格式:
1 | 2025-01-25 16:11 || INFO || run_def.py || gogo+指纹+漏洞 || /Users/hacker/filename/代码/代码/RT/DarKnuclei_scan/run_def.py 263 |
0.1.5 扩展红队YAML
DarKnuclei 在红队视角下,用户可自定义YAML文件,针对特定的服务或者C2进行扩展。【待定完成】