Aggiornamento rapido per includere lo sfruttamento di Follina (01/06/2022) - NinjaC2 genererà il documento e servirà il payload HTML.
Maggiori informazioni: https://www.linkedin.com/posts/ahmed-khlief-499321a7_i-just-pushed-a-quick-update-to-ninjac2-to-activity-6937661951007170560-Tmps
Ninja V2.2 Rilasciata (27/03/2022).
Nuove funzionalità inclusi:
controlla l'URL per maggiori informazioni sulle funzionalità e su come usare l'automazione AWS EC2:
- nuova interfaccia utente per lo script CnC
- Ora ogni campagna includerà tutti i file relativi alla campagna e il file di configurazione.
- nuovo script per automatizzare la creazione di istanze AWS con configurazione NinjaC2.
- Script PowerShell Invoke-Mimikatz aggiornato all'ultima release di Mimikatz.
- Correzioni di bug
Ninja V2.1 Rilasciata (31/07/2021).
controlla le nuove funzionalità qui: https://shells.systems/ninjac2-v2-1-new-webshell-agent-more-features-and-updated-av-bypass/
Ninja V2.0 Rilasciata (16/04/2021).
Ninja V2.0 ricostruita per usare python3 con nuove funzionalità:
- Offuscamento delle variabili del payload ogni volta che il payload viene richiesto per bypassare l'AV
- genera shellcode usando nasm e donut
- nuovo comando (migrate) per la migrazione dei processi.
- nuovo comando di persistenza usando attività pianificate
- nuova versione precompilata di mimkatz per PowerShell
- nuovi payload.
- script di bypass AMSI aggiornato.
Cos'è Ninja?
Ninja C2 è un server C2 open source creato dal Purple Team per eseguire enumerazioni stealth del computer e di Active Directory senza essere rilevati da SIEM e AV. Ninja è ancora in versione beta e quando la versione stabile sarà rilasciata conterrà molte più tecniche stealth e anti-forensi per creare una vera sfida per il blue team per assicurarsi che tutte le difese siano configurate correttamente e che possano rilevare attacchi sofisticati.
Ninja usa Python per servire il payload e controllare gli agenti. Gli agenti sono basati su C# e PowerShell e possono bypassare i principali AV. Ninja comunica con gli agenti tramite un canale sicuro crittografato con AES-256 e la chiave non è hardcoded ma generata casualmente all'avvio della campagna. Ogni agente che si connette al C2 ottiene la chiave e se il C2 viene riavviato, una nuova chiave verrà usata da tutti gli agenti (vecchi e nuovi). Ninja randomizza anche gli URL di callback per ogni campagna per bypassare il rilevamento statico.
- La caratteristica principale di Ninja è chiamata DA (Defense Analysis), che esegue l'enumerazione necessaria per ottenere le seguenti informazioni importanti e le analizza per ottenere un punteggio per le difese di sistema e il rilevamento sandbox.
- Rilevamento di soluzioni SIEM: al momento rileva SPLUNK, Log beat collector, sysmon.
- rileva AV in due modi: usando comandi PowerShell e usando i processi.
- verifica se il logging di PowerShell è abilitato
- verifica se l'utente ha privilegi di amministratore
- fornisce informazioni sul sistema: nome host, sistema operativo, numero di build, ora locale, fuso orario, ultimo avvio e BIOS.
- fornisce informazioni sugli aggiornamenti di sicurezza installati.
- fornisce un punteggio di durezza del sistema basato su molteplici fattori.
- fornisce un punteggio di rilevamento sandbox basato su (privilegi, produttore del BIOS, appartenenza al dominio o meno, esistenza di processi sysinternals).
- mostra tutti gli utenti del dominio (usando comandi PowerShell).
- mostra tutti i gruppi del dominio (usando comandi PowerShell).
- mostra tutti i computer del dominio (usando powerview.ps1 - preso da: https://github.com/PowerShellEmpire/PowerTools/blob/master/PowerView/powerview.ps1).
- mostra le condivisioni disponibili.
Ninja è progettato per essere facile da configurare e per aggiungere più comandi e automatizzare compiti noiosi. Puoi trovare molti comandi brevi che un red teamer fatica a memorizzare e cercare. Per favore controlla questo articolo per saperne di più su Ninja: https://shells.systems/introducing-ninja-c2-the-c2-built-for-stealth-red-team-operations/
Caratteristiche principali di Ninja
Ninja è ricco di numerose funzionalità che ti permettono di ottenere una visione della tua prossima operazione prima di dover effettivamente schierare il tuo arsenale completo di strumenti e tecniche, come:
- Analisi della difesa
- automazione per l'attacco kerberoast dalla generazione dei ticket kerberos all'estrazione degli hash SPN in formato hashcat.
- automazione per dc_sync per ottenere hash per un elenco di utenti o gruppo di amministratori del dominio.
- Automazione non rilevata per ottenere i gruppi a cui l'utente appartiene e gli utenti membri di un gruppo.
- Automazione per la raccolta dati AD di Bloodhound.
- payload C# personalizzati che crittografano le stringhe per bypassare il rilevamento statico.
- codifica qualsiasi comando che desideri in unicode base64 per essere usato nei comandi PowerShell codificati.
- crittografia completa di tutte le comunicazioni tra agente e comando e controllo per bypassare il rilevamento AV e IPS.
- URL dinamici per tutte le funzioni, basta inserire la tua lista di nomi URL e il C2 li userà casualmente per bypassare qualsiasi rilevamento statico.
- ottieni una chiave di crittografia casuale al volo (non hardcoded) ogni volta che l'agente si connette (anche la riconnessione necessita di una nuova chiave)
- cattura screenshot e li invia crittografati al C2
- carica file dal C2 alla vittima crittografati per bypassare AV e IPS
- scarica file dalla vittima crittografati per bypassare AV e IPS
- payload staged per bypassare il rilevamento (base64 e base52)
- bypassa AV (testato su Kaspersky e Trend Micro)
- bypassa il rilevamento SIEM (testato su Splunk che raccoglie i soliti log degli eventi insieme ai log di Sysmon) non testato su script block e module logging di PowerShell v5 (sarà fatto nella prossima release).
- imposta l'intervallo di beacon dinamicamente anche dopo che l'agente è connesso e fornisce un intervallo di beacon iniziale nelle configurazioni di avvio della campagna
- logging di tutti i comandi e risultati per poter tornare a qualsiasi dato ti sia sfuggito nella tua operazione.
- imposta la configurazione una volta quando avvii la campagna e divertiti.
- interruttore di kill globale per terminare le campagne.
- elimina voci della tabella.
- tutti i payload scritti nella cartella payloads per un facile accesso e ulteriore personalizzazione.
- facile aggiungere automazione per qualsiasi comando desideri.
Requisiti
nota che la compilazione del C# dipende dall'assembly System.Management.Automation.dll con hash SHA1 c669667bb4d7870bc8bb65365d30071eb7fb86fe.
Alcuni comandi di Ninja richiedono i moduli seguenti (già presenti nella cartella modules) di cui è necessario ottenere gli aggiornamenti dai loro repository:
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
Installazione
Prima di tutto assicurati di scaricare l'ultima versione di Ninja usando il seguente comando:
git clone https://github.com/ahmedkhlief/Ninja/
Devi configurare Ninja eseguendo lo script install.sh:
chmod +x ./install.sh
sudo ./install.sh
Dopodiché devi inizializzare la campagna:
python3 start_campaign.py
Ora puoi avviare il server Ninja:
python3 Ninja.py
Sarai accolto con quanto segue una volta eseguito: