
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 网关和/或严格防火墙之后。该工具可用于多种目的,包括获取对被入侵 Web 服务器经 NAT 映射后的内部网络 IP 地址(例如 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
回想大约十年前,您会记得当时常见的情况是,主机没有正确(或完全没有)设置防火墙来抵御来自互联网的访问。 您可以入侵一台主机,将 shellcode 绑定到某个端口,然后使用 netcat 或其他工具以交互式命令行方式控制目标。
如今情况已大不相同。 通常情况下,发往某台主机的 TCP/IP 数据包会受到入站防火墙规则的严格过滤。 而且,目标主机通常位于 NAT 网关之后,这使情况更加复杂:
严格的防火墙规则缩小了目标环境的攻击面,但诸如 SQL 注入之类的攻击仍然可以在防火墙最严密的服务器上执行任意代码。 然而,除非顾问还能控制防火墙并修改规则集,否则除了防火墙允许的服务之外,无法直接连接到内部网络服务。
这正是 Firecat 发挥作用的地方。假设您可以在 DMZ 中的一台主机上执行命令,并且该主机可以向顾问的计算机发起出站 TCP/IP 连接,那么 Firecat 就可以让顾问连接到目标主机上的任意端口,通常还可以连接到 DMZ 内任意主机的任意端口。 它通过在防火墙上建立反向 TCP 隧道,并利用该隧道在顾问与目标环境中的主机之间中转任意 TCP 连接来实现这一目的。除了建立进入 DMZ 网络的任意 TCP/IP 隧道之外,它还可以用于从被入侵的 DMZ 主机(如 Web 或 SQL 服务器)弹出反弹 shell。
它之所以有效,是因为目标系统才是主动向顾问发起 TCP 连接的一方,而不是相反。 Firecat 在目标系统上以“target”(目标)模式运行,在顾问的系统上以“consultant”(顾问)模式运行,从而在两个端点之间建立有效的隧道。 隧道建立后,顾问连接到其本地的 Firecat 守护进程,该守护进程指示远程的 Firecat 守护进程与防火墙后面所需的主机/端口发起连接。 随后,两个 Firecat 守护进程在顾问与目标之间隧道传输数据,在两个系统之间建立无缝、透明的桥梁,从而完全绕过防火墙规则。 Firecat 甚至可以在 NAT 防火墙之后的主机上工作。
按逻辑步骤分解,并参考图示中的 IP 地址,整个过程如下: