Il server di exploit per i risultati out-of-band. Punta un target verso un dominio che possiedi. Ogni richiesta HTTP e ogni email che invia finisce in una dashboard che controlli, e riceve in risposta qualunque cosa tu scelga.
BEAR-C2 è un framework di simulazione ed emulazione avversaria costruito attorno a TTP del mondo reale ispirate a gruppi APT russi, cinesi, nordcoreani e iraniani. Fornisce un ambiente flessibile per diversi scenari di engagement e offre una base realistica per operazioni red team ed emulazione avversaria, attingendo alla ricerca sulla simulazione correlata nel . Supporta tecniche di elusione delle difese e molteplici opzioni di crittografia per una rappresentazione accurata di scenari di intrusione del mondo reale.

[!CAUTION] È essenziale notare che questo progetto è solo per scopi educativi e di ricerca, e qualsiasi uso non autorizzato potrebbe comportare conseguenze legali.
git clone https://github.com/S3N4T0R-0X0/BEAR-C2.git && cd BEAR-C2
chmod +x requirements.sh && ./requirements.sh
./BEAR-C2
## 🧠 La sfida della simulazione degli avversari:
Replicare accuratamente le **tecniche APT** richiede un `ambiente flessibile in grado di emulare protocolli di connessione, metodi di cifratura, tecniche di esfiltrazione e canali/profili C2` utilizzati nelle intrusioni moderne. Tuttavia, raggiungere questo livello di precisione è sempre stata una sfida.
<img width="1366" height="732" alt="main " src="https://assets.kitploit.com/production/public/readmes/54775/8af4474bf61f52114745ec8403b4ea6d01d26a57f85913f1f01b4bba559a1eb7/59654a7b465df184554d5c31ee49293c1f5d9da71a1e6ef81aa0a2fa5b88b8ea-display-v1.webp" />
Ogni volta che un operatore deve testare uno specifico **schema di cifratura** con un particolare **profilo di esfiltrazione**, è necessario `costruire uno script C2 separato per adattarlo allo scenario di attacco.` Ad esempio, una simulazione potrebbe richiedere **cifratura AES** con **esfiltrazione tramite OneDrive**, mentre un'altra potrebbe necessitare di **un metodo di cifratura diverso** combinato con **esfiltrazione tramite Dropbox** per rispecchiare le tecniche osservate negli attacchi del mondo reale. Questa mancanza di flessibilità rende il processo inefficiente e dispendioso in termini di tempo.
<img width="1359" height="680" alt="Screenshot From 2026-09-01 05-54-48" src="https://assets.kitploit.com/production/public/readmes/54775/c106129e53832b08e6575610090337721e4e5892eade10bee395fae638326cc2/299229b4ffae9286d368a6e9243c4528d469f5395f166d9b67fa0020beaf5d8a-display-v1.webp" />
Questo è il motivo per cui **BEAR C2** è stato sviluppato per fornire **simulazione degli avversari** con piena personalizzazione attraverso il nuovo listener, consentendo la configurazione senza soluzione di continuità di `protocolli di connessione, cifratura, esfiltrazione,` e tecniche di caricamento automatizzate. Ciò garantisce che le simulazioni possano riflettere accuratamente le reali **intrusioni APT** senza la necessità di creare script personalizzati per ogni scenario.
## Campioni di Payload Reaper Node
Reaper Node fornisce campioni di payload C++ in `/Stagers-Loaders/Reaper Node Samples/` che possono essere utilizzati come template personalizzabili per ambienti in cui non è richiesto un payload pre-generato. I campioni contengono i campi di configurazione principali necessari per stabilire la comunicazione con la corrispondente istanza Reaper Node.
Prima di compilare il payload, i parametri di connessione e trasporto richiesti devono essere configurati per corrispondere alla configurazione del Reaper Node.
### Configurazione del Payload
La configurazione del payload dovrebbe fornire campi di input per i seguenti parametri:
* **Authentication ID**
L'identificatore utilizzato per associare il payload all'istanza Reaper Node configurata.
* **Server Host**
L'indirizzo IP o il nome host dell'endpoint Reaper Node.
* **Server Port**
La porta di rete esposta dal Reaper Node per il protocollo di comunicazione selezionato.
* **Encryption Key**
Richiesta quando il trasporto selezionato utilizza la cifratura. Il valore deve corrispondere alla configurazione di cifratura utilizzata dal Reaper Node. Se la cifratura è disabilitata, questo campo non è richiesto.
* **User-Agent**
Il valore di identificazione del client HTTP utilizzato quando si stabilisce la comunicazione HTTP/HTTPS iniziale. Il payload dovrebbe utilizzare un User-Agent supportato dalla corrispondente configurazione del Reaper Node.
Lo User-Agent non deve essere identico tra diverse configurazioni di Reaper Node. Un payload può utilizzare qualsiasi User-Agent definito come supportato dal profilo Reaper Node selezionato, purché la configurazione risultante sia compatibile con le impostazioni di trasporto lato server.
### Configurazione di Esempio
Il seguente esempio mostra una configurazione di trasporto HTTPS di esempio con parametri di autenticazione, indirizzamento del server, cifratura e User-Agent:```cpp
const string AUTH_ID = "YOUR_AUTH_ID";
const string SERVER_HOST = "YOUR_SERVER_HOST";
const int SERVER_PORT = YOUR_SERVER_PORT;
const string KEY = "YOUR_ENCRYPTION_KEY";
const string DEFAULT_USER_AGENT = "YOUR_USER_AGENT";
bool VERIFY_SSL = true;
Questa configurazione rappresenta un trasporto HTTPS con crittografia abilitata. I valori mostrati sopra sono segnaposto e dovrebbero essere sostituiti con i parametri definiti dalla configurazione del Reaper Node corrispondente.
Il campione C++ è inteso a fornire un punto di partenza per la personalizzazione. Gli utenti possono modificare la configurazione e i parametri relativi al trasporto in base al profilo del Reaper Node che stanno testando, quindi compilare il payload personalizzato per il loro ambiente di simulazione autorizzato.
La Tabella dei Listener fornisce una panoramica centralizzata di tutti i listener C2 attivi e configurati. Mostra dettagli essenziali come nome del listener, indirizzo, protocollo di rete, metodo di crittografia, profilo di esfiltrazione e stato corrente (Attivo o Arrestato/Disconnesso). Da questa interfaccia, gli operatori possono avviare, arrestare, rinominare o rimuovere i listener con facilità. Offre inoltre un accesso rapido alle chiavi di crittografia e agli ID di autenticazione per la gestione della comunicazione dei beacon. Questa tabella funge da hub di comando per orchestrare e monitorare la vostra infrastruttura C2.

Questa versione presenta una GUI completa che semplifica le operazioni di simulazione degli avversari attraverso la gestione centralizzata dei listener, il monitoraggio delle sessioni in tempo reale, profili di comunicazione personalizzabili, flussi di lavoro di esfiltrazione integrati e controlli flessibili per gli operatori per una gestione efficiente degli engagement.
⚠️ NOTA: Questo progetto è in fase di sviluppo attivo. Le funzionalità vengono continuamente aggiunte e migliorate.
| Funzionalità | Descrizione |
|---|---|
| Listener Multi-Protocollo | DoH, HTTPS, HTTP, QUIC, Reverse TCP |
| Crittografia per Listener | AES, XOR, RC4, DES, ChaCha20, RSA |
| Profili di Esfiltrazione | Google Drive, OneDrive, Dropbox |
| Canali C2 Integrati | Canale di comunicazione C2 integrato Telegram, Discord |
| Supporto Proxy | Supporto proxy e redirector SOCKS4, SOCKS4a e SOCKS5 |
| Algoritmo di Generazione Dinamica di Domini | Supporto DGA per la simulazione di infrastrutture resilienti |
| Fingerprinting JA3S | Impronte JA3S personalizzabili per la simulazione del traffico e la messa a punto del profilo di rete |
| Profili C2 Malleable | Supporto per Malleable C2 profiles della community per una flessibile simulazione del traffico di rete |
| Stager e Loader | Tecniche automatizzate di stager e loader progettate per la simulazione di avversari APT |
| Strumenti Integrati | Obfuscator di script integrato, toolkit di phishing e hosting di file |
| Generazione di Certificati TLS | Certificati TLS auto-firmati che imitano fornitori affidabili |
| Personalizzazione HTTP | Codifica URL Base64 e header HTTP personalizzati per la comunicazione sia client che server |
| Gestore di Sessioni in Tempo Reale | Monitoraggio dello stato in tempo reale, monitoraggio delle sessioni e capacità di aggiornamento in tempo reale |
| Nomi Personalizzati e Percorsi URI |
Configura le impostazioni di esfiltrazione per sessione per i provider di archiviazione cloud supportati come Google Drive, OneDrive, e Dropbox. L'interfaccia Exfiltration Profile consente di definire token di accesso API e percorsi di cartelle di destinazione, permettendovi di personalizzare i flussi di lavoro di raccolta dati per ogni sessione. Ogni sessione può utilizzare il proprio profilo di esfiltrazione, rendendo semplice indirizzare i dati raccolti verso diversi provider di archiviazione cloud o destinazioni a seconda dell'operazione.

Il livello di comunicazione Telegram utilizza un bot Telegram come intermediario tra il server C2 e il payload. Il server C2 si autentica all'account Telegram utilizzando l'API ID, l'API Hash e il Numero di Telefono configurati, quindi si connette al bot Telegram creato in precedenza tramite quell'account

Il Bot Token del bot è incorporato nel payload, consentendo al payload di comunicare con il bot attraverso l'API di Telegram. I comandi vengono inviati dal server C2 al bot, e il bot li inoltra al payload, che esegue il tasking ricevuto e restituisce i risultati attraverso lo stesso percorso di comunicazione. Questo crea un canale di comando e controllo bidirezionale utilizzando Telegram come livello di comunicazione.

Apri @BotFather in Telegram e crea un nuovo bot usando /newbot.
/newbotbot
Il Bot Token è richiesto dall'Agente Telegram per autenticarsi con l'API Bot di Telegram.
Apri il portale ufficiale di sviluppo API di Telegram e crea una nuova applicazione.
Genera le seguenti credenziali: https://my.telegram.org/apps
API IDAPI Hash
Queste credenziali sono utilizzate da BEAR-C2 per autenticare l'account Telegram usato per gestire la comunicazione del bot.
Apri Telegram Agent.cpp e configura le impostazioni di comunicazione Telegram.
Il Bot Token generato da BotFather deve essere inserito in /Stagers-Loaders/C2 Channel Agent Samples/Telegram Agent.cpp prima di compilare il payload.

Il flusso di configurazione è:
BotFather → Bot Token → payload.cpp → Compile
L'API ID e l'API Hash sono utilizzati dall'integrazione Telegram di BEAR-C2, mentre il Bot Token è configurato nel payload Telegram in modo che possa comunicare con il Bot Telegram configurato.
Questa fase sostituisce il tradizionale canale di comunicazione di comando e controllo con un livello di comunicazione basato su Discord utilizzando la Discord Gateway API. Invece di affidarsi a server dedicati, indirizzi IP fissi o domini personalizzati, gli operatori comunicano con l'impianto simulato attraverso un canale Discord privato.

Il livello di comunicazione Discord utilizza due bot Discord connessi attraverso lo stesso canale Discord. Un bot è connesso al server C2, mentre il secondo bot è assegnato al payload. I due bot comunicano attraverso il canale Discord condiviso, consentendo il tasking e la comunicazione tra il server C2 e il payload attraverso Discord.
Poiché Discord non consente ai bot di comunicare direttamente con altri bot, l'uso di un canale condiviso fornisce il percorso di comunicazione tra le due parti.

L'Agente Discord utilizza il Gateway e l'API di Discord come livello di comunicazione tra il payload e BEAR-C2. La configurazione richiede applicazioni Discord Bot, un canale di testo dedicato, i permessi bot richiesti e i valori corrispondenti configurati nel campione dell'agente C++.
Apri il "Discord Developer Portal" ufficiale (https://discord.com/developers/applications) e crea le applicazioni Discord Bot richieste per la simulazione.
Il canale C2 Discord utilizza due identità Bot:
Per ogni applicazione, apri le impostazioni Bot e genera il Bot Token richiesto.

Apri la configurazione del Bot nel Discord Developer Portal e abilita Message Content Intent.
Il Bot deve inoltre disporre dei permessi richiesti per il canale di testo Discord utilizzato dalla simulazione, tra cui:
Questi permessi consentono al Bot di accedere ai messaggi dal canale configurato e di inviare messaggi attraverso lo stesso percorso di comunicazione. Discord richiede il Message Content Intent per le applicazioni che devono ricevere il contenuto dei messaggi attraverso l'API.

Crea un canale di testo privato dedicato per l'Agente Discord e aggiungi entrambe le applicazioni Bot al canale.
Assicurati che gli stessi permessi configurati nel Discord Developer Portal siano abilitati anche per le applicazioni Bot nel canale.
Copia il Channel ID con la Modalità Sviluppatore di Discord abilitata. Discord fornisce il Channel ID tramite l'opzione Copy Channel ID quando la Modalità Sviluppatore è abilitata.

Lo stesso Channel ID è utilizzato dalla configurazione C2 e dall'Agente Discord in modo che entrambe le parti comunichino attraverso lo stesso canale Discord.
Apri il campione dell'Agente Discord situato in:
"Stagers-Loaders/C2 Channel Agent Samples/Discord Agent.cpp"
Il campione fornisce campi di configurazione per il Bot Token di Discord, il Channel ID e il Bot User ID:

Sostituisci i segnaposto con i valori appartenenti al Payload Bot e al canale Discord dedicato.
Il "BOT_USER_ID" identifica l'account Bot utilizzato dal payload. Gli User ID di Discord possono essere copiati dopo aver abilitato la Modalità Sviluppatore.
Nella configurazione del Canale Discord all'interno di BEAR-C2, fornisci il corrispondente C2 Bot Token, Channel ID, e Listener Name.

Il C2 Bot e il Payload Bot utilizzano lo stesso canale Discord come percorso di comunicazione, mentre ciascuna parte si autentica utilizzando il proprio Bot Token.
Dopo che la configurazione Discord e il campione del payload sono stati completati, compila l'Agente C++ per l'uso nell'ambiente di simulazione degli avversari autorizzato.
⚠️ NOTA: Limitazioni dei Canali C2
I Canali C2 introducono limitazioni relative al trasferimento dati e all'identificazione dei Beacon quando si utilizzano piattaforme di messaggistica di terze parti come livello di comunicazione tra il Server C2 e i Beacon
● Limitazioni al Trasferimento Dati
Telegram e Discord impongono un limite massimo di caratteri sui singoli messaggi scambiati attraverso le loro API bot. In BEAR C2, il Canale C2 agisce come livello di trasporto tra il Server C2 e il Beacon, quindi questa limitazione si applica ai dati trasferiti attraverso il canale e non alla dimensione del payload del Beacon stesso. I dati inviati dal Server C2 al Beacon e i dati restituiti dal Beacon al Server C2 possono essere codificati in Base64 prima della trasmissione. Poiché Base64 aumenta la dimensione della rappresentazione trasmessa, la quantità di dati originali che possono essere trasferiti in un singolo messaggio è inferiore al limite di caratteri della piattaforma.
[ Telegram ] 4096 caratteri massimo per messaggio, 4000 caratteri configurati per il trasferimento dati C2

[ Discord ] 2000 caratteri massimo per messaggio, 1400 caratteri configurati per il trasferimento dati C2

I limiti configurati sono intenzionalmente mantenuti al di sotto dei limiti della piattaforma per fornire un margine sufficiente per la struttura del messaggio C2 e l'overhead di codifica. Quando i dati superano il limite configurato, i dati codificati devono essere suddivisi in più messaggi e ricostruiti dal lato ricevente.
● Identificazione dei Beacon e Attribuzione delle Risposte
I Canali C2 introducono inoltre una limitazione quando più Beacon condividono lo stesso bot Telegram o canale Discord. Tutti i Beacon che comunicano attraverso lo stesso bot o canale utilizzano lo stesso percorso di comunicazione, quindi il Server C2 non può intrinsecamente rappresentare ciascun Beacon come una sessione di comunicazione indipendente. Ad esempio, se cinque Beacon comunicano attraverso lo stesso bot Telegram o canale Discord, appariranno come un singolo percorso di comunicazione C2 anziché come cinque Beacon identificabili indipendentemente.
La stessa limitazione riguarda le risposte ai comandi. Quando un comando viene distribuito a più Beacon attraverso lo stesso bot o canale, le risposte risultanti vengono restituite attraverso quello stesso percorso di comunicazione. Senza un meccanismo aggiuntivo di identificazione dei Beacon, il Server C2 non può determinare in modo affidabile quale Beacon ha generato una specifica risposta.
La soluzione diretta è assegnare un bot dedicato a ciascun Beacon su Telegram, o una configurazione di canale o bot isolata a ciascun Beacon su Discord. Questo crea una mappatura uno a uno tra il Beacon e il suo percorso di comunicazione, consentendo di distinguere i singoli Beacon e le loro risposte. Il compromesso è un aumento dell'infrastruttura e dell'overhead di gestione man mano che il numero di Beacon aumenta.
Queste limitazioni sono specifiche dell'uso di piattaforme di messaggistica come canali di trasporto C2 e sono indipendenti dal payload del Beacon stesso.
● Impatto Pratico
La limitazione della dimensione dei messaggi riduce la quantità di dati che possono essere trasferiti in una sola volta, il che può aumentare il tempo necessario per inviare comandi e ricevere il loro output
L'uso di un bot Telegram o canale Discord condiviso fa sì che più Beacon appaiano come un singolo Beacon nella tabella C2, mentre i comandi vengono consegnati a tutti i Beacon che utilizzano quel bot o canale e le risposte non possono essere attribuite in modo affidabile a un Beacon specifico.
Simula campagne di spear-phishing attraverso un'interfaccia dedicata per configurare e gestire scenari di phishing durante esercizi autorizzati di simulazione degli avversari. Il modulo fornisce controlli di campagna come limiti di invio delle vittime, parametri di phishing configurabili e gestione delle sessioni, consentendo agli operatori di controllare il comportamento della campagna e valutare l'interazione degli utenti con scenari di phishing simulati. È progettato per supportare valutazioni di phishing controllate fornendo agli operatori maggiore visibilità e controllo sull'esecuzione della campagna.

Ospita e distribuisci file attraverso un'interfaccia dedicata Host File con impostazioni server configurabili e consegna automatizzata dei file. I file ospitati vengono caricati automaticamente quando vi si accede, senza richiedere l'interazione dell'utente o una richiesta di download manuale. L'interfaccia fornisce hosting e gestione centralizzata della consegna dei file per flussi di lavoro controllati di simulazione degli avversari e test di sicurezza autorizzati.
Lo Script Obfuscator fornisce un motore di offuscamento completo che supporta payload PS1, BAT, HTML, VBS, JS e PY con molteplici livelli di offuscamento configurabili. Include rinominazione di variabili e funzioni, crittografia di stringhe, inserimento di codice spazzatura, offuscamento multi-livello, tecniche anti-debugging e crittografia del payload basata su XOR. Queste funzionalità aumentano la complessità dell'analisi, riducono la leggibilità degli script e rendono il reverse engineering significativamente più difficile, aiutando al contempo i payload a resistere meglio all'analisi statica.
L'elenco completo dei gruppi APT simulati da BEAR-C2 durante il suo sviluppo
| Paese di Origine | Russia 🇷🇺 | Cina 🇨🇳 | Corea del Nord 🇰🇵 | Iran 🇮🇷 |
|---|---|---|---|---|
| Gruppi APT |
Cozy Bear ✅ |
Mustang Panda ✅ |
| Nomi di campagna definiti dall'utente e percorsi URI configurabili per flessibilità operativa |
| Controlli di Riconnessione e Timeout | Ritardi di riconnessione configurabili e soglie di timeout regolabili per sessione |
| Identificatori di Autenticazione | Token di autenticazione univoci con controlli di scadenza integrati per una maggiore sicurezza |
| Utility di Hardening delle Sessioni | Pulitore di cronologia, limitatore di sessioni e gestione del timeout di autenticazione per le sessioni attive |
| [**Labyrinth Chollima ✅**](https://github.com/S3N4T0R-0X0/APTs-Adversary-Simulation/tree/main/North%20Koreans%20APT/Labyrinth%20Chollima) [**Velvet Chollima ✅**](https://github.com/S3N4T0R-0X0/APTs-Adversary-Simulation/tree/main/North%20Koreans%20APT/Velvet%20Chollima) [**Famous Chollima ✅**](https://github.com/S3N4T0R-0X0/APTs-Adversary-Simulation/tree/main/North%20Koreans%20APT/Famous%20Chollima) [**Stardust Chollima ✅**](https://github.com/S3N4T0R-0X0/APTs-Adversary-Simulation/tree/main/North%20Koreans%20APT/Stardust%20Chollima) [**Ricochet Chollima ✅**](https://github.com/S3N4T0R-0X0/APTs-Adversary-Simulation/tree/main/North%20Koreans%20APT/Ricochet%20Chollima) [**Silent Chollima ✅**](https://github.com/S3N4T0R-0X0/APTs-Adversary-Simulation/tree/main/North%20Koreans%20APT/Silent%20Chollima) |
|
Helix Kitten |