探索ShellGhost:隐形的内存逃避艺术

探索ShellGhost:隐形的内存逃避艺术

ShellGhostA memory-based evasion technique which makes shellcode invisible from process start to end.项目地址:https://gitcode.com/gh_mirrors/sh/ShellGhost

ShellGhost是一种创新的技术,它以独特的方式让shellcode在进程启动到结束的过程中始终保持无形。这个开源项目旨在分享一个自我注入的Proof-of-Concept(PoC),展示了如何利用内存中的规避策略,以应对反病毒软件和端点检测与响应系统(AV/EDR)。

项目简介

ShellGhost是基于向量异常处理结合软件断点的内存逃避技术。其目标是在执行过程中创建一种“隐形”shellcode,使其从内存扫描器的角度来看始终不可见。该项目的核心是一个名为“Shellcode Mapping”的方法,这种方法能周期性地停止线程执行,加密并替换shellcode指令,然后再解密后恢复执行,确保内存保护为RX状态。所有的这些操作都在一个初始设置为可读写的私有内存页面中完成。

ShellGhost Logo

技术解析

ShellGhost依赖于 vectored exception handling 和软件断点来控制线程执行流程。每个shellcode指令的位置对应内存页上的特定断点。通过计算线程RIP寄存器和内存分配基地址之间的相对虚拟地址(RVA),并将该地址加上加密shellcode的基础地址,可以确定要替换的断点位置。RC4 加密用于对shellcode进行保护,防止完整代码暴露在内存中。

此外,ShellGhost引入了一个名为CRYPT_BYTES_QUOTA的数据结构,用于存储每条shellcode指令的RVA和所需的字节数(quota)。这使得shellcode能够按需解密和执行,而无需一次性解密整个代码。

应用场景

ShellGhost技术适用于红队渗透测试,特别是在面对严格的安全环境时。例如,当需要隐蔽执行恶意代码而不引起反恶意软件的警报时,或者在不留下传统IOC( Indicator of Compromise)的情况下进行网络侦查和横向移动时,ShellGhost都能发挥关键作用。

项目附带了示例,展示了一种情况:在运行反恶意软件扫描时,即使逆向shell正在执行,Moneta和PE-Sieve也无法检测到壳码的存在。

Moneta Detection Pe-Sieve Scan Result

项目特点

  • 高效规避:通过内存中的断点替代和加密shellcode实现高级规避。
  • 灵活支持:兼容Metasploit shellcode,适应多种操作场景。
  • 无函数挂钩:无需直接修改或挂钩系统API,降低了被检测的风险。
  • 动态调整:智能识别并调整WinAPI参数,确保shellcode正确执行。

需要注意的是,虽然ShellGhost提供了一种强大的技术,但它并不能完全避免所有EDE的检测,因为仍然需要在某个时刻拥有可执行的内存空间。对于高级的EDE解决方案,内存扫描仅是其中的一部分。

结语

ShellGhost是红队工具箱中的一个重要补充,为对抗日益复杂的终端安全挑战提供了新的思路。如果你有兴趣探索更深层次的内存逃避技术,或希望提升你的渗透测试技巧,ShellGhost绝对值得尝试。立即加入开源社区,一起体验这项独特的技术吧!

注:编译项目时,记得禁用增量链接,项目已经预设了必要的编译器和链接器选项。

ShellGhostA memory-based evasion technique which makes shellcode invisible from process start to end.项目地址:https://gitcode.com/gh_mirrors/sh/ShellGhost

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

潘俭渝Erik

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值