
Detector de ataques e exploits ShellShock para o Bro.
Este script detecta exploração bem-sucedida da vulnerabilidade do Bash com CVE-2014-6271 apelidada de "ShellShock". É mais abrangente do que a maioria das detecções disponíveis, pois observa o comportamento do host atacado que pode indicar comprometimento bem-sucedido ou vulnerabilidade real.
Se um host for visto recebendo um ataque via HTTP, o Bro observará se esse host faz download de um payload dropper ou envia um ping ICMP. Muitos outros mecanismos podem aparecer, mas isso cobre a maioria dos mecanismos de resposta conhecidos existentes. Este script é configurado por padrão para observar arquivos do tipo mime application/x-executable, o que cobriria o dropper listado no ataque aqui:
https://gist.github.com/anonymous/929d622f3b36b00c0be1
Alternativamente, se os invasores estiverem apenas testando com um comando de ping, este script observará um comando de ping vindo da vítima logo após um ataque ser detectado.
Este script também adicionará uma tag ao campo "tags" no log HTTP para quaisquer requisições que aparentem ser ataques possíveis. O conteúdo da tag é: ShellShock::HIT.
Vale ressaltar que este script é cluster-aware e deve funcionar perfeitamente em clusters Bro e deve ser seguro para uso operacional.
Este script atualmente suporta Bro 2.3, 2.4 e 2.5. Por favor, abra um ticket se este script estiver causando problemas em qualquer versão suportada do Bro.
Este repositório inclui uma captura de pacotes de exemplo que explora um servidor de exemplo chamado exploit.pcap. Aqui estão os logs relevantes que são gerados.
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
Há algumas variáveis de configuração.
## O número de ataques aparentes que um host deve enviar para ser
## detectado como ShellShock::Scanner.
const ShellShock::scan_threshold = 10 &redef;
## O período durante o qual a detecção de scanners é realizada.
const ShellShock::scan_detection_period = 10min &redef;
Elas podem ser usadas para ampliar por quanto tempo os ShellShock scanners são observados e o número de ataques que precisam ocorrer antes que sejam declarados como scanners e um aviso seja criado.
Seth Hall <[email protected]>
Stephen Hosom - Forneceu uma captura de pacotes totalmente exploradora.
Nick Weaver - Discussão valiosa sobre como o shellshock é e não é explorável.
Vlad Grigorescu - Pedido de recurso após pedido de recurso.
Mike Patterson - Sugeriu observar shellscripts como um dropper pós-exploração.