CrackMapExec o CME es una herramienta diseñada para la post-explotación, 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.

Esta escrita en Python y puedes descargarse desde su Github.

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

Con la ejecución de comandos se abren un montón de posibilidades para meter otras herramientas en escena como pueden ser Empire o Meterpreter.

CrackMapExec es una herramienta muy buena para tareas de pentesting en entornos Microsoft, estos son unos ejemplos básicos de uso, pero la herramienta dispone de un montón de opciones para ayudar al Pentester.