Disclaimer: Im August 2026 fand die Qualifikation für das Finale von Deutschlands Bester Hacker statt, welches ich auf Platz 1 abschließen konnte. Nur zwei Teilnehmer waren in der Lage, alle Challenges zu lösen. Dieses Writeup wurde mit KI auf Basis meiner Notizen erstellt und kann Fehler enthalten, bei Fragen bitte direkt an mich wenden im DBH-Discord.
| Wettbewerb | Deutschlands Bester Hacker 2026 — Qualifikation |
| Kategorie | Forensics |
| Punkte | 50 |
| Angriffsklasse | DFIRDigital ForensicsSichert und analysiert digitale Spuren zur Rekonstruktion sicherheitsrelevanter Ereignisse. / DNS-TunnelDNS-TunnelingÜbertragung beliebiger Daten in DNS-Anfragen und -Antworten, um Netzgrenzen zu umgehen.-Exfiltration |
| Flag | DBH{B34CH_0WA_T_Mu3ll3r_M1m1k4tz_L4t3r4l} |
Die Challenge
Freitag, 24. April 2026, 17:42 Uhr. Die IT-Abteilung der Stadtwerke Franken erhält einen Alert ihres EDR-Systems: Auf dem Fileserver
SRV-FILE01wurden innerhalb von 105 Minuten 3,2 Gigabyte Daten in ein unbekanntes lokales Verzeichnis kopiert.Du wirst als externer DFIR-Analyst hinzugezogen. Deine Aufgabe: Rekonstruiere den vollständigen Angriffspfad — von der ersten verdächtigen Aktivität bis zum Data Staging.
Mitgeliefert wird eine PCAP-Datei.
Aufklärung
Da der EDR-Alert auf Data Staging beziehungsweise Exfiltration hindeutet, habe ich zuerst nach ungewöhnlichen Protokollen, externen Domains und auffälligen Datenmengen gesucht.
Dabei zeigte sich, dass die PCAP praktisch ausschließlich DNS-Verkehr enthält. Besonders
auffällig sind viele DNS-TXT-Queries von 10.10.1.45 an 10.10.0.1, gerichtet an die
Domain c2-frankentransfer.ru.
Der Aufbau der DNS-Namen folgt einem klaren Schema:
000000.<base32-data>.<base32-data>.c2-frankentransfer.ru
000001.<base32-data>.<base32-data>.c2-frankentransfer.ru
000002.<base32-data>.<base32-data>.c2-frankentransfer.ru
...
Die erste Komponente ist jeweils eine fortlaufende Chunk-ID in Hexadezimaldarstellung, die folgenden Labels enthalten Base32-kodierte Nutzdaten.
Die Schwachstelle
DNS-Tunneling ist ein typisches Verfahren, um Daten über DNS-Queries aus einem Netzwerk herauszuschleusen: Nutzdaten werden in Subdomains kodiert und an eine kontrollierte Domain gesendet. In dieser PCAP sprechen fünf Indikatoren dafür:
- Sehr viele TXT-Queries an dieselbe Domain
- Lange, zufällig wirkende Subdomain-Labels
- Fortlaufende Chunk-IDs
- Base32-ähnlicher Zeichensatz
- Eine externe C2Command and ControlKommunikationsinfrastruktur, über die Angreifer kompromittierte Systeme steuern.-artige Domain:
c2-frankentransfer.ru
Der Angriff
Für die Rekonstruktion wurden die DNS-Queries extrahiert, nach Chunk-ID sortiert, die Base32-Daten zusammengesetzt und dekodiert:
for query in dns_queries:
if query.endswith(".c2-frankentransfer.ru"):
parts = query.remove_suffix(".c2-frankentransfer.ru").split(".")
chunk_id = int(parts[0], 16)
encoded_data = "".join(parts[1:])
chunks[chunk_id] = encoded_data
payload_base32 = "".join(chunks[i] for i in sorted(chunks))
payload = base64.b32decode(payload_base32)
Der dekodierte Datenstrom beginnt direkt mit der Flag.
Plausibilitätsprüfung. Die höchste beobachtete Chunk-ID ist 0x3d70a3c, also
64.424.508. Bei ungefähr 50 Byte Nutzdaten pro Chunk ergibt sich 64.424.508 * 50 Byte ≈ 3.221.225.400 Byte, also rund 3,22 GB. Das passt sehr gut zu den 3,2 GB aus dem
Aufgabentext — die Rekonstruktion ist damit nicht nur syntaktisch korrekt, sondern auch
inhaltlich plausibel.
Die Flag
DBH{B34CH_0WA_T_Mu3ll3r_M1m1k4tz_L4t3r4l}
Die Flag selbst beschreibt den vollständigen AngriffspfadAttack PathAbfolge aus Schwachstellen, Berechtigungen und Systembeziehungen, die ein Angriff ausnutzen kann.:
Beachhead → OWA → T. Mueller → Mimikatz → Lateral Movement
| Bestandteil | Bedeutung |
|---|---|
B34CH |
Beachhead — der initiale Zugang, erster kompromittierter Punkt |
0WA |
Einstieg über Outlook Web Access: extern erreichbar, direkt an Domänenkonten gekoppelt |
T_Mu3ll3r |
Der kompromittierte Benutzeraccount, erster legitimer Zugang in die Umgebung |
M1m1k4tz |
Credential Dumping nach dem initialen Zugriff |
L4t3r4l |
Laterale Bewegung mit den erbeuteten Zugangsdaten, Ziel: SRV-FILE01 |
Timeline:
| Phase | Ereignis |
|---|---|
| Initial Access | Angreifer erhält ersten Zugriff über OWA |
| Account Compromise | Benutzer T. Mueller wird kompromittiert |
| Credential Access | Mimikatz zur Credential-Gewinnung |
| Lateral MovementLateral MovementAusbreitung eines Angreifers von einem kompromittierten System zu weiteren Systemen. | Bewegung durch das interne Netzwerk |
| Target Access | Zugriff auf SRV-FILE01 |
| Data Staging | Ca. 3,2 GB Daten werden lokal gesammelt |
| Exfiltration | Übertragung über DNS-Tunneling zu c2-frankentransfer.ru |
Indicators of Compromise:
Interne IPs: 10.10.1.45, 10.10.0.1
Domain: c2-frankentransfer.ru
DNS-Typ: TXT
Muster: <hex-chunk-id>.<base32-data>.<base32-data>.c2-frankentransfer.ru
Techniken: OWA, Mimikatz, DNS Tunneling, Lateral Movement, Data Staging
MITRE-ATT&CKMITRE ATT&CKStrukturiert bekannte Taktiken und Techniken realer Cyberangriffe.-Mapping:
| Taktik | Technik |
|---|---|
| Initial Access | External Remote Services / OWA |
| Credential Access | OS Credential Dumping (Mimikatz) |
| Lateral Movement | Use of Valid Accounts |
| Collection | Data Staged |
| Exfiltration | Exfiltration Over Alternative Protocol |
| Command and Control | DNS Tunneling |
Was ich mitnehme
Eine PCAP, die „nur DNS“ enthält, ist kein Grund zur Entwarnung, sondern der Befund selbst. Fortlaufende Chunk-IDs plus Base32-Labels sind ein derart klares Muster, dass sich der Datenstrom vollständig rekonstruieren lässt — inklusive Gegenprobe über die Datenmenge.
Für die Verteidigung heißt das: DNS-Volumen und Query-Länge pro Client monitoren, TXT-Queries an externe Domains auswerten, und rekursive Auflösung nur über kontrollierte Resolver erlauben.