jueves, mayo 14, 2020

CrackMapExec: Una navaja suiza para el pentesting (2 de 2)

Vamos a continuar la segunda parte de este artículo, viendo alguna cosa más que podemos realizar en un Ethical Hacking de un sistema Windows utilizando CrackMapExec. En esta parte vamos a ver cómo podemos hacer un Credential Dumping, o lo que es lo mismo, el volcado de usuarios, hashes y contraseñas, cómo podemos utilizar WMI para la ejecución remota de comandos y cuáles son los módulos que podemos utilizar en la herramienta.

Figura 11: CrackMapExec: Una navaja suiza para el pentesting (2 de 2)


Como ya hemos dicho, CME es una navaja suiza para el pentesting con muchas posibilidades, y por supuesto se complementa con las utilidades que podemos utilizar en un entorno de post-explotación dentro de un Pentesting con PowerShell, o de las cosas que podemos hacer como Metasploit. Es decir una herramienta más en nuestra mochila de pentesters.
Credential Dumping

Cuando uno tiene privilegios en la post-explotación siempre necesitará obtener credenciales para poder volver a las máquinas comprometidas o poder moverme lateralmente a otras máquinas.  CME proporciona diferentes parámetros, incluso diferente técnicas, para llevar a cabo el volcado de credenciales. En la siguiente imagen vamos a ver cómo hacer un volcado de credenciales de la SAM, de LSA y de NTDS. Con este último, se pueden utilizar diferentes técnicas, se recomienda leer la documentación de la herramienta, ya que con detalles como estos, gana muchos puntos. 

Figura 12: Pidiendo el volcado de la SAM


Pero, volvemos al movimiento lateral. Antes hemos utilizado credenciales en plano que, por supuesto, se pueden logran en un Ethical Hacking, pero lo suyo es ver en acción el uso de, por ejemplo, hashes NTLM. Si hay un libro que explica en detalle todos los sistemas de autenticación que están disponibles en Windows y cómo gestiona su seguridad el sistema es el libro de Máxima Seguridad en Windows Gold Edition de nuestro compañero Sergio de los Santos que os recomiendo sin duda.


Si tenemos un hash NTLM se puede hacer uso de éste con el parámetro -H. Se puede probar de manera rápida el comando crackmapexec -u [usuario] -H [hash NTLM] y ver que la autenticación funciona. 

Figura 14: Comprobando que el hash funciona  

Para ver que la autenticación con hash funciona y que podemos ejecutar acciones, módulos y comandos remotos se añade el parámetro --users, como hicimos anteriormente, para ver que el resultado es el mismo. Es decir, funciona.

Hacemos uso de WMI y la ejecución de comandos remotos
Con el parámetro -x podemos hacer invocaciones de comandos, con diferentes técnicas, una de ellas sería a través de WMI. El servicio Windows Management Instrumentation o WMI provee de un lenguaje de instrumentación del sistema operativo que, como os podéis imaginar, es muy utilizado en la fase de post-explotación, ya que permite realizar un gran número de acciones en este momento del pentesting

Por ejemplo, vamos a utilizar el parámetro --wmi seguido de la consulta WMI entrecomillada, tal y como se puede observar en la imagen. El resultado es similar al del uso del parámetro --users. 
 
Figura 15: Probando WMI

Es importante probar el uso del parámetro -x y el comando que se quiere ejecutar, ya que es fácil ejecutar comandos de terminal a través de este protocolo. Esto puede acabar provocando que algo más potente se ejecute lateralmente, por ejemplo… ¿Un Meterpreter? ¿Una iBombShell? ¿Un Empire?

Módulos en CrackMapExec
Para listar los módulos, como se comentó anteriormente, se puede hacer uso del parámetro -L, indicando previamente el protocolo que queremos utilizar. Como se puede ver en la imagen, CME tiene una gran cantidad de módulos de diferente índole: enumeración, volcado de credenciales, ejecución de código, recogida de configuración, etcétera. 

Figura 16: Listado de módulos en CME

 
Como una pequeña prueba se ha ejecutado el módulo de User Account Control. Este módulo lo que devuelve es la configuración del UAC en el sistema.

Figura 17: Accediendo a info de UAC

Otras opciones interesantes son: 

- Módulo de Mimikatz. Opción -M mimikatz.
  
- Mimikatz y el parámetro -o con el que se indica COMMAND=’[Comando Mimikatz]’. Es decir, se ejecuta el comando Mimikatz que queramos. Por ejemplo:
crackmapexec smb [IP] -u administrator -H [hash ntlm] -M Mimikatz -o ‘sekurlsa:logonPasswords’.
Esto ejecutaría Mimikatz y éste intentaría volcar todas las credenciales de lsass.exe.  
- El módulo de Web_Delivery está presenta también para invocar un Meterpreter a través de Powershell, directamente a memoria. Aquí es posible que, previamente hubiera que hacer bypass AMSI. Pero con PowerShell decides tú el límite.

Figura 18: Libro de Pentesting con PowerShell 2ª Edición

- El módulo de wdigest también es interesante, ya que permite habilitar el proveedor de autenticación wdigest a través de la manipulación de una clave de registro. La instrucción sería: crackmapexec smb [IP] -u administrador -H [hash ntlm] -M wdigest -o ACTION=enable.

Sin duda, una interesante herramienta que aporta bastante opciones en un pentesting. Otra herramienta que debemos meter en la mochila del pentester y con muchas opciones para tener éxito en nuestro trabajo.
 
Saludos,

*****************************************************************************
*****************************************************************************

Autor: Pablo González Pérez (@pablogonzalezpe), escritor de los libros "Metasploit para Pentesters", "Hacking con Metasploit: Advanced Pentesting" "Hacking Windows", "Ethical Hacking", "Got Root",  “Pentesting con Powershell” y de "Empire: Hacking Avanzado en el Red Team", Microsoft MVP en Seguridad y Security Researcher en el equipo de "Ideas Locas" de la unidad CDCO de Telefónica.  Para consultas puedes usar el Buzón Público para contactar con Pablo González

Figura 19: Contactar con Pablo González

No hay comentarios:

Publicar un comentario