第99篇:记一次红队攻防中.Net代码审计与防守方的对抗过程

e4c734a9a749e0baa5202a1af3832a08.png

 Part1 前言 

大家好,我是ABC_123。最近在复习整理之前自己审过的一些代码,找到了几年前红队评估项目中审计的一个.Net代码的案例,我平时很少看.NET的代码,于是就拿出代码重新学习总结了一下,整个审计过程比较简单。

建议大家把公众号“希潭实验室”设为星标,否则可能就看不到啦!因为公众号现在只对常读和星标的公众号才能展示大图推送。操作方法:点击右上角的【...】,然后点击【设为星标】即可。

d532fa6bf0a5c6662618d01bbe3d5907.jpeg

 Part2 研究过程 

大致过程如下:目标网站的资产存在一个XXX系统,通过信息收集找到了该系统的供应商。对供应商官网的子域名进行了收集,其中一个子域名搭建的这套系统的测试站点。经过目录扫描,测试站点存在一个网站的备份文件可以直接下载,于是得到了该系统的源代码。

  • 反编译工具的使用

可选择的.NET反编译工具主要有四个:dnSpy(于2020年左右停止更新)、ILSpy、dotPeek(JetBrains发布)、dnSpyx(非官方更新版)。选择一个自己用的顺手的反编译工具对*.Web.dll文件进行反编译,并导出所有反编译后的代码。我也将反编译结果对比了一下,以下是dnSpyx的反编译结果:

4ff707c5a8d518fc6f25f7adde146b32.png

以下是ILSpy的反编译结果:

78051bf9e0e74f15be742df60d184ca1.jpeg

以下是dotpeek的反编译结果:

8084f2c8fb7c90af7f7a62b409f1a616.jpeg

  • 审计上传漏洞

将反编译的代码导入Rider64(IntelliJ IDEA公司出品的),使用IDE进行代码审计、搜索关键字更方便一些。全局搜索”上传”关键字,挨个查看有可能实现了上传功能的.Net类。

898e42dc9a641dbc83a423c4af0a7581.png

最终发现了如下代码,有可能存在上传漏洞,[HttpPost]提示该请求只支持POST请求形式:

e00e8aea1a0e37497bac050fe38127db.png

构造上传数据包如下,最终通过; filename;;;; 的方式结合.cer扩展名绕过了WAF。

be4b74894ca6efaac6371404c75279ef.png

  • 禁止脚本执行问题解决

等到第二天起来的时候,访问webshell发现提示“HTTP 错误403.1 - Forbidden”,该目录不允许运行可执行文件,也就意味着webshell在当前目录无法执行。经过判断,猜测蓝队防守方做了加固,在webshell所在文件夹下放置了web.config文件,更改了默认配置,使脚本在当前目录下不能执行。

1594c36ba223a102cefc1f362f6320a1.png

接下来想了解决办法,我们可以找一处任意文件删除漏洞,将web.config文件删掉,从而使web.config文件失去作用,使Webshell可以继续执行。搜索delete关键字挨个查看,找到了一处任意文件删除漏洞,关键代码是System.IO.File.Delete(path),[HttpPost]提示该请求只支持POST形式:

76982ba6b112adb7815973426392afad.png

最终按照代码拼接成如下数据包,通过..\..\跳转,成功将web.config文件删掉:

9ae4ff3b87c3ebf8a5e10948839334bf.png

终于webshell又可以正常执行了,后续我们在当前目录放置了一个可以允许脚本执行的web.config文件,防止蓝队防守发现,在内网也做了新的权限维持。

  • 任意文件读取漏洞

如果担心任意文件删除漏洞会影响业务,可以提前审计一个任意文件读取漏洞,查看一下web.config文件的内容,判断一下删除该文件是否会对业务产生影响,或者是提前与甲方沟通好。

adc7382c1be1bc0253ef489be18806dc.png

 Part3 总结 

1.  任意文件删除漏洞的审计也是有价值的,在本次案例中得到了印证。

2.  如果担心删除文件会影响业务,可以审计一个文件读取漏洞,查看一下文件内容,具体评估一下风险。

38e673ddbb4a84e0d76d0940ff6c922f.png

公众号专注于网络安全技术,包括安全咨询、APT事件分析、红队攻防、蓝队分析、渗透测试、代码审计等,99%原创,敬请关注。

Contact me: 0day123abc#gmail.com

(replace # with @)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

希潭实验室

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

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

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

打赏作者

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

抵扣说明:

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

余额充值