Ich habe auf einer Internetseite 1000de Anfragen mit der Request url „-/-/-/-/-/-/-/-/-/-/“.
Meinem Freund Claude habe ich einen Logauszug zukommen lassen und hier seine Analyse.
1. Die -/-/-/-/-/-/-/-/-/-/-/-Anfragen (GET, Status 301)
Auffällig: Viele komplett unterschiedliche IPs (aus USA, Kanada, Singapur, Indien, Deutschland etc.) senden alle exakt dieselbe GET-Anfrage auf diese Pfad-Kette – und alle mit identischem User-Agent Chrome/149.0.0.0. Das ist kein Zufall: Echte Nutzer streuen viel stärker bei Browser-Versionen. Das spricht für ein verteiltes Botnetz oder einen Proxy-Pool, der ein Skript mit fest einprogrammiertem UA-String nutzt. Der Zweck ist wahrscheinlich simples Fingerprinting/Crawling deiner Startseite, evtl. auch ein kaputter Link-Checker – der Status 301 (Redirect) deutet darauf hin, dass dein Server bei diesem Pfad ohnehin schon automatisch umleitet, also relativ harmlos, aber nervig fürs Log.
2. Der Login-Angriff von 91.224.92.127 (POST auf wp-login.php)
Das ist der eigentlich kritische Teil: Eine einzelne IP feuert alle 2 Sekunden POST-Requests auf wp-login.php ab – mit wechselnden, realistisch aussehenden User-Agents (mal Chrome/Windows, mal Safari/Mac, mal Firefox/Linux), aber der gleiche Session-Cookie (52679eaf...) bleibt über alle Anfragen hinweg identisch. Das ist ein klassisches Muster für einen Brute-Force-/Credential-Stuffing-Bot, der versucht, sich per UA-Rotation vor einfachen Blocklisten zu tarnen, aber am Session-Cookie verrät er sich sofort. Alle enden mit 404 – d.h. entweder ist wp-login.php bei dir umbenannt/blockiert (gut so), oder du nutzt gar kein WordPress an dem Pfad.
Sofortmaßnahme für Apache – diese eine IP sofort sperren:
apache
<RequireAll>
Require all granted
Require not ip 91.224.92.127
</RequireAll>
Zusätzlich in .htaccess oder vhost, um Angriffe auf wp-login.php generell zu drosseln (falls WordPress im Einsatz ist, sonst kann der Pfad auch komplett geblockt werden):
apache
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/wp-login\.php$ [NC]
RewriteCond %{REMOTE_ADDR} !^DEINE_ADMIN_IP$
RewriteRule .* - [F,L]
Für die Bot-IPs mit dem -/-/-/...-Muster lohnt sich eher fail2ban mit Rate-Limiting pro IP oder ein WAF/Cloudflare, da hier viele verschiedene IPs beteiligt sind – einzelne Sperren bringen wenig, du müsstest generisch auf das Anfragemuster reagieren:
apache
RewriteCond %{THE_REQUEST} "-/-/-/-/-/-/-/-/-/-/" [NC]
RewriteRule .* - [F,L]
Mein Fazit Super:
Die „wp-login.php“ hatte ich schon ausgetauscht und zusätzlich ein Plugin „Limit Login Attempts“ installiert, dass illegale Login-Request erkennt und diese IPs nach Fehlversuch aussperrt.
Das Pugin meldet: 299 fehlgeschlagene Anmeldeversuche (letzte 24 Std.)
Your site is currently at a medium risk for brute force activity.
Die Anfragen kommen, wie Claude richtig erkannte, alle von der selben IP und zwar im 2 Sekunden Rhythmus.
Das Plugin „Limit Login Attempts“ macht scheinbar keinen guten Job – werde ich wohl ausmustern.