📘Otros robos de credenciales en Windows
Existen muchas otras técnicas que podemos utilizar para obtener credenciales en un sistema Windows. Esta sección no cubrirá todos los escenarios posibles, pero analizaremos los más comunes.
Credenciales guardadas de Cmdkey
Listado de credenciales guardadas
El comando cmdkey se puede utilizar para crear, enumerar y eliminar nombres de usuario y contraseñas almacenados. Es posible que los usuarios deseen almacenar credenciales para un host específico o utilizarlo para almacenar credenciales para conexiones de servicios de terminal para conectarse a un host remoto mediante Escritorio remoto sin necesidad de ingresar una contraseña. Esto puede ayudarnos a movernos lateralmente a otro sistema con un usuario diferente o a escalar privilegios en el host actual para aprovechar las credenciales almacenadas para otro usuario.
C:\htb> cmdkey /list
Target: LegacyGeneric:target=TERMSRV/SQL01
Type: Generic
User: inlanefreight\bobCuando intentamos conectarnos mediante RDP al host, se utilizarán las credenciales guardadas.

También podemos intentar reutilizar las credenciales runas para enviarnos un reverse shell como ese usuario, ejecutar un binario o iniciar una consola PowerShell o CMD con un comando como:
Ejecutar comandos como otro usuario
Credenciales del navegador
Recuperar credenciales guardadas de Chrome
Los usuarios suelen almacenar en sus navegadores las credenciales de las aplicaciones que visitan con frecuencia. Podemos utilizar una herramienta como SharpChrome para recuperar las cookies y los inicios de sesión guardados de Google Chrome.
Nota: La recopilación de credenciales de los navegadores basados en Chromium genera eventos adicionales que podrían registrarse e identificarse como 4983, 4688, y 16385, y ser monitoreados por el Blue Team o un SOC.
Gestores de contraseñas
Muchas empresas proporcionan administradores de contraseñas a sus usuarios. Esto puede ser en forma de una aplicación de escritorio como KeePass, una solución basada en la nube como 1Password, o una bóveda de contraseñas empresarial como Thycotic o CyberArk. Obtener acceso a un administrador de contraseñas, especialmente uno utilizado por un miembro del personal de TI o un departamento completo, puede llevar al acceso a nivel de administrador a objetivos de alto valor como dispositivos de red, servidores, bases de datos, etc.
Podemos obtener acceso a una bóveda de contraseñas mediante la reutilización de contraseñas o adivinando una contraseña débil/común. Algunos administradores de contraseñas como KeePassse almacenan localmente en el host. Si encontramos un archivo .kdbx en un servidor, estación de trabajo o recurso compartido de archivos, sabemos que estamos tratando con una base de datos KeePass que a menudo está protegida solo por una contraseña maestra. Si podemos descargar un archivo .kdbx a nuestro host atacante, podemos usar una herramienta como keepass2john para extraer el hash de la contraseña y ejecutarlo a través de una herramienta de descifrado de contraseñas como Hashcat o John the Ripper .
Extracción del hash de KeePass
Primero, extraemos el hash en formato Hashcat usando el script. keepass2john, onstalado por defecto
Cracking de hash sin conexión
Luego podemos enviar el hash a Hashcat, especificando el modo hash 13400 para KeePass. Si tenemos éxito, podemos obtener acceso a una gran cantidad de credenciales que se pueden usar para acceder a otras aplicaciones/sistemas o incluso dispositivos de red, servidores, bases de datos, etc., si podemos obtener acceso a una base de datos de contraseñas utilizada por el personal de TI.
Correo electrónico
Si obtenemos acceso a un sistema unido a un dominio en el contexto de un usuario de dominio con una bandeja de entrada de Microsoft Exchange, podemos intentar buscar en el correo electrónico del usuario términos como "contraseña", "credenciales", "password", etc. utilizando la herramienta MailSniper .
LaZagne
Cuando todo lo demás falla, podemos ejecutar la herramienta LaZagne para intentar recuperar credenciales de una amplia variedad de software. Dicho software incluye navegadores web, clientes de chat, bases de datos, correo electrónico, volcados de memoria, varias herramientas de administración de sistemas y mecanismos de almacenamiento de contraseñas internas (es decir, Autologon, Credman, DPAPI, secretos LSA, etc.). La herramienta se puede utilizar para ejecutar todos los módulos, módulos específicos (como bases de datos) o contra un software en particular (es decir, OpenVPN). El resultado se puede guardar en un archivo de texto estándar o en formato JSON. Vamos a probarlo.
Menú de ayuda de LaZagne
Podemos ver el menú de ayuda con la flag -h:
Ejecución de todos los módulos de LaZagne
Como podemos ver, hay muchos módulos disponibles. Al ejecutar la herramienta con la opción all, se buscarán aplicaciones compatibles y se devolverán las credenciales de texto sin formato que se encuentren. Como podemos ver en el ejemplo siguiente, muchas aplicaciones no almacenan las credenciales de forma segura (¡es mejor no almacenarlas nunca, punto!). Se pueden recuperar fácilmente y utilizar para escalar privilegios localmente, pasar a otro sistema o acceder a datos confidenciales:
SessionGopher
Podemos utilizar SessionGopher para extraer credenciales de PuTTY, WinSCP, FileZilla, SuperPuTTY y RDP guardadas. La herramienta está escrita en PowerShell y busca y descifra información de inicio de sesión guardada para herramientas de acceso remoto. Se puede ejecutar de forma local o remota. Busca en la HKEY_USERScolmena a todos los usuarios que hayan iniciado sesión en un host unido a un dominio (o independiente) y busca y descifra cualquier información de sesión guardada que pueda encontrar. También se puede ejecutar para buscar archivos de clave privada de PuTTY (.ppk), escritorio remoto (.rdp) y archivos RSA (.sdtid) en las unidades.
Ejecutar SessionGopher como usuario actual
Necesitamos acceso de administrador local para recuperar información de sesión almacenada para cada usuario en HKEY_USERS, pero siempre vale la pena ejecutar como nuestro usuario actual para ver si podemos encontrar credenciales útiles.
Almacenamiento de contraseñas en texto sin formato en el Registro
Ciertos programas y configuraciones de Windows pueden provocar que se almacenen contraseñas en texto sin formato u otros datos en el registro. Si bien herramientas como Lazagney SessionGopherson una excelente manera de extraer credenciales, como evaluadores de penetración también deberíamos estar familiarizados y cómodos con la enumeración manual de las mismas.
Inicio de sesión automático de Windows
El inicio de sesión automático de Windows es una función que permite al usuario configurar su sistema operativo Windows para iniciar sesión automáticamente en una cuenta de usuario específica, sin necesidad de introducir manualmente el nombre de usuario y la contraseña cada vez que se inicia el sistema. Sin embargo, una vez configurado, el nombre de usuario y la contraseña se almacenan en el registro, en texto sin formato. Esta función se utiliza habitualmente en sistemas de un solo usuario o en situaciones en las que la comodidad supera la necesidad de una mayor seguridad.
Las claves de registro asociadas con Autologon se pueden encontrar en la siguiente sección en HKEY_LOCAL_MACHINE y los usuarios estándar pueden acceder a ellas:
La configuración típica de una cuenta de Autologon implica la configuración manual de las siguientes claves de registro:
AdminAutoLogon- Determina si el inicio de sesión automático está habilitado o deshabilitado. Un valor de "1" significa que está habilitado.DefaultUserName- Contiene el valor del nombre de usuario de la cuenta que iniciará sesión automáticamente.DefaultPassword- Contiene el valor de la contraseña de la cuenta de usuario especificada previamente.
Enumeración del inicio de sesión automático con reg.exe
Nota: Si es absolutamente necesario configurar Autologon para su sistema Windows, se recomienda utilizar Autologon.exe de la suite Sysinternals, que cifrará la contraseña como un LSA Secret.
Putty
Para las sesiones de Putty que utilizan una conexión proxy, cuando se guarda la sesión, las credenciales se almacenan en el registro en texto sin formato.
Tenga en cuenta que los controles de acceso para esta clave de registro específica están vinculados a la cuenta de usuario que configuró y guardó la sesión. Por lo tanto, para poder verla, tendríamos que iniciar sesión como ese usuario y buscar en la HKEY_CURRENT_USERcolmena. Posteriormente, si tuviéramos privilegios de administrador, podríamos encontrarla en la colmena del usuario correspondiente en HKEY_USERS.
Enumeración de sesiones y búsqueda de credenciales
Primero, necesitamos enumerar las sesiones guardadas disponibles:
A continuación, observamos las claves y valores de la sesión descubierta " kali%20ssh":
En este ejemplo, podemos imaginar el escenario en el que el administrador de TI ha configurado Putty para un usuario en su entorno, pero lamentablemente utilizó sus credenciales de administrador en la conexión proxy. La contraseña podría extraerse y potencialmente reutilizarse en la red.
Para obtener información adicional sobre reg.exeel registro y cómo trabajar con él, asegúrese de consultar el módulo Introducción a la línea de comandos de Windows .
Contraseñas Wifi
Ver redes inalámbricas guardadas
Si obtenemos acceso de administrador local a la estación de trabajo de un usuario con una tarjeta inalámbrica, podemos enumerar todas las redes inalámbricas a las que se han conectado recientemente.
Recuperar contraseñas inalámbricas guardadas
Según la configuración de la red, podemos recuperar la clave compartida previamente ( Key Content a continuación) y potencialmente acceder a la red de destino. Si bien es poco frecuente, podemos encontrarnos con esto durante una interacción y usar este acceso para saltar a una red inalámbrica separada y obtener acceso a recursos adicionales.
Caso práctico
Herramientas
Pregunta 1
Utilizando las técnicas cubiertas en esta sección, recupere la contraseña system admin para la cuenta de usuario
SQL01.inlanefreight.local.
Vamos a usar Lazagne como primera opción para encontrar contraseñas de usuarios del sistema:
Bingo! Tenemos la contraseña de SQL01.inlanefreight.local
Pregunta 2
¿Qué usuario tiene credenciales almacenadas para el acceso RDP al host WEB01?
El usuario amanda tiene las credenciales guardadas de cmdkey. Con esto podríamos ejecutar comandos en su nombre sin saber la contraseña en plano
Ejecutar comandos como otro usuario
En nuestro caso el usuario amanda parece que no es un usuario del sistema, por lo que no podemos hacer gran cosa.
Pregunta 3
Busque y envíe la contraseña para que el usuario root acceda a
https://vc01.inlanefreight.local/ui/login
Al inspeccionar las credenciales guardadas en Chrome con SharpChrome.exe encontramos la contraseña:
La máquina no tiene conectividad con internet, por lo que no podemos acceder para comprobar el acceso.
Pregunta 4
Enumere el host y busque la contraseña para
ftp.ilfreight.local
Enumerando el objetivo con SessionGopher encontramos las credenciales:
Última actualización