# 264/tcp - Pentesting Check Point Firewall

Tip

学习和实践 AWS 黑客技术:HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE) 学习和实践 Azure 黑客技术:HackTricks Training Azure Red Team Expert (AzRTE)

支持 HackTricks

可以与 CheckPoint Firewall-1 防火墙交互,以发现有价值的信息,例如防火墙的名称和管理站的名称。 这可以通过向端口 264/TCP 发送查询来完成。

获取防火墙和管理站名称

使用预认证请求,您可以执行针对 CheckPoint Firewall-1 的模块。以下是此操作所需的命令:

use auxiliary/gather/checkpoint_hostname
set RHOST 10.10.10.10

在运行时,该模块尝试联系防火墙的 SecuRemote Topology 服务。如果成功,它会确认存在 CheckPoint Firewall,并检索防火墙和 SmartCenter 管理主机的名称。下面是输出可能的示例:

[*] Attempting to contact Checkpoint FW1 SecuRemote Topology service...
[+] Appears to be a CheckPoint Firewall...
[+] Firewall Host: FIREFIGHTER-SEC
[+] SmartCenter Host: FIREFIGHTER-MGMT.example.com
[*] Auxiliary module execution completed

发现 Hostname 和 ICA Name 的另一种方法

另一种技巧是通过一个直接的 command,向 firewall 发送特定查询并解析响应以提取 firewall 的 hostname 和 ICA name。该 command 及其结构如下:

printf '\x51\x00\x00\x00\x00\x00\x00\x21\x00\x00\x00\x0bsecuremote\x00' | nc -q 1 10.10.10.10 264 | grep -a CN | cut -c 2-

该命令的输出会提供有关 firewall 的证书名称 (CN) 和组织 (O) 的详细信息,如下所示:

CN=Panama,O=MGMTT.srv.rxfrmi

HTTP Security Server Format String Bug (CAN-2004-0039)

受影响的版本: NG FCS, NG FP1, NG FP2, NG FP3 HF2, 和 NG 带有 Application Intelligence R54/R55。
要求: 必须启用 HTTP Security Server 或 AI HTTP proxy,并对目标端口进行透明检查;如果 HTTP inspection 被禁用,则永远不会触发易受攻击的代码路径。

触发错误处理程序

该 proxy 会拒绝格式错误的 HTTP 消息,并用 sprintf(errbuf, attacker_string); 构建自己的错误页面,使攻击者控制的字节充当格式化字符串。通过 firewall 发送一个无效请求,并查找由 proxy 生成且反映你 payload 的错误:

printf 'BOGUS%%08x%%08x%%08x%%n HTTP/1.0\r\nHost: internal.local\r\n\r\n' | nc -nv [FIREWALL_IP] 80

If HTTP inspection is active, the firewall (not the backend server) answers immediately, proving the middlebox parsed and replayed the request line.

利用

Format string primitive

  • 将 parser 强制进入 error routine(invalid method、URI 或 headers)。
  • 将 attacker-controlled dwords 放在前面,使 %x%s%n 指令将它们当作栈参数处理。
  • 使用 %x/%s 来 leak 指针,然后用 %n/%hn 将格式化后的字节计数写入选定地址,覆盖 return pointers、vtables 或 heap metadata,随后通过注入的 shellcode 或 ROP 劫持执行。

Heap overflow primitive

相同的不安全 sprintf() 会写入固定大小的 heap buffer。将长请求体与超大指令(例如 %99999x)混合,使格式化输出超出分配并破坏相邻的 heap 结构,从而让你伪造 freelist pointers 或 function tables,后续被解引用。

影响

代理被攻破会在 firewall 进程内获得代码执行(在 Windows appliances 上为 SYSTEM,在 UNIX 上为 root),从而可以更改规则、拦截流量并在管理网络中向更深层 pivot。

参考资料

Tip

学习和实践 AWS 黑客技术:HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE) 学习和实践 Azure 黑客技术:HackTricks Training Azure Red Team Expert (AzRTE)

支持 HackTricks