CrackMapExec o CME es una herramienta escrita en Python diseñada para la post-explotación en entornos Windows, su principal característica es que permite hacer movimientos laterales dentro una red local. Pero también tiene muchas opciones de uso, ya que usa módulos y funcionalidades externas. Permite 5 protocolos de ataque: smb, winrm, ssh, http o mssql.
- A swiss army knife for pentesting networks
Extracción Credenciales Windows
Por ejemplo, puede que hagamos un Credential Dumping, o una reconocimiento de direcciones IP, enumeración de usuarios, recursos, grupos, búsqueda de archivos en máquinas o ejecutar un Mimikatz sobre la máquina remota, consultar su configuración de las políticas de la máquina o comprobar en qué nivel se encuentra el UAC. Como se puede ver, en un párrafo resumen, podemos hacer una gran cantidad de cosas con CrackMapExec o CME.
CME hace uso de 5 protocolos que son: smb, winrm, ssh, http o mssql. Cada uno de estos protocolos tiene diferentes módulos de uso, para ver estos módulos se ejecuta cme con el siguiente parametro:
./cme (protocolo) -L
El protocolo SMB suele ser el más usado ya que la herramienta se desarrolló pensando en entornos Windows y por esto es el que mas módulos tiene, este además se usa para poder hacer movimientos laterales, para ello necesitas unas credenciales o un hash NTLM.
Por ejemplo, dispones de unas credenciales para el usuario administrador (qué suerte!), con CME puedes sacar la lista de usuarios de una máquina Windows con la siguiente instrucción:
./cme smb 192.168.xx.xx -u administrador -p 123456789 --users
También se pueden hacer búsquedas por ficheros dentro del sistema con los parámetros – -pattern y – -spider, por ejemplo si queremos buscar ficheros log dentro del sistema, lo haremos con la siguiente instrucción:
./cme smb 192.168.xx.xx -u administrador -p 123456789 --spider c\$ --pattern log
Otra característica de CME, es que tiene la posibilidad de hacer
una consulta a las políticas de contraseña de la máquina que estamos
testeando con el parámetro – -pass-pol, la instrucción sería:
./cme smb 192.168.xx.xx -u administrador -p 123456789 --pass-pol
Y no podía faltar una descarga de todas las credenciales de la máquina, ya que CrackMapExec es una herramienta para el movimiento lateral, necesitaremos estas credenciales para poder movernos por la red. Podemos usar los modificadores para descargar la SAM, LSA o NTDS, por ejemplo para descargar la sam:
./cme smb 192.168.xx.xx -u administrador -p 123456789 --sam
Si tenemos un hash NTLM, podremos usarlo para autenticarnos con el modificador -H de esta forma:
./cme smb 192.168.xx.xx -u administrador -H aqui el hash NTLM
También se pueden ejecutar comandos con diferentes técnicas usando el parámetro -x, por ejemplo podemos ejecutar un “whoami” de la siguiente forma:
./cme smb 192.168.xx.xx -u administrador -p 123456789 -x whoami
Credential Dumping
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.
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.
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.
crackmapexec -L[*] empire_exec[*] shellinject[*] rundll32_exec[*] com_exec[*] tokenrider[*] mimikatz[*] tokens[*] peinject[*] powerview[*] mimikittenz[*] enum_chrome[*] metinject[*] eventvwr_bypass
Documentación:
Herramientas extracción credenciales en Windows
- mimikatz https://github.com/gentilkiwi/mimikatz
- Proyecto LaZagne https://github.com/AlessandroZ/LaZagne/
- Pypykatz (mimikatz) en Python https://github.com/skelsec/pypykatz
- Nishang (PowerShell) https://github.com/samratashok/nishang
- CrackMapExec CME https://github.com/byt3bl33d3r/CrackMapExec
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:
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.


No hay comentarios:
Publicar un comentario