
Detector de ataques y exploits ShellShock para Bro.
Este script detecta la explotación exitosa de la vulnerabilidad de Bash con CVE-2014-6271, apodada "ShellShock". Es más completo que la mayoría de las detecciones existentes, ya que observa el comportamiento del host atacado que podría indicar un compromiso exitoso o una vulnerabilidad real.
Si se observa que un host recibe un ataque a través de HTTP, Bro vigilará si ese host descarga un payload dropper o envía un ping ICMP. Podrían aparecer muchos más mecanismos, pero esto cubriría la mayoría de los mecanismos de respuesta conocidos. Este script está configurado por defecto para vigilar archivos de tipo MIME application/x-executable, lo que cubriría el dropper indicado en el ataque de aquí:
https://gist.github.com/anonymous/929d622f3b36b00c0be1
Alternativamente, si los atacantes solo están probando con un comando ping, este script vigilará un comando ping desde la víctima poco después de que se detecte un ataque.
Este script también añadirá una etiqueta al campo "tags" del registro HTTP para cualquier solicitud que parezca un posible ataque. El contenido de la etiqueta es: ShellShock::HIT.
Por si sirve de algo, este script es compatible con clústeres y debería funcionar perfectamente en clústeres de Bro, y debería ser seguro ejecutarlo en un entorno operativo.
Este script actualmente es compatible con Bro 2.3, 2.4 y 2.5. Por favor, abra un ticket si este script le está dando problemas en cualquier versión compatible de Bro.
Este repositorio incluye una captura de paquetes de ejemplo que explota un servidor de ejemplo llamado exploit.pcap. Estos son los registros relevantes que se generan.
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
Hay un par de variables de configuración.
## 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;
Estos pueden usarse para ampliar el tiempo durante el cual se vigila a los hosts que escanean ShellShock y el número de ataques que deben ocurrir antes de que se declare que están escaneando y se cree un aviso.
Seth Hall <[email protected]>
Stephen Hosom - Proporcionó una captura de paquetes totalmente explotadora.
Nick Weaver - Discusión valiosa sobre cómo shellshock es o no explotable.
Vlad Grigorescu - Solicitud de funciones una tras otra.
Mike Patterson - Sugirió vigilar los shellscripts como dropper posterior a la explotación.