Otros robos de credenciales en Windows
Última actualización
¿Te fue útil?
Última actualización
¿Te fue útil?
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.
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.
Cuando 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:
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.
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 KeePass
se 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 .
Primero, extraemos el hash en formato Hashcat usando el script. keepass2john
, onstalado por defecto
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.
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 .
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.
Podemos ver el menú de ayuda con la flag -h
:
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:
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_USERS
colmena 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.
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.
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 Lazagne
y SessionGopher
son 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.
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.
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.
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_USER
colmena. Posteriormente, si tuviéramos privilegios de administrador, podríamos encontrarla en la colmena del usuario correspondiente en HKEY_USERS
.
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.exe
el registro y cómo trabajar con él, asegúrese de consultar el módulo Introducción a la línea de comandos de Windows .
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.
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.
Utilizando las técnicas cubiertas en esta sección, recupere la contraseña system admin para la cuenta de usuario
SQL01.inlanefreight.local.
¿Qué usuario tiene credenciales almacenadas para el acceso RDP al host WEB01?
Busque y envíe la contraseña para que el usuario root acceda a
https://vc01.inlanefreight.local/ui/login
Enumere el host y busque la contraseña para
ftp.ilfreight.local