Allá por noviembre de 2019 impartí una charla en el Cybercamp. Participaba allí por sexta vez y hablé sobre ATT&CK, la famosa matriz de MITRE y las posibilidades que tenían las organizaciones de hacer la emulación de adversarios. En esta charla presenté una prueba de concepto de una herramienta que automatizaba la parte ofensiva y de emulación de la matriz o lo que era mi idea de hacerlo. Tiempo después, la idea se incorporó al equipo de Ideas Locas.
Durante la charla de Cybercamp se pudo ver cómo funcionaba la matriz, qué eran las técnicas, las tácticas, los procedimientos, etcétera. Lo curioso de aquella charla es cómo monté la herramienta, aprendiendo flask a contrarreloj para poder tener mi prueba de concepto. Esos colores estridentes, con el bootstrap ayudándome, en lo que podía ser mi primer proyecto con esta tecnología. Tocaba aprender para hacer algo vistoso y como digo estridente en lo que a colores se refiere. Os dejo la charla por aquí, por si os puede ser de interés:
Figura 2: Emulación de ataques de Att&ck
En enero de 2020 nace ATTPwn. Con la incorporación al equipo de mi compañero Victor Rodríguez y con las ideas más claras de lo que queríamos hacer diferente, comenzamos a seguir poniendo piedras y diseñando lo que sería ATTPwn. La base la teníamos de lo que se presentó en Cybercamp, pero queríamos una herramienta que fuera lo suficientemente inteligente como para poder emular a la amenaza con la esencia de ésta.
¿Esto cómo es? Queríamos que una emulación de una amenaza fuera capaz de pasar de un proceso a otro, fuera capaz de saltar de una máquina a otra, de poder descubrir, de poder enumerar servicios, de poder disponer de inteligencia o de poder disponer de los datos que descubren otras técnicas para que las técnicas que se utilizan más adelante en la amenaza aprovechen dicha información.
Figura 1: ATTPwn: Emulación de adversarios. Una herramienta ofensiva para ATT&CK camino de BlackHat USA 2020 (1 de 2) #IdeasLocas |
Durante la charla de Cybercamp se pudo ver cómo funcionaba la matriz, qué eran las técnicas, las tácticas, los procedimientos, etcétera. Lo curioso de aquella charla es cómo monté la herramienta, aprendiendo flask a contrarreloj para poder tener mi prueba de concepto. Esos colores estridentes, con el bootstrap ayudándome, en lo que podía ser mi primer proyecto con esta tecnología. Tocaba aprender para hacer algo vistoso y como digo estridente en lo que a colores se refiere. Os dejo la charla por aquí, por si os puede ser de interés:
Figura 2: Emulación de ataques de Att&ck
En enero de 2020 nace ATTPwn. Con la incorporación al equipo de mi compañero Victor Rodríguez y con las ideas más claras de lo que queríamos hacer diferente, comenzamos a seguir poniendo piedras y diseñando lo que sería ATTPwn. La base la teníamos de lo que se presentó en Cybercamp, pero queríamos una herramienta que fuera lo suficientemente inteligente como para poder emular a la amenaza con la esencia de ésta.
Figura 3: Libro de "Empire: Hacking Avanzado en el Read Team" de 0xWord |
¿Esto cómo es? Queríamos que una emulación de una amenaza fuera capaz de pasar de un proceso a otro, fuera capaz de saltar de una máquina a otra, de poder descubrir, de poder enumerar servicios, de poder disponer de inteligencia o de poder disponer de los datos que descubren otras técnicas para que las técnicas que se utilizan más adelante en la amenaza aprovechen dicha información.
Tras darle vueltas a todo esto, se consiguió una primera versión de ello. Una idea potente. Una idea que puedes utilizar de forma atómica, teniendo mapeadas las implementaciones de las técnicas con ellas mismas y con las tácticas, para seguir lo que dice el MITRE. Pero también es una idea que te permite recrear las amenazas o la esencia de ellas, paso a paso y ver si tus controles de seguridad o tu equipo defensivo se “entera” de lo que ocurre. ¿Mola?
¿Qué es ATTPwn?
Como se dice en su paper, ATTPwn es una herramienta diseñada para la emulación de adversarios. El objetivo de la herramienta es acercar la emulación de una amenaza real con las implementaciones basadas en las técnicas y las tácticas del marco de trabajo de MITRE ATT&CK.
¿Qué es ATTPwn?
Como se dice en su paper, ATTPwn es una herramienta diseñada para la emulación de adversarios. El objetivo de la herramienta es acercar la emulación de una amenaza real con las implementaciones basadas en las técnicas y las tácticas del marco de trabajo de MITRE ATT&CK.
Figura 4: Papers de ATTPwn en GitHub |
La idea es emular cómo una amenaza opera en un escenario de intrusión, en el que la amenaza ha tenido éxito. La herramienta está orientada a sistemas Microsoft Windows a través del uso de la línea de comandos Powershell.
Figura 5: Libro de Pentesting con PowerShell 2ª Edición |
Gracias a ésta se implementan las diferentes técnicas basadas en MITRE ATT&CK. La herramienta está destinada para que se pueda llevar a cabo la emulación de adversarios como para de un ejercicio de Red Team y poder verificar la eficacia y eficiencia de los controles en la organización ante una amenaza real.
ATTPwn tiene su repositorio de Github disponible, aunque la versión que estamos trabajando ahora no está aún disponible. La liberaremos en la primera semana de agosto, ya que queremos darla “mimo”. Es una versión especial, ya que estaremos en BlackHat USA 2020 Arsenal presentándola.
Figura 6: ATTPwn en GitHub |
ATTPwn tiene su repositorio de Github disponible, aunque la versión que estamos trabajando ahora no está aún disponible. La liberaremos en la primera semana de agosto, ya que queremos darla “mimo”. Es una versión especial, ya que estaremos en BlackHat USA 2020 Arsenal presentándola.
Figura 7: ATTPwn en Black Hat USA 2020 Arsenal |
En esta ocasión tendrá que ser online, pero estamos muy orgullosos de este hito en Ideas Locas. Un equipo: siempre con la misma ilusión y el mismo orgullo.
Arquitectura
La arquitectura de ATTPwn está pensada para poder incorporar de manera sencilla varios elementos como, por ejemplo, implementaciones de técnicas o nuevas amenazas conocidas.
Arquitectura
La arquitectura de ATTPwn está pensada para poder incorporar de manera sencilla varios elementos como, por ejemplo, implementaciones de técnicas o nuevas amenazas conocidas.
Figura 9: La arquitectura ATTPwn consta de tres partes |
1.- Console: Un template en Powershell que dará origen al código personalizado con la dirección IP y posibles futuros parámetros que será distribuido entre las máquinas dónde se quiere hacer la emulación de una amenaza. Por ejemplo, si queremos hacer la ejecución en 3 máquinas, este tipo de código será ejecutado en dichas máquinas. Este código es código Powershell.
2.- Functions: Este elemento representa la implementación de las técnicas. Las técnicas de ATT&CK vienen identificadas por TXXXX, dónde XXXX es un número que las identifica. Hacer un credential dumping, T1003, puede hacerse de varias formas, por lo que dicha técnica tiene varias implementaciones. Aquí es dónde se abre un abanico muy interesante. ATTPwn puede darte varias implementaciones para lo mismo y tu elegir qué quieres utilizar.
3.- MVC: La parte de la aplicación web, la cual es un C2 desde el cual se controlará toda la operación y la emulación.
En la segunda parte de este artículo veremos cuáles son los flujos de la herramienta y cómo se le puede sacar partido en diferentes escenarios, junto con una demostración de la herramienta en funcionamiento en un entorno controlado.
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