52

Ninja:一款专为隐藏红队活动的开源C2服务器

 4 years ago
source link: https://www.freebuf.com/articles/network/232519.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Ninja

Ninja是一个开源的命令控制C2服务器,由Purple团队设计、开发和维护。在Ninjia的帮助下,红队研究人员可以隐藏他们的计算机和活动目录枚举活动,并且不会被SIEM和反病毒产品检测到。目前,Ninjia仍处于测试阶段,稳定版本发布后,将会包含更多隐蔽技术和反取证技术,这对于蓝队来说将会是一个真正的挑战,以帮助他们确保防御系统的安全性,以检测到更加复杂的攻击。

Ninjia使用了Python来提供Payload并控制代理,代理基于C#和PowerShell以绕过大部分反病毒产品。Ninjia能够通过加密(AES-256)安全信道来与代理交互,而且密钥并非硬编码的,而是在活动中随机生成的,每一个连接至C2服务器的代理都会获得一个密钥,当C2重启并生成了新密钥之后,所有旧的代理和新的代理都将使用新的密钥。Ninjia还支持随机回调URL地址,以便绕过静态检测/分析。

工具要求

请注意,编译C#代码需要取决于System.Management.Automation.dll与SHA1哈希“c669667bb4d7870bc8bb65365d30071eb7fb86fe”的汇编结果。

某些Ninjia命令可能需要用到下列模块,因此用户需要从相应代码库获取这些模块:

Invoke-Kerberoast :

https://raw.githubusercontent.com/xan7r/kerberoast/master/autokerberoast.ps1

Invoke-Mimikatz :

https://github.com/PowerShellMafia/PowerSploit/blob/master/Exfiltration/Invoke-Mimikatz.ps1

Sharphound :

https://github.com/BloodHoundAD/BloodHound/blob/master/Ingestors/SharpHound.ps1

PowerView :

https://github.com/PowerShellEmpire/PowerTools/blob/master/PowerView/powerview.ps1

工具安装

首先,请确保使用下列命令从项目代码库中获取最新版本的Ninjia:

git clone https://github.com/ahmedkhlief/Ninja/

接下来,我们在命令行中切换到项目根目录,然后运行install.sh脚本来安装和配置Ninjia:

chmod +x ./install.sh sudo ./install.sh

完成上述操作之后,你需要初始化活动:

python start_campaign.py

现在,你就可以使用下列命令开启Ninjia服务器了:

python Ninja.py

BNniArn.jpg!web

运行之后,你将会看到终端屏幕出现下列内容:

Zfi6RnY.jpg!web

自定义回调URL

Ninjia C2允许我们以更安全的方法自定义回调URL,你需要编辑文件links.txt并添加连接中需要用到的单词。Ninjia C2将会从中随机选择单词并用于URL地址中。如果你想使用静态连接,可以直接编辑core/config.py文件来进行功能修改。

Ninjia C2文件架构

 Ninjia C2拥有非常多的功能函数,并使用文件目录来存储这些函数的输出结果,下面给出的是所有目录以及部分重要文件:
 agents/ : 包含Ninjia所需的所有原始代理。
 core/   : 包含运行Ninjia的所有核心脚本。
 DA/     : 防御分析脚本将在此处编写其输出。
 downloads/ : 从目标设备下载的所有文件都将在此处。
 file/    : 要上传到目标设备的文件。
 images/  : 屏幕截图将上传到这里。
 kerberoast/ : kerberoast模块将在此处写入其输出。
 lib/  :  包括Ninjia C2使用的库。
 Modules/ : 可以将Powershell模块加载到目标设备。
 payloads/ : 需要在活动中使用的Payload。
 ninja.py  : Ninjia C2主脚本.
 start_campaign.py : 用于初始化活动配置的Python脚本。
 links.txt : 包含要在回调链接中使用的单词的文件。
 install.sh : 用于安装依赖环境的Bash脚本。
 c2-logs.txt : 记录所有的命令执行结果。

创建自动化命令

你可以为较长的命令或一些列命令设置一个短指令,,这些命令必须存在于core/cmd.py之中:

qeeAfaM.jpg!web

config.COMMAND[config.get_pointer()].append(encrypt(config.AESKey,"load SharpHound.ps1"))

在上述例子中,load SharpHound.ps1就是最终的命令样本。

工具运行截图

主屏幕:

zmi6vmU.jpg!web

Payload:

BJnAnez.jpg!web

代理列表:

FFjuauq.jpg!web

域管理员:

Fr2mY33.jpg!webZ7Fb6vm.jpg!webFbMzeuu.jpg!webVf6RJju.jpg!web

上传文件:

femQzyj.jpg!web

下载文件:

mumQfea.jpg!web


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK