
ABYSS C2 — HiSilicon DVR Exploit Framework (CVE-2020-25078). Educational IoT security research platform.
⚠️ NUR ZU BILDUNGS-/DEMONSTRATIONSZWECKEN
Diese Software wird ausschließlich für Bildungszwecke und autorisierte Sicherheitsforschung bereitgestellt. Sie soll gängige IoT-Sicherheitslücken und Post-Exploitation-Techniken in einer kontrollierten, autorisierten Umgebung demonstrieren.
Du DARFST diese Software NICHT verwenden auf:
- Systemen oder Geräten, die dir nicht gehören
- Systemen oder Geräten, für die du keine ausdrückliche schriftliche Genehmigung zum Testen hast
- Produktionsinfrastruktur ohne vorherige Genehmigung
Der Ersteller übernimmt KEINE Haftung oder Verantwortung für Missbrauch, Schäden oder illegale Aktivitäten, die mit dieser Software durchgeführt werden. Mit der Nutzung dieser Software bestätigst du, dass du allein dafür verantwortlich bist, die Einhaltung aller geltenden Gesetze und Vorschriften in deinem Land sicherzustellen. Unbefugter Zugriff auf Computersysteme ist illegal gemäß Gesetzen wie dem Computer Fraud and Abuse Act (CFAA) und ähnlichen Gesetzen weltweit.
Dieses Projekt existiert, um Folgendes zu demonstrieren:
- Wie CVE-2020-25078 (HiSilicon DVR-Informationspreisgabe) funktioniert
- IoT-Gerätesicherheitsschwächen und warum Firmware-Updates wichtig sind
- Post-Exploitation-Techniken, damit Verteidiger die TTPs von Angreifern verstehen
- Die Bedeutung von Netzwerksegmentierung und Passworthygiene
Wenn du es nicht besitzt, fasse es nicht an.
ABYSS C2 ist ein vollständiges Command-&-Control-Framework, das in Python/Flask mit einem dunklen Echtzeit-Web-Panel entwickelt wurde. Es demonstriert die gesamte Angriffskette gegen IoT-Geräte (insbesondere HiSilicon-basierte DVRs und IP-Kameras, die von CVE-2020-25078 betroffen sind) – von der Aufklärung und Zielerfassung über Exploitation, Post-Exploitation, Persistenz, laterale Bewegung bis hin zur Datenerx filtration.
CVE-2020-25078 ist eine Path-Traversal- / Informationspreisgabe-Schwachstelle in HiSilicon Hi3516/Hi3518/Hi3519-basierten DVR-/NVR-Geräten. Nicht authentifizierte Angreifer können über Directory Traversal im HTTP-Server auf Konfigurationsdateien (/mnt/mtd/Config/Account*) mit Klartext-Admin-Anmeldedaten zugreifen.
panel/ ├── server.py # Flask + SocketIO C2 web panel (~1200 lines, 50+ API routes) ├── database.py # SQLite ORM — 11 tables (cameras, vulns, creds, shells, DNS, ASN, etc.) ├── scanner.py # Multi-threaded TCP/HTTP vulnerability scanner ├── exploit.py # CVE-2020-25078 exploit — 37 vulnerable paths, 14 credential parsers ├── telnet_client.py # Raw telnet command execution against owned devices ├── brute.py # Multi-threaded brute force engine ├── web_exploit.py # Full website vulnerability scanner (CMS detection, exposed files, SQLi) ├── web_cves.py # CVE scanner — Log4Shell, Spring4Shell, Confluence, Ghostcat, etc. ├── web_bugs.py # Bug class scanner — SQLi, LFI, SSRF, XXE, CmdI, JWT, etc. ├── web_brute.py # Web brute force — forms, WordPress xmlrpc, Basic Auth, cred stuffing ├── network_exploit.py # Network service exploit scanner — SMB, RDP, VNC, databases, etc. ├── cred_spray.py # Multi-service credential spraying ├── recon_asn.py # ASN import, organization search, IP-to-ASN lookup ├── recon_dns.py # DNS recon — all record types, subdomain brute, zone transfer ├── recon_jarm.py # JARM TLS server fingerprinting ├── recon_waf.py # WAF detection and identification ├── recon_geoip.py # GeoIP lookup and bulk IP geolocation ├── portscan.py # TCP port scanner with banner grabbing, SYN option, multiple presets ├── persistence.py # SSH key injection, cron backdoors, full deployment ├── reverse_shell.py # Payload generator + multi-session listener ├── pivot_chain.py # Multi-hop command execution and TCP relay ├── socks_pivot.py # SOCKS5 proxy through compromised hosts ├── botnet.py # Bot grouping, fan-out commands, health checks, payload deployment ├── intel.py # Telegram/Discord webhooks, AbuseIPDB, screenshot capture ├── scheduler.py # APScheduler-based job scheduling ├── proxy_rotation.py # Proxy list rotation for stealth ├── stealth.py # Traffic obfuscation utilities ├── inject_key.py # SSH key injection variants ├── inject_ssh.py # SSH-based injection ├── launch.py # Simple launcher wrapper ├── auto_exploit.py # Automated exploitation routines ├── templates/ │ └── index.html # Dark-themed SPA — 8 tabs, real-time updates, terminal └── requirements.txt # Python dependencies
### Datenbankschema
Die SQLite-Datenbank (`cameras.db`, wird beim ersten Ausführen automatisch erstellt) enthält 11 Tabellen:
| Tabelle | Zweck |
|---------|-------|
| `cameras` | Kompromittierte Geräte — IP, Anmeldeinformationen, Modell, Firmware, Seriennummer, Status |
| `command_log` | Vollständiges Prüfprotokoll aller ausgeführten Befehle und deren Ausgaben |
| `scan_results` | Scan-Verlauf — welche IPs gescannt wurden und ob sie anfällig waren |
| `web_vulns` | Entdeckte Web-Schwachstellen (CVE, Schweregrad, Nachweis) |
| `network_vulns` | Entdeckte Netzwerkdienst-Schwachstellen |
| `shells` | Aktive Reverse-Shell-Sitzungen |
| `dns_records` | DNS-Erkennungsergebnisse |
| `cred_vault` | Gesammelte Anmeldeinformationen, nach Dienst organisiert |
| `asn_targets` | ASN-Präfixe und importierte IP-Bereiche |
| `web_targets` | Web-Ziele mit Metadaten (Status, Server, CMS, JARM, WAF) |
| `scan_jobs` | Auftragsverfolgung — Scan-Typ, Ziel, Dauer, Anzahl der Ergebnisse |
| `scan_log` | Modul-Level-Aktivitätsprotokoll für die Prüfung |
---
## Installation
### Voraussetzungen
- Python 3.10 oder neuer
- pip
- Git (optional)
### Schritt 1 — Klonen oder Herunterladen```bash
git clone https://github.com/YOUR_USERNAME/abyss-c2.git
cd abyss-c2
python -m venv venv
venv\Scripts\activate
source venv/bin/activate
### Schritt 3 — Abhängigkeiten installieren```bash
pip install -r requirements.txt
Die Brute-Force-Module erwarten eine rockyou.txt-Wortliste im Projektstammverzeichnis. Aufgrund der GitHub-Dateigrößenbeschränkungen (100 MB) ist sie NICHT in diesem Repository enthalten.```bash
cp /usr/share/wordlists/rockyou.txt.gz . gunzip rockyou.txt.gz
Wenn Sie kein Brute Forcing benötigen, arbeiten die anderen Module ohne eine Wortliste.
### Schritt 5 — Starten```bash
python server.py
Öffnen Sie http://localhost:5000 in Ihrem Browser.
Die Datenbank wird beim ersten Start automatisch erstellt – keine Einrichtung erforderlich.
Wenn Sie das Panel zum ersten Mal öffnen, sehen Sie:
Dies ist Ihre Kommandozentrale. Hier können Sie:
Ziele von Suchmaschinen abrufen:
Manuelles Scannen:
192.168.1.0/24)Sobald Geräte kompromittiert sind (in der Tabelle erscheinen):
Massenoperationen:
Web-Scan-Modus (umschalten mit WEB-Taste):
Sechs Aufklärungsmodule:
CVE-Scanner — Überprüft auf 20+ bekannte CVEs: Log4Shell (CVE-2021-44228), Spring4Shell (CVE-2022-22965), Confluence (CVE-2022-26134), Ghostcat (CVE-2020-1938), Struts2 (CVE-2017-5638), Jenkins (CVE-2018-1000861), GitLab (CVE-2021-22205), Exchange ProxyShell/ProxyLogon, F5 BIG-IP (CVE-2022-1388), Citrix (CVE-2019-19781), MOVEit (CVE-2023-34362), Ivanti (CVE-2024-21887), vCenter (CVE-2021-21972), PHPUnit (CVE-2017-9841), GeoServer (CVE-2024-36401), Apache Solr (CVE-2019-17558), und WordPress-Plugin-Sicherheitslücken.
Bug-Class-Scanner — Testet auf: Blind SQL Injection, Command Injection, Local File Inclusion, Server-Side Request Forgery, XML External Entity, JWT attacks, Subdomain Takeover, HTTP Request Smuggling, GraphQL introspection, CORS misconfiguration.
Web-Brute-Force — Vier Modi:
Ergebnisse erscheinen in der Tabelle Entdeckte Sicherheitslücken unten.
Netzwerk-Exploit-Scanner — Überprüft häufige Netzwerkdienste auf bekannte Sicherheitslücken: SMB (EternalBlue, SMBGhost), RDP (BlueKeep), VNC (Authentifizierungsumgehung), FTP (anonymer Zugriff), SNMP (Standard-Communities), Redis (unauth), MongoDB (unauth), Elasticsearch (unauth), CouchDB (unauth), MySQL/MSSQL/PostgreSQL (Standard-Anmeldedaten), Memcached (unauth), IPMI (Authentifizierungsumgehung), Mirai-IoT-Standards.
Credential Spray — Gesammelte oder benutzerdefinierte Anmeldedaten auf mehrere Dienste anwenden: Telnet, SSH, FTP, HTTP Basic, WordPress, SMB, Redis, MySQL, MongoDB, VNC oder ALLE auf einmal.
Ergebnisse füllen die Tabelle Netzwerksicherheitslücken und den Anmeldedatenspeicher.
Drei Bereitstellungsaktionen für kompromittierte Hosts:
/root/.ssh/authorized_keys hinzu (oder mehrere Pfade)Pivot-Kette — Befehle über mehrere Zwischenhosts ausführen:``` hop1 → hop2 → hop3 → command
**SOCKS Pivot** — Starte einen lokalen SOCKS5-Proxy, der den Datenverkehr durch ein kompromittiertes Gerät leitet, sodass du proxychains oder jedes andere SOCKS-kompatible Tool verwenden kannst, um das interne Netzwerk zu erreichen.
### Tab 6 — Reverse Shells
- **Payload-Generator** — Shell-Typ auswählen (bash, python, perl, php, nc, ruby, node, lua usw.), LHOST/LPORT setzen, auf GENERIEREN klicken – Payload erscheint, zum Kopieren anklicken
- **Listener** — Starte einen Listener auf einem beliebigen Port, er verwaltet automatisch mehrere gleichzeitige Verbindungen
- **Aktive Sitzungen** — Klicke auf eine beliebige Sitzung, um zu interagieren, gib Befehle ein und klicke auf SENDEN
- **Alle Shells** Tabelle zeigt jeden eingehenden Reverse-Shell-Rückruf mit Status an
### Tab 7 — Botnet
Zur Verwaltung großer Gruppen kompromittierter Geräte:
- **Fan-Out-Befehl** — Führe einen Befehl auf allen Bots aus (optional gefiltert nach Tag)
- **Gesundheitscheck** — Pinge alle Bots an und melde Online/Offline-Status
- **Bot taggen** — Weise Bots Tags zur Gruppierung zu (z. B. `eu`, `kameras`, `high-value`)
- **Payload bereitstellen** — Verteile einen Payload an alle Bots einer Tag-Gruppe
- **Bot-Zusammenfassung** — Zeigt Gesamtanzahl, Online-Anzahl und Aufteilung pro Tag
### Tab 8 — Einstellungen
- **Telegram/Discord** — Konfiguriere Webhook-Benachrichtigungen für Ereignisse (neue Kompromittierung, Scan abgeschlossen usw.)
- **AbuseIPDB** — Überprüfe die IP-Reputation
- **Screenshot** — Erstelle einen HTTP-Screenshot von der Weboberfläche einer Kamera
- **Planer** — Richte wiederkehrende Aufgaben ein (z. B. Gesundheitscheck alle 3600 Sekunden)
- **Scan-Protokoll** — Vollständiger Prüfpfad aller Moduloperationen, filterbar nach Modultyp
---
## API-Referenz
Die vollständige REST-API ist verfügbar unter `http://localhost:5000/api/`. Wichtige Endpunkte:
| Endpunkt | Methode | Beschreibung |
|----------|--------|-------------|
| `/api/cameras` | GET | Alle kompromittierten Geräte auflisten |
| `/api/cameras/<ip>` | GET | Gerätedetails abrufen |
| `/api/stats` | GET | Dashboard-Statistiken |
| `/api/scan/start` | POST | Scanner starten (CIDRs, Ziele, Threads) |
| `/api/scan/stop` | POST | Scanner stoppen |
| `/api/scan/status` | GET | Laufzustand des Scanners + Statistiken |
| `/api/exploit/check` | POST | Einzelne IP auf CVE-2020-25078 prüfen |
| `/api/fetch_targets` | POST | Von Shodan/FOFA/ZoomEye/Frei abrufen |
| `/api/web_scan` | POST | Vollständiger Website-Schwachstellenscan |
| `/api/web_cves/scan` | POST | CVE-Scan gegen Ziel |
| `/api/web_bugs/scan` | POST | Bug-Klassen-Scan gegen Ziel |
| `/api/web_brute` | POST | Web-Brute-Force |
| `/api/network/scan` | POST | Netzwerk-Exploit-Scan |
| `/api/cred_spray` | POST | Credential-Spraying |
| `/api/portscan` | POST | TCP-Portscan |
| `/api/recon/asn` | POST | ASN-Import/Suche/Nachschlagen |
| `/api/recon/dns` | POST | DNS-Recon |
| `/api/recon/jarm` | POST | JARM-Fingerabdruck |
| `/api/recon/waf` | POST | WAF-Erkennung |
| `/api/recon/geoip` | POST | GeoIP-Nachschlag |
| `/api/persistence/deploy` | POST | Persistenz bereitstellen (ssh_key/cron/full) |
| `/api/revshell/generate` | POST | Reverse-Shell-Payload generieren |
| `/api/revshell/listen` | POST | Reverse-Shell-Listener starten |
| `/api/revshell/stop` | POST | Listener stoppen |
| `/api/botnet/bots` | GET | Bot-Liste + Gruppenübersicht |
| `/api/botnet/fanout` | POST | Befehl auf allen Bots ausführen |
| `/api/botnet/health` | POST | Bot-Gesundheitscheck |
| `/api/botnet/deploy` | POST | Payload an Bots bereitstellen |
| `/api/socks/start` | POST | SOCKS5-Proxy starten |
| `/api/socks/stop` | POST | SOCKS5-Proxy stoppen |
| `/api/intel/config` | GET/POST | Benachrichtigungskonfiguration abrufen/setzen |
| `/api/intel/screenshot` | POST | Kamera-Screenshot erstellen |
| `/api/intel/notify` | POST | Testbenachrichtigung senden |
| `/api/scheduler/jobs` | GET | Geplante Aufgaben auflisten |
| `/api/scheduler/add` | POST | Geplante Aufgabe hinzufügen |
| `/api/scheduler/remove` | POST | Geplante Aufgabe entfernen |
| `/api/credentials` | GET | Credential-Vault |
| `/api/web_vulns` | GET | Web-Schwachstellenliste |
| `/api/network_vulns` | GET | Netzwerk-Schwachstellenliste |
| `/api/shells` | GET | Alle Reverse-Shell-Sitzungen |
| `/api/scan_log` | GET | Audit-Log mit Modul-/Zielfiltern |
| `/api/scan_jobs` | GET | Scan-Job-Verlauf |
WebSocket-Ereignisse (SocketIO):
- `scanner_event` — Echtzeit-Scan-Fortschritt (alive, vulnerable, owned, status)
- `stats_update` — Dashboard-Statistiken ändern sich
- `cameras_list` — Kamera-Tabelle aktualisieren
- `new_camera` — Neues Gerät kompromittiert
- `command_result` — Telnet-Befehlsausgabe
- `mass_result` / `mass_result_item` — Massenbefehl-Ergebnisse
- `brute_event` — Brute-Force-Fortschritt
- `web_cve_event` / `web_cves_done` — CVE-Scan-Fortschritt
- `web_bug_event` / `web_bugs_done` — Bug-Scan-Fortschritt
- `network_event` / `network_done` — Netzwerkscan-Fortschritt
- `spray_event` / `spray_done` — Credential-Spray-Fortschritt
- `portscan_event` / `portscan_done` — Portscan-Fortschritt
- `persistence_result` — Ergebnis der Persistenzbereitstellung
- `revshell_event` — Reverse-Shell-Daten/Verbindungen
- `botnet_event` / `botnet_fanout_done` — Botnet-Operationen
---
## Technische Details
### CVE-2020-25078 Exploit-Kette
1. **Alive-Check** — TCP-Verbindung zu Port 80
2. **HTTP-Fingerabdruck** — Prüfe Antwort auf 15 bekannte DVR-Signaturen (`AppName="Hipcam"`, `hi3516`, `WEB SERVICE` usw.)
3. **Path Traversal** — Versuche 37 bekannte anfällige Pfade (`/../../../../../../../../../mnt/mtd/Config/Account1` usw.)
4. **Credential-Extraktion** — Analysiere Antwort mit 14 Regex-Mustern, die INI, XML, JSON, URL-kodiert, Binär, Base64, Doppelpunkt-getrennt und DVR-spezifische Formate abdecken
5. **Müllfilterung** — Aggressive Entfernung von Fehlalarmen (HTML-Tags, HTTP-Header, häufige Wörter)
6. **Standard-Fallback** — Wenn Gerät anfällig, aber keine Creds extrahiert, versuche 22 bekannte Standard-Credential-Paare
### Scanner-Architektur
- Thread-Pool mit konfigurierbarer Worker-Anzahl (Standard 50)
- Warteschlangenbasierte Zielverteilung
- Echtzeit-SocketIO-Ereignisausgabe an die Benutzeroberfläche
- Thread-sichere Statistiken mit Mutex-Sperren
- CIDR-Bereicherweiterung mit Netzwerk-/Broadcast-Ausschluss
- Multi-Port-Scanning (80, 8080, 443, 8443, 554, 8000, 81, 88, 8888, 37777)
---
## Haftungsausschluss
**DIESE SOFTWARE WIRD AUSSCHLIESSLICH ZU BILDUNGS- UND DEMONSTRATIONSZWECKEN BEREITGESTELLT.**
Dieses Projekt ist ausschließlich für die Verwendung in autorisierten Sicherheitstests, Bildungsumgebungen oder auf Systemen, die dir gehören, vorgesehen. Die hier demonstrierten Techniken sind in der Cybersicherheitsbranche bekannt und werden dokumentiert, um Verteidigern zu helfen, Angriffsmethoden zu verstehen.
**Durch die Nutzung dieser Software stimmst du Folgendem zu:**
1. Du wirst sie nur auf Systemen verwenden, die dir gehören oder für die du eine ausdrückliche schriftliche Testgenehmigung hast
2. Du bist für die Einhaltung aller geltenden lokalen, staatlichen, nationalen und internationalen Gesetze verantwortlich
3. Die Ersteller und Mitwirkenden dieses Projekts übernehmen **absolut keine Haftung** für:
- Unbefugte oder illegale Nutzung dieser Software
- Schäden, die durch die Nutzung oder den Missbrauch dieser Software entstehen
- Rechtliche Konsequenzen, die sich aus der Nutzung dieser Software ergeben
4. Diese Software übernimmt keinerlei Garantie, weder ausdrücklich noch stillschweigend
**Wenn du dir nicht sicher bist, ob deine Nutzung legal oder autorisiert ist, verwende diese Software NICHT.**
Die Existenz dieses Projekts stellt keine Aufforderung zu illegalen Aktivitäten dar. Sie existiert, weil das Verständnis von Angriffstechniken für den Aufbau wirksamer Abwehrmechanismen unerlässlich ist.
---
## Lizenz
Dieses Projekt wird ohne Gewährleistung zu Bildungszwecken bereitgestellt. Keine Garantie. Keine Haftung. Nutzung auf eigenes Risiko.
---
*Denk daran: Sicherheitsforschung dient dazu, Systeme sicherer zu machen, nicht sie zu brechen. Nutze dieses Wissen, um zu verteidigen, nicht um anzugreifen.*
| Modul | Funktion |
|---|
| ASN Lookup | Alle Präfixe von einer ASN importieren, Organisationen durchsuchen, nachschlagen, zu welcher ASN eine IP gehört |
| DNS Recon | Vollständige DNS-Enumeration – A, AAAA, MX, NS, TXT, SOA, CNAME-Einträge + Subdomain-Brute-Force + AXFR-Zonentransfer-Versuche |
| JARM Fingerprint | TLS-Server-Fingerprinting – identifiziert die TLS-Implementierung auch hinter Load-Balancern |
| WAF Detection | Erkennt, welche WAF (Cloudflare, CloudFront, Imperva, Akamai usw.) vor einem Ziel sitzt |
| GeoIP | Geolokalisierung und ISP-Suche für jede IP |
| Port Scan | TCP-Port-Scanning mit 6 Voreinstellungen – Web, Top 100, Top 1000, Voll, IoT, Datenbanken – mit Banner-Grabbing |