Actualización rápida para incluir la explotación Follina (01/06/2022) - NinjaC2 generará el documento y servirá el payload HTML.
Más información: https://www.linkedin.com/posts/ahmed-khlief-499321a7_i-just-pushed-a-quick-update-to-ninjac2-to-activity-6937661951007170560-Tmps
Ninja V2.2 Publicado (27/03/2022).
Nueva característica que incluye:
consulta la URL para más información sobre las características y cómo usar la automatización de AWS EC2:
- nueva interfaz de usuario para el script de CnC
- Ahora cada campaña incluirá todos los archivos relacionados con la campaña y el archivo de configuración.
- nuevo script para automatizar la creación de instancias AWS con la configuración de NinjaC2.
- Script de Powershell Invoke-Mimikatz actualizado a la última versión de Mimikatz.
- Correcciones de errores
Ninja V2.1 Publicado (31/07/2021).
consulta las nuevas características aquí: https://shells.systems/ninjac2-v2-1-new-webshell-agent-more-features-and-updated-av-bypass/
Ninja V2.0 Publicado (16/04/2021).
Ninja V2.0 reconstruido para usar python3 con nuevas características:
- Ofuscación de variables del payload cada vez que se solicita el payload para evadir el AV
- generar shellcodes usando nasm y donut
- nuevo comando (migrate) para realizar migración de procesos.
- nuevo comando de persistencia usando tareas programadas
- nueva versión precompilada de mimikatz en powershell
- nuevos payloads.
- script de evasión de AMSI actualizado.
¿Qué es Ninja?
Ninja C2 es un servidor C2 de código abierto creado por Purple Team para realizar enumeración sigilosa de computadoras y Active Directory sin ser detectado por SIEM y AV. Ninja aún está en versión beta y cuando se lance la versión estable contendrá muchas más técnicas sigilosas y antiforenses para crear un verdadero desafío para el equipo azul, asegurando que todas las defensas estén configuradas correctamente y puedan detectar ataques sofisticados.
Ninja usa python para servir el payload y controlar los agentes. Los agentes están basados en C# y powershell, que pueden evadir los principales AV. Ninja se comunica con los agentes a través de un canal seguro cifrado con AES-256 y la clave no está codificada, sino que se genera aleatoriamente al inicio de la campaña. Cada agente que se conecta al C2 obtiene la clave, y si el C2 se reinicia, se usará una nueva clave para todos los agentes antiguos y nuevos. Ninja también aleatoriza las URLs de callback para cada campaña para evadir la detección estática.
- La característica principal de Ninja se llama DA (Defense Analysis), que realizará la enumeración requerida para obtener la siguiente información importante y realizar análisis para obtener una puntuación de las defensas del sistema y detección de sandbox.
- Detectar soluciones SIEM: actualmente detecta SPlUNK, Log beat collector, sysmon.
- detectar AV de dos formas: usando comandos de powershell y usando procesos.
- verificar si el registro de powershell está habilitado
- verificar si el usuario tiene privilegios de administrador
- proporcionar información del sistema: nombre de host, SO, número de compilación, hora local, zona horaria, último arranque y BIOS.
- proporcionar información sobre las actualizaciones de seguridad instaladas.
- proporcionar una puntuación de dureza del sistema basada en múltiples factores.
- proporcionar una puntuación de detección de sandbox basada en (privilegios, fabricante de BIOS, unido al dominio o no, existencia de procesos de sysinternals).
- mostrar todos los usuarios del dominio (usando comandos powershell).
- mostrar todos los grupos del dominio (usando comandos powershell).
- mostrar todos los equipos del dominio (usando powerview.ps1 - tomado de: https://github.com/PowerShellEmpire/PowerTools/blob/master/PowerView/powerview.ps1).
- mostrar recursos compartidos disponibles.
Ninja está diseñado para ser fácil de configurar, agregar más comandos y automatizar tareas tediosas. Puedes encontrar muchos comandos cortos que un red teamer tendría dificultades para memorizar y buscar. Consulta este artículo para obtener más información sobre ninja: https://shells.systems/introducing-ninja-c2-the-c2-built-for-stealth-red-team-operations/
Características clave de Ninja
Ninja está repleto de varias características que te permiten obtener información sobre tu próximo compromiso antes de que necesites desplegar todo tu arsenal o herramientas y técnicas, como:
- Análisis de Defensa
- automatización del ataque kerberoast desde la generación de tickets kerberos hasta la extracción de hashes SPN en formato hashcat.
- automatización de dc_sync para obtener hashes de una lista de usuarios o del grupo de administradores del dominio.
- Automatización no detectada para obtener los grupos a los que pertenece el usuario y los usuarios miembros de un grupo.
- Automatización para la recolección de datos de Bloodhound sobre AD.
- payloads personalizados en C# que cifran cadenas para evadir la detección estática.
- codificar cualquier comando que desees a unicode base64 para usarlo en comandos powershell codificados.
- cifrado completo de todas las comunicaciones entre el Agente y el comando y control para evadir la detección de AV e IPS.
- URLs dinámicas para todas las funciones, solo coloca tu lista de nombres de URL y el c2 las usará aleatoriamente para evadir cualquier detección estática.
- obtener clave de cifrado aleatoria sobre la marcha (no codificada) cada vez que el agente se conecta (incluso la reconexión necesita una nueva clave)
- tomar capturas de pantalla y enviarlas cifradas al C2
- subir archivos desde el C2 a la víctima cifrados para evadir AV e IPS
- descargar archivos desde la víctima cifrados para evadir AV e IPS
- payloads por etapas para evadir la detección (base64 y base52)
- evasión de AVs (probado en Kaspersky y TrendMicro)
- Evasión de detección SIEM (probado en Splunk recopilando registros de eventos habituales junto con registros de sysmon) no probado en el registro de bloques de script y módulos de powershell v5 (se hará en la próxima versión).
- establecer el intervalo de beacon dinámicamente incluso después de que el agente se conecte y proporcionar un intervalo de beacon inicial en las configuraciones de inicio de campaña
- registro de todos los comandos y resultados para poder volver a cualquier dato que hayas perdido en tu operación.
- establecer la configuración una vez al iniciar la campaña y disfrutar.
- interruptor de apagado global para finalizar campañas.
- eliminar entradas de tabla.
- todos los payloads escritos en la carpeta payloads para fácil acceso y personalización adicional.
- fácil de agregar automatización para cualquier comando que desees.
Requisitos
ten en cuenta que la compilación de C# depende del ensamblado System.Management.Automation.dll con hash SHA1 c669667bb4d7870bc8bb65365d30071eb7fb86fe.
Algunos comandos de Ninja requieren los siguientes módulos (ya existen en modules) de los cuales necesitas obtener actualizaciones desde su repositorio:
Invoke-Kerberoast : https://raw.githubusercontent.com/xan7r/kerberoast/master/autokerberoast.ps1
Invoke-Mimikatz : https://github.com/PowerShellMafia/PowerSploit/blob/master/Exfiltration/Invoke-Mimikatz.ps1
Sharphound : https://github.com/BloodHoundAD/BloodHound/blob/master/Ingestors/SharpHound.ps1
PowerView : https://github.com/PowerShellEmpire/PowerTools/blob/master/PowerView/powerview.ps1
Instalación
En primer lugar, asegúrate de descargar la última versión de Ninja usando el siguiente comando:
git clone https://github.com/ahmedkhlief/Ninja/
Necesitas configurar Ninja ejecutando el script install.sh:
chmod +x ./install.sh
sudo ./install.sh
Después de eso, necesitas inicializar la campaña:
python3 start_campaign.py
Ahora puedes iniciar el servidor Ninja:
python3 Ninja.py
Serás recibido con lo siguiente cuando lo ejecutes: