这款工具最早被演示于BlackHat London 2019中,Octopus是一个基于python3的开源,可操作的C2服务器,它可以通过HTTP/ S控制Octopus powershell代理。
Octopus在与C2通信时被设计为隐秘且隐蔽的,因为它在Powershell代理与C2服务器之间的加密通道默认使用AES-256。
Octopus的功能:
- 通过HTTP / S控制代理。
- 执行系统命令。
- 下载文件。
- 加载外部Powershell模块。
- 在C2和代理之间使用加密的通道(AES-256)。
- 使用不起眼的技术执行命令并传输结果。
- 为每个目标创建自定义侦听器和多个侦听器。
- 生成不同类型的有效载荷。
- 支持Powershell 2.0或更高版本的所有Windows版本。
- 在不触摸powershell.exe进程的情况下运行Octopus Windows可执行代理。
- 创建自定义配置文件。
- 从端点自动收集信息(端点态势感知)功能。
工具安装:
执行以下命令:
代码语言:javascript复制git clone https://github.com/mhaskar/Octopus.git
sudo pip3 install -r requirement.txt
过以下命令安装`mono-devel`以在Octopus中使用C#编译功能:
代码语言:javascript复制apt install mono-devel
工具使用:
您可以编辑文件profile.py 以开始构建自己的配置文件,其中包含以下主要URL:
- file_receiver_url:处理文件下载。
- report_url:处理ESA报告。
- command_send_url:处理将发送到目标的命令。
- command_receiver_url:处理将在目标上执行的命令。
- first_ping_url:处理来自目标的第一个连接。
- server_response_header:此标头将在每个响应中显示。
您可以输入help命令来查看工具的部分帮助:
分别是一些监听器、混淆器什么的,我们来使用http(您可以通过SSL / TLS加密通道与代理进行通信,这将在与代理进行通信的同时为您提供更多功能)的方式来开启一个监听,
代码语言:javascript复制listen_http listen_ip port hostname interval page listener_name
- BindIP:侦听器将使用的IP地址。
- BindPort:要监听的端口。
- 主机名:您将用于与之通信的主机名。
- 时间间隔:代理在检查命令之前将等待的秒数。
- URL:承载有效负载的页面的名称(例如:index.php)。
- Listener_name:要使用的侦听器名称。
若是https则多出以下的选项:
- certficate_path:有效ssl证书的路径(letesencrypt证书被称为fullchain.pem)
- key_path:ssl证书的有效密钥的路径(letesencrypt证书称为key.pem)
您可以生成代理以通过您选择的特定侦听器与C2通信,代理可以为您执行多项任务,例如:
- 执行系统命令。
- 加载外部Powershell模块。
- 从目标计算机下载文件。
- 运行ESA模块以收集有关目标的一些非常有用的信息
我们可以使用以下方法生成并交付我们的代理:
- Powershell单线
- HTA单线(从APT34重复使用)
- Windows可执行文件(exe文件)
我这里以powershell为例:
代码语言:javascript复制generate_powershell listener_name
其他两种也一样:
代码语言:javascript复制generate_hta listener_name
generate_exe listener_name output_path
注:用mono-project将C#代理编译为可执行文件,从而为您构建一个现成的Windows可执行文件(exe文件)。
目标机执行生成的powershell指令,上线:
与代理进行交互之后,您只需执行命令并等待结果,即可执行系统命令!
与代理进行交互之后,您只需执行命令并等待结果,即可执行系统命令!
您还可以将Powershell模块加载到Octopus中以在攻击过程中为您提供帮助,您只需要将要使用的模块复制到“模块”目录中,然后在与代理进行交互时执行“load module_name”以直接加载模块,您也可以使用“modules”命令显示所有可用模块。
ESA模块代表“端点态势感知”,它可以帮助攻击者获取有关端点和基础架构的一些额外信息,例如:
- OS的构建是什么?
- 他们正在使用哪种AV / EDR?
- 他们启用了Sysmon吗?
- 他们正在使用哪个SIEM收集器?
- 以及其他一些信息
您可以使用Octopus从目标计算机上下载文件,只需执行“ download file_path”即可下载文件。
这里不再演示。
觉得不错,点个在看,谢谢大家。