
Firecat is a penetration testing tool that allows you to punch reverse TCP tunnels out of a compromised network.
Weitere Informationen finden Sie unter:
http://www.bishopfox.com/resources/tools/other-free-tools/firecat/
Firecat ist ein Penetrationstest-Tool, mit dem Sie Reverse-TCP-Tunnel aus einem kompromittierten Netzwerk heraus öffnen können. Sobald ein Tunnel eingerichtet ist, können Sie sich von einem externen Host mit jedem beliebigen Port auf jedem System innerhalb des kompromittierten Netzwerks verbinden – selbst wenn das Netzwerk hinter einem NAT-Gateway und/oder einer strengen Firewall liegt. Dies kann für eine Reihe von Zwecken nützlich sein, unter anderem für den Remote-Desktop-Zugriff auf die NAT-IP-Adresse (z. B. 192.168.1.10) eines kompromittierten Webservers im internen Netzwerk.
Firecat ist in C geschrieben und wurde auf Linux, Solaris, iOS, Mac OS X und Windows XP/Vista/2k/2k3/2k8 getestet.
Zum Kompilieren unter Windows mit MinGW:
gcc –o firecat.exe firecat.c –lwsock32
Zum Kompilieren unter Unix:
gcc –o firecat firecat.c
Denken Sie etwa ein Jahrzehnt zurück: Damals war es üblich, Hosts zu finden, die nicht (oder gar nicht) ordnungsgemäß gegen das Internet abgesichert waren. Man konnte einen Host kompromittieren, Shellcode an einen Port binden und mit netcat oder einem anderen Tool die interaktive Kommandozeilenkontrolle über das Ziel übernehmen.
Heutzutage sieht das anders aus. Häufig werden TCP/IP-Pakete, die für einen Host bestimmt sind, strikt durch eingehende Firewall-Regeln gefiltert. Oft wird die Sache noch dadurch verkompliziert, dass sich der Zielhost hinter einem NAT-Gateway befindet:
Strenge Firewall-Regeln verkleinern die Angriffsfläche der Zielumgebung, aber Angriffe wie SQL-Injection ermöglichen es dennoch, beliebigen Code auf selbst den strengsten防火墙上? Bitte auf Deutsch: selbst den am strengsten abgesicherten Servern auszuführen. Allerdings ist es unmöglich, sich direkt mit internen Netzwerkdiensten zu verbinden – außer mit denen, die von der Firewall erlaubt werden –, sofern der Prüfer nicht auch die Kontrolle über die Firewall übernehmen und die Regelsätze ändern kann.
Genau hier kommt Firecat ins Spiel. Vorausgesetzt, Sie können Befehle auf einem Host in einer DMZ ausführen, und weiterhin vorausgesetzt, dass dieser Host ausgehende TCP/IP-Verbindungen zum Computer des Prüfers aufbauen kann, ermöglicht es Firecat dem Prüfer, sich mit jedem Port auf dem Zielhost und oft mit jedem Port auf jedem Host innerhalb der DMZ zu verbinden. Dies geschieht, indem ein Reverse-TCP-Tunnel durch die Firewall erstellt und der Tunnel genutzt wird, um beliebige TCP-Verbindungen zwischen dem Prüfer und Hosts in der Zielumgebung zu vermitteln. Neben der Erstellung beliebiger TCP/IP-Tunnel in DMZ-Netzwerke kann Firecat auch dazu verwendet werden, Connect-Back-Shells von kompromittierten DMZ-Hosts wie Web- oder SQL-Servern zu öffnen.
Es funktioniert, weil das Zielsystem diejenige Seite ist, die die TCP-Verbindung zum Prüfer initiiert – nicht umgekehrt. Firecat läuft im „Target“-Modus auf dem Ziel und im „Consultant“-Modus auf dem System des Prüfers und erzeugt so effektiv einen Tunnel zwischen den beiden Endpunkten. Sobald der Tunnel eingerichtet ist, verbindet sich der Prüfer mit seinem lokalen Firecat-Daemon, der den entfernten Firecat-Daemon anweist, eine Verbindung zum gewünschten Host/Port hinter der Firewall herzustellen. Die beiden Firecat-Daemons tunneln dann die Daten zwischen dem Prüfer und dem Ziel, wodurch eine nahtlose, transparente Brücke zwischen den beiden Systemen entsteht; die Firewall-Regeln werden damit vollständig umgangen. Firecat funktioniert sogar auf Hosts hinter NAT-Firewalls.
Aufgeschlüsselt in logische Schritte und unter Verwendung der IP-Adressen in den Abbildungen läuft der Prozess wie folgt ab: