Der Exploit-Server für Out-of-Band-Funde. Richte ein Ziel auf eine Domain aus, die dir gehört. Jede HTTP-Anfrage und jede E-Mail, die es zurücksendet, landet in einem Dashboard, das du kontrollierst, und es erhält als Antwort, was auch immer du wählst.
BEAR-C2 ist ein Framework zur Gegner-Simulation und -Emulation, das auf realen TTPs basiert, die von russischen, chinesischen, nordkoreanischen und iranischen APT-Gruppen inspiriert sind. Es bietet eine flexible Umgebung für vielfältige Einsatzszenarien und liefert eine realistische Grundlage für Red-Team-Operationen und Gegner-Emulation, wobei es auf verwandte Simulationsforschung im zurückgreift. Es unterstützt Techniken zur Verteidigungsumgehung und mehrere Verschlüsselungsoptionen zur akkuraten Darstellung realer Eindringungsszenarien.

[!CAUTION] Es ist wichtig zu beachten, dass dieses Projekt ausschließlich für Bildungs- und Forschungszwecke bestimmt ist und jede unbefugte Nutzung rechtliche Konsequenzen nach sich ziehen kann.
git clone https://github.com/S3N4T0R-0X0/BEAR-C2.git && cd BEAR-C2
chmod +x requirements.sh && ./requirements.sh
./BEAR-C2
## 🧠 Die Herausforderung bei der Adversary Simulation:
Die akkurate Nachbildung von **APT-Techniken** erfordert eine `flexible Umgebung, die in der Lage ist, Verbindungsprotokolle, Verschlüsselungsmethoden, Exfiltrationstechniken und C2-Kanäle/-Profile nachzubilden`, wie sie in modernen Intrusionen verwendet werden. Dieses Maß an Präzision zu erreichen, war jedoch schon immer eine Herausforderung.
<img width="1366" height="732" alt="main " src="https://assets.kitploit.com/production/public/readmes/54775/8af4474bf61f52114745ec8403b4ea6d01d26a57f85913f1f01b4bba559a1eb7/59654a7b465df184554d5c31ee49293c1f5d9da71a1e6ef81aa0a2fa5b88b8ea-display-v1.webp" />
Jedes Mal, wenn ein Operator ein bestimmtes **Verschlüsselungsschema** mit einem bestimmten **Exfiltrationsprofil** testen muss, `muss ein separates C2-Skript erstellt werden, das zum Angriffsszenario passt.` Beispielsweise könnte eine Simulation **AES-Verschlüsselung** mit **OneDrive-Exfiltration** erfordern, während eine andere **eine andere Verschlüsselungsmethode** in Kombination mit **Dropbox-Exfiltration** benötigen könnte, um die in realen Angriffen beobachteten Techniken widerzuspiegeln. Dieser Mangel an Flexibilität macht den Prozess ineffizient und zeitaufwändig.
<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" />
Aus diesem Grund wurde **BEAR C2** entwickelt, um **Adversary Simulation** mit vollständiger Anpassung durch den neuen Listener bereitzustellen, was eine nahtlose Konfiguration von `Verbindungsprotokollen, Verschlüsselung, Exfiltration` und automatisierten Ladetechniken ermöglicht. Dadurch wird sichergestellt, dass Simulationen reale **APT-Intrusionen** akkurat widerspiegeln können, ohne für jedes Szenario benutzerdefinierte Skripte erstellen zu müssen.
## Reaper Node Payload Samples
Reaper Node bietet C++-Payload-Beispiele unter `/Stagers-Loaders/Reaper Node Samples/`, die als anpassbare Vorlagen für Umgebungen verwendet werden können, in denen kein vorab generierter Payload erforderlich ist. Die Beispiele enthalten die zentralen Konfigurationsfelder, die erforderlich sind, um die Kommunikation mit der entsprechenden Reaper-Node-Instanz herzustellen.
Vor dem Kompilieren des Payloads müssen die erforderlichen Verbindungs- und Transportparameter konfiguriert werden, damit sie mit der Reaper-Node-Konfiguration übereinstimmen.
### Payload-Konfiguration
Die Payload-Konfiguration sollte Eingabefelder für die folgenden Parameter bereitstellen:
* **Authentication ID**
Die Kennung, die verwendet wird, um den Payload der konfigurierten Reaper-Node-Instanz zuzuordnen.
* **Server Host**
Die IP-Adresse oder der Hostname des Reaper-Node-Endpunkts.
* **Server Port**
Der Netzwerkport, der von der Reaper Node für das ausgewählte Kommunikationsprotokoll bereitgestellt wird.
* **Encryption Key**
Erforderlich, wenn der ausgewählte Transport Verschlüsselung verwendet. Der Wert muss mit der von der Reaper Node verwendeten Verschlüsselungskonfiguration übereinstimmen. Wenn die Verschlüsselung deaktiviert ist, ist dieses Feld nicht erforderlich.
* **User-Agent**
Der Identifikationswert des HTTP-Clients, der beim Aufbau der initialen HTTP/HTTPS-Kommunikation verwendet wird. Der Payload sollte einen User-Agent verwenden, der von der entsprechenden Reaper-Node-Konfiguration unterstützt wird.
Der User-Agent muss nicht über verschiedene Reaper-Node-Konfigurationen hinweg identisch sein. Ein Payload kann jeden User-Agent verwenden, der laut dem ausgewählten Reaper-Node-Profil als unterstützt definiert ist, solange die resultierende Konfiguration mit den serverseitigen Transporteinstellungen kompatibel ist.
### Beispielkonfiguration
Das folgende Beispiel zeigt eine Beispielkonfiguration für einen HTTPS-Transport mit Authentifizierung, Serveradressierung, Verschlüsselung und User-Agent-Parametern:```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;
Diese Konfiguration stellt einen HTTPS-Transport mit aktivierter Verschlüsselung dar. Die oben gezeigten Werte sind Platzhalter und sollten durch die Parameter ersetzt werden, die in der entsprechenden Reaper-Node-Konfiguration definiert sind.
Das C++-Beispiel soll als Ausgangspunkt für die Anpassung dienen. Benutzer können die Konfiguration und die transportbezogenen Parameter entsprechend dem Reaper-Node-Profil, das sie testen, ändern und dann die angepasste Payload für ihre autorisierte Simulationsumgebung kompilieren.
Die Listeners-Tabelle bietet einen zentralisierten Überblick über alle aktiven und konfigurierten C2-Listener. Sie zeigt wesentliche Details wie Listener-Name, Adresse, Netzwerkprotokoll, Verschlüsselungsmethode, Exfiltrationsprofil und aktuellen Status (Aktiv oder Gestoppt/Getrennt) an. Über diese Oberfläche können Operatoren Listener einfach starten, stoppen, umbenennen oder entfernen. Sie bietet außerdem schnellen Zugriff auf Verschlüsselungsschlüssel und Authentifizierungs-IDs für die Verwaltung der Beacon-Kommunikation. Diese Tabelle dient als Kommandozentrale für die Orchestrierung und Überwachung Ihrer C2-Infrastruktur.

Diese Version bietet eine vollständige GUI, die Adversary-Simulation-Operationen durch zentralisierte Listener-Verwaltung, Echtzeit-Session-Tracking, anpassbare Kommunikationsprofile, integrierte Exfiltrations-Workflows und flexible Operator-Steuerungen für ein effizientes Engagement-Management optimiert.
⚠️ HINWEIS: Dieses Projekt befindet sich in aktiver Entwicklung. Funktionen werden kontinuierlich hinzugefügt und verbessert.
| Funktion | Beschreibung |
|---|---|
| Multi-Protokoll-Listener | DoH, HTTPS, HTTP, QUIC, Reverse TCP |
| Verschlüsselung pro Listener | AES, XOR, RC4, DES, ChaCha20, RSA |
| Exfiltrationsprofile | Google Drive, OneDrive, Dropbox |
| Integrierte C2-Kanäle | Integrierter Telegram-, Discord-C2-Kommunikationskanal |
| Proxy-Unterstützung | Unterstützung für SOCKS4-, SOCKS4a- und SOCKS5-Proxy und Redirector |
| Dynamischer Domain Generation Algorithm | DGA-Unterstützung für resiliente Infrastruktursimulation |
| JA3S-Fingerprinting | Anpassbare JA3S-Fingerabdrücke für Verkehrssimulation und Netzwerkprofil-Tuning |
| Malleable C2 Profiles | Unterstützung für Community-Malleable C2 profiles für flexible Netzwerkverkehrssimulation |
| Stager & Loader | Automatisierte Stager- und Loader-Techniken für APT-Adversary-Simulation |
| Integrierte Tools | Integrierter Script-Obfuscator, Phishing-Toolkit und File-Hosting |
| TLS-Zertifikatsgenerierung | Selbstsignierte TLS-Zertifikate, die vertrauenswürdige Anbieter imitieren |
| HTTP-Anpassung | Base64-URL-Kodierung und benutzerdefinierte HTTP-Header für Client- und Serverkommunikation |
| Echtzeit-Session-Manager | Live-Status-Tracking, Session-Überwachung und Echtzeit-Update-Funktionen |
| Benutzerdefinierte Benennung & URI-Pfade | Benutzerdefinierte Kampagnennamen und konfigurierbare URI-Pfade für operative Flexibilität |
Konfigurieren Sie Exfiltrationseinstellungen pro Session für unterstützte Cloud-Speicheranbieter wie Google Drive, OneDrive, and Dropbox. Die Oberfläche Exfiltration Profile ermöglicht es Ihnen, API-Zugriffstoken und Zielordnerpfade zu definieren, sodass Sie Datensammlungs-Workflows für jede Session anpassen können. Jede Session kann ihr eigenes Exfiltrationsprofil verwenden, wodurch gesammelte Daten je nach Operation einfach an verschiedene Cloud-Speicheranbieter oder Ziele weitergeleitet werden können.

Die Telegram-Kommunikationsschicht verwendet einen Telegram-Bot als Vermittler zwischen dem C2-Server und der Payload. Der C2-Server authentifiziert sich beim Telegram-Konto mithilfe der konfigurierten API-ID, des API-Hash und der Telefonnummer und verbindet sich dann über dieses Konto mit dem zuvor erstellten Telegram-Bot

Der Bot-Token des Bots ist in der Payload eingebettet, sodass die Payload über die Telegram-API mit dem Bot kommunizieren kann. Befehle werden vom C2-Server an den Bot gesendet, und der Bot leitet sie an die Payload weiter, die die empfangene Aufgabe ausführt und die Ergebnisse über denselben Kommunikationspfad zurückgibt. Dadurch entsteht ein bidirektionaler Command-and-Control-Kanal, der Telegram als Kommunikationsschicht nutzt.

Öffnen Sie @BotFather in Telegram und erstellen Sie einen neuen Bot mit /newbot.
/newbotbot endet
Der Bot Token wird vom Telegram-Agenten benötigt, um sich bei der Telegram Bot API zu authentifizieren.
Öffnen Sie das offizielle Entwicklerportal der Telegram-API und erstellen Sie eine neue Anwendung.
Generieren Sie die folgenden Anmeldedaten: https://my.telegram.org/apps
API IDAPI Hash
Diese Anmeldedaten werden von BEAR-C2 verwendet, um das Telegram-Konto zu authentifizieren, das für die Verwaltung der Bot-Kommunikation genutzt wird.
Öffnen Sie Telegram Agent.cpp und konfigurieren Sie die Telegram-Kommunikationseinstellungen.
Der von BotFather generierte Bot Token muss in /Stagers-Loaders/C2 Channel Agent Samples/Telegram Agent.cpp platziert werden, bevor die Payload kompiliert wird.

Der Konfigurationsablauf ist:
BotFather → Bot Token → payload.cpp → Compile
Die API ID und der API Hash werden von der BEAR-C2-Telegram-Integration verwendet, während der Bot Token in der Telegram-Payload konfiguriert wird, damit diese mit dem konfigurierten Telegram-Bot kommunizieren kann.
Diese Stufe ersetzt den traditionellen Command-and-Control-Kommunikationskanal durch eine Discord-basierte Kommunikationsschicht, die die Discord Gateway API verwendet. Anstatt sich auf dedizierte Server, feste IP-Adressen oder benutzerdefinierte Domains zu verlassen, kommunizieren Operatoren mit dem simulierten Implantat über einen privaten Discord-Kanal.

Die Discord-Kommunikationsschicht verwendet zwei Discord-Bots, die über denselben Discord-Kanal verbunden sind. Ein Bot ist mit dem C2-Server verbunden, während der zweite Bot der Payload zugewiesen ist. Die beiden Bots kommunizieren über den gemeinsamen Discord-Kanal, wodurch Tasking und Kommunikation zwischen dem C2-Server und der Payload über Discord ermöglicht werden.
Da Discord es Bots nicht erlaubt, direkt mit anderen Bots zu kommunizieren, bietet ein gemeinsamer Kanal den Kommunikationspfad zwischen beiden Seiten.

Der Discord-Agent verwendet das Discord Gateway und die API als Kommunikationsschicht zwischen der Payload und BEAR-C2. Das Setup erfordert Discord-Bot-Anwendungen, einen dedizierten Textkanal, die erforderlichen Bot-Berechtigungen und die entsprechenden Werte, die im C++-Agent-Beispiel konfiguriert werden.
Öffnen Sie das offizielle "Discord Developer Portal" (https://discord.com/developers/applications) und erstellen Sie die für die Simulation erforderlichen Discord-Bot-Anwendungen.
Der Discord-C2-Kanal verwendet zwei Bot-Identitäten:
Öffnen Sie für jede Anwendung die Bot-Einstellungen und generieren Sie den erforderlichen Bot Token.

Öffnen Sie die Bot configuration in the Discord Developer Portal und aktivieren Sie Message Content Intent.
Der Bot muss außerdem über die erforderlichen Berechtigungen für den von der Simulation verwendeten Discord-Textkanal verfügen, darunter:
Diese Berechtigungen ermöglichen es dem Bot, auf Nachrichten aus dem konfigurierten Kanal zuzugreifen und Nachrichten über denselben Kommunikationspfad zu senden. Discord erfordert den Message Content Intent für Anwendungen, die Nachrichteninhalte über die API empfangen müssen.

Erstellen Sie einen dedizierten privaten Textkanal für den Discord-Agenten und fügen Sie beide Bot-Anwendungen zum Kanal hinzu.
Stellen Sie sicher, dass the same permissions configured in the Discord Developer Portal auch für die Bot-Anwendungen im Kanal aktiviert sind.
Kopieren Sie die Channel ID mit aktiviertem Discord Developer Mode. Discord stellt die Channel ID über die Option Copy Channel ID bereit, when Developer Mode is enabled.

Die same Channel ID is used by the C2 configuration and the Discord Agent, sodass beide Seiten über denselben Discord-Kanal kommunizieren.
Öffnen Sie das Discord-Agent-Beispiel unter:
"Stagers-Loaders/C2 Channel Agent Samples/Discord Agent.cpp"
Das Beispiel bietet Konfigurationsfelder für den Discord Bot Token, die Channel ID und die Bot User ID:

Ersetzen Sie die Platzhalter durch die Werte, die zum Payload-Bot und zum dedizierten Discord-Kanal gehören.
Die "BOT_USER_ID" identifiziert das Bot-Konto, das von der Payload verwendet wird. Discord User IDs können nach Aktivierung des Developer Mode kopiert werden.
Geben Sie in der Discord-Kanal-Konfiguration innerhalb von BEAR-C2 den entsprechenden C2 Bot Token, Channel ID, and Listener Name. an.

Der C2-Bot und der Payload-Bot verwenden denselben Discord-Kanal als Kommunikationspfad, während sich jede Seite mit ihrem eigenen Bot Token authentifiziert.
Nachdem die Discord-Konfiguration und das Payload-Beispiel abgeschlossen wurden, kompilieren Sie den C++-Agenten für die Verwendung in der autorisierten Adversary-Simulation-Umgebung.
⚠️ HINWEIS: Einschränkungen von C2-Kanälen
C2-Kanäle bringen Einschränkungen in Bezug auf Datenübertragung und Beacon-Identifikation mit sich, wenn Messaging-Plattformen von Drittanbietern als Kommunikationsschicht zwischen dem C2-Server und Beacons verwendet werden
● Einschränkungen der Datenübertragung
Telegram und Discord legen ein maximales Zeichenlimit für einzelne Nachrichten fest, die über ihre Bot-APIs ausgetauscht werden. In BEAR C2 fungiert der C2-Kanal als Transportschicht zwischen dem C2-Server und dem Beacon, sodass diese Einschränkung für die über den Kanal übertragenen Daten gilt und nicht für die Größe der Beacon-Payload selbst. Vom C2-Server an den Beacon gesendete Daten und vom Beacon an den C2-Server zurückgegebene Daten können vor der Übertragung Base64-kodiert werden. Da Base64 die Größe der übertragenen Darstellung erhöht, ist die Menge an Originaldaten, die in einer einzelnen Nachricht übertragen werden kann, geringer als das Zeichenlimit der Plattform.
[ Telegram ] maximal 4096 Zeichen pro Nachricht, 4000 Zeichen für die C2-Datenübertragung konfiguriert

[ Discord ] maximal 2000 Zeichen pro Nachricht, 1400 Zeichen für die C2-Datenübertragung konfiguriert

Die konfigurierten Limits werden absichtlich unterhalb der Plattformlimits gehalten, um ausreichend Spielraum für die C2-Nachrichtenstruktur und den Kodierungs-Overhead zu bieten. Wenn die Daten das konfigurierte Limit überschreiten, müssen die kodierten Daten in mehrere Nachrichten aufgeteilt und von der empfangenden Seite rekonstruiert werden.
● Beacon-Identifikation und Zuordnung von Antworten
C2-Kanäle führen außerdem eine Einschränkung ein, wenn mehrere Beacons denselben Telegram-Bot oder Discord-Kanal gemeinsam nutzen. Alle Beacons, die über denselben Bot oder Kanal kommunizieren, verwenden denselben Kommunikationspfad, sodass der C2-Server jeden Beacon nicht von Natur aus als unabhängige Kommunikationssession darstellen kann. Wenn beispielsweise fünf Beacons über denselben Telegram-Bot oder Discord-Kanal kommunizieren, erscheinen sie als ein einzelner C2-Kommunikationspfad und nicht als fünf unabhängig identifizierbare Beacons.
Dieselbe Einschränkung betrifft Befehlsantworten. Wenn ein Befehl über denselben Bot oder Kanal an mehrere Beacons verteilt wird, werden die resultierenden Antworten über denselben Kommunikationspfad zurückgegeben. Ohne einen zusätzlichen Beacon-Identifikationsmechanismus kann der C2-Server nicht zuverlässig bestimmen, welcher Beacon eine bestimmte Antwort erzeugt hat.
Die direkte Lösung besteht darin, jedem Beacon auf Telegram einen dedizierten Bot zuzuweisen oder auf Discord jedem Beacon eine isolierte Kanal- oder Bot-Konfiguration zuzuweisen. Dadurch entsteht eine Eins-zu-eins-Zuordnung zwischen dem Beacon und seinem Kommunikationspfad, wodurch einzelne Beacons und ihre Antworten unterschieden werden können. Der Nachteil ist ein erhöhter Infrastruktur- und Verwaltungsaufwand, wenn die Anzahl der Beacons steigt.
Diese Einschränkungen sind spezifisch für die Verwendung von Messaging-Plattformen als C2-Transportkanäle und sind unabhängig von der Beacon-Payload selbst.
● Praktische Auswirkungen
Die Nachrichtengrößenbeschränkung reduziert die Datenmenge, die auf einmal übertragen werden kann, was die Zeit erhöhen kann, die zum Senden von Befehlen und zum Empfangen ihrer Ausgabe erforderlich ist
Die Verwendung eines gemeinsamen Telegram-Bots oder Discord-Kanals führt dazu, dass mehrere Beacons in der C2-Tabelle als ein einzelner Beacon erscheinen, während Befehle an alle Beacons übermittelt werden, die diesen Bot oder Kanal verwenden, und Antworten nicht zuverlässig einem bestimmten Beacon zugeordnet werden können.
Simulieren Sie Spear-Phishing-Kampagnen über eine dedizierte Oberfläche zum Konfigurieren und Verwalten von Phishing-Szenarien während autorisierter Adversary-Simulation-Übungen. Das Modul bietet Kampagnensteuerungen wie Opfer-Einreichungslimits, konfigurierbare Phishing-Parameter und Session-Management, wodurch Operatoren das Kampagnenverhalten steuern und die Benutzerinteraktion mit simulierten Phishing-Szenarien bewerten können. Es ist darauf ausgelegt, kontrollierte Phishing-Assessments zu unterstützen und Operatoren gleichzeitig größere Sichtbarkeit und Kontrolle über die Kampagnenausführung zu bieten.

Hosten und verteilen Sie Dateien über eine dedizierte Host File-Oberfläche mit konfigurierbaren Servereinstellungen und automatisierter Dateibereitstellung. Gehostete Dateien werden beim Zugriff automatisch geladen, ohne dass eine Benutzerinteraktion oder eine manuelle Download-Aufforderung erforderlich ist. Die Oberfläche bietet zentralisiertes File-Hosting und Bereitstellungsmanagement für kontrollierte Adversary-Simulation und autorisierte Security-Testing-Workflows.
Der Script Obfuscator bietet eine umfassende Obfuskierungs-Engine, die PS1-, BAT-, HTML-, VBS-, JS- und PY-Payloads mit mehreren konfigurierbaren Obfuskierungsschichten unterstützt. Er umfasst variable and function renaming, string encryption, junk code insertion, multi-layer obfuscation, anti-debugging techniques, and XOR-based payload encryption. Diese Funktionen erhöhen die Analysekomplexität, reduzieren die Lesbarkeit von Skripten und machen Reverse Engineering deutlich schwieriger, während sie Payloads dabei helfen, statischer Analyse besser standzuhalten.
The complete list of APT groups simulated by BEAR-C2 throughout its development
| Country of Origin | Russia 🇷🇺 | China 🇨🇳 | North Korea 🇰🇵 | Iran 🇮🇷 |
|---|---|---|---|---|
| APT Groups |
Cozy Bear ✅ |
Mustang Panda ✅ |
| Reconnect- & Timeout-Steuerung | Konfigurierbare Reconnect-Verzögerungen und anpassbare Timeout-Schwellenwerte pro Session |
| Authentifizierungs-Identifikatoren | Eindeutige Authentifizierungs-Token mit integrierten Ablaufsteuerungen für erhöhte Sicherheit |
| Session-Hardening-Utilities | History-Cleaner, Session-Limiter und Authentifizierungs-Timeout-Verwaltung für aktive Sessions |
| [**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 |