Дополнительное исследование брандмауэров

Если прямое сканирование портов, отслеживание маршрутов и сбор маркеров не принесли успеха, взломщики могут прибегнуть к дополнительной инвентаризации брандмауэра на более высоком уровне. При этом идентифицировать брандмауэры и получить их правила ACL можно в процессе исследования цели и анализа полученной информации (или не полученной).

Простой способ получения данных с помощью утилиты nmар


Утилита nmар является прекрасным средством исследования брандмауэров, и мы постоянно ею пользуемся. В процессе сканирования узла эта утилита сообщает не только об открытых или закрытых портах, но и о тех из них, которые оказались заблокированными. При этом полученные (или отсутствующие) данные позволяют узнать о конфигурации брандмауэра много важной информации.
Если в результате сканирования утилита nmap "пометила" порт как фильтруемый, то это означает возникновение одного из следующих условий.

  • Не получен пакет SYN/ACK. 
  • Не получен пакет RST/ACK.
  • Получено ICMP-сообщение типа 3 (Destination Unreachable) с кодом 13 (Communication Administratively Prohibited — RFC 1812).
При выполнении любого из этих трех условий утилита nmap сообщит о порте как о фильтруемом (filtered). Например, при сканировании узла www.company.com мы получили два IСМР-пакета, что говорит о блокировании брандмауэром портов 23 и 111.

[root]# nmap -p20,21,23,53,80,111 -PO -w 192.168.51.100
Starting nmap V.2.08 by Fyodor (fyodor@dhp.com,
www.insecure.org/nmap/)
Initiating TCP connect() scan against (192.168.51.100)
Adding TCP port 53 (state Open).
Adding TCP port 111 (state Firewalled).
Adding TCP port 80 (state Open).
Adding TCP port 23 (state Firewalled).
Interesting ports on (192.168.51.100):
Port State Protocol Service
23 filtered tcp telnet
53 open tcp domain
80 open tcp http
111 filtered tcp sunrpc

Состояние Firewalled из предыдущего фрагмента свидетельствует о получении 1СМР-пакета типа 3 с кодом 13 (admin prohibited filter), как видно из следующего листинга утилиты tcpdump.

23:14:01.229743 10.55.2.1 > 172.29.11.207: icmp: host 172.32.12.4
Unreachable - admin prohibited filter
23:14:01.979743 10.55.2.1 > 172.29.11.207: icmp: host 172.32.12.4
Unreachable - admin prohibited filter

Каким же образом утилите nmap удается связать получаемые пакеты с исходными сообщениями, особенно, когда они являются лишь малой частью данных, передаваемых по сети? Дело в том, что в ответном ICMP-пакете, передаваемом на сканирующий узел, содержится вся информация, необходимая для понимания того, что же произошло. О блокировании порта сообщается в однобайтовом блоке заголовка IСМР по адресу 0x41, а в случае обращения к фильтруемому порту брандмауэр отправит сообщение в IP-блоке пакета по адресу 0xlb (4 байта).
И наконец, о нефильтруемых (unf iltered) портах утилита nmap сообщает лишь в том случае, когда при их сканировании обратно возвращается пакет RST/ACK. В этом случае тестовый пакет либо достигает целевого узла, который сообщает о том, что порт не находится в состоянии ожидания запросов, либо брандмауэр имитирует IP-адрес этого узла, устанавливая флаг RST/ACK. Например, при сканировании локальной системы было выявлено два нефильтруемых порта, поскольку не пришло двух ответных пакетов RST/ACK. Подобная ситуация может быть имитирована и некоторыми брандмауэрами, например, ChackPoint на которых действует правило REJECT.

[root]# nmap -sS -pl-300 172.18.20.55
Starting nmap V. 2.08 by Fyodor (fyodor@dhp.com,
www.insecure.org/nmap/)
Interesting ports on (172.18.20.55):
(Not showing ports in state: filtered)
Port State Protocol Service
7 unfiltered tcp echo
53 unfiltered tcp domain
256 open tcp rap
257 open tcp set
258 open tcp yak-chat
Nmap run completed -- 1 IP address
(1 host up) scanned in 15 seconds

При отслеживании пакетов с помощью утилиты tcpdump можно увидеть, что обратно возвращаются пакеты RST/ACK.

21:26:22.742482 172.18.20.55.258 > 172.29.11.207.39667: S
415920470:1415920470(0) ack 3963453111 win 9112 <mss 536> (DF)
(ttl 254, id 50438)
21:26:23.282482 172.18.20.55.53 > 172.29.11.207.39667:
R 0:0(0) ack 3963453111 win 0 (DF) (ttl 44, id 50439) 21:26:24.362482

172.18.20.55.257 > 172.29.11.207.39667: S 1416174328:1416174328(0)
ack 3963453111 win 9112 <mss 536>
(DF) (ttl 254, id 50440)
21:26:26.282482 172.18.20.55.7 > 172.29.11.207.39667:
R 0:0(0) ack 3963453111 win 0 (DF) (ttl 44, id 50441)

Контрмеры против применения утилиты nmар


Обнаружение


Для выявления попыток сканирования с использованием утилиты nmap можно применять подходы, описанные в главе 2. Кроме того, можно также дать следующий совет. Настройте процедуру обнаружения сканирования таким образом, чтобы отдельно получать информацию о попытках сканирования брандмауэров.

Предотвращение


Для того чтобы предотвратить возможность инвентаризации списков ACL маршрутизаторов и брандмауэров, нужно отключить на них режим передачи ответных сообщений ICMP с типом 13. На маршрутизаторах Cisco это можно осуществить, запретив передачу ответных IP-сообщений о недостижимости цели. no ip unreachables

Идентификация портов


Некоторые брандмауэры имеют уникальные характеристики, отличающие их от других брандмауэров и представленные в виде последовательности цифр. Например, такую последовательность можно получить при подключении к TCP-порту 257 (SNMP) брандмауэров Checkpoint. Наличие портов 256-259 является хорошим признаком брандмауэра Firewall-1 компании Checkpoint. А следующий тест поможет в этом удостовериться.

[root]# nc -v -n 192.168.51.1 257
(UNKNOWN) [192.168.51.1] 257 (?)
open
30000003
[root]# no -v -n 172.29.11.191 257
(UNKNOWN) [172.29.11.191] 257 (?)
open 31000000

Контрмеры: защита от идентификации портов


Обнаружение


Факт подключения злоумышленника к портам можно выявить, добавив аудит соответствующего события в программе RealSecure. Вот что для этого нужно сделать.
1. Активизируйте режим редактирования политики.
2. Перейдите во вкладку Connection Events.
3. Щелкните на кнопке Add Connection и введите параметры записи, соответствующие брандмауэру Checkpoint.
4. Выберите диапазон портов и щелкните на кнопке Add.
5. Введите значения в поля службы и порта, а затем щелкните на кнопке ОК.
6. Выберите новый порт и снова щелкните на кнопке ОК.
7. Щелкните на кнопке ОК, чтобы применить политику с измененными параметрами.

Предотвращение


Возможность подключения к TCP-порту можно предотвратить, заблокировав его на маршрутизаторе исходящих сообщений. Следующий простой список ACL брандмауэров Cisco поможет явно запретить все попытки подключения. access-list 101 deny tcp any any eq 257 log ! Блокирование сканирования Firewall-1