DarKnuclei C2基础设施识别 红队快速打点工具

DarKnuclei C2基础设施识别 红队快速打点工具

DarKnuclei 简介

DarKnuclei是一款适合针对红蓝对抗的一款工具【可跨平台使用】,不仅仅可以在红队视角下的快速打点,还可以在蓝队视角下针对红队基础设施与服务进行探针扫描,DarKnuclei在针对红队基础设施进行扫描针对C2,采用强/弱特征,通过C2一些特征值去识别探针,在保证准确率的情况下去尽可能识别多C2,内置yaml语法,使用者可以自己编写yaml文件,识别特定的C2。

0.1.1 前置配置

在使用DarKnuclei之前要进行一些设置,需要满足以下条件:

  1. 如果需要进行漏洞扫描需要将nuclei加入环境变量【同时需要下载nuclei-templates,并在config.ini中配置】。
  2. 如需使用测绘功能请修改config.ini添加key。
  3. python版本:python3
  4. 如果是mac或linux请下载对于的执行程序在plugin目录,并配置config.ini
    1. observer_ward
    2. gogo
    3. tlsx

配置完以上信息,就可以完美的使用DarKnuclei。

0.1.2 在红队视角下

不管是蓝队模块还是会对模块扫描后的结果会保存在project文件中,其中txt为详细信息,html为简略信息。

在上文中,配置完成之后,我们运行python main.py -h可以查看帮助信息;

DarKnuclei C2基础设施识别 红队快速打点工具

此时NSM WEB GOGO属于红队模块,RTSCAN属于蓝队模块,接下来我们展开讲讲红队模块:

0.1.2.1 NSM [测绘资产]

解决问题:在攻防的时候,拿到手资产,是ip或者是域名又或者是公司怎么样进行快速打点?

此模块是通过测绘平台进行扫描,前提是需要配置好fofa,以及quake key。

DarKnuclei C2基础设施识别 红队快速打点工具

python3 main.py NSM -h查看帮助信息。

案例1

在案例1中,我们可以看到输入目标资产的一些信息,查询相关资产【注意如果没有加上-n-b视为只资产测绘进行查询,而不进行指纹识别以及漏洞扫描】

python3 main.py NSM -ip xxx.xxx.xxx.xxx -icp 京ICP证030173号 -domain baidu.com -body 百度公司 -title 百度公司管理

在下面两个参数重,根据需求选择,选择之后,将进行相应的模块。

-b, --observer        指纹扫描
-n, --nuclei          指纹+漏洞扫描

【DarKnuclei在设计只初参考了大量的扫描器,DarKnuclei在进行漏洞扫描的时候,均是先指纹识别,通过指纹查询对于的POC,才进行对应的漏洞扫描】

0.1.2.2 WEB [WEB扫描]

解决问题:在攻防的时候,拿到一堆资产的时候,怎么样快速打点?

此模块没有测绘功能,需要用户输入目标,或者是目标集合的文件【如:url.txt】,而且需要注意的是,输入的目标需要是http://或者是https://开头的资产才行,否则会跳过此资产。

DarKnuclei C2基础设施识别 红队快速打点工具

0.1.2.3 GOGO [GOGO扫描]

解决问题:在攻防的时候,拿到一堆资产的时候,而且资产杂乱,有的是IP,有的是域名,有的带有http,又或者是https,这个时候此工具可以快速的识别并整理资产。【自动识别web资产还有扫描IP信息,识别是http或者是https】

强烈推荐此模块,此模块在针对上一个模块中,针对资产杂乱的问题进行解决,并且,可以定制指定端口扫描。

DarKnuclei C2基础设施识别 红队快速打点工具

其中,此工具在使用的时候,必须调用下面两个参数,二选一。

-b, --observer        指纹扫描
-n, --nuclei          指纹+漏洞扫描

0.1.3 在蓝队视角下 【RTSCAN】

解决问题:在通过设备捕捉到红队IP的时候,蓝队成员在编写溯源报告的时候,针对红队服务器上开放了什么服务,或者说使用了什么C2进行的攻击,不清楚,此工具不仅仅针对红队平台【ARL…..】,可以针对服务【JNDI…】,还可以针对红队部署的C2【vshell…..】等。

在下图中,列出了目前版本覆盖类型以及指纹。

0.1.3.1 特征覆盖

✅ 强特征

☑️ 弱特征

平台/服务

