Hacking Fortigate

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 26

5/5/2017 Hacking fortinet – bypassing UTM | Juan Oliva

Juan Oliva
(Linux , Asterisk, Hacking y Opensource)

Hacking fortinet – bypassing UTM
Publicado en julio 31, 2015 por jroliva

English version : https://jroliva.wordpress.com/2015/07/31/hacking­fortinet­bypassing­utm­english­version/

En las pruebas realizadas en el post anterior “Hacking Fortinet – SQLI test”  dejé en claro mi posición respecto a que me sentía inconforme por
los resultados obtenidos.

Y no lo mal interpreten, mas allá de que recibimos muy buenos comentarios de la marca Fortinet lo cual es importante, por que como lo indiqué,
muestran una posición muy buena y receptiva ante este tipo de estudios, mas allá de eso, era necesario realizar pruebas de seguridad ofensiva
un poco mas extendidas, ya que el SQLI no lo es todo y ahora los ataques actuales van mucho mas allá, inclusive combinándose entre si.

Es así que hace unos días, nuevamente en conjunto con mi buen amigo Alexis Torres , desarrollamos los siguientes test que a continuación
detallo:

Escenario :

https://jroliva.net/2015/07/31/hacking­fortinet­bypassing­utm/ 1/26
5/5/2017 Hacking fortinet – bypassing UTM | Juan Oliva

Como se muestra en el escenario implementado es el siguiente:

192.168.100.100 — IP SERVIDOR WEB en LAN 
192.168.100.120 — IP MS WINDOWS 7 en LAN 
192.168.100.1   — IP UTM en LAN

192.168.13.100 — IP SERVIDOR WEB en WAN 
192.168.13.200 — IP UTM en LAN

192.168.13.202­203 — ATACANTE 1 (KALI LINUX) 
192.80.190.11X — ATACANTE 2 (VPS CENTOS 6.X)

Setup del equipo

https://jroliva.net/2015/07/31/hacking­fortinet­bypassing­utm/ 2/26
5/5/2017 Hacking fortinet – bypassing UTM | Juan Oliva

Un equipo Fortinet D60 con las licencias de IPS y Antivirus activado como se puede ver a continuación :

Así mismo, durante las pruebas que a continuación se detallarán, se probaron varios perfiles de configuración como los siguientes :

Perfil “default” activado en el IPS

https://jroliva.net/2015/07/31/hacking­fortinet­bypassing­utm/ 3/26
5/5/2017 Hacking fortinet – bypassing UTM | Juan Oliva

Perfil “High Security”  activado en el IPS

Perfil “protect_http_server”  activado en el IPS

https://jroliva.net/2015/07/31/hacking­fortinet­bypassing­utm/ 4/26
5/5/2017 Hacking fortinet – bypassing UTM | Juan Oliva

Perfil de AV en modo “default”

 
También se configuró dentro de este perfil, el modo proxy, que permite capturar el trafico en una cache, examinarlo y luego enviarlo al cliente.

Luego para validar que el  IPS se encuentre correctamente configurado realizamos una prueba básica de SQLI para verificar que bloquee
correctamente.

Luego tratar de introducir un SQLI vemos que el equipo lo bloquea:

https://jroliva.net/2015/07/31/hacking­fortinet­bypassing­utm/ 5/26
5/5/2017 Hacking fortinet – bypassing UTM | Juan Oliva

Ahora con todo validado, empezamos con las pruebas.

Test 1 – Session Hijacking usando XSS

El primer ataque que probamos es el robo de sesiones (session hijacking) haciendo uso de XSS almacenado, previamente ya habíamos probado
que los XSS reflejados no eran detectados por el IPS de tal forma que al combinarlo con otro tipo de ataque era menos probable aun que sea
detectado, como se muestra a continuación :

https://jroliva.net/2015/07/31/hacking­fortinet­bypassing­utm/ 6/26
5/5/2017 Hacking fortinet – bypassing UTM | Juan Oliva

Como se muestra, se envía vía el objeto “document.cookie” la sesión actual a una  URL externa http://192.80.190.1XX/b.php

Luego el atacante 2, recibe la cadena disparada por el XSS almacenado de la siguiente forma :

https://jroliva.net/2015/07/31/hacking­fortinet­bypassing­utm/ 7/26
5/5/2017 Hacking fortinet – bypassing UTM | Juan Oliva

Como se muestra el resultado del ataque se recibe en el VPS Linux ( ver gráfica) solo abriendo un socket de conexión median netcat al puerto
80 , y se recibe toda la cookie de sesión , que posteriormente servirá para autenticarse en la aplicación web donde estuvo logueada la víctima.

Si no la ven aun   imagínense este escenario.

El atacante, ingresa a la intranet de la empresa, cuyo perfil es solo de invitado, identifica la vulnerabilidad de XSS almacenado sobre un lugar
común en la aplicación web e implanta la URL maliciosa, La víctima, se loguea como todos los días en la intranet de la empresa a revisar
digamos, los balances del día, en este caso tiene perfil de administrador de la empresa,  hace clic sobre el lugar común donde está la URL
maliciosa y envía su cookie de sesión al atacante, luego el atacante usa esa cookie para ingresar a la aplicación con el mismo perfil de la
víctima y acceder a toda la información que le permite ese perfil.

Ojalá que ahora si la vean 

https://jroliva.net/2015/07/31/hacking­fortinet­bypassing­utm/ 8/26
5/5/2017 Hacking fortinet – bypassing UTM | Juan Oliva

Una vez completado el ataque, vamos al equipo y vemos que no tenemos el apartado “Security Log/Intrusion Protection” es decir no registra y
no lo bloquea.

Test 2 – LFI

La inclusión de archivos locales, permite la visualización de archivos que no están en el directorio de publicación del servidor web, como el
siguiente ejemplo :

https://jroliva.net/2015/07/31/hacking­fortinet­bypassing­utm/ 9/26
5/5/2017 Hacking fortinet – bypassing UTM | Juan Oliva

En ese caso estamos visualizando el archivo “passwd” en el directorio “etc” del sistema operativo.

El ataque se completa y nunca es detectado por el IPS.

Test 3 – Shell reverso usando File Upload

Es común dentro de las aplicaciones web tiene formularios para cargar o subir archivos, ya sea imágenes, documentos docx, xlsx o pdfs
inclusive.

Sin embargo ello representa uno de los principales vectores para un atacante ya que permite la escritura física en el servidor, lo cual es una
oportunidad muy apetitosa.

No vamos a ver las innumerables técnicas para como evadir los filtros que tiene que tener un formulario de upload, sin embargo vamos a usar
uno básico que consiste en renombrar la extensión al vuelo para subir nuestro archivo que al final disparara el shell reverso.

Entonces iniciemos el proceso.

https://jroliva.net/2015/07/31/hacking­fortinet­bypassing­utm/ 10/26
5/5/2017 Hacking fortinet – bypassing UTM | Juan Oliva

A.­ Descargar y configurar el shell 
Descargamos nuestro php reverse shell y lo configuramos de la siguiente forma :

Como podemos ver en la variable $IP estamos declarando la IP del VPS Linux a la cual se enviará el shell, mediante el puerto de salida 1234
declarado en la variable $port

B.­ Renombrar para confundir evadir al upload 
Luego cambiamos la extensión del archivo de a jpeg como vemos a continuación:

 
C.­ Subir y ejecutar 
Con nuestro shell encubierto en un archivo jpeg vamos a subirlo

https://jroliva.net/2015/07/31/hacking­fortinet­bypassing­utm/ 11/26
5/5/2017 Hacking fortinet – bypassing UTM | Juan Oliva

Luego haciendo uso de un proxy como “burp suite” vamos a renombrar al vuelo la extensión del archivo.

Vemos un poco mas al detalle el cambio

https://jroliva.net/2015/07/31/hacking­fortinet­bypassing­utm/ 12/26
5/5/2017 Hacking fortinet – bypassing UTM | Juan Oliva

Luego hemos conseguido que suba el archivo y lo ejecutamos en la URL donde se encuentra alojado:

El ataque se completa, sin ser bloqueado por el UTM  y se obtiene el shell reverso en el puerto de escucha 1234 del VPS como se muestra a
continuación:

https://jroliva.net/2015/07/31/hacking­fortinet­bypassing­utm/ 13/26
5/5/2017 Hacking fortinet – bypassing UTM | Juan Oliva

https://jroliva.net/2015/07/31/hacking­fortinet­bypassing­utm/ 14/26
5/5/2017 Hacking fortinet – bypassing UTM | Juan Oliva

Test 4 – Evadiendo el Antivirus de perímetro y ganando shell remota en Windows 7

Contexto: Parte de las características de todo UTM es contar con un antivirus de perímetro, es decir ser la primera defensa ante la entrada de
archivos infectados, antes de que estos lleguen a las estaciones de trabajo de los usuarios y puedan comprometer de alguna forma sus
estaciones de trabajo, estos ataques son mejor llamados “ataques del lado del cliente”.

El ataque: En post pasado “Evadiendo Antivirus con Shellter y Metasploit” mostré como se podía evadir el antivirus local , sin embargo ahora,
tenemos un antivirus de perímetro que no debería dejar descargar el archivo infectado.

– Creando el archivo infectado 
Vamos a crear un archivo infectado con shellter de la siguiente forma:

https://jroliva.net/2015/07/31/hacking­fortinet­bypassing­utm/ 15/26
5/5/2017 Hacking fortinet – bypassing UTM | Juan Oliva

Como se ve en la captura, se configura que la IP 192.179.13.203 será quien reciba el shell reverso en el puerto 5555 , en el caso de que se
ejecute el archivo infectado.

– Levantando el handler en Mestasploit 
ahora levantamos un handler de escucha para recibir el shell reverso

https://jroliva.net/2015/07/31/hacking­fortinet­bypassing­utm/ 16/26
5/5/2017 Hacking fortinet – bypassing UTM | Juan Oliva

Como se muestra se está esperando el shell en el puerto 5555

– Descargando el archivo infectado en el cliente. 
Ahora desde la estación Windows,  vamos descargar el archivo infectado, en donde el antivirus de perímetro debería reaccionar.

https://jroliva.net/2015/07/31/hacking­fortinet­bypassing­utm/ 17/26
5/5/2017 Hacking fortinet – bypassing UTM | Juan Oliva

https://jroliva.net/2015/07/31/hacking­fortinet­bypassing­utm/ 18/26
5/5/2017 Hacking fortinet – bypassing UTM | Juan Oliva

Como se puede ver , es posible descargar completamente el archivo infectado.

– Ganando shell remota 
Ahora lo que sigue es ejecutar el archivo para obtener la shell reversa, aquí quiero detenerme a explicar lo siguiente.

Comportamientos peculiares 
Cuando se ejecutó las primeras veces el archivo se puedo completar su ejecución y se obtuvo la shell reversa, sin embargo luego de repetir
algunas veces el proceso esto ya no se pudo , es decir el UTM detecto y bloqueo la shell reversa, pero repito después de amenos a ver
obtenido 2 o 3 veces la shell reversa.

Comportamiento negativo – Obtención de la shell

https://jroliva.net/2015/07/31/hacking­fortinet­bypassing­utm/ 19/26
5/5/2017 Hacking fortinet – bypassing UTM | Juan Oliva

https://jroliva.net/2015/07/31/hacking­fortinet­bypassing­utm/ 20/26
5/5/2017 Hacking fortinet – bypassing UTM | Juan Oliva

Comportamiento positivo – bloqueo de la shell 
Como se aprecia en las capturas anteriores al menos se pudo obtener en todos oportunidades se pudo completar el ataque (se obtuvo la shell)
pero luego esto ya no fue posible, no se lograba obtener el shell

https://jroliva.net/2015/07/31/hacking­fortinet­bypassing­utm/ 21/26
5/5/2017 Hacking fortinet – bypassing UTM | Juan Oliva

Como se puede ver, el handler no puede obtener completar el proceso de obtener la sesión de meterpreter .

Y evidentemente la razón fue por que el IPS detecto el ataque

https://jroliva.net/2015/07/31/hacking­fortinet­bypassing­utm/ 22/26
5/5/2017 Hacking fortinet – bypassing UTM | Juan Oliva

Comportamiento anómalo – obtención de la shell 
Como lo indicamos en un momento el IPS detecto la shell reversa , analizando un poco los paquetes pudimos ver que el shell era bloqueada, no
en el momento cuando en Windows expulsa el paquete al handler, si no era cuando este, regresaba nuevamente al Windows ( paquete de
entrada) y en ese momento era detectado por el IPS.

Debido a esto, cambiamos la configuración del nuestro archivo infectado para que envié la shell al VPS Linux y este fue el resultado.

