这篇文章将为大家详细讲解有关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
运行之后,你将会看到终端屏幕出现下列内容:
Ninjia C2允许我们以更安全的方法自定义回调URL,你需要编辑文件links.txt并添加连接中需要用到的单词。Ninjia C2将会从中随机选择单词并用于URL地址中。如果你想使用静态连接,可以直接编辑core/config.py文件来进行功能修改。
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之中:
config.COMMAND[config.get_pointer()].append(encrypt(config.AESKey,"load SharpHound.ps1"))
在上述例子中,load SharpHound.ps1就是最终的命令样本。
关于“Ninja是什么”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。