
Детектор атак и эксплойтов ShellShock для Bro.
Этот скрипт обнаруживает успешную эксплуатацию уязвимости Bash CVE-2014-6271, известной как «ShellShock». Он более полный, чем большинство существующих детекторов, поскольку отслеживает поведение атакуемого хоста, которое может указывать на успешный взлом или реальную уязвимость.
Если хост получает атаку по HTTP, Bro будет следить за тем, чтобы этот хост либо загрузил полезную нагрузку-дроппер, либо отправил ICMP-пинг. Механизмов может быть гораздо больше, но это покрывает большинство известных ответных механизмов. По умолчанию скрипт настроен на отслеживание файлов MIME-типа application/x-executable, что покрывает дроппер из атаки, приведённой здесь:
https://gist.github.com/anonymous/929d622f3b36b00c0be1
В качестве альтернативы, если атакующие просто проверяют командой ping, скрипт будет отслеживать команду ping от жертвы вскоре после обнаружения атаки.
Этот скрипт также добавляет тег в поле "tags" HTTP-журнала для любых запросов, которые выглядят как возможные атаки. Содержимое тега: ShellShock::HIT.
К слову, скрипт поддерживает кластеры и должен отлично работать на кластерах Bro, а также подходит для операционного использования.
В настоящее время скрипт поддерживает Bro 2.3, 2.4 и 2.5. Пожалуйста, создайте заявку (ticket), если скрипт вызывает проблемы на любой из поддерживаемых версий Bro.
Этот репозиторий включает пример захвата пакетов, эксплуатирующий пример сервера, под именем exploit.pcap. Ниже приведены соответствующие журналы.
notice.log
#separator \x09
#set_separator ,
#empty_field (empty)
#unset_field -
#path notice
#open 2014-09-26-10-47-02
#fields ts uid id.orig_h id.orig_p id.resp_h id.resp_p fuid file_mime_type file_desc proto note msg sub src dst p peer_descr actions suppress_for dropped remote_location.country_code remote_location.region remote_location.city remote_location.latitude remote_location.longitude
#types time string addr port addr port string string string enum enum string string addr addr port count string set[enum] interval bool string string string double double
1411666207.583791 - - - - - - - - - ShellShock::Scanner 10.246.50.2 sent at least 1 CVE-2014-6271 exploit attempts in 0m0s. Used payload: "() { :;}; /bin/ping -c1 10.246.50.2" :: against sample victim hosts: 10.246.50.6 10.246.50.2 - - - bro Notice::ACTION_LOG 3600.00000-
1411666207.588581 - - - - - - - - - ShellShock::Exploit High likelihood of successful CVE-2014-6271 exploitation against 10.246.50.6. Attack over HTTP and sent a ping to 10.246.50.2 within 0.000 seconds of an attack. Attack over HTTP and sent a ping to 10.246.50.2 within 0.000 seconds of an attack. 10.246.50.6 - - - bro Notice::ACTION_LOG 3600.000000 F - - - - -
http.log
#separator \x09
#set_separator ,
#empty_field (empty)
#unset_field -
#path http
#open 2014-09-26-10-47-02
#fields ts uid id.orig_h id.orig_p id.resp_h id.resp_p trans_depth method host uri referrer user_agent request_body_len response_body_len status_code status_msg info_code info_msg filename tags username password proxied orig_fuids orig_mime_types resp_fuids resp_mime_types
#types time string addr port addr port count string string string string string count count count string count string string set[enum] string string set[string] vector[string] vector[string] vector[string] vector[string]
1411666207.583791 CC7s232GDnmtxZUly5 10.246.50.2 43616 10.246.50.6 80 1 GET 10.246.50.6 /exploitable.cgi - () { :;}; /bin/ping -c1 10.246.50.2 0 615 500 Internal Server Error - - - ShellShock::HIT - - - - - FgVgjb1GU12ixSuugc text/html
#close 2014-09-26-10-47-02
bro-pkg refresh
bro-pkg install corelight/bro-shellshock
Есть пара конфигурационных переменных.
## The number of apparent attacks a host must send for it to be
## detected as ShellShock::Scanner.
const ShellShock::scan_threshold = 10 &redef;
## The period over which scanner detection is performed.
const ShellShock::scan_detection_period = 10min &redef;
Их можно использовать, чтобы расширить период отслеживания атак ShellShock и количество атак, необходимых для того, чтобы хост был объявлен сканирующим и для него было создано уведомление.
Seth Hall <[email protected]>
Stephen Hosom - Provided a fully exploiting packet capture.
Nick Weaver - Valuable discussion on how shellshock is and isn't exploitable.
Vlad Grigorescu - Feature request after feature request.
Mike Patterson - Suggesting to watch for shellscripts as a post-exploit dropper.