https://jroliva.net/2015/07/31/hacking­fortinet­bypassing­utm/ 23/26
5/5/2017 Hacking fortinet – bypassing UTM | Juan Oliva

 
Como se puede ver luego de ejecutar el archivo, se puede recibir la conexión en el VPS.

Conclusiones

Juan Oliva

Las pruebas del lado del pentester fueron de tipo GrayBox, es decir no se tenia conocimiento del tipo de configuración que tenia el equipo
UTM, pero si de las direcciones IP de los objetivos.
Las pruebas realizadas son muy utilizadas por delincuentes informáticos, sobre todo al realizar combinaciones de técnicas es posible tener
mayor probabilidad de éxito.
Es necesario implementar sistemas complementarios para monitorear ataques.
Es necesario generar reglas personalizadas en el UTM , para cada tipo de situación.

Alexis Torres

En las pruebas de AV del lado del cliente, solo fueron realizadas con un tipo de payload, “meterpreter” que es mostrado en las firmas IPS
como “Shell reversing” habría que tener en cuenta que no es el único tipo de payload y que el target es directo, es decir hacia Windows
https://jroliva.net/2015/07/31/hacking­fortinet­bypassing­utm/ 24/26
5/5/2017 Hacking fortinet – bypassing UTM | Juan Oliva

(firma conocida).
No se usa ningún tipo de crypter, encoder, reassembler sino un injector de código dinámico al PE para crear el ejecutable malicioso, el
cual como se muestra otorga un canal de comunicación, entre el evilVPS y el target.
Con mi experiencia en despliegues de seguridad perimetral para empresas, he podido constatar la gran confianza que se tiene a los UTMs
como un “all in one” debido a que son económicos y contienen diversas firmas de seguridad en contenidos, cuando realmente estos
equipos son solo la primera línea de defensa.
Además de la actualización de firmas y pago en licencias, se debe tener en cuenta las configuraciones realizadas por el consultor o
experto que por mala praxis suelen proveer blancos directos sin necesidad de mucho esfuerzo para el atacante :D.

Finalmente, las pruebas realizadas no tienen la intensión de desprestigiar de alguna forma a una marca en particular, por el contrario, tienen el
espíritu de que se realicen con otro tipo de equipos y por supuesto, mejorar la seguridad de las aplicaciones empresariales.

Por ejemplo personalmente esta pendiente realizar pruebas con un equipo de la misma marca que es FortiWeb , que es un equipo mucho mas
especializado en protección de ataques web,

Esperen esas pruebas!!

Saludos 
Juan Oliva 
@jroliva

https://jroliva.net/2015/07/31/hacking­fortinet­bypassing­utm/ 25/26
5/5/2017 Hacking fortinet – bypassing UTM | Juan Oliva

Anuncios

 Me gusta
A un bloguero le gusta esto.

R ELA C ION A D O

Hacking Fortinet – SQLI test Hacking Fortinet ­ WAF TEST Fortinet SSH Backdoor Exploit P.O.C.


En "Hacking" En "Hacking" En "Hacking"

Esta entrada fue publicada en Hacking, Linux, Manuales y tutoriales y etiquetada firewall, fortinet, hacking, kali, metasploit, pentest,
security, seguridad, UTM por jroliva. Guarda enlace permanente [https://jroliva.net/2015/07/31/hacking­fortinet­bypassing­utm/] .

Acerca de jroliva
Juan Oliva, es un consultor de seguridad informática y telefonía IP con 10 años de experiencia en el campo . Muy involucrado en
proyectos de pruebas de penetración , análisis y explotación vulnerabilidades, pruebas de ingeniería social, seguridad física, revisión
de código, entre otras tareas de seguridad informática. Así mismo, desarrolla proyectos de implementación y mantenimiento de VoIP,
basadas en Asterisk y Elastix, proyectos de callcenter, soluciones en la nube y hosted PBX, Aseguramiento de plataformas Linux,
Windows. Ha estado trabajando para una variedad de empresas en donde ha desarrollado proyectos para el estado peruano, así
como para entidades privadas, nacionales y del extranjero, cuenta con certificaciones vigentes en Ethical hacking, Linux y telefonía IP.
Es instructor de cursos de Ethical Hacking y certificaciónes como Linux Professional Institute y Elastix, donde ha tenido oportunidad de

https://jroliva.net/2015/07/31/hacking­fortinet­bypassing­utm/ 26/26

También podría gustarte