名字类型特征计划中备注
ARL(灯塔)platform
Scope Sentryplatform
NPSplatform
AWVSplatform
Nessusplatform
XSS平台platform
BeEFplatform
Hplatform
LangSrcCuriseplatform
Medusaplatform
NextScanplatform
prismxplatform
CyberEdgeplatform
SerializedPayloadGeneratorplatform
web-chainsplatform
RevSuitplatform
MemShellPartyplatform
vulfocusplatform
gophishplatform
testnetplatform
rengineplatform
JNDI-Injection-Exploit-PlusTools只针对ldap强特征,rmi,jetty弱特征
JNDI-Injection-ExploitTools只针对ldap强特征,rmi,jetty弱特征
rogue-jndiTools只针对ldap强特征,rmi,jetty弱特征
JNDIMapTools只针对ldap强特征,rmi,jetty弱特征
ysoserialTools✔️

C2

名字版本登录/连接监听端口UDP流量TCP流量HTTP/S流量计划中备注
vshell4.9.3~4.6.0
Cobalt Strike
Metasploit
Supershell2.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 使用

>python39 main.py -h

.__       .  .         .
|  \ _.._.|_/ ._ . . _.| _ *
|__/(_][  |  \[ )(_|(_.|(/,|
    DarKnuclei Scan v2.0 by RuoJi
    https://github.com/RuoJi6/DarKnuclei

usage: main.py [-h] {NSM,WEB,GOGO,RTSCAN} ...

红队快速打点利器

positional arguments:
  {NSM,WEB,GOGO,RTSCAN}
                        主命令帮助
    NSM                 测绘资产
    WEB                 WEB扫描
    GOGO                GOGO扫描
    RTSCAN              扫描红队基础设施与服务

optional arguments:
  -h, --help            show this help message and exit
DarKnuclei C2基础设施识别 红队快速打点工具

python3 main.py RTSCAN -a 此命令可以查看支持的C2的类型,name,以及tags等。

在下面命令中,扫描xxx.xxx.xxxIP中的带有C2 tags的yaml文件。【如果没有指定端口,将会扫描默认常见红队开放端口】

python3 main.py RTSCAN - i xxx.xxx.xxx -t c2

注意:有些扫描时有感的,所以请配置代理。

效果:

DarKnuclei C2基础设施识别 红队快速打点工具
DarKnuclei C2基础设施识别 红队快速打点工具

0.1.4 日志&报错

在程序运行的时候,不可避免因为代码或者说网络问题出现的错误,日志文件会在log_目录下,以周为单位记录日子,且保留最多3个备份文件,超过的旧文件会被删除。

日志的多个格式:

2025-01-25 16:11 || INFO  ||  run_def.py  || gogo+指纹+漏洞 || /Users/hacker/filename/代码/代码/RT/DarKnuclei_scan/run_def.py 263
# 时间 || 级别 || 文件 || 模块 || 文件绝对路径 || 行数
# 通常我们只需要关注ERRROR信息,通常在发生ERROR错误的时候,会出现报错原因,且在日志中呀详细的记录,下面是一个错误演示,其中我们可以通过日志进行排查错误。 

2025-01-25 16:10 || ERROR  ||  scan.py  || An unexpected error occurred: [Errno 2] No such file or directory: 'plugin\\gogo_darwin_arm64' || /Users/hacker/filename/代码/代码/RT/DarKnuclei_scan/scan.py 1008
2025-01-25 16:10 || ERROR  ||  scan.py  || An unexpected error occurred: [Errno 2] No such file or directory: 'plugin\\gogo_darwin_arm64'
Traceback (most recent call last):
  File "/Users/hacker/filename/代码/代码/RT/DarKnuclei_scan/scan.py", line 866, in scan_gogo_one
    with subprocess.Popen(
  File "/Users/jiruo/.pyenv/versions/3.9.21/lib/python3.9/subprocess.py", line 951, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "/Users/jiruo/.pyenv/versions/3.9.21/lib/python3.9/subprocess.py", line 1837, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'plugin\\gogo_darwin_arm64'
 || /Users/hacker/filename/代码/代码/RT/DarKnuclei_scan/scan.py 1009

0.1.5 扩展红队YAML

DarKnuclei 在红队视角下,用户可自定义YAML文件,针对特定的服务或者C2进行扩展。【待定完成】

使用文档

https://ruoji6.github.io/posts/33805.html

下载地址

DarKnuclei_Beta_v2.0.zip

项目地址

GitHub:
https://github.com/RuoJi6/DarKnuclei/

转载请注明出处及链接

Leave a Reply

您的邮箱地址不会被公开。 必填项已用 * 标注