文章总结: 本文分享了作者编写的几个BOF(BeaconObjectFiles)工具,旨在绕过主流安全软件的内存防护,特别是针对CobaltStrike的execute-assembly命令被拦截的场景。文章介绍了三个具体工具:用于检查360核晶防护状态的检查360核晶、可以查询或修改RDP端口状态的检查3389端口,以及用于检测特定安全软件进程的检查AV/EDR进程。作者通过实践测试发现,使用CobaltStrike的inline-execute内存执行方式可有效绕过拦截,并在文末鼓励读者参考源码进行二次开发。
综合评分: 85
文章分类: 渗透测试,红队,内网渗透,恶意软件,安全工具
自写的几个BOF,可过内存防护!
蚁景网安
2026年3月30日 16:30 湖南
以下文章来源于潇湘信安 ,作者3had0w
潇湘信安 .
一个不会编程、挖SRC、代码审计的安全爱好者,主要分享一些安全经验、渗透思路、奇淫技巧与知识总结。
0x00 前言
前两年在和一些师傅的交流中很多人说现在国内杀软的内存防护拦截了CobaltStrike的execute-assembly命令(如某绒…),只要执行.NET程序就会出现下图报错提示或者直接掉线,如下图所示。
-
仅记录模式:执行.NET会临时卡掉线一段时间,然后报出下图错误,但不会掉线!出现这种情况基本就可以确定是被内存防护拦了,但攻击行为只会被记录在安全日志中,上线木马文件也不会被查杀。
-
自动处理模式:执行.NET后会触发告警弹窗并立即掉线(上线木马文件也会被删掉清理),还会将此攻击行为记录在安全日志中,即使用于上线的免杀木马可过静态查杀,但只要触发内存防护拦截一样会杀。
-
记得火绒的内存防护默认选项为仅记录模式,但我们在实战测试中如遇到火绒时还是得注意下这个。
其实这个问题很早就发现了,所以之前在写PostExpKit插件时就在“权限提升”中单独写了个“InlineExecute[.NET]”用于应对以上拦截场景,不知道是不会用?还是没有看到?如下图所示。
- https://github.com/EricEsquivel/Inline-EA
- https://github.com/anthemtotheego/InlineExecute-Assembly
使用方法也很简单,主要也就3个选项:1.常用NET土豆、2.其他NET程序、3.运行NET参数:
- 常用NET土豆:内置了几个常用Potato提权exp,默认执行该选项,要执行啥命令在“运行NET参数”处修改就行,而且在执行带空格命令时不用加双引号(插件代码中已做处理)!
- 其他NET程序:该选项用于执行我们自写或开源.NET程序,点击后边的文件选择框找到要执行的.NET程序,在“运行NET参数”输入要执行的参数和命令即可,不会执行“常用NET土豆”。
- 运行NET参数:该选项用于以上两个要执行.NET程序中输入参数和命令,如果没有留空即可。
又有点跑题了,想到就顺便记录下,现在回归到正题:以前写那插件的“查询/开启/关闭RDP端口”功能也是用我很早之前写的一个.NET工具,所以现在也都没法用了…。
这几天抽空又写了几个用于绕过以上场景进行信息收集的BOF(CobaltStrike的inline-execute内存执行方式目前暂时还没有被拦)。
CNA插件脚本我就不写了,大家自己去写下吧,其实都挺简单的,直接使用beacon_inline_execute这个函数去执行我们编译好的BOF即可。
0x01 检查360核晶
这个BOF用于检查360安全软件是否已开启360核晶防护引擎?主要通过
HKLM\SYSTEM\CurrentControlSet\Services\360Hvm注册表WorkConfig值判断(1为开启,0为关闭),如下图所示。
reg query HKLM\SYSTEM\CurrentControlSet\Services\360Hvm /v WorkConfig
如果目标主机上不存在360安全防护软件,我们在执行这个BOF就可能会出现以下报错RegOpenKeyExW failed: 2,因为指定的360Hvm注册表项不存在,如下图所示。
0x02 检查3389端口
这个BOF用于检查目标主机是否已开启RDP端口和对应端口号?也能开启或关闭RDP端口(需要Admin/System高权限),主要通过查询、修改以下几个注册表实现对应功能,如下图所示。
reg query "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v fEnableWinStationreg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v fEnableWinStation /t REG_DWORD /d 1 /f
reg query "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v PortNumberreg query "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnectionsreg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f
工具参数:
Usage: inline-execute CheckRDP.[x64/x86].o [options]
-ps Check RDP Service Port/Status-on Open RDP Service Port-off Close RDP Service Port
注意:我们在某绒下测试发现使用这个BOF开启或关闭RDP端口时只有首次能执行成功,就是说可以执行成功,但也会触发内存防护拦截,查询RDP端口开放情况和端口号没问题,如下图所示。
仅记录模式下会出现报错5:
自动处理模式下会掉线清除木马:
0x03 检查AV/EDR进程
这个BOF用于检查目标主机正在运行的进程列表中是否有AV/EDR等安全防护软件相关进程?源码中暂时不提供进程数据,只拿了4个D盾进程用于示例,大家可以自己去收集整理,如下图所示。
文末小结
关于过防护的问题我只测了某绒,360没去细测(应该也能过),自己去测下吧。另外分享这几个源码算是抛砖引玉,感兴趣的师傅可以自己参考着去写写,建议可以看下24师傅和老外的几个项目源码,现在有了AI加持,只要稍微有点基础能看懂部分源码,自己写一些小工具小项目是没问题的…!!!
学习网安实战课程,戳“阅读原文”
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:蚁景网安 null《自写的几个BOF,可过内存防护!》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。











评论