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.
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:
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 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.
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”.
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.
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
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 5: Monaco view nueva función
Figura 6: Ejemplo de nueva técnica con Monaco
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.
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.
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
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.
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.
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.
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