Crowdsec Hacker-Modus aktiviert
Angriffssimulation im Labor
Vorbereitung: Logbeobachtung aktivieren
- tail -f /var/log/crowdsec.log
Verbindung zum Angreifer herstellen
- ssh attacker
Notwendige Werkzeuge installieren (auf attacker)
- apt install -y nikto hydra
SSH-Angriff testen
Brute-Force-Angriff starten (auf attacker)
- hydra -l admin -x 1:1:a controlplane ssh
Logausgabe beobachten
Im ursprünglichen Terminal:
- tail -f /var/log/crowdsec.log
Aktive Entscheidungen anzeigen
- cscli decisions list
Vorbereitung für nächsten Test: Entscheidungen löschen
SSH-Entscheidungen zurücksetzen
- cscli decisions delete --scenario crowdsecurity/ssh-bf
- cscli decisions delete --scenario crowdsecurity/ssh-slow-bf
- tail -f /var/log/crowdsec.log
Web-Angriff mit nikto
NGINX-Access-Log zur Analyse einbinden
Die Datei /var/log/nginx/access.log muss in der Acquisition-Konfiguration aufgenommen werden, damit HTTP-Angriffe erkannt werden können.
acquis.yaml erweitern
- echo "
filename: /var/log/nginx/access.log labels: type: nginx " >> /etc/crowdsec/acquis.yaml
HTTP-Szenarien und Parser installieren
- cscli collections install crowdsecurity/nginx
CrowdSec neu starten
- systemctl restart crowdsec
Kontrolle: HTTP-Szenarien geladen
- cscli scenarios list | grep http
Erwartete Einträge: - crowdsecurity/http-probing - crowdsecurity/http-crawl-non-browser - crowdsecurity/generic-bad-user-agent
Erklärung: Warum Portweiterleitung?
Damit wir die blockierte Seite (z. B. eine Ban- oder Captcha-Seite) im Browser sehen können, müssen wir den HTTP-Verkehr vom Angreifer attacker auf den Webserver controlplane umleiten. Da CrowdSec den direkten Zugriff bald blockieren wird, funktioniert der normale HTTP-Zugriff nicht mehr. Über den SSH-Tunnel bleibt der Zugriff jedoch erhalten. Durch die Weiterleitung von Port 8080 auf attacker zu Port 80 auf controlplane können wir auch im blockierten Zustand noch sehen, was CrowdSec als Antwort ausliefert.
Portweiterleitung aktivieren (auf attacker)
- ssh -l xinux -L 0.0.0.0:8080:controlplane:80 localhost
Nikto-Scan starten (auf attacker)
- nikto -h http://controlplane
Ergebnis prüfen
Im Browser auf attacker:
Hinweis: NGINX zeigt noch Standardseite
Durch die Verwendung des Stream-Modus im Bouncer wird die neue Entscheidung nur alle 10 Sekunden aktualisiert. Um die blockierte Seite zu sehen: - Browser öffnen - STRG + SHIFT + R drücken (Force Reload)