
Firecat is a penetration testing tool that allows you to punch reverse TCP tunnels out of a compromised network.
Para más información, consulta:
http://www.bishopfox.com/resources/tools/other-free-tools/firecat/
Firecat es una herramienta de pruebas de penetración que permite abrir túneles TCP reversos hacia fuera de una red comprometida. Una vez establecido el túnel, puedes conectarte desde un host externo a cualquier puerto de cualquier sistema dentro de la red comprometida, incluso si la red está detrás de una pasarela NAT y/o un cortafuegos estricto. Esto puede ser útil para varios propósitos, incluido obtener acceso de Escritorio Remoto a la dirección IP con NAT de la red interna (p. ej. 192.168.1.10) de un servidor web comprometido.
Firecat está escrito en C y ha sido probado en Linux, Solaris, iOS, Mac OS X y Windows XP/Vista/2k/2k3/2k8.
To compile on Windows using MinGW:
gcc –o firecat.exe firecat.c –lwsock32
To compile on Unix:
gcc –o firecat firecat.c
Retrocede una década aproximadamente y recordarás que era común encontrar hosts que no estaban debidamente protegidos por un cortafuegos (o que no lo tenían en absoluto) frente a Internet. Podías comprometer un host, enlazar shellcode a un puerto y usar netcat u otra herramienta para tomar el control interactivo de la línea de comandos del objetivo.
Hoy en día las cosas son diferentes. A menudo, los paquetes TCP/IP destinados a un host se filtran estrictamente mediante reglas de cortafuegos de entrada. A menudo, la situación se complica aún más por el hecho de que el host objetivo se encuentra detrás de una pasarela NAT:
Las reglas de cortafuegos estrictas reducen la superficie de ataque del entorno objetivo, pero ataques como la inyección SQL aún permiten ejecutar código arbitrario incluso en los servidores con cortafuegos más estrictos. Sin embargo, a menos que el consultor también pueda tomar el control del cortafuegos y modificar el conjunto de reglas, es imposible conectarse directamente a los servicios de la red interna que no estén permitidos por el cortafuegos.
Ahí es donde Firecat entra en juego. Suponiendo que puedes ejecutar comandos en un host de la DMZ y que el host puede iniciar conexiones TCP/IP salientes hacia el ordenador del consultor, Firecat permite al consultor conectarse a cualquier puerto del host objetivo y, a menudo, a cualquier puerto de cualquier host dentro de la DMZ. Lo consigue creando un túnel TCP reverso a través del cortafuegos y utilizando el túnel para intermediar conexiones TCP arbitrarias entre el consultor y los hosts del entorno objetivo. Además de crear túneles TCP/IP arbitrarios hacia redes DMZ, también puede utilizarse para obtener shells de conexión inversa desde hosts DMZ comprometidos, como servidores web o SQL.
Funciona porque el sistema objetivo es el que inicia la conexión TCP de vuelta al consultor, y no al revés. Firecat se ejecuta en modo “target” en el objetivo y en modo “consultant” en el sistema del consultor, creando efectivamente un túnel entre los dos extremos. Una vez establecido el túnel, el consultor se conecta a su demonio Firecat local, que indica al demonio Firecat remoto que inicie una conexión al host/puerto deseado detrás del cortafuegos. Los dos demonios Firecat entonces canalizan los datos entre el consultor y el objetivo para crear un puente continuo y transparente entre los dos sistemas; de este modo, evadiendo por completo las reglas del cortafuegos. Firecat incluso funciona en hosts detrás de cortafuegos NAT.
Desglosado en pasos lógicos, y utilizando las direcciones IP de los diagramas, el proceso funciona de la siguiente manera: