在日常红队渗透过程中,我们常常会遇到信息泄露点,但并不是所有信息泄露都能直接带来突破,很多时候还需要配合对目标系统的理解、对语言的逆向能力,以及对工具链的熟练掌握。
本文记录某位师傅一次真实的 .NET 应用渗透案例:通过整站源码泄露,逆向 .NET DLL 获取密码加密算法,最终成功解密管理员账号并完成 Webshell 上传,打通外网入口。整个过程短小却充满启发性,适合读者学习如何在类似场景中思考与突破。
目标站点暴露了整个 wwwroot
目录源码,文件包含如下典型结构:
.aspx
页面.ashx
一般处理程序.cs
源代码文件/bin/*.dll
程序集文件/App_Data/*.mdf
数据库文件
初看之下,这是一个标准的 .NET WebForm 项目,采用前后端分离的代码结构。前端使用 .aspx
编写界面,后台逻辑放在 aspx.cs
中,通过 Visual Studio 编译为 DLL 程序集,集中存放于 /bin/
目录。
由于此前未接触过 .NET 技术,这位师傅快速学习了一些 .NET 的基础概念和项目结构。结合站点源码推测,这很可能是某个流行 CMS 系统的部署包。
1.1 发现数据库密码
/App_Data/
下发现了 .mdf
类型的数据库文件。利用 SQL Server Management Studio 成功挂载数据库,定位到后台管理员账户数据表。1.2 追溯加密逻辑
Admin/login.aspx.cs
文件中,我们发现了登录的逻辑位于BLL.GetModel方法,如下图所示。string password = DESEncrypt.Encrypt(inputPassword);
搜索 DESEncrypt
定位到了 cms.Common/DESEncrypt.cs
文件,这里封装了完整的对称加密与解密逻辑。
publicstaticstringEncrypt(string Text,string sKey ="yhcms")
{
DESCryptoServiceProvider des =newDESCryptoServiceProvider();
des.Key = ASCIIEncoding.ASCII.GetBytes(
FormsAuthentication.HashPasswordForStoringInConfigFile(salt,"md5").Substring(0,8));
des.IV = des.Key;
...
}
发现使用了 DESCryptoServiceProvider 类,并通过 salt 的 MD5 截取前 8 位作为密钥与 IV,构造对称加密流程。默认密钥为 "yhcms"
。理论上只要将 Decrypt
方法加上一个 Main 函数重新编译为 Console 程序,即可解密数据库中管理员的密码。
尝试直接编写主函数调用 Decrypt(encryptedText, "yhcms")
,但解密报错。这说明实际运行环境中使用的 Salt 并非 "yhcms"
,可能被 CMS 魔改或更换。
1.3 通过ILSPY反编译
/bin
目录下找到多个 DLL 文件,其中包括 cms.Common.dll
。初步猜测该 DLL 存放了真正运行的 DESEncrypt 实现。使用 ILSpy 工具打开 cms.Common.dll
,查看到完整的 DESEncrypt
源码。在解密函数中找到了如下关键代码:
string key = FormsAuthentication.HashPasswordForStoringInConfigFile("yunhancms","md5").Substring(0,8);
原来真实使用的加密 Salt 是 "yunhancms"
,这解释了为何之前使用 "yhcms"
失败。修改解密脚本中的 Salt:
returnDecrypt(encryptedText,"yunhancms");
重新编译运行,成功解密出后台管理员密码,获取后台登录权限。
1.4 后台上传文件
.aspx
、.ashx
文件;参数中存在 SQL 注入过滤。在数据库配置中添加白名单后缀,将 .aspx
添加为允许上传类型。接着使用 哥斯拉生成 .NET ASPX WebShell 上传,并成功连接上线,实现外网命令控制权限。
这一次的短暂渗透旅程,为我们展示了从信息泄露到成功 Getshell 的完整链路。通过这篇文章,希望读者能够掌握以下技能:
面对源码泄露时如何定位关键模块;
如何分析并还原加密逻辑;
如何使用反编译工具还原被封装的实现;
如何从后台入手绕过安全限制进行文件上传与控制
以上相关的知识点已收录于新书《.NET安全攻防指南》,全书共计25章,总计1010页,分为上下册,横跨.NET Web代码审计与红队渗透两大领域。
上册深入剖析.NET Web安全审计的核心技术,帮助读者掌握漏洞发现与修复的精髓;下册则聚焦于.NET逆向工程与攻防对抗的实战技巧,揭秘最新的对抗策略与技术方法。
微软的.NET技术广泛应用于全球企业级产品,包括其知名的Exchange、SharePoint等,国内如 某友的Cloud、某通的T系列、某蝶的云产品 等也广泛采用。各行业核心业务均依赖于此技术。这些基于.NET的系统频繁遭攻击,问题涵盖任意文件上传、反序列化漏洞、SQL注入、文件下载漏洞、命令执行漏洞等。
截至目前,星球已推出近100节内容 (还在持续增加),包括70个视频+30份PDF文档。我们已将内容细致划分为15个分类,并随新漏洞类型的出现持续扩展。在这里您将学到包括但不限于以下漏洞类型。
录播课程
.NET 安全审计课程持续更新中,以下是部分之前已发布的录播章节一览:
专属福利
1. 学习模式: 代码审计知识星球在线录播视频 +后续漏洞挖掘直播、内部专属交流社区答疑解惑;
2. 优享福利:加入.NET代码审计星球后赠送永久dot.Net安全基础入门星球。
课程评价
欢迎对.NET代码审计关注和关心的同学加入我们 [dot.Net安全代码审计] ,目前已有近 100+ 位朋友抢先预定。
星球门票后期价格随着内容和质量的不断沉淀会适当提高,越早加入越划算! 现在加入星球可享受星球早鸟价,现在加入星球可享受星球100元优惠券或送出一套团队新书《.NET安全攻防指南》签名版。
期待在这里能遇到有情有义的小伙伴,大家聚在一起做一件有意义的事,可扫描下方老师二维码了解更多详情。
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...