Apenas a dos meses de finalizar el año, continuamos sacando pequeños ratos para ir mejorando y actualizando ATTPwn. También seguimos hablando de la herramienta en eventos y conferencias como BitUp. Y siempre hacemos hueco para leer los comentarios y posibles mejoras que podamos llevar a cabo en esta plataforma que estamos construyendo juntos entre todos.
En el artículo de hoy os venimos a contar algunas de las nuevas características que hemos implementado en nuestro querido ATTPwn para la emulación de adversarios.
Han pasado solo un par de semanas desde que subimos la anterior actualización de ATTPwn al repositorio de GitHub y de que os hablamos de ello en el anterior artículo dedicado a la versión de ATTPwn 0.21. Una de las características que hemos implementado es un sistema de login, ya que cómo nos mencionaban en la siguiente “issue” nos recomendaban un sistema de login ya que al estar en “0.0.0.0” estuviese disponible para cualquier persona en la red.
En esta versión de ATTPwn ,ya no visualizamos la vista principal donde se mostraban los warrior que pudieran estar activos, en vez de esta vista, nos llevará al nuevo formulario para hacer login, como podéis ver en la imagen siguiente.
Por defecto tiene creado el usuario “root” con la contraseña “toor”. Una vez hecho el login podemos trabajar como se ha ido haciendo hasta ahora. En la parte superior derecha, tendremos la sección para cerrar la sesión actual o bien la visa “users” donde tendremos la posibilidad de dar de alta o baja usuarios.
También desde este apartado con el usuario “root” u otro con el rol de administrador, podremos configurar Latch para tener control sobre el login, así como desvincular Latch de otros usuarios. En cambio si el rol no es de administrador tendremos la siguiente vista para poder vincular Latch con nuestro usuario.
Figura 2: Repositorio GitHub de ATTPwn
En esta versión de ATTPwn ,ya no visualizamos la vista principal donde se mostraban los warrior que pudieran estar activos, en vez de esta vista, nos llevará al nuevo formulario para hacer login, como podéis ver en la imagen siguiente.
Figura 3: ATTPwn Login
Por defecto tiene creado el usuario “root” con la contraseña “toor”. Una vez hecho el login podemos trabajar como se ha ido haciendo hasta ahora. En la parte superior derecha, tendremos la sección para cerrar la sesión actual o bien la visa “users” donde tendremos la posibilidad de dar de alta o baja usuarios.
Figura 4: Gestión de usuarios en ATTPwn y Latch
También desde este apartado con el usuario “root” u otro con el rol de administrador, podremos configurar Latch para tener control sobre el login, así como desvincular Latch de otros usuarios. En cambio si el rol no es de administrador tendremos la siguiente vista para poder vincular Latch con nuestro usuario.
Figura 5: Latch Pairing en ATTPwn
En la parte de funciones hemos añadido dos funciones nuevas, por un lado hemos añadido la función “invoke-registryrun”, que es una Técnica que pertenece a la Táctica de Persistencia, ya que se añade al apartado "run" del Registry. Tenéis mas información sobre este tipo de persistencia en la matriz de MITRE ATT&CK.
Figura 6: Función invoke-registryrun
Vemos que está Técnica la hemos configurado marcando la casilla de que la función hará que se bifurque el warrior, ya que la idea es que una vez se reinicie la máquina, esta se conecte de nuevo. La propia función viene para reiniciar la máquina donde se ejecute y a su vez comunicarse con el Command and Control. De esta manera “automatizamos” ese control que de otra manera tendríamos que esperar a que dicha máquina se reiniciara para continuar con el plan del warrior.
Figura 7: Función invoke-registryrun con forzado de reinicio
La segunda función “invoke-registryrunClean” está relacionada con la anterior, dado que se deberían ejecutar en el mismo plan para no dejar “restos” de la ejecución del Plan ya que por cada reinicio de la máquina se ejecutaría una sesión Powershell asociada al warrior que creó la clave en el registro.
Figura 8: Nueva función implementada
Una vez que hemos visto un poco en qué consisten las dos funciones, lo mejore es ver cómo se podrían utilizar, así que para poner en contexto su utilidad vamos a ejecutar el siguiente plan que podéis ver en la imagen siguiente.
Figura 9: Plan para ejecución
Figura 10: Cómo conseguir Bypass de AMSI
Como se observa en el Plan hay dos tareas de capturar la pantalla “invoke-screenshot”. Esta tarea nos puede ser útil para comprobar el estado de la máquina donde se está lanzando el Plan sin necesidad de estar delante de ella. El resultado de esta tarea en el apartado de “results” es un fichero codificado en base64 que podemos decodificar con cualquier herramienta online. Os dejamos todo el proceso del Plan en el siguiente vídeo.
Figura 11: Demo de ATTPwn con invoke-registryrun Plan
Autores:
Contactar con Luis Eduardo Álvarez en MyPublicInbox |
No hay comentarios:
Publicar un comentario