Hasty Briefsbeta

双语

Decrypting View State Messages

5 days ago
  • #ASP.NET cryptography
  • #IIS security
  • #view state decryption
  • 用户从Windows事件日志中发现了一个恶意的加密视图状态,但只有一个磁盘镜像和从Windows注册表自动生成的密钥。
  • 视图状态解密从传统设置下的简单(使用CyberChef)到现代设置下的复杂(使用Blacklist3r或反射技术)各不相同。
  • 自动生成的密钥是存储在注册表或LSA机密中的1024字节二进制数据块,通过SetAutogenKeys()函数生成,包含随机字节和IIS函数。
  • 对于传统加密,主验证和解密密钥是从自动生成密钥的特定偏移量(64字节和24字节)中提取的。
  • 传统设置中的最终机器密钥是通过对应用虚拟路径或ID进行哈希(使用GetNonRandomizedStringComparerHashCode函数)从主密钥派生而来的。
  • 现代加密使用带有特定用途(如'MachineKeyDerivation')和辅助参数(如IsolateApps)的HMACSHA512算法来派生主密钥。
  • 密钥大小导致兼容性问题:AES支持24/32字节,TripleDES只支持24字节,DES只支持8字节,这使得自动生成的密钥可能引发错误。
  • 现代设置中的最终机器密钥通过类似方式派生,用途基于应用目录、页面类型和可选的视图状态用户密钥。
  • 解密过程包括base64解码、剥离验证哈希,并使用最终密钥进行解密(传统方式使用零初始化向量,现代方式提取初始化向量)。
  • VSRipper是引入的一种工具,用于自动化视图状态解密,支持所有现代/传统负载,并能使用自动生成的密钥进行暴力破解。