.NET内网实战:通过 CryptoService 解密 Cookie 票据

原文链接: https://mp.weixin.qq.com/s?__biz=MzUyOTc3NTQ5MA==&mid=2247500026&idx=1&sn=e702f05457072a9a4dda1103bd5623a1

.NET内网实战:通过 CryptoService 解密 Cookie 票据

专攻.NET安全的 dotNet安全矩阵 2025-07-06 01:10

01

阅读须知

此文所节选自小报童《.NET 内网实战攻防》专栏,主要
内容有.NET在各个内网渗透阶段与Windows系统交互的方式和技巧,对内网和后渗透感兴趣的朋友们可以订阅该电子报刊,解锁更多的报刊内容。

02

基本介绍

本文内容部分节选自小
报童《
.NET 通过 CryptoService 解密Cookie票据
》,
完整的
文章内容请加入小报童后订阅查看。
现在限时
只需69元,永久
买断!
目前已有300+位朋友抢先预定,我们会长期更新,对.NET内网安全的朋友们请尽快订阅该报刊!

.NET内网实战:通过 CryptoService 解密 Cookie 票据

03

原理分析

在红队渗透活动中,目标站点的 Cookie 往往包含了身份权限等关键敏感信息。如果红队成功获取该 Cookie 并能解密其内容,将意味着能还原出用户的真实身份、可进一步伪造 Cookie 实现用户身份。而 .NET FrameWork 应用中使用最广泛的身份验证机制是 —— FormsAuthentication,它默认使用 .ASPXAUTH Cookie 来存储加密后的票据信息。

3.1 ASPXAUTH

.
ASPXAUTH 是 .NET Forms 身份验证机制默认生成的 Cookie 名称,当用户登录成功后,一般情况下 .NET 会通过以下流程生成 .ASPXAUTH:

生成一个 FormsAuthenticationTicket 对象。
使用 machineKey 中的加密配置进行加密和签名。
将加密后的字符串写入名为 .ASPXAUTH 的 Cookie。
客户端在后续请求中自动携带该 Cookie,实现免登录访问。

其值为一个经过对称加密 + HMAC 签名 的 FormsAuthenticationTicket 字符串。这个票据包含了如下字段信息:

.NET内网实战:通过 CryptoService 解密 Cookie 票据

要想还原或伪造 .ASPXAUTH,红队至少还需要知道加密算法类型、签名以及对应的值,这些信息可以从web.config配置中找到。默认的 Cookie 名称可以通过 Web.config 修改,但 .ASPXAUTH 是最常见的默认名。

3.2 加解密核心类

在 .NET 的安全架构中,加密与验证是确保用户会话、数据完整性及机密性不可或缺的基础机制,微软通过 AspNetCryptoServiceProvider 构建加解密服务。

.NET内网实战:通过 CryptoService 解密 Cookie 票据

虽然该类为 internal 类型,通常不直接暴露于开发者 API,但确是 ViewState 加密、Forms Authentication Ticket、EventValidation 数据结构等功能模块背后的关键支柱。本质上,该类是一个加密服务提供器,用于根据配置中指定的算法与密钥生成对称加解密服务。

这些值通常来自于 .NET 配置文件的 machineKey 节点,具体可参考如下配置

<machineKey
validationKey=&#34;56AB7132992003EE87F74AE4D9675D65EED8018D3528C0B8874905B51940DEAF6B85F1D922D19AB8F69781B2326A2F978A064708822FD8C54ED74CADF8592E17&#34;
decryptionKey=&#34;A69D80B92A16DFE1698DFE86D4CED630FA56D7C1661C8D05744449889B88E8DC&#34;
validation=&#34;SHA1&#34;
decryption=&#34;AES&#34;/>

3.3 解密核心类

在 .NET 中,AspNetCryptoServiceProvider 的主要职责是根据配置的密钥和算法,生成一个符合特定用途(Purpose)的加解密服务实例。而实现这一目标的关键方法就是 GetCryptoService 方法,该方法的定义如下所示。

publicICryptoServiceGetCryptoService(Purpose purpose,CryptoServiceOptions options = CryptoServiceOptions.None)

通过 Unprotect(byte[] protectedData),对数据进行解密,得到明文的Cookie结构,具体代码如下所示

AspNetCryptoServiceProvider obj =newAspNetCryptoServiceProvider(strValidationKey, strValidationAlgorithm, strDecryptionKey, strDecryptionAlgorithm);
ICryptoService cryptoService = obj.GetCryptoService(objPurpose, CryptoServiceOptions.CacheableOutput);
var data = cryptoService.Unprotect(protectedData);

我们以 Sharp4ASPXCookieDecrypt.exe 为例,该工具是基于此技术实现的Cookies解密工具,具体用法如下所示。

.NET内网实战:通过 CryptoService 解密 Cookie 票据


上 ,
Cookie 的结构与加密机制往往是一个被忽略但极具攻击潜力的点。对于 .NET 而言,.ASPXAUTH 就是这样一个兼具隐蔽性与高价值的攻击目标。理解其加密机制、还原手段与防御策略,是每一位红队成员与防御者的必修课。
想要了解
完整或者更多的内网安全方向的文章,可以移步订阅小报童《.NET 内网实战攻防》电子报刊。

04

欢迎加入.NET 电子报刊

我们的小报童电子报刊【.NET内网安全攻防】也开始运营,引入小报童也是为了弥补知识星球对于轻量级阅读支持的不足,为用户读者提供更佳的阅读体验。
如果您对阅读体验的需求比较高,那么可以订阅这个专栏


次电子报刊《.NET 内网安全攻防》专栏,内容主要有.NET在各个内网渗透阶段与Windows系
统交互的方式和技巧,可细分为以下8个方向。

1) .NET 安全防御绕过
2) .NET 本地权限提升
3) .NET 内网信息收集
4) .NET 内网代理通道
5) .NET 内网横向移动
6) .NET 目标权限维持
7) .NET 数据传输外发
8) .NET 目标痕迹清理

原价899,现在限时
只需69元,永久买断

目前已有300+位朋友抢先预定,我们会长期更新,初步计划保持每周更新1-2篇新内容,对.NET内网安全的朋友们请尽快订阅该报刊!
图片

每增加五十人涨价10元,抓紧订阅,超值!
订阅后请关注公众号:
dotNet安全矩阵,发送订单截图和您的微信号,邀请您加入专属交流群。
感兴趣的朋友,可以点击链接:https://xiaobot.net/p/dotNetAttack,或者
扫描下方海报微信二维码加入即可

订阅后小报童定时会将最新内容通过微信推送给您。

图片