# 264/tcp - Pentesting Check Point Firewall

Tip

Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Ucz się i ćwicz Hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Wsparcie dla HackTricks

Możliwe jest wejście w interakcję z CheckPoint Firewall-1 w celu odkrycia wartościowych informacji, takich jak nazwa zapory oraz nazwa stacji zarządzającej. Można to zrobić, wysyłając zapytanie do portu 264/TCP.

Uzyskiwanie nazw zapory i stacji zarządzającej

Używając żądania przed uwierzytelnieniem, możesz uruchomić moduł skierowany przeciwko CheckPoint Firewall-1. Niezbędne polecenia do tej operacji przedstawiono poniżej:

use auxiliary/gather/checkpoint_hostname
set RHOST 10.10.10.10

Po uruchomieniu moduł próbuje skontaktować się z usługą SecuRemote Topology firewalla. Jeśli operacja się powiedzie, potwierdza obecność CheckPoint Firewall i pobiera nazwy zarówno firewalla, jak i SmartCenter management hosta. Oto przykład, jak może wyglądać wyjście:

[*] 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

Alternatywna metoda wykrywania hostname i ICA name

Inna technika polega na bezpośrednim poleceniu wysyłającym konkretne zapytanie do firewall i parsującym odpowiedź w celu wyodrębnienia hostname i ICA name. Polecenie oraz jego struktura są następujące:

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-

Wyjście z tego polecenia dostarcza szczegółowych informacji dotyczących nazwy certyfikatu firewall (CN) oraz organizacji (O), jak pokazano poniżej:

CN=Panama,O=MGMTT.srv.rxfrmi

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

Dotknięte buildy: NG FCS, NG FP1, NG FP2, NG FP3 HF2, oraz NG z Application Intelligence R54/R55. Wymaganie: HTTP Security Server lub AI HTTP proxy muszą być włączone i przeprowadzać przezroczystą inspekcję docelowego portu; jeśli HTTP inspection jest wyłączona, podatna ścieżka kodu nigdy nie zostanie osiągnięta.

Wywołanie obsługi błędu

Proxy odrzuca malformed HTTP messages i buduje własną stronę błędu za pomocą sprintf(errbuf, attacker_string);, pozwalając, by attacker-controlled bytes pełniły rolę format string. Wyślij invalid request przez firewall i poszukaj proxy-generated error, który odzwierciedla twój payload:

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

Jeśli HTTP inspection jest active, firewall (a nie serwer backendowy) odpowiada natychmiast, co dowodzi, że middlebox sparsował i odtworzył linię żądania.

Eksploatacja

Format string primitive

  • Wymuś, by parser wszedł w procedurę obsługi błędów (invalid method, URI, or headers).
  • Umieść attacker-controlled dwords na początku, tak aby dyrektywy %x, %s i %n traktowały je jako argumenty ze stosu.
  • Użyj %x/%s do leak pointerów, a następnie %n/%hn do zapisania liczby sformatowanych bajtów pod wybrane adresy, nadpisując return pointers, vtables lub heap metadata przed przejęciem wykonania za pomocą injected shellcode lub ROP.

Heap overflow primitive

Ten sam niebezpieczny sprintf() zapisuje do bufora o stałym rozmiarze na heapie. Połącz długie request body z przerozmiarowanymi dyrektywami (np. %99999x), tak aby sformatowany output przekroczył alokację i uszkodził sąsiednie struktury heap, pozwalając sfałszować freelist pointers lub function tables, które później zostaną dereferencjonowane.

Wpływ

Kompromitacja proxy daje code execution wewnątrz procesu firewalla (SYSTEM on Windows appliances, root on UNIX), umożliwiając manipulację regułami, traffic interception oraz pivoting głębiej w sieć zarządzania.

Referencje

Tip

Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Ucz się i ćwicz Hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Wsparcie dla HackTricks