
Firecat is a penetration testing tool that allows you to punch reverse TCP tunnels out of a compromised network.
Для получения дополнительной информации см.:
http://www.bishopfox.com/resources/tools/other-free-tools/firecat/
Firecat — это инструмент для тестирования на проникновение, который позволяет пробивать обратные TCP-туннели из скомпрометированной сети. После установки туннеля вы можете подключиться с внешнего хоста к любому порту любой системы внутри скомпрометированной сети, даже если сеть находится за NAT-шлюзом и/или строгим межсетевым экраном. Это может быть полезно для ряда целей, включая получение доступа к удалённому рабочему столу внутреннего NAT-адреса (например, 192.168.1.10) скомпрометированного веб-сервера.
Firecat написан на C и протестирован на Linux, Solaris, iOS, Mac OS X и 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
Перенеситесь на десятилетие назад, и вы вспомните, что было обычным делом встречать хосты, которые не были должным образом защищены межсетевым экраном (или вообще не были защищены) от Интернета. Вы могли скомпрометировать хост, привязать шелл-код к порту и использовать netcat или другой инструмент для получения интерактивного управления целью через командную строку.
В наши дни всё иначе. Часто бывает так, что TCP/IP-пакеты, предназначенные для хоста, строго фильтруются правилами входящего межсетевого экрана. Часто дело усугубляется тем, что целевой хост находится за NAT-шлюзом:
Строгие правила межсетевого экрана уменьшают поверхность атаки целевой среды, но такие атаки, как SQL-инъекции, по-прежнему позволяют выполнять произвольный код даже на самых строго защищённых серверах. Однако, если консультант не может также получить контроль над межсетевым экраном и изменить набор правил, невозможно напрямую подключиться к внутренним сетевым сервисам, кроме тех, которые разрешены межсетевым экраном.
Вот здесь и вступает в игру Firecat. Если вы можете выполнять команды на хосте в DMZ и если этот хост может инициировать исходящие TCP/IP-соединения с компьютером консультанта, Firecat позволяет консультанту подключаться к любому порту целевого хоста и часто к любому порту любого хоста внутри DMZ. Это достигается за счёт создания обратного TCP-туннеля через межсетевой экран и использования туннеля для проксирования произвольных TCP-соединений между консультантом и хостами в целевой среде. Помимо создания произвольных TCP/IP-туннелей в сети DMZ, он также может использоваться для получения connect-back шеллов со скомпрометированных хостов DMZ, таких как веб- или SQL-серверы.
Это работает потому, что именно целевая система инициирует TCP-соединение обратно к консультанту, а не наоборот. Firecat работает в режиме «target» на цели и в режиме «consultant» на системе консультанта, фактически создавая туннель между двумя конечными точками. После установки туннеля консультант подключается к своему локальному демону Firecat, который даёт указание удалённому демону Firecat инициировать соединение с нужным хостом/портом за межсетевым экраном. Затем два демона Firecat туннелируют данные между консультантом и целью, создавая бесшовный, прозрачный мост между двумя системами; тем самым полностью обходя правила межсетевого экрана. Firecat работает даже на хостах за NAT-межсетевыми экранами.
Если разбить процесс на логические шаги и использовать IP-адреса со схем, он работает следующим образом: