Crowdsec SSH Bruteforce Beispiel

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen

CrowdSec – SSH Brute-Force Erkennung

Voraussetzung

CrowdSec ist installiert und die Whitelist ist angepasst.

Installation der SSH-Collection

Installiert alle Parser und Szenarien für SSH-Brute-Force-Erkennung.

  • cscli collections install crowdsecurity/sshd
  • systemctl reload crowdsec

Installation des nftables Bouncers

Der Bouncer setzt erkannte Angriffe in nftables-Regeln um und blockt die Angreifer-IP.

  • apt install crowdsec-firewall-bouncer-nftables

Bouncer neu starten und prüfen

Nach der Installation wird der Bouncer gestartet und der Status geprüft.

  • systemctl restart crowdsec-firewall-bouncer
  • systemctl status crowdsec-firewall-bouncer

Bouncer-Verbindung zu CrowdSec prüfen

Zeigt ob der Bouncer korrekt bei der Engine registriert ist.

  • cscli bouncers list

Installierte SSH-Szenarien prüfen

Filtert die Szenarienliste auf SSH-relevante Einträge.

  • cscli scenarios list | grep ssh

Angriff vom Attacker durchführen

Passwortliste herunterladen

Hydra installieren

  • apt update
  • apt install hydra -y

Angriff starten

Hydra führt einen SSH-Brute-Force-Angriff gegen das Ziel durch.

Erkannte Angriffe anzeigen

Listet alle von CrowdSec erkannten und protokollierten Alerts auf.

  • cscli alerts list
+----+----------------------+---------------------------+---------+----+-----------+-----------------------------------------+
| ID |        value         |          reason           | country | as | decisions |               created_at                |
+----+----------------------+---------------------------+---------+----+-----------+-----------------------------------------+
| 3  | Ip:172.26.2XX.100    | crowdsecurity/ssh-slow-bf |         |    | ban:1     | 2025-03-08 10:07:24.268224992 +0000 UTC |
| 2  | Ip:172.26.2XX.100    | crowdsecurity/ssh-bf      |         |    | ban:1     | 2025-03-08 10:07:24.268879637 +0000 UTC |
+----+----------------------+---------------------------+---------+----+-----------+-----------------------------------------+

Gebannte IP-Adressen anzeigen

Zeigt alle aktiven Sperrentscheidungen der Engine an.

  • cscli decisions list
╭───────┬──────────┬────────────────────┬───────────────────────────┬────────┬─────────┬────┬────────┬────────────────────┬──────────╮
│  ID   │  Source  │    Scope:Value     │          Reason           │ Action │ Country │ AS │ Events │     expiration     │ Alert ID │
├───────┼──────────┼────────────────────┼───────────────────────────┼────────┼─────────┼────┼────────┼────────────────────┼──────────┤
│ 15002 │ crowdsec │ Ip:172.26.2XX.100  │ crowdsecurity/ssh-slow-bf │ ban    │         │    │ 13     │ 3h58m41.750831936s │ 3        │
╰───────┴──────────┴────────────────────┴───────────────────────────┴────────┴─────────┴────┴────────┴────────────────────┴──────────╯

Ban aufheben

Entfernt den Ban für eine bestimmte IP-Adresse manuell.

  • cscli decisions delete --ip 172.26.2XX.100

Live-Log der CrowdSec-Analyse

Zeigt die laufende Analyse von CrowdSec in Echtzeit.

  • journalctl -u crowdsec -f

Installierte Komponenten prüfen

Gibt einen Überblick über alle aktiven Parser, Szenarien und Bouncer.

  • cscli parsers list
  • cscli scenarios list
  • cscli bouncers list

Letzte SSH-Fehlversuche anzeigen

Filtert das Systemjournal nach fehlgeschlagenen SSH-Anmeldeversuchen.

  • journalctl -u ssh -g "Failed password" --no-pager | tail -n 20