Zum Inhalt springen

Docker Setup

Lade den docker-setup Ordner herunter:

docker-setup.zip herunterladen

  • Ordnerdocker-setup/
    • docker-compose.yml
    • Ordnerclient/
      • Dockerfile
      • client.py
    • Ordnerserver/
      • Dockerfile
      • server.py
    • Ordnerdns/
      • Dockerfile
      • entrypoint.sh
    • Ordneroutput/ (PCAPs werden hier gespeichert)
    • merge-pcaps.sh
    • README.md
  1. In den Ordner wechseln

    Terminal-Fenster
    cd docker-setup
  2. Container starten

    Terminal-Fenster
    docker compose up --build
  3. Warten (~5 Minuten)

    Du siehst die Beacons in der Konsole:

    malware-client | [Beacon 1/10]
    malware-client | [DNS] Resolved update-checker-info.net -> 10.10.10.50
    malware-client | [HTTP] Beacon -> http://10.10.10.50:8088/checkin?id=4521
    c2-server | [BEACON] ID: 4521, Client: 10.10.10.10
  4. Warten bis “Simulation complete”

    malware-client | [DONE] Simulation complete
  5. Container stoppen

    Terminal-Fenster
    # Ctrl+C oder:
    docker compose down
  6. PCAPs zusammenführen (optional aber empfohlen)

    Terminal-Fenster
    ./merge-pcaps.sh

    Oder manuell mit Wireshark:

    Terminal-Fenster
    mergecap -w output/training_c2.pcap output/dns_traffic.pcap output/http_traffic.pcap
  7. PCAP verwenden

    Terminal-Fenster
    ls output/
    # training_c2.pcap (oder dns_traffic.pcap + http_traffic.pcap)
┌─────────────────────────────────────────────────────────────┐
│ Docker Network (10.10.10.0/24) │
│ │
│ ┌─────────────┐ ┌─────────────┐ │
│ │ Client │ ──── DNS Query ────▶ │ DNS-Server │ │
│ │ 10.10.10.10 │ ◀─── DNS Reply ───── │ 10.10.10.53 │ │
│ └─────────────┘ └─────────────┘ │
│ │ │ │
│ │ HTTP Beacons tcpdump │ │
│ ▼ ▼ │
│ ┌─────────────┐ ┌─────────────┐ │
│ │ C2-Server │ │dns_traffic │ │
│ │ 10.10.10.50 │ ──── tcpdump ────▶ │ .pcap │ │
│ └─────────────┘ └─────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────┐ │
│ │http_traffic │ │
│ │ .pcap │ │
│ └─────────────┘ │
└─────────────────────────────────────────────────────────────┘
ContainerIPFunktion
dns-server10.10.10.53Lokaler DNS, löst C2-Domains auf
c2-server10.10.10.50Empfängt HTTP-Beacons
malware-client10.10.10.10Sendet DNS-Queries + HTTP-Beacons

Der DNS-Server löst diese fake Domains auf 10.10.10.50:

  • update-checker-info.net – Versucht legitim zu wirken
  • malware-c2.evil – Offensichtlich verdächtig
  • data-sync-service.com – Tarnt sich als Service

Nach dem Öffnen der PCAP:

# Alle DNS-Anfragen
dns
# Spezifische verdächtige Domain
dns.qry.name contains "update-checker"
# Alle HTTP-Beacons
http
# HTTP zu C2-Server
ip.dst == 10.10.10.50 and tcp.port == 8088

Bearbeite docker-compose.yml:

malware-client:
environment:
- BEACON_INTERVAL=10 # 10 statt 30 Sekunden
- MAX_BEACONS=6 # 6 statt 10 Beacons

→ PCAP in ~1 Minute statt ~5 Minuten

malware-client:
environment:
- BEACON_INTERVAL=30
- MAX_BEACONS=20 # Mehr Beacons
ProblemLösung
”Cannot connect to Docker”Docker Desktop starten
Leere PCAPWarten bis “Simulation complete”
Permission deniedchmod 777 output/
Port belegtPorts werden nur intern verwendet
DNS nicht in PCAPmerge-pcaps.sh ausführen
Terminal-Fenster
# Container stoppen
docker compose down
# Auch Images löschen
docker compose down --rmi all
# Output leeren
rm output/*.pcap

Nach dem Durchlauf und Mergen liegt die Datei unter:

output/training_c2.pcap

Diese Datei an die Studierenden verteilen (Moodle, LMS, etc.).