Descifrado de mensajes View State en IIS: de claves autogen a claves finales

Fuentes: Decrypting View State Messages

El View State de ASP.NET almacena el estado de las páginas web en el lado del servidor y, cuando está mal configurado, puede ser explotado por atacantes. Este artículo, continuación de una investigación previa sobre una vulnerabilidad de IIS sin parche, explica paso a paso cómo descifrar mensajes de View State cifrados en un servidor Windows comprometido, partiendo exclusivamente de una imagen de disco y del archivo web.config.

El autor describe la jerarquía de claves involucrada. En primer lugar, las llamadas autogen keys son blobs de 1024 bytes generados mediante RNGCryptoServiceProvider en System.Web.HttpRuntime::SetAutAutogenKeys y almacenados en el registro de Windows o en un secreto LSA. A partir de ese blob se derivan las master machine keys: en la configuración legacy, la clave de validación ocupa los primeros 64 bytes y la de descifrado los 24 bytes siguientes (constantes _AutoGenValidationKeySize y _AutoGenDecryptionKeySize).

El texto distingue entre la criptografía legacy, donde basta con descartar el hash de validación y aplicar el algoritmo simétrico correspondiente, y la configuración moderna, que históricamente ha requerido reflexión para engañar a IIS y forzar el descifrado. El autor menciona herramientas habituales como CyberChef y Blacklist3r, pero las considera incómodas, y adelanta la publicación de una nueva utilidad propia.

El punto clave para el analista es que disponer de las autogen keys no es suficiente: es necesario derivar las master keys y, a partir de ellas, las final machine keys para poder descifrar el View State. El artículo cubre el proceso de derivación para ambas configuraciones criptográficas y aporta fragmentos de código de System.Web.Configuration.MachineKeySection::RuntimeDataInitialize() como referencia técnica directa para respondedores de incidentes y analistas forenses.