sábado, diciembre 05, 2020

ATTPwn versión 0.3: Novedades en esta herramienta para auditar tus amenazas

Ha pasado un año desde que se presentó la idea de ATTPwn en la CyberCamp19. La herramienta a lo largo de este tiempo ha sufrido mejoras visuales, como fue la actualización de la GUI, o mejoras en su usabilidad, como fue facilitar la integración de técnicas en ATTPwn en su anterior versión.  Estamos comprometidos con la comunidad desarrollando una herramienta Open Source en la que puedes colaborar. 

Figura 1: ATTPwn versión 0.3: Novedades en esta herramienta para auditar tus amenazas

Para hacerlo más cómoda continuamos en la mejora de la herramienta para la integración de técnicas, es por ello que seguimos en esta línea de trabajo y hemos incorporado el editor de Microsoft Monaco. Nos hemos apoyado en la librería de Python flaskcode para adaptar este editor online a las necesidades de ATTPwn.


Figura 2: Presentación de ATTPwn en CyberCamp19 hecha por Pablo González

Para ello vamos a explicaros como está integrado y de qué manera podemos utilizar este editor online para generar las técnicas sin salir de ATTPwn. En la vista de “View implementations” se  ha añadido el botón “View on Monaco” dónde se podrá editar cualquiera de las técnicas implementadas desde la herramienta:

Figura 3: Monaco view technique

En la parte izquierda cargará todos los ficheros del directorio “functions” de ATTPwn, donde podremos navegar libremente por todas las funciones y editarlas según nuestras necesidades. En esta nueva versión encontrareis “duplicados” los ficheros con la terminación “_min”, donde se pueden mostrar, o no, en el directorio del editor.

Figura 4: Add implementation

Los ficheros “_min” se crean de manera transparente al guardar o crear nuevas funciones desde la herramienta, estos ficheros son los mismos que los originales, salvo que hemos eliminado los comentarios que pudieran, esta funcionalidad está enfocada al Command&Control de la herramienta, estos nuevos ficheros los utilizarán los “Warrior” para evitar el “checkeo” por parte de AMSI de esas cadenas comentadas. También podemos utilizar Monaco desde la visa “Add implementations”.  

Figura 5: Monaco view nueva función 

Este formulario funcionará de manera diferente en función de si hemos seleccionado un fichero o no . En el caso de seleccionarlo, funcionará como hasta ahora, copiando el fichero dentro de la carpeta “functions”. En cambio, si no seleccionamos fichero, nos dará de alta la inteligencia que hayamos elegido y nos abrirá el editor con el fichero “skeleton file” como base para nuestra función nueva.

Figura 6: Ejemplo de nueva técnica con Monaco

Visto lo anterior, ahora toca hacer un recorrido las las técnicas nuevas que han sido añadidas a esta versión 0.3 de ATTPwn y vamos a ver cada una de ellas con un ejemplo sencillo en este mismo artículo.

invoke-powershell_console

Figura 7: Invoke-powershell_console

Esta técnica de la matriz de MITRE ATT&CK consisten en lanzar una PowerShell para ejecutar instrucciones desde línea de comandos, si os fijáis en el código la instrucción del comando a generar es la misma que ejecutamos cuando desplegamos un warrior por primera vez, pero en forma de técnica.

Figura 8: Demo de la técnica invoke-powershell-console

El el vídeo puedes ver un ejemplo rápido de cómo funciona esta técnica implementada en ATTPwn versión 3.0 para que la puedas utilizar tú en tus pruebas.

invoke-getisfavweb

Esta técnica escaneará las rutas predeterminadas de cada navegador de Internet para comprobar si está instalado o no en el equipo.  Si el navegador no se encuentra en la ruta, se ignorará ya que significará que el navegador o no está instalado o está instalado en una ruta que no es la predeterminada.

Figura 9: Invoke-getisfavweb

Si por el contrario se encuentra en la ruta, se buscará el archivo o archivos donde se guardan los favoritos del navegador (En una carpeta en el caso de Internet Explorer o en un archivo JSON en el caso de Google Chrome u Opera) y se guardarán para poder extraerlos.  

invoke-getisvm

Figura 10: Invoke-getisvm

La técnica getisvm, comprobará mediante la información que proporciona el sistema, si este coincide con los nombres comunes que dan los gestores de virtualización más populares (como VirtualBox o VMware) para descubrir si la maquina donde se está ejecutando el código se trata de una máquina virtual o si se trata de una máquina real.

Figura 11: Demo de Invoke-getisvm

Continuaremos trabajando en ATTPwn lo que nos falta de año y vendremos con energías renovadas el año próximo para traeros nuevas actualizaciones de la herramienta. También crearemos la rama “develop” en el repositorio para que se pueda tener en seguimiento sobre las futuras funcionalidades y mejoras de ATTPwn

Saludos,

Autores: Víctor Rodríguez Boyero, desarrollador y Security Researcher en el equipo de Ideas Locas de CDCO de Telefónica y Guillermo Peñarando Sánchez, Developer en Ideas Locas CDCO de Telefónica.

No hay comentarios:

Publicar un comentario