Archivo
Desactivando SIP ALG en Fortinet
Mencionar que el protocolos de Voz son los mas delicados que existen en el mundo de los servicios de infraestructura no es una novedad, debido primordial mente a que no pueden tener ningún tipo de retardo o falla durante su transmisión y en este caso protocolo SIP en este caso no es la excepción.
Bajo este contexto, algunos equipos perimetrales tipo Router, Firewall, UTM durante estos últimos años vienen implementando lo que llaman «Application Layer Gateway» o ALG evidentemente en favor de la protección ante fallas de seguridad, ya que lo que hace es interceptar el trafico para administrarlo/gestionarlo antes de dejarlo pasar a su destino final.
Sin embargo este tipo de features no necesariamente surten en favor de uno cuando está desplegando una implementación de VoIP ya que ello va producir problemas durante las llamadas, causando entrecortes o caídas de llamada inesperados inclusive.
En este caso vamos a ver como desactivar SIP ALG de un equipo Fortinet 60D sin embargo puede ser aplicable para cualquier modelo.
1.-Desactivar sip-helper y sip-nat-trace
Ingresamos al CLI console mediante la interfase de administración y desactivamos las opciones de sip-helper y sip-nat-trace de la siguiente forma:
Una vez realizado esto es necesario reiniciar el equipo.
2.-Eliminar SIP dentro de session-helper
Luego ingresamos nuevamente, ahora es necesario identificar el ID del protocolo SIP dentro de la opción session-helper para luego eliminarla, esto se consigue de la siguiente forma:
Como vemos hemos identificado que el protocolo SIP se encuentra en el ID 13 , ahora procedemos a eliminarlo de la siguiente forma:
Una vez que hemos eliminado el ID simplemente cerramos la sesion en la consola.
Espero les sirva.
Saludos
Juan Oliva
Fortinet SSH Backdoor Exploit P.O.C.
Hace solo un par de semanas el mundo de uno de los mas famosos UTMs del mercado Fortinet, fue remecido por la divulgación de una puerta trasera de acceso a sus equipos.
Inicialmente se reveló un script que sacaba provecho a un método de «soporte» usado por el personal de firma para brindar ayuda, si bien es cierto este método tenia involucrado la generación de claves aleatorias, sin embargo usaba un algoritmo al parecer bastante sencillo.
Por supuesto luego de a ver sido revelado este «método» apareció un script en Python que explota y automatiza la apertura de un shell mediante SSH.
Cabe señalar que la firma emitió un comunicado (ver aquí) en donde aduce que lo revelado se trata de un problema de gestión y no de un puerta trasera, lo real es que ahora la vulnerabilidad afecta a las versiones 4.X hasta las 5.0.7 del sistema operativo.
Aquí el P.O.C. que realicé contra un Fortinet VM
Es claro que todos los equipos que tengan la versiones afectadas y que tengan SSH abierto, es altamente recomendable actualizar (pagar la licencia) para evitar ser comprometidos.
Espero les sirva
Juan Oliva
@jroliva
Hacking Fortinet – WAF TEST
Dentro de la amplia gama de soluciones de protección de seguridad informática, existen equipos muy especializados de acuerdo al propósito; Uno de ellos esos equipos es el denominado Web Application Firewall
Según OWASP es un firewall de aplicaciones Web o «WAF» el cual es es un aparato, plugin de servidor, o el filtro que se aplica un conjunto de reglas a una conversación HTTP. En general, estas reglas cubren ataques comunes tales como cross-site scripting (XSS) y SQL injection. Mediante la personalización de las reglas para su aplicación, muchos ataques pueden ser identificados y bloqueados.
Evidentemente un WAF no es un UTM , ya que el WAF como se cita en el párrafo anterior, es un equipo que se enfoque específicamente en la protección de aplicaciones o sistemas Web, es necesario precisar ello por que en el articulo anterior donde realizarnos pruebas contra un UTM la mayoría de los ataques hacia aplicaciones web, no fueron bloqueados por el equipo.
Es así , que gracias a Yishay Perry ( www.fil.org.il ) que es especialista en soluciones Fortinet y un colega en el área de seguridad perimetral, me dio la posibilidad de poder tener acceso al WAF de Fortinet denominado FORTIWEB, en donde implementamos un escenario de adecuado para realizar algunas pruebas de seguridad ofensiva y validar si el equipo podía bloquear algunos de los ataques hacia aplicaciones web mas representativos.
Escenario
Test 1 – Cross-site scripting XSS
La detección de ataques de XSS son bastante complicados de ser detectados por los UTM tradicionales en este caso vamos a ver como reacciona el WAF ante esta vulnerabilidad.
A.- Sin el WAF protegiendo la aplicación web
Probamos la siguiente cadena xss :
alert(document.cookie)
Vemos que el xss reflejado se completo
B.- Con el WAF protegiendo la aplicación web
Volvemos a probar la misma cadena pero ahora con el WAF protegiendo la aplicación web
Vemos que el WAF reacciona y bloquea la ejecución del XSS reflejado
Así mismo el WAF genera el registro del evento.
Test 2 – File Inclusion
Esta es otra vulnerabilidad bastante complicada de detectar, vamos a ver como reacciona.
A.- Sin el WAF protegiendo la aplicación web
Probamos la siguiente inclusion : /etc/passwd
Vemos que se completa el comando y devuelve el contenido del archivo /etc/passwd en la aplicación web
B.- Con el WAF protegiendo la aplicación web
Volvemos a probar la misma cadena pero ahora con el WAF protegiendo.
También vemos que el WAF reacciona y bloquea la ejecución del XSS
De la misma forma vemos que el WAF genera el registro del evento.
Test 3 – Website Defacement
El defacement o defaseo de paginas es un ataque bastante comun en estos tiempos, veamos como el WAF reacciona.
Escenario: En este caso hemos conseguido subir un webshell, mediante un formulario de upload, luego se ha detectado el archivo index.php que es la pagina principal del sitio web y estamos en el proceso de grabar nuestro defacement , como se muestra a continuación :
A.- Sin el WAF protegiendo la aplicación web
Sin el WAF protegiendo es posible grabar el archivo y completar el defacement de la siguiente forma :
B.- Con el WAF protegiendo la aplicación web
Volvemos a probar tratando de grabar el archivo index.php con el WAF protegiendo y este reacciona de esta forma :
Así mismo el evento queda registrado como se muestra a continuación:
Es decir el WAF evita el defacement.
Conclusiones
- Contar con un equipo mucho mas especializado en ataques web permite reducir mucho las probabilidades de que se puedan explotar vulnerabilidades en las aplicaciones, como el caso de el FortiWEB
- Si bien es cierto todas las pruebas realizadas fueron positivas con respecto al WAF , ello es porque, se ha realizado configuración especifica de protección para la aplicación que se está defendiendo, es decir cualquiera que sea la solución WAF que se usen, es necesario realizar configuración personalizada en el equipo.
- Esta guía intenta mostrar, que para cualquier equipo o solución que proteja la seguridad, es altamente recomendable que se realicen pruebas de seguridad ofensiva para validar cada una de las reglas de protección que el equipo brinda.
- En el caso del FortiWeb puedo manifestar que es un equipo que protege bastante bien las vulnerabilidades evaluadas.
En otro articulo veremos como implementar un WAF basado en algunas soluciones de software libre existentes.
Espero les sirva.
Saludos
Juan Oliva
@jroliva
Hacking Fortinet – WAF TEST (English version)
Among the wide range of solutions to protect security, there are very specialized equipment according to purpose; One such equipment is called Web Application Firewall
According to OWASP is a Web application firewall or «WAF« which is a device, server plugin, or filter a set of rules that applies to an HTTP conversation. In general, these rules cover common attacks such as cross-site scripting (XSS) and SQL injection. By customizing the rules for its implementation, many attacks can be identified and blocked.
Evidently a WAF is not a UTM , the WAF it is a device or software that specifically focus on protecting applications or Web systems, it is necessary therefore that in the previous article where through testing against UTM most attacks on web applications, were not blocked by the team.
Thanks to Yishay Perry (www.fil.org.il) who specializes in Fortinet solutions and a colleague in the area of perimeter security, gave me the possibility to access the Fortinet WAF called FortiWeb, where we implemented a scenario suitable to perform some tests of the security offensive and validate if the team could block some of the attacks more representative on web applications.
Scenario:
Test 1 – Cross-site scripting XSS
The detection of XSS attacks are most complicated to be detected by traditional UTM in this case we see how the WAF reacts to this vulnerability.
Xss tested the following string: alert (document.cookie)
Retest the same test but now with the WAF protects web application
Test 2 – File Inclusion
This is another vulnerability difficult to detect , let’s see how he reacts.
A. Without the WAF protects web application
We tested the following path inclusion: /etc/passwd
see that the command completes and returns the contents of /etc/ passwd file in the web application
B. With the WAF protects web application
Retest the same test but now with the WAF protecting.
We also see that the WAF reacts and blocks the execution of XSS
as in the previous test we see that the WAF generates the event log.
Test 3 – Website Defacement
The defacement or defaseo of pages is an attack fairly common these days, let’s see how the WAF reacts.
Scenario: In this case we managed to climb a webshell, upload through a form, then detected the file index.php is the main page of the website and are in the process of save our defacement in the file, as shown below:
A. Without the WAF protects web application
Without the WAF protecting , may save the file and complete the defacement as follows:
B. With the WAF protects web application
Retest trying to save the index.php file with the WAF protecting and it reacts like this:
Likewise, the event is recorded as shown below:
Conclusions
- Have a much more specialized equipment allows web attacks greatly reduce the chances that can exploit vulnerabilities in applications, such as the case of the FortiWeb
- All tests were positive about the WAF, it is because, there has been specific configuration to protection for the application that is being defended, ie whatever the WAF solution is used, it is necessary to make custom settings on device .
- This guide is intended to show that for any equipment or solution to protect the security, it is highly recommended that offensive security testing to validate each of the security rules that the device offers are made.
- I can say that FortiWeb is a pretty good device that protects the assessed vulnerabilities.
In another article we will see how to implement a WAF some solutions based on existing free software.
Regards
Juan Oliva
@jroliva
Hacking Fortinet – SQLI test
Para los que me siguen en Facebook y en Twitter, saben que últimamente he tenido una especial curiosidad en los equipos Fortinet, ya que por un lado, es uno de los equipos que tienen mayor posicionamiento de instalaciones en la región y por otro lado en mis proyectos de pentest a pesar de estar presentes, nunca tuve inconveniente de bloqueos en los ataques que realizaba.
Debido a ello, la semana pasada junto a mi amigo Alexis Torres un colega del área de pentest y que también es especialista en soluciones Fortinet , realizamos algunas pruebas de seguridad ofensiva para validar si realmente el equipo bloqueaba ataques cuando protege una aplicaciones Web, en este caso usando un Appliance FortiGate 60D el cual fue configurado adecuadamente por el , ya que la idea era hacer las pruebas como dios manda.
El test consistió en poner una aplicación web vulnerable como DVWA la cual estaba protegida por un Appliance Fortinet D60 específicamente.
Entrando a los Ataques:
Como saben las vulnerabilidades de SQL Inyection ( SQLI) son las mas comunes en las aplicaciones web, esto lo pueden validar ya que están en el primer lugar del Owasp top 10.
Entonces nos valimos de la aplicación vulnerable para primero realizar ataques de SQLI muy sencillos.
‘ union select 1 —
Para mi sorpresa el Fortinet detectaba el patrón de SQL , y lo bloqueaba.
La regla que detectaba el ataque fue «http.uri.sql.injection» evidentemente no dice mucho sobre su funcionamiento interno ya que debe ser un secreto bien guardado por la marca.
Es así, que no nos dimos por vencidos y decidimos ir un poco más allá y desarrollar ataques un poco más elaborados con SQLMAP , herramienta por excelencia hará desarrollar SQLI.
Sin embargo era obvio que si enviaba el ataque con sqlmap sin ajustar sería presa fácil del Fortinet.
Así que le agregamos un par de modificaciones:
Velocidad:
–threads=1 , Ajustamos el máximo numero de solicitudes a 1
–delay=60 , Retrasar en 60 segundo cada envío de sqli
Ofuscación
–technique U, especificamos la tecnica basado en UNION QUERY
–batch , obviar el ingreso de Y/N
–tamper, especificamos el tipo script que usará como payload para ofuscar las cadenas sqli
en el caso de sqlmap tenemos una amplia variedad como en botica:
space2hash.py
space2morehash.py
space2mssqlblank.py
space2mysqlblank.pycharencode.py
chardoubleencode.py
charunicodeencode.py
De tal forma que el ataque quedó de está forma :
python sqlmap.py –url=»http://192.168.19.253/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#» –cookie=»security=low; PHPSESSID=d0fa0f05f0b714c18b3ba3ebace3f450″ -v 3 –dbms «MySQL» –technique U -p id –batch –threads=1 –delay=60 –tamper «space2mysqldash.py»
Después de algún tiempo de espera ya que como indicamos bajamos la velocidad del ataque, oh sorpresa el equipo detecto y bloqueo el ataque para cada uno de los payloads existentes con sqlmap.
Bueno, es evidente que fue un buen resultado para Alexis pero no para mi en mi posición de atacante, sin embargo bajo la perspectiva de protección, es bueno saber que el equipo cumple con su trabajo, aunque es necesario tener en cuenta estos dos factores:
1.- Configuración adecuada
Como indique desarrollé las pruebas con un especialista en la marca, pero no solo activando o desactivando reglas o configuraciones, como la mayoría de empresas/implementadores lo hacen, es importante también que un especialista en ataques haga la otra de parte, de tal forma que es posible tener los dos lados del escenario desarrollando test de seguridad ofensiva así como defensiva y de está forma garantizar que la configuración es la adecuada.
2.- Respecto a las pruebas
Desde la perspectiva del pentester no es posible asumir una posición que el equipo tiene la seguridad perfecta, por lo menos hablando de SQLI, teniendo en cuenta que se usó una aplicación web muy conocida en temas de inseguridad, sin embargo es correcto precisar que bajo este escenario fue efectivo, habría que realizar mas pruebas y en otros escenarios web para sentirse mas conforme.
En el futuro espero desarrollar otro tipo de pruebas de seguridad ofensiva como XSS, Session Hijacking, entre otros y ver como nos va.
Como siempre espero les sirva la información.
Saludos
Juan Oliva
@jroliva