ASP.NETWebshell执行BOF

admin 2026-03-12 22:59:55 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 文章介绍了一款ASP.NETWebshell工具,通过集成COFFLoader实现BOF文件内存执行,旨在绕过AV/EDR检测。该工具利用.NET环境特性,支持无文件落地攻击,适用于突破Web防御与权限提升。文中详细记录了编译环境修复、脚本配置及上线测试的全流程,并列举了部分BOF兼容性问题与交互优化技巧。作者特别提醒需清理临时文件以防样本被提取,为红队渗透提供了高隐蔽性的技术方案与实战经验。 综合评分: 85 文章分类: 渗透测试,红队,免杀,Web安全,安全工具


cover_image

ASP.NET Webshell执行BOF

原创

3had0w 3had0w

潇湘信安

2026年3月12日 09:31 湖南

| Ima知识库名称 | 加入条件 | | — | — | | 潇湘信安协同知识库(更新~ing!) | 限时免费 | | 潇湘信安学习资料库(更新~ing!) | ≥3年粉丝 | | 潇湘信安内部知识库(更新~ing!) | 星球成员 |

现在只对常读和星标公众号才展示大图推送,建议大家把“潇湘信安”设为星标,否则可能看不到了!

前几天@IIE Fiber师傅给我发了一个项目,感觉在某些渗透场景中可用于绕过一些防护限制等,所以在本地进行了复现测试并写下了这篇记录文章,仅分享给需要且能用的上的师傅们,不喜勿喷…!!!

0x00 项目简介

该项目是一个针对ASP.NET环境的WebShell工具,核心结合了COFFLoader(Common Object File Format Loader)机制,本质是一款面向Windows IIS服务器(运行ASPX页面)的恶意脚本工具。

0x01 应用场景

在针对Windows+IIS+ASP.NET架构的渗透测试(或恶意攻击)中,该工具的核心价值体现在以下几点:

1. 突破Web层防御,建立持久控制

ASPX是.NET环境的原生脚本格式,若目标服务器存在文件上传漏洞(如允许上传ASPX文件),即可直接部署到服务器,成为渗透者的控制入口。相比普通ASPX WebShell,其结合COFFLoader的设计更隐蔽:

  • 传统WebShell多直接执行cmd/powershell命令,易被日志审计、杀软规则检测;
  • 该工具可将恶意功能封装为COFF二进制片段,通过内存加载执行,避免磁盘落地恶意文件,降低被静态查杀、文件监控发现的概率。
  1. 内存执行恶意代码,规避终端检测

COFFLoader的核心作用是加载COFF格式的二进制代码并在内存中运行:

  • 渗透者可将自定义的恶意功能(如提权、信息收集、横向移动、凭据窃取)编译为 COFF 文件,通过该WebShell加载执行;
  • 由于全程在内存中操作,无恶意文件落地,能有效规避基于文件特征的杀毒软件、EDR(终端检测与响应)的检测,提升攻击的隐蔽性。
  1. 适配.NET环境的精准攻击

针对使用ASP.NET(尤其是老旧.NET Framework)的企业服务器,这类WebShell能精准利用环境特性:

  • 绕开部分针对PHP/ASP WebShell的防护规则(很多防护设备对ASPX的检测规则相对薄弱);
  • 利用.NET运行时的权限特性,若应用池权限较高(如Network Service、Local System),可以直接通过WebShell执行Potato等提权exp进行权限提升操作。

0x02 复现记录

首先执行以下命令将ASPX_WebShell_COFFLoaderCS_COFFLoader两个项目克隆到本地,关于该项目的一些使用前提条件可以在项目地址中查看Prerequisites部分,如下图所示。

git clone https://github.com/epotseluevskaya/ASPX_WebShell_COFFLoader.gitgit clone https://github.com/trustedsec/CS_COFFLoader.git

1. 编译CS_COFFLoader项目

然后再执行以下命令进入到CS_COFFLoader目录,使用bash命令对源码进行编译,如果在编译过程中出现下图报错可以选择无视,只要能正常编译出.o文件就行(需执行两次),如下图所示。

cd CS_COFFLoaderbash build.sh

注:原项目build.sh编译会出现上图报错,无法正常编译.exe文件,这是因为该脚本中mkdir创建目录和RunCOFF.cs大小写问题,使用以下修复优化后的build.sh编译就不会报错了,如下图所示。

这里假装贴了代码,这破公众号的编辑器BUG是真多,从去年到现在还没修复,快受不了了……!

2. 修改ASPX_WebShell_COFFLoader项目

最后我们需要将刚编译输出的BOF Base64编码内容拷贝粘贴到ASPX_WebShell_COFFLoader项目bof.aspx文件的504{{BEACON_DATA}}处即可,如下图所示。

这里还需要修改下ASPX_WebShell_COFFLoader项目的webshell_bof_client.py客户端脚本的73BEACONS_DIR处为我们编译的BOF根目录,目录结构格式如下,如下图所示。

/tmp/bof├── checkav/│ ├── checkav.x64.o│ └── checkav.x86.o

将之前修改好的bof.aspx文件上传到目标服务器的Web目录下,然后再使用ASPX_WebShell_COFFLoader项目的webshell_bof_client.py客户端脚本连接bof.aspx即可,如下图所示。

rlwrap python webshell_bof_client.py http://192.168.1.107/bof.aspx

这里以我去年写的两个BOF为例来测试下:checkvt(检查360核晶开启状态)、checkav(检查存在的AV/EDR进程),其他BOF我就不依依测试了,渗透常用的BOF项目有以下几个,如下图所示。

  • https://github.com/REDMED-X/OperatorsKit
  • https://github.com/trustedsec/CS-Remote-OPs-BOF
  • https://github.com/trustedsec/CS-Situational-Awareness-BOF

0x03 注意事项

1、浏览器直接访问bof.aspx脚本会出现以下多种405报错(起到伪装效果,但不影响连接,可以选择无视),如果不是POST请求则返回HTTP状态码405(Method Not Allowed),如下图所示。

if (Request.HttpMethod != "POST"){    Response.StatusCode = 405;    return;}try{...SNIP...}

2、直接使用python执行webshell_bof_client.py客户端脚本连接bof.aspx得到的半交互python无法使用上下左右按键(显示乱码^[[A^[[B^[[D^[[C),可用rlwrap解决,如下图所示。

python webshell_bof_client.py http://192.168.1.110/bof.aspx

3、不是每个BOF都能正常执行,有个别BOF在执行过程中也会出现报错,如:dir、tasklist等,带参数的BOF貌似也有些问题,具体啥原因我没有去深入研究,感兴趣的师傅可以去研究下,如下图所示。

4、访问bof.aspx文件后会在以下.NET环境的临时文件缓存目录中产生对应的样本文件,我们实战渗透中如果有用到这个项目不要忘了清理下这个目录下的文件(防止被提取样本),如下图所示。

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\

破编辑器、破编辑器、破编辑器。。。

关注我们

 还在等什么?赶紧点击下方名片开始学习吧 


知 识 星 球

星球已过800人,暂不再发放优惠券,如还有需要的师傅可加我VX:S_3had0w,等你一起来学习…!

| Ima知识库名称 | 加入条件 | | — | — | | 潇湘信安协同知识库(更新~ing!) | 限时免费 | | 潇湘信安学习资料库(更新~ing!) | ≥3年粉丝 | | 潇湘信安内部知识库(更新~ing!) | 星球成员 |

| | | | — | — | | | |


推 荐 阅 读



免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:潇湘信安 3had0w 3had0w《ASP.NET Webshell执行BOF》

评论:0   参与:  0