¿Dónde y cómo se almacena la contraseña para la cuenta asociada con un servicio de Windows?

10

En HKLM \ SYSTEM \ CurrentControlSet \ Services \ MY-SERVICE-NAME hay una Object Nameclave que contiene el nombre del usuario, pero no puedo encontrar la contraseña.

Estoy tratando de entender cómo interactúa DP API con la administración de servicios de Windows y con el proceso de servicio en sí.

¡Gracias!

Adi Roiban
fuente

Respuestas:

12

Las contraseñas para los servicios de Windows se almacenan en el registro en:

HKEY_LOCAL_MACHINE\SECURITY\Policy\Secrets\_SC_<ServiceName>

Cuando configura un servicio de Windows para que se ejecute como una cuenta diferente, el Administrador de control de servicios utiliza la LsaStorePrivateDatafunción para almacenar la contraseña y la LsaRetrievePrivateDatafunción correspondiente para recuperarla.

Por lo tanto, es un tipo de cifrado reversible, pero lo siento, el algoritmo y la técnica de cifrado exactos no están documentados públicamente. Y ayudarlo a realizar ingeniería inversa adicional sería divertido, pero no es una buena idea para mí.

Ryan Ries
fuente
2
¡Gracias! Solo una nota: el permiso de registro predeterminado no le permitirá enumerar el contenido HKEY_LOCAL_MACHINE\SECURITYy se verá vacío. Con fines educativos, puede actualizar el permiso y permitir el pleno derecho a los administradores. Basado en su información, también encontré esta página passcape.com/index.php?section=docsys&cmd=details&id=23
Adi Roiban
2
También encontré esta publicación moyix.blogspot.ro/2008/02/decrypting-lsa-secrets.html
Adi Roiban
PD. Si alguien sigue usando Windows 2000 (¡tenemos un sistema heredado que todavía lo hace!) y quiere ejecutar un proceso en la cuenta del sistema, la versión actual de psexec no parece funcionar. Sin embargo, el programador de Windows ( atcomando) se puede utilizar: verbalprocessor.com/2007/12/05/…
JohnLBevan
2

Si bien el método de cifrado real puede no ser claro, acceder a los datos y solicitar que el sistema operativo los descifre en su nombre es un proceso bien definido, utilizando PowerShell o la herramienta NirSoft LSASecretsView .

Royce Williams
fuente