CrackMapExec: Una navaja suiza para el pentesting (1 de 2)
CrackMapExec es una herramienta conocida por muchos. Para otros puede ser una gran desconocida, pero creo que si la prueban la verán potencial. Es una de esas herramientas que aporta, pero que también aglutina otras funcionalidades de otras utilidades. Le da cierto poderío el tener muchas funcionalidades centradas en una sola herramienta.
Figura 1: CrackMapExec: Una navaja suiza para el pentesting (1 de 2) |
En líneas generales se puede decir que es una herramienta de post-explotación. Está escrita en Python y permite hacer movimientos laterales en una red. ¿Qué cosas se puede hacer? Pues realmente muchas. Iremos viendo algunos ejemplos a lo largo del artículo, aunque CrackMapExec al apoyarse en módulos y funcionalidades externas tiene muchas más acciones posibles de las que a priori se puede uno imaginar.
Además, el uso es muy diferente, en función de en que parte del trabajo nos encontremos. 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.
Escenario para el artículo
Para comenzar os explicaré lo qué he configurado. He optado por hacer uso de Docker para agilizar la configuración de la herramienta, esto es algo que para vuestras pruebas es algo muy recomendable. Os dejo el pequeño escenario montado:
Figura 2: GitHub de CrackMapExec |
Además, el uso es muy diferente, en función de en que parte del trabajo nos encontremos. 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.
Escenario para el artículo
Para comenzar os explicaré lo qué he configurado. He optado por hacer uso de Docker para agilizar la configuración de la herramienta, esto es algo que para vuestras pruebas es algo muy recomendable. Os dejo el pequeño escenario montado:
- Máquina virtual de Windows Server 2016 en evaluación.
- Imagen de Docker con CrackMapExec. El pull se hizo desde DockerHub y tienes un repositorio de Github con más información.
Figura 3: Comando "Docker run --rm -it [IMAGE_ID] |
Así conseguimos que se levante el contenedor, el cual se destruirá al salir del terminal, gracias al uso del parámetro --rm.
Protocolos en CME
La herramienta hace uso de varios protocolos, como son: winrm, http, smb, ssh o mssql. Cada protocolo dispone de diferentes acciones y módulos que pueden ser utilizadas. Para ver los módulos se ejecuta la siguiente instrucción:
Protocolos en CME
La herramienta hace uso de varios protocolos, como son: winrm, http, smb, ssh o mssql. Cada protocolo dispone de diferentes acciones y módulos que pueden ser utilizadas. Para ver los módulos se ejecuta la siguiente instrucción:
./crackmapexec [protocolo] -L.
El que más tiene con diferencia es el protocolo SMB. Para hacer un reconocimiento de máquinas rápido con el protocolo SMB activo en la red se puede ejecutar la siguiente instrucción:
Figura 4: Comando crackmapexec smb [red] |
Movimiento lateral
Como ejemplo de uso del protocolo SMB, siempre es un trabajo de Hacking Windows el poder hacer un movimiento lateral, y esto se puede llevar a cabo una vez conocida la credencial del administrador o conociendo el hash NTLM.
Como ejemplo de uso del protocolo SMB, siempre es un trabajo de Hacking Windows el poder hacer un movimiento lateral, y esto se puede llevar a cabo una vez conocida la credencial del administrador o conociendo el hash NTLM.
Figura 5:Libro de Hacking Windows |
En el siguiente ejemplo se muestra cómo la autenticación es válida a través del uso de la credencial en plano del administrador. En la misma imagen, se puede ver la enumeración de usuarios que se lleva a cabo con el parámetro --users.
Figura 6: Autenticación y enumeración de usuarios vía SMB |
Otro ejemplo que se puede ver rápidamente en este movimiento lateral es la enumeración de grupos y la búsqueda de ficheros de texto, de logs, de ficheros PDF, etcétera. La enumeración de grupos va muy ligada a la enumeración de usuarios y de recursos que se puede hacer sobre la máquina, pero el caso de la búsqueda de ficheros es algo bastante útil en ciertas ocasiones.
Figura 7: Enumeración de grupos en Windows |
Ahora vemos el mismo ejemplo de antes, pero en vez de con un TXT con LOGs. Sin duda, una búsqueda interesante a través del uso del parámetro --spider y --pattern. Los resultados se obtienen tras la autenticación y la ejecución de la acción.
Figura 8: Uso del parámetro --spider y --pattern |
Todavía no hemos llegado a la parte donde se utilizan módulos para ampliar las funcionalidades y el potencial de la herramienta.
Figura 9: Volcado de la política de contraseñas con --pass-pol |
Otro ejemplo interesante es la adquisición o la consulta de las políticas de la máquina remota. En esta ocasión, vamos a volcar la política de contraseñas y para ello se hace uso del parámetro --pass-pol.
Fin de la primera parte
Si te interesa el mundo del pentesting, montante este entorno y empieza a probar. En la segunda parte de este artículo vamos a ver cómo podemos volcar credenciales, cómo podemos sacar partido a los comandos remotos con WMI y qué otros módulos tenemos en CrackMapExec.
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 10: Contactar con Pablo González |
No hay comentarios:
Publicar un comentario