
Firecat é uma ferramenta de teste de penetração que permite criar túneis TCP reversos para fora de uma rede comprometida.
Para mais informações, consulte:
http://www.bishopfox.com/resources/tools/other-free-tools/firecat/
Firecat é uma ferramenta de teste de penetração que permite abrir túneis TCP reversos para fora de uma rede comprometida. Após o túnel ser estabelecido, você pode conectar-se de um host externo a qualquer porta de qualquer sistema dentro da rede comprometida, mesmo que a rede esteja atrás de um gateway NAT e/ou firewall restritivo. Isso pode ser útil para diversos fins, incluindo obter acesso via Remote Desktop ao endereço IP interno traduzido por NAT (ex.: 192.168.1.10) de um servidor web comprometido.
Firecat é escrito em C e foi testado em Linux, Solaris, iOS, Mac OS X e Windows XP/Vista/2k/2k3/2k8.
Para compilar no Windows usando MinGW:
gcc –o firecat.exe firecat.c –lwsock32
Para compilar no Unix:
gcc –o firecat firecat.c
Volte uma década ou mais e você lembrará que era comum encontrar hosts que não estavam devidamente protegidos por firewall (ou nem sequer protegidos) contra a Internet. Você poderia comprometer um host, associar um shellcode a uma porta e usar netcat ou outra ferramenta para assumir o controle interativo via linha de comando do alvo.
Hoje em dia as coisas são diferentes. Frequentemente, pacotes TCP/IP destinados a um host são filtrados rigorosamente pelas regras de firewall de entrada. Muitas vezes a situação fica ainda mais complicada pelo fato de o host alvo estar localizado atrás de um gateway NAT:
Regras de firewall rígidas reduzem a superfície de ataque do ambiente alvo, mas ataques como injeção de SQL ainda tornam possível executar código arbitrário mesmo nos servidores mais protegidos por firewall. No entanto, a menos que o consultor também consiga assumir o controle do firewall e alterar o conjunto de regras, é impossível conectar-se diretamente aos serviços de rede internos além daqueles permitidos pelo firewall.
É aí que o Firecat entra em ação. Supondo que você possa executar comandos em um host em uma DMZ e, ainda, que esse host possa iniciar conexões TCP/IP de saída para o computador do consultor, o Firecat torna possível ao consultor conectar-se a qualquer porta do host alvo e, frequentemente, a qualquer porta de qualquer host dentro da DMZ. Ele faz isso criando um túnel TCP reverso através do firewall e usando o túnel para intermediar conexões TCP arbitrárias entre o consultor e os hosts no ambiente alvo. Além de criar túneis TCP/IP arbitrários para redes em DMZ, também pode ser usado para obter shells de conexão reversa a partir de hosts comprometidos na DMZ, como servidores web ou SQL.
Ele funciona porque o sistema alvo é o que inicia a conexão TCP de volta para o consultor, e não o contrário. O Firecat roda em modo "target" (alvo) no alvo e em modo "consultant" (consultor) no sistema do consultor, criando efetivamente um túnel entre os dois pontos. Uma vez estabelecido o túnel, o consultor conecta-se ao seu daemon Firecat local, que instrui o daemon Firecat remoto a iniciar uma conexão ao host/porta desejado atrás do firewall. Os dois daemons Firecat então fazem o túnel dos dados entre o consultor e o alvo, criando uma ponte transparente e contínua entre os dois sistemas; assim, ignorando completamente as regras do firewall. O Firecat funciona até mesmo em hosts atrás de firewalls NAT.
Dividido em etapas lógicas, e usando os endereços IP dos diagramas, o processo funciona da seguinte forma: