domingo, 24 de diciembre de 2017

Firecat, una herramienta de prueba de penetración y crear reverse túnel en una red


Firecat es una herramienta de prueba de penetración que te permite perforar al reverse túnel TCP de una red comprometida. Después de que se establece un túnel, puedes conectarte de un host a cualquier puerto en el sistema dentro de la red comprometida, aun si la red esta detrás de un gateway de NAT o un firewall. Esto puede ayudar de varias maneras, incluyendo el acceso al Remote Desktop de la red interna de la dirección IP del NAT(e.g. 192.168.1.10) de un servidor de red comprometido.

Instalación 


Firecast está escrito en C y está probado en Linux, Solaris, iOs, Mac OS X y Windows XP/Vista/2k/2k3/2k8.

Para trabajar en Windows usando MinGW:
gcc –o firecat.exe firecat.c –lwsock32

Para trabajar en Unix:
gcc –o firecat firecat.c

Uso


 

¿Cómo funciona?


Regresamos atrás una década y recordarás que era muy común encontrar anfitriones que no tuvieran un firewall del Internet. Podías comprometerlos, archivar shellcodes en un puerto, usar netcat o alguna otra herramienta para tomar el control en línea de comandos interactivos del objetivo explica Jim Gil, un experto de seguridad informática de International Institute of Cyber Security (IICS).

Hoy en día las cosas son diferentes, es muy común que los paquetes de TCP/IP de un host esta estrictamente filtrados por reglas de firewall para su ingreso.

Con frecuencia, los asuntos son más complicados puesto que el host que es la meta está detrás de un gateway NAT:





Reglas más estrictas para el firewall reduce el tamaño del ataque del objetivo, pero ataques como la inyección de SQL hacen posible ejecutar códigos arbitrarios en los servidores con firewalls muy estrictos. Sin embargo, a menos que el consultor pueda tomar control del firewall y alterar el rule set, es imposible para otros conectar directamente con la red interna de servicios.

Es ahí cuando Firecat tiene su turno. Asumiendo que puedes ejecutar comandos en un host de DMZ y que el host puede iniciar una conexión de  outbound de TCP/IP a la computadora del consultor, Firecat le posibilita conectarse a cualquier puerto en la mira del host, y a cualquier puerto en cualquier host de DMZ. Esto pasa creando un túnel reverso TCP a través del firewall y usando el túnel para intermediar conexiones arbitrarias de TCP entre el consultor y el host en el ambiente que es el objetivo.  Expertos de seguridad informática de Webimprints aconseja que además de crear túneles arbitrarios de TCP/IP a red DMZ, también se puede usar para reventar connect-back shells del host de DMZ comprometido como web o servidores SQL.

Funciona debido que el sistema objetivo es el que inicia la conexión TCP de regreso al consultor, no a la inversa. Firecat corre en modo “target” en el objetivo, y “consultant” en el sistema del consultor, creando efectivamente un túnel entre los dos puntos. Una vez que el túnel es establecido, el consultor se conecta a su daemon de Firecat local que instruye un Firecat daemon remoto para iniciar una conexión al host/port deseado detrás del firewall menciona Jim Gil, un experto de seguridad informática de International Institute of Cyber Security (IICS).Los dos Firecat daemons crean un túnel entre la información del consultor y el objetivo para crear un puente impecable y transparente entre los dos sistemas, así evitando las reglas del fierwall. Firecat funciona aun con host detrás de firewalls de NAT.

Siguiendo los pasos, y utilizando la dirección IP de los diagramas, el proceso funciona de la siguiente manera:

  1. Firecat (consultant) atiende 202.1.1.1:4444
  2. Firecat (target) conecta 202.1.1.1:4444

  1. Se establece un túnel entre ambos hosts
  2. Firecat (consultant) listens on 202.1.1.1:3389
  3. El consultor conecta al desktop remoto del cliente a 202.1.1.1:3389
  4. Firecat (consultant) le dice a Firecat (target) que una nueva sesión ha iniciado
  5. Firecat (target) conecta a 192.168.0.1:3389
  6. Firecat (target) le comenta a Firecat (consultant) que está conectado localmente
  7. Ambas instancias de Firecat comienzan el túnel de información entre el desktop del cliente del consultor y el desktop objetivo del servidor, haciendo parecer al desktop del cliente que está conectado al objetivo.