Zum Thema lange Pipes habe ich ja schon mal einen Beitrag geschrieben, hier kommt mal eine richtig sinnvolle Anwendung dafür.
Diese scheiß Script Attacks gehen mir nämlich auf den Sack, aber wirklich!
Aber demnächst wird zurück geschiossen!Â
# Original Logfile Auschnitt:(IP Adressen verfremdet)
localhost||||286||||4.35.446.66 - - [14/Jun/2008:10:59:22 +0200] "GET /phpMyAdmin-2.5.6/main.php HTTP/1.0" 404 286 "-" "-"
localhost||||286||||4.35.446.66 - - [14/Jun/2008:10:59:22 +0200] "GET /phpMyAdmin-2.6.3/main.php HTTP/1.0" 404 286 "-" "-"
localhost||||286||||4.35.446.66 - - [14/Jun/2008:10:59:23 +0200] "GET /phpMyAdmin-2.6.0/main.php HTTP/1.0" 404 286 "-" "-"
localhost||||285||||23.133.432.54 - - [14/Jun/2008:13:59:59 +0200] "GET /w00tw00t.at.ISC.SANS.DFind:) HTTP/1.1" 400 285 "-" "-"
localhost||||285||||23.133.432.54 - - [14/Jun/2008:14:10:14 +0200] "GET /w00tw00t.at.ISC.SANS.DFind:) HTTP/1.1" 400 285 "-" "-"
localhost||||285||||23.133.432.54 - - [14/Jun/2008:14:10:14 +0200] "GET /w00tw00t.at.ISC.SANS.DFind:) HTTP/1.1" 400 285 "-" "-"
localhost||||285||||23.133.432.54 - - [14/Jun/2008:14:10:14 +0200] "GET /w00tw00t.at.ISC.SANS.DFind:) HTTP/1.1" 400 285 "-" "-"
# Diese Pipe liefert die Angreifer sortiert nach Häufigkeit( Alles in einer Zeile!)Meine Pipe liefert folgenden Output (wiederum ein Ausschnitt)
grep '\''localhost||||'\'' /var/log/httpd/ispconfig_access_log|grep '"-" "-"'|
cut -d'|' -f9|awk '{if ($1==old){ sum +=1 } else {print sum " " IP;sum=0 };old=$1;IP=$1;}'
223 4.35.446.66
5 23.133.432.54
Soll also heissen, die IP 4.35.446.66 hat 223 mal Seiten auf dem Server aufgerufen, die alle nur dem Zweck dienen eine Lücke in dem System zu finden. Das wohlgemerkt im täglichen Log, nicht das jemand denkt, das ist ein Monatslog. Nun fehlt eigentlich nur noch eine whois Abfrage, das detailierte Log und eine Beschwerde mail an den Provider. Ich sollte das automatisieren... Dieses Mini Script in einer Shell ist ja schon mal mehr als die halbe Miete.
So, nach ein wenig Bastelei ist das Script fertig, ich werde es mal ein paar Tage lang manuell starten (mit Dry run, bevor ich es richtig starte und dann täglich starten. Wenn ich ein paar mehr whois DB dabei habe, werde ich es hier zum download freigeben.
Gerade ist die Scripterei rund um die Attacken gegen den rootserver von Erfolg gekrönt,da habe ich mal meine bereits seit Anfang an bestehende fail2ban Konfiguration überarbeitet. Das Apache_log ist per Debian default in der fail2ban.conf so eingestellt
Tracked: Jun 20, 19:13