
EvilNeko es un proyecto para automatizar la orquestación de contenedores y operacionalizar ataques de Browser in the Browser (BITB) para equipos rojos. Inspirado por la investigación realizada por Mr. d0x aquí y para construir sobre las ideas del proyecto EvilNoVNC.
El objetivo del proyecto es mejorar las herramientas de código abierto actualmente disponibles para construir una herramienta que pueda usarse para escalar la infraestructura para múltiples objetivos en lugar de un solo usuario/sesión. EvilNeko proporciona a los equipos rojos una forma realista de emular técnicas BITB y ayuda a los equipos azules a encontrar formas de detectar estas técnicas.
La herramienta utiliza el proyecto neko para crear contenedores con navegadores con los que interactuar a través de WebRTC. Con algunas modificaciones menores en la configuración, podemos usarlos para emular técnicas de browser in the browser.
EvilNeko no incluye actualmente su propio payload, por lo que tendrás que traer el tuyo. Si quieres ver un ejemplo usando el agente Mythic, puedes leer mi blog.
EvilNeko no está pensado para fines maliciosos; está pensado para pruebas autorizadas de entornos en los que has recibido consentimiento para probar.
EvilNeko funciona en Linux o macOS y requiere docker, docker-compose, flask y NGINX instalados.
Como se mencionó anteriormente, tendrás que traer tu propio payload en forma de una extensión de Chrome sin empaquetar y colocarlo en lures/extension.
Una vez que los servicios prerrequisitos estén instalados, clona el repositorio de EvilNeko y ejecuta EvilNeko.py:
python EvilNeko.py
Luego configura el dominio si vas a alojar esto públicamente; esto es principalmente para comodidad del usuario al entender qué enlaces enviar a un objetivo. Alternativamente, 127.0.0.1 es el valor predeterminado para pruebas:
EvilNeko> set_domain <your domain>
A continuación, configura la URL que quieres que abra el contenedor neko:
EvilNeko> set_url login.microsoft.com
Ahora puedes crear un número de contenedores para enviar a los objetivos:
EvilNeko> create_lure 2
Finalmente, inicia los manejadores de Flask y NGINX, que enrutarán correctamente el tráfico a estos contenedores para cada objetivo:
EvilNeko> start_handler
Para destruir contenedores, puedes pasar el UUID o usar "all":
EvilNeko> destroy_lure all
Salir también destruirá todos los contenedores y detendrá el manejador.