Комплексная защита объектов информатизации


РАЗДЕЛ II – ОПРЕДЕЛЕНИЕ ТОПОЛОГИИ СЕТИ



Pdf просмотр
страница2/4
Дата14.11.2016
Размер1.28 Mb.
Просмотров1200
Скачиваний0
1   2   3   4
РАЗДЕЛ II – ОПРЕДЕЛЕНИЕ ТОПОЛОГИИ СЕТИ
Следующей задачей после обнаружения сетевых объектов
(узлов) является задача построения карты (топологии) исследуемой сети: определение маршрутов передачи пакетов в сетях TCP/IP, визуализация топологии исследуемой сети.

Практическая работа №7
ОСНОВНЫЕ СРЕДСТВА ОПРЕДЕЛЕНИЯ МАРШРУТОВ IP-
ПАКЕТОВ - PING, TRACEROUTE

1. Цель работы

Изучить основные методы определения маршрутов передачи данных в сетях TCP/IP. Поупражняться в использовании программных средств определения маршрутов передачи данных: ping, traceroute. Провести исследование сети лаборатории с помощью рассмотренных программ.

2. Теоретические сведения. Методические рекомендации

На начальных этапах построения топологии сети необходимо определить маршруты движения пакетов между узлами и подсетями
КСПД, т.е. адреса всех промежуточных маршрутизаторов при прохождении IP-пакета к целевому узлу сети. Для определения маршрутов (трассировки) служат утилиты: ping, traceroute (tracert в
ОС Windows), tracepath, tracemap, tcptraceroute (tcptracert), pathping и другие. В случае проблем при доставке IP-пакетов трассировка позволяет определить, на каком именно участке сети возникли неполадки.

Метод Record Route (RR)
Метод определения маршрута Record Route основан на добавлении в заголовок IP-пакета опции RR (Record Route), в которой сохранятся адреса всех пройденных узлов (маршрутизаторов). Record

34
Route (записывать путь) – опция IP-пакета, которая позволяет записывать IP-адрес маршрутизатора. Опциональная часть IP- заголовка имеет в данном случае длину 39 байт и выглядит, как показано на рис. 10.
1 байт тип опции
1 байт длина опции
1 байт отступ
4*9 байт IP-адреса маршрутизаторов
Рис. 10. Опциональная часть IP-заголовка
Тип опции будет равен 7, что означает Record Route. Длина опции – 39 байт. Изначально значение отступа равно 4. При прохождении пакета через маршрутизатор, в опциональную часть будет дописываться IP-адрес, начиная с отступа, а сам отступ будет увеличиваться на 4. Когда отступ станет равным 40, опциональная часть перестанет изменяться, т.е. количество дописываемых IP- адресов не может превышать 9.
Отправить IP-пакет Record Route можно при помощи утилиты ping с ключом –R: linux:
$ ping -R –с 1 ya.ru
PING ya.ru (87.250.250.3) 56(124) bytes of data.
64 bytes from www.yandex.ru (87.250.250.3): icmp_req=14 ttl=57 time=16.1 ms
RR: 192.168.0.9 izi.vlsu.ru (85.142.154.58)
85.142.155.225 vlsu.vladimir.runnet.ru (194.226.222.70) m9-ix.msk.runnet.ru (193.232.244.44)
213.180.213.103 l3-s1300-s3600.yandex.net (213.180.213.74) china-myt-vlan602.yandex.net (95.108.224.126) www.yandex.ru (87.250.250.3)
64 bytes from www.yandex.ru (87.250.250.3): icmp_req=78 ttl=57 time=234 ms
(same route)
--- ya.ru ping statistics ---
Различие в путях прохождения IP-пакета (до адресата и обратно) объясняется тем, что каждый маршрутизатор имеет не менее двух сетевых карт (с различными IP-адресами). В соответствии со стандартом, в опциональную часть будет дописываться IP-адрес

35 сетевой карты, с которой отправляется пакет (данное требование не всегда выполняется).
У метода Record Route выделяют три недостатка:
Ограничение на количество транзитных узлов (до 9 в пути IP- пакета);
Ошибки при модификации опциональной части IP-пакета некоторыми маршрутизаторами;
Наличие результата только в случае успешного прохождения IP- пакета до адресата и обратно.

Принцип работы traceroute
Утилита traceroute — наиболее распространенное отладочное средство для определения маршрутов (трассировки) движения IP- пакетов между узлами и подсетями КСПД. Утилита traceroute использует ICMP-сообщения и 8-битное поле TTL в IP-заголовке.
Поле TTL (время жизни – Time to live) это поле, которое отправитель устанавливает в какое-либо значение, рекомендуемое исходное значение указано в Assigned Numbers RFC и в настоящее время равно
64. С помощью поля TTL предотвращается зацикливание IP-пакетов в петлях маршрутизации.
Каждый маршрутизатор, который обрабатывает IP-пакет, уменьшает значение TTL на единицу или на количество секунд, в течение которых маршрутизатор обрабатывал IP-пакет. Современные требования к маршрутизаторам, Router Requirements RFC [Almquist
1993] (игнорируя требование RFC 1009 [Braden and Postel 1987] к маршрутизатору уменьшать значение поля TTL на количество секунд, если IP-пакет задерживается на время большее 1 секунды), позволяют маршрутизаторам использовать поле TTL в качестве счетчика пересылок (hop count).
Когда маршрутизатор получает IP-пакет со значением поля TTL равным 0 или 1, он уничтожает его и отправляет ICMP-сообщение об ошибке типа Time Exceeded (ICMP Туре=11, Code=0 - Time To Live
Exceeded In Transit) на исходный узел сети (источнику IP-пакета).
Принцип работы traceroute (рис. 11) основан на том, что IP-пакет,

36 содержащий ICMP-сообщение Time Exceeded, имеет в качестве адреса источника IP-адрес маршрутизатора:
На узел назначения отправляется IP-пакет со значением поля
TTL, установленным в единицу. Первый маршрутизатор, на который попадает IP-пакет, уничтожает его (так как значение поля TTL равно 1) и отправляет ICMP сообщение Time Exceeded отправителю IP-пакета. Таким образом, определяется первый маршрутизатор в маршруте;
На следующих этапах traceroute отправляет IP-пакеты со значением поля TTL на единицу превышающим предыдущие значения, что позволяет получить IP-адреса последующих маршрутизаторов;
Алгоритм продолжается до тех пор, пока IP-пакет не достигнет узла назначения. Узел назначения генерирует ICMP-сообщение
«порт недоступен» (port unreachable) т.к. утилита traceroute использует пакеты с несуществующими значениями UDP-портов
(больше чем 30000).
Рис. 11. Принцип работы traceroute
Пример использования протокола ICMP программой traceroute: linux:
$ traceroute mail.ru traceroute to ya.ru (87.250.250.203), 30 hops max, 60 byte packets

37 1 192.168.0.2 (192.168.0.2) 0.377 ms 0.359 ms 0.348 ms
2 85.142.154.49 (85.142.154.49) 3.167 ms 3.458 ms 3.532 ms
3 85.142.155.226 (85.142.155.226) 1.018 ms 1.028 ms 1.024 ms
4 m9-3-gw.msk.runnet.ru (194.226.222.69) 7.891 ms 7.909 ms
7.903 ms
5 msk-ix-m9.yandex.net (193.232.244.93) 7.915 ms 7.916 ms 7.909 ms
6 213.180.213.102 (213.180.213.102) 8.004 ms 8.495 ms 8.461 ms
7 l3-s3600-s1300.yandex.net (213.180.213.75) 9.305 ms 10.073 ms
10.069 ms
8 www.yandex.ru (87.250.250.203) 9.467 ms 8.782 ms 8.754 ms
Первая строка, без номера содержит имя и IP-адрес узла назначения и указывает на то, что величина TTL не может быть больше 30.
В условиях фильтрации UDP-трафика на промежуточных узлах
(распространенная ситуация, кроме UDP 53 - DNS), задача определения маршрутов усложняется. Пример работы traceroute в сети с фильтрацией UDP-трафика: linux:
$ traceroute mail.ru traceroute to mail.ru (94.100.191.204), 30 hops max, 60 byte packets
1 192.168.0.2 (192.168.0.2) 0.316 ms 0.262 ms 0.232 ms
2 85.142.154.49 (85.142.154.49) 0.751 ms 0.918 ms 0.948 ms
3 85.142.155.226 (85.142.155.226) 0.668 ms 0.572 ms 0.544 ms
4 m9-3-gw.msk.runnet.ru (194.226.222.69) 7.848 ms 7.842 ms
7.931 ms
5 m9-1-gw.msk.runnet.ru (194.85.40.226) 7.675 ms 7.728 ms 7.819 ms
6 * * *
7 * * *
8 * * *
9 * * *
Решением в таком случае может служить отказ от использования UDP-дейтаграмм. Пример использования протокола
ICMP (как альтернативы UDP) программой traceroute: linux:
$ traceroute -I mail.ru traceroute to mail.ru (94.100.191.201), 30 hops max, 60 byte packets
1 192.168.0.2 (192.168.0.2) 0.346 ms 0.335 ms 0.327 ms
2 85.142.154.49 (85.142.154.49) 1.033 ms 1.076 ms 1.153 ms
3 85.142.155.226 (85.142.155.226) 0.767 ms 0.829 ms 0.832 ms
4 m9-3-gw.msk.runnet.ru (194.226.222.69) 7.578 ms 7.659 ms
7.693 ms

38 5 m9-1-gw.msk.runnet.ru (194.85.40.226) 7.568 ms 7.602 ms 7.608 ms
6 mailru.msk.runnet.ru (194.190.254.234) 7.532 ms 7.835 ms
7.514 ms
7 vl931.dl8.net.mail.ru (94.100.183.94) 27.175 ms 27.203 ms
27.185 ms
8 94.100.191.201 (94.100.191.201) 7.730 ms 8.053 ms 8.023 ms
В случае фильтрации сообщений ICMP Echo, решение может быть следующим: необходимо использовать UDP-дейтаграмму на гарантированно открытый порт (обычно это порт 53 службы DNS).
Пример использования протокола UDP программой traceroute: linux:
$ traceroute -U -p 53 mail.ru traceroute to mail.ru (94.100.191.203), 30 hops max, 60 byte packets
1 192.168.0.2 (192.168.0.2) 0.354 ms 0.301 ms 0.274 ms
2 85.142.154.49 (85.142.154.49) 1.018 ms 1.037 ms 1.061 ms
3 85.142.155.226 (85.142.155.226) 0.655 ms 0.674 ms 0.648 ms
4 m9-3-gw.msk.runnet.ru (194.226.222.69) 8.272 ms 8.226 ms
8.201 ms
5 m9-1-gw.msk.runnet.ru (194.85.40.226) 8.073 ms 8.100 ms 8.079 ms
6 mailru.msk.runnet.ru (194.190.254.234) 8.073 ms 7.817 ms
7.792 ms
7 vl931.dl8.net.mail.ru (94.100.183.94) 7.811 ms 13.321 ms
13.319 ms
8 94.100.191.203 (94.100.191.203) 13.250 ms 13.240 ms 13.161 ms
Аналогично можно использовать протокол TCP. Пример использования протокола TCP (пакет TCP SYN) программой traceroute: linux:
$ traceroute -T -p 80 mail.ru traceroute to mail.ru (94.100.191.204), 30 hops max, 60 byte packets
1 192.168.0.2 (192.168.0.2) 0.207 ms 0.178 ms 0.159 ms
2 85.142.154.49 (85.142.154.49) 0.671 ms 0.808 ms 0.838 ms
3 85.142.155.226 (85.142.155.226) 0.661 ms 0.602 ms 0.590 ms
4 m9-3-gw.msk.runnet.ru (194.226.222.69) 7.375 ms 7.419 ms
7.524 ms
5 m9-1-gw.msk.runnet.ru (194.85.40.226) 7.336 ms 7.348 ms 7.453 ms
6 * mailru.msk.runnet.ru (194.190.254.234) 7.670 ms 7.592 ms
7 vl931.dl8.net.mail.ru (94.100.183.94) 7.877 ms 7.837 ms 7.929 ms
8 94.100.191.204 (94.100.191.204) 7.607 ms 7.610 ms 7.538 ms

39
Подробнее об опциях traceroute можно узнать на страницах руководства: linux:
$ traceroute --help
Существует специализированная реализация tcptraceroute, используещая TCP SYN пакеты, вместо традиционных для traceroute
UDP или ICMP ECHO пакетов. Пример использования программы tcptraceroute: linux:
$ tcptraceroute ya.ru
Selected device eth0, address 192.168.0.9, port 37214 for outgoing packets
Tracing the path to ya.ru (87.250.250.203) on TCP port 80 (www), 30 hops max
1 192.168.0.2 0.443 ms 0.335 ms 0.287 ms
2 85.142.154.49 0.800 ms 0.672 ms 0.475 ms
3 85.142.155.226 0.579 ms 0.627 ms 0.444 ms
4 m9-3-gw.msk.runnet.ru (194.226.222.69) 7.744 ms 8.247 ms
7.434 ms
5 msk-ix-m9.yandex.net (193.232.244.93) 8.300 ms 13.109 ms
7.892 ms
6 213.180.213.102 9.756 ms 14.226 ms 8.667 ms
7 l3-s3600-s1300.yandex.net (213.180.213.75) 9.933 ms 9.513 ms
9.770 ms
8 www.yandex.ru (87.250.250.203) [open] 9.545 ms 9.425 ms 9.282 ms

40
3. Практическое задание
1. Произвести трассировку методом Record Route до следующих узлов сети: серверов
DNS университета, пограничного маршрутизатора университета, yandex.ru, mail.ru, vkontakte.ru, elibrary.ru, google.com.
2. Составить перечень промежуточных узлов на каждом из путей прохождения IP-трафика с указанием IP-адресов их интерфейсов.
Результаты занести в таблицу.
Таблица 5
№ маршрутизатора (DNS-имя)
IP-интерфейса
IP-интерфейса
1

9 3. Произвести трассировку средствами утилиты traceroute до следующих узлов сети: серверов DNS университета, пограничного маршрутизатора университета, yandex.ru, mail.ru, vkontakte.ru, elibrary.ru, google.com.
4. Составить перечень промежуточных узлов на каждом из путей прохождения IP-трафика с указанием IP-адресов их интерфейсов.
Сравнить с результатами, полученными методом Record Route.
Сравнить значение RTT при трассировке утилитами traceroute и ping.

41
Практическая работа №8
ДОПОЛНИТЕЛЬНЫЕ СРЕДСТВА ОПРЕДЕЛЕНИЯ
МАРШРУТОВ IP-ПАКЕТОВ - NMAP, TRACEMAP, MRT

1. Цель работы

Продолжить знакомство с методами определения маршрутов передачи данных в сетях TCP/IP. Научиться использовать программные средства определения маршрутов передачи данных: nmap, tracemap, MRT. Провести исследование сегмента сети университета средствами рассмотренных программных средств.

2. Теоретические сведения. Методические рекомендации

Утилиты ping и traceroute являются наиболее распространенными средствами определения маршрутов IP-пакетов, они входят в стандартную поставку большинства современных ОС.
Их функционал достаточен для решения задачи трассировки маршрута в большинстве случаев. Однако существуют программные средства, обладающие дополнительными функциональными возможностями. В работе рассматриваются некоторые популярные некоммерческие программные продукты.

Сканер nmap как инструмент исследования топологии. Опция --
traceroute
Сетевой сканер nmap также имеет возможность использования различных протоколов для построения трассы движения IP-пакета.
Для определения маршрутов движения пакетов средствами nmap необходимо использовать опцию --traceroute. Пример применения протоколов ICMP и TCP сканером nmap: linux:
$ nmap -sP 10.1.11.35 --traceroute
Starting Nmap 5.21 ( http://nmap.org ) at 2011-08-31 14:57 MSD
Nmap scan report for vla-hq-ns-01.hq.corp.vlsu.ru (10.1.11.35)
Host is up (0.00060s latency).
TRACEROUTE (using proto 1/icmp)
HOP RTT ADDRESS

42 1 0.46 ms 192.168.0.1 2 1.89 ms 172.18.5.1 3 2.16 ms 10.11.11.101 4 2.13 ms 10.11.11.1 5 0.71 ms vla-hq-ns-01.hq.corp.vlsu.ru (10.1.11.35)
Nmap done: 1 IP address (1 host up) scanned in 0.11 seconds linux:
$ nmap -sP mail.ru --traceroute -PT
Starting Nmap 5.21 ( http://nmap.org ) at 2011-08-31 14:59 MSD
Nmap scan report for mail.ru (94.100.191.204)
Host is up (0.0077s latency).
Hostname mail.ru resolves to 4 IPs. Only scanned 94.100.191.204
TRACEROUTE (using port 80/tcp)
HOP RTT ADDRESS
1 0.22 ms 192.168.0.2 2 0.77 ms 85.142.154.49 3 0.64 ms 85.142.155.226 4 7.71 ms m9-3-gw.msk.runnet.ru (194.226.222.69)
5 7.68 ms m9-1-gw.msk.runnet.ru (194.85.40.226)
6 7.75 ms mailru.msk.runnet.ru (194.190.254.234)
7 7.80 ms vl931.dl8.net.mail.ru (94.100.183.94)
8 7.80 ms 94.100.191.204
Nmap done: 1 IP address (1 host up) scanned in 0.07 seconds

Визуализация маршрутов IP-пакета. Tracemap
Tracemap - скрипт для построения графической карты трассировки к хостам. Проверить наличие установленной программы tracemap можно командой: linux:
$ whereis tracemap
В случае отсутствия программы tracemap ее можно получить следующим способом (необходимо подключение к сети Интернет): linux:
$ wget http://xgu.ru/download/tracemap.pl
Для корректной работы программе могут понадобиться: traceroute, graphviz, libnet-ip-perl, программа просмотра PNG-файлов
(например, gqview).
Опции программы tracemap:
-q1: Выполняется однократная отправка пакета для каждого TTL;
-n: Не выполняется обратное преобразование DNS;
-I: Выполняется сканирование с помощью ICMP (UDP по умолчанию).

43
Для построения трассы до узла достаточно передать его имя
(адрес): linux:
$ echo izi.vlsu.ru | perl tracemap.pl
Просмотреть результат (рис. 12) можно в любой программе для просмотра PNG-файлов, например: linux:
$ gqview tracemap.png
Для того чтобы построить трассу к нескольким узлам, можно передать несколько адресов, по одному на строке: linux:
$ (echo mail.ru; echo elibrary.ru; echo ya.ru; echo google.com; echo vkontakte.ru) | perl tracemap.pl readline() on closed filehandle PREFIXES at tracemap.pl line 44.
Tracing path to mail.ru........Done [last 7.563, total 45.46]
Tracing path to elibrary.ru.........Done [last 7.674, total 55.519]
Tracing path to ya.ru.......Done [last 8.693, total 35.131]
Tracing path to google.com.......Done [last 9.737, total 94.801]
Tracing path to vkontakte.ru.........Done [last 19.859, total
99.232]
Рис. 12. Графическая карта трассировки к хостам, полученная с помощью tracemap

44
MTR
Рассмотренные выше средства построения путей прохождения
IP-пакетов хорошо справляются со своей задачей, но их функционала не достаточно для диагностики, непрерывного мониторинга качества канала до узла, отслеживания изменения маршрутов и т.д. Подобные задачи можно решить, используя утилиту диагностики сети mtr
(аналог под windows - WinMTR).
Программа mtr работает по принципу трассировок команды traceroute (tracert), однако позволяет выполнять диагностику сети в более удобном и наглядном режиме (рис. 13).
Рис. 13. Сurses интерфейс mtr
Синтаксис: mtr [-hvrctglspni46] [--help] [--version] [--report] [--report- cycles COUNT] [--curses] [--split] [--raw] [--no-dns] [--gtk] [-- address IP.ADD.RE.SS] [--interval SECONDS] [--psize BYTES | -s
BYTES] HOSTNAME [PACKETSIZE]
Основные опции:
-h (--help): Вывод справочной информации;
-v (--version): Версия программы;
-r (--report): Помещает mtr в режим отчета. В этом режиме, mtr обработает количество циклов, определенных опцией -c, затем отобразит статистику и завершит работу. Этот режим полезен для генерации статистики о качестве сети;

45
-с COUNT: Установить количество циклов, после которых mtr завершит работу;
-s BYTES: Размер посылаемых пакетов;
-t: Указывает mtr использовать curses based terminal interface (если доступно);
-n: Не использовать DNS.
Пример использования утилиты mtr: linux:
$ mtr mail.ru –c 10 –n linux:
$ mtr mail.ru –c 100 –r
Программа имеет графический (X) интерфейс (рис. 14): linux:
$ mtr mail.ru –gtk –n

Рис. 14. Графический (X) интерфейс mtr


46
3. Практическое задание

1. Постройте карту маршрутов IP-пакетов от одного из АРМ локальной сети до наиболее востребованных (в организации) ресурсов Интернет (не менее десяти ресурсов).
2. Средствами программы mtr исследуйте качество канала от компьютеров лаборатории (домашнего компьютера) до популярных ресурсов Интернет (ресурсов сети университета).
3. Отследите изменения маршрутов за период времени 60-180 минут
(если таковые будут происходить). Выпишите все альтернативные маршруты.

Контрольные вопросы к разделу II
1.
Методы определения маршрутов передачи данных в сетях
TCP/IP.
2.
Утилиты определения маршрутов передачи данных в сетях
TCP/IP.
3.
Метод определения маршрута Record Route. Достоинства и недостатки метода.
4.
Утилита traceroute. Принцип определения маршрутов.
5.
Использование протоколов ICMP и TCP при определении маршрутов.
6.
Утилита tcptraceroute.
7.
Сканер nmap как инструмент исследования топологии.
8.
Утилита tracemap. Визуализация маршрутов.
9.
Утилита диагностики сети mtr. Синтаксис и основные опции mrt.

47
РАЗДЕЛ III – ИДЕНТИФИКАЦИЯ СТАТУСА ПОРТА (PORT
DETECTION)
Для идентификации (адресации) приложений на узлах сети существует система TCP (UDP) портов. Сканирование TCP (UDP) портов позволяет инвентаризировать службы сети, сделать предположения о роли узла в КСПД и установленных на нем приложениях и т.д.
Существуют несколько методов сканирования портов узла сети, в практических работах данного раздела будут рассмотрены методы:
TCP-connect scanning, SYN scanning, Inverse TCP flag scanning, UDP
Port Scanning.
В практических работах данного раздела будут использоваться следующие программные продукты: nmap, hping3, netcat.
Практическая работа №9
ИДЕНТИФИКАЦИЯ СТАТУСА TCP-ПОРТОВ
(TCP-CONNECT. SYN-SCAN)

1. Цель работы

Изучить основы идентификации TCP-портов узла сети.
Получить навык использования следующих методов идентификации статуса TCP-порта: TCP-connect Scanning, Half-open SYN flag scanning. Усвоить приемы решения задачи идентификации статуса
TCP-порта с помощью утилиты nmap, hping3.

2. Теоретические сведения. Методические рекомендации

При сканировании TCP-портов (TCP Port Scanning) основным является метод сканирования с установлением соединения (TCP
Connect Scanning). Метод сканирования с установлением соединения предполагает установление полноценного TCP-соединения со сканируемым узлом сети (с исследуемым TCP-портом) с

48 последующим разрывом этого соединения (разрыв производится стандартным образом).
На рис. 15 представлена диаграмма изменения состояний соединения TCP (TCP Connection State Diagram) описанная в документе RFC 793.
Рис. 15. Диаграмма изменения состояний соединения TCP (TCP Connection State
Diagram)
Функция connect ()
Как правило, сканирование с установлением соединения реализует функция TCP connect(), данная функция присутствует в большинстве современных ОС. Функция connect() позволяет соединиться с любым TCP-портом узла сети. Если TCP-порт,

49 указанный в качестве параметра функции, прослушивается узлом (т.е.
TCP-порт открыт для соединения), то результатом выполнения функции будет установление соединения с узлом по указанному TCP- порту. В противном случае, если соединение не установлено, то TCP-порт с указанным номером является закрытым.
Преимущества метода сканирования функцией connect ():
Метод сканирования TCP-портов функцией connect() может применять непривилегированный пользователь (не обладающий правами root);
Высокая скорость исследования. Возможность «параллельного просмотра» с использованием неблокированного соединения
(non-blocked socket), определение состояния практически всех портов узла сети одновременно.
Основным недостатком метода сканирования TCP-портов функцией connect() является простота обнаружения и фильтрации такого рода сканирования.

Режим сканирования TCP-connect scan утилиты nmap
Режим TCP сканирования с использованием функции connect() сканера nmap устанавливается опцией –sT. Пример применения режима TCP сканирования сканером nmap: linux:
$ nmap -sT mail.ru
Starting Nmap 5.21 ( http://nmap.org ) at 2011-09-01 11:46 MSD
Nmap scan report for mail.ru (94.100.191.202)
Host is up (0.0081s latency).
Hostname mail.ru resolves to 4 IPs. Only scanned 94.100.191.202
Not shown: 986 filtered ports
PORT STATE SERVICE
25/tcp closed smtp
53/tcp closed domain
80/tcp open http
88/tcp closed kerberos-sec
110/tcp closed pop3 143/tcp closed imap
179/tcp closed bgp
443/tcp closed https
587/tcp closed submission
993/tcp closed imaps
Nmap done: 1 IP address (1 host up) scanned in 4.69 seconds

50
Сканер nmap имеет опции для определения портов для сканирования (по умолчанию nmap сканирует все порты до 1024 включительно), а также порядка сканирования (произвольного или последовательного):
С помощью опции -p <диапазон портов> можно определить перечень портов для сканирования. Указание отдельных номеров портов допустимо, как и задание диапазонов портов разделенных дефисом (например, 1-1023);
Опция -F (быстрое (ограниченные порты) сканирование)
Указывает на необходимость сканирования только портов, заданных в nmap-services. Этот режим работает быстрее;
По умолчанию nmap использует произвольный порядок сканирования портов. Обычно эта случайность нужна, но можно использовать прямой порядок сканирования, задав опцию –r (не использовать случайный порядок портов).
Пример определения диапазона портов для сканирования nmap: linux:
$ nmap -sT mail.ru -p 80
Starting Nmap 5.21 ( http://nmap.org ) at 2011-09-01 12:03 MSD
Nmap scan report for mail.ru (94.100.191.203)
Host is up (0.0078s latency).
Hostname mail.ru resolves to 4 IPs. Only scanned 94.100.191.203
PORT STATE SERVICE
80/tcp open http
Nmap done: 1 IP address (1 host up) scanned in 0.27 seconds
Пример использования режима быстрого сканирования nmap: linux:
$ nmap -sT -F mail.ru
Starting Nmap 5.21 ( http://nmap.org ) at 2011-09-01 12:20 MSD
Nmap scan report for mail.ru (94.100.191.202)
Host is up (0.0078s latency).
Hostname mail.ru resolves to 4 IPs. Only scanned 94.100.191.202
Not shown: 90 filtered ports
PORT STATE SERVICE
25/tcp closed smtp
53/tcp closed domain
80/tcp open http
88/tcp closed kerberos-sec
110/tcp closed pop3 143/tcp closed imap
179/tcp closed bgp

51 443/tcp closed https
587/tcp closed submission
993/tcp closed imaps
Nmap done: 1 IP address (1 host up) scanned in 2.03 seconds
Сканирование TCP-портов флагом SYN
Метод SYN-сканирование известен как сканирование с установлением полуоткрытого соединения (Half-open SYN flag scanning), поскольку установление полного соединения с TCP-портом сканируемого узла сети не производится. Метод SYN-сканирования является одним из наиболее популярных. Сканирование в режиме полуоткрытого соединения требует возможности формировать одиночные TCP-сегменты в обход стандартного модуля TCP
(необходимы права root).
При SYN-сканировании на порт сканируемого узла сети направляется SYN-сегмент. Получение ответного сегмента с флагами
SYN|ACK означает, что порт открыт; получение сегмента с флагом
RST означает, что порт закрыт. Получив SYN|ACK, сканер отправляет на обнаруженный порт сегмент с флагом RST, ликвидируя попытку соединения.

Режим SYN-сканирования утилиты nmap
Режим SYN-сканирования сканера nmap устанавливается опцией –sS (scan SYN). Пример применения режима SYN- сканирования: linux:
$ sudo nmap -sS mail.ru
[sudo] password for linux:
Starting Nmap 5.21 ( http://nmap.org ) at 2011-09-01 17:13 MSD
Nmap scan report for mail.ru (94.100.191.201)
Host is up (0.0089s latency).
Hostname mail.ru resolves to 4 IPs. Only scanned 94.100.191.201
Not shown: 986 filtered ports
PORT STATE SERVICE
25/tcp closed smtp
53/tcp closed domain
80/tcp open http
88/tcp closed kerberos-sec
110/tcp closed pop3 143/tcp closed imap

52 179/tcp closed bgp
443/tcp closed https
587/tcp closed submission
993/tcp closed imaps
Nmap done: 1 IP address (1 host up) scanned in 4.29 seconds
Для ускорения процесса опроса портов при сканировании больших сетей совместно с опцией -sS рекомендуется использовать опцию -PS <порт>, позволяющую опросить какой-либо порт на всех активных объектах сканируемой вами сети намного быстрее, чем при использовании одной опции -p: linux:
$ sudo nmap -sS -n -p 80 -PS mail.ru
Starting Nmap 5.21 ( http://nmap.org ) at 2011-09-01 17:18 MSD
Nmap scan report for mail.ru (94.100.191.204)
Host is up (0.0082s latency).
Hostname mail.ru resolves to 4 IPs. Only scanned 94.100.191.204
PORT STATE SERVICE
80/tcp open http
Nmap done: 1 IP address (1 host up) scanned in 0.16 seconds

3. Практическое задание

1. Необходимо обнаружить все открытые порты TCP (22, 23, 80) сети лаборатории (компьютерного класса, экспериментальной установки), с использованием функции connect().
2. Повторите исследование, применяя метод Half-open SYN flag scanning.
3. Сравните время сканирования в первом и втором случае.
4. Повторите исследования с помощью утилиты hping3. Сравните результаты.

53
Практическая работа №10
МЕТОДЫ СКРЫТОГО СКАНИРОВАНИЯ
(STEALTH TCP SCANNING METHODS)

1. Цель работы

Продолжить знакомство с основными методами идентификации
TCP-портов. Научиться применять на практике утилиты nmap, hping3 для решения задачи идентификации статуса TCP-портов методами
Stealth TCP scanning.

2. Теоретические сведения. Методические рекомендации

Изначально определение скрытое сканирование (Stealth TCP scanning methods) использовалось для методов сканирования, которые позволяли обходить сетевые системы обнаружения атак (ССОА) и систему протоколирования ОС. Современные ССОА способны обнаруживать Stealth TCP-сканирование. В настоящее время под
Stealth TCP scanning methods понимают множество методов сканирования TCP-пакетами с нестандартным сочетанием флагов
(Control Bits - 6 bits). Выделяют три группы методов скрытого сканирования:
Инвертированное сканирование (Inverse TCP flag scanning);
Сканирование пакетом с флагом ACK (ACK flag probe scanning);
Сканирование фрагментированными
TCP-пакетами
(TCP fragmentation scanning).
Методы инвертированного сканирования
Методы инвертированного сканирования основаны на идентификации закрытых
TCP-портов.
Рассмотрим виды инвертированного сканирования (Inverse TCP flag scanning):
SYN|ACK-сканирование (ТСР SYN|ACK scanning);
FIN-сканирование (ТСР FIN scanning);
XMAS-сканирование (ТСР XMAS scanning);

54
NULL-сканирование (ТСР NULL scanning).
При Inverse TCP flag сканировании используют различные сочетания флагов заголовка отправляемого TCP-пакета. При обращении Inverse TCP пакетов к закрытым TCP-портам, исследуемый узел должен ответить RST-пакетом, все обращения таких пакетов к открытым TCP-портам должны игнорироваться (RFC
793).
Ключевой особенностью Inverse TCP flag scanning является их способность незаметно обойти некоторые не учитывающие состояние
(non-stateful)
МЭ.
Недостатком методов инвертированного сканирования является большая вероятность ошибки, т.к. многие ОС игнорируют стандарты. Некоторые системы отвечают пакетом RST, при сканировании открытых TCP-портов, что противоречит RFC 793.
Методы Inverse TCP flag scanning в настоящее время нашли свое применение при идентификации ОС (Remote OS Fingerprinting).

Сканирование TCP SYN|ACK
Метод SYN|ACK scanning считается более скрытым, чем метод
SYN-сканирования.
На исследуемый
TCP-порт узла сети отправляется TCP-пакет с установленными флагами SYN и ACK. В случае закрытого исследуемого TCP-порта ситуация будет следующая:
Сканирующий узел (Client) -> TCP flags=SYN+ACK
TCP flags=RST <- Сканируемый узел (Server)
В ответ на пришедший TCP-пакет с установленными флагами
SYN и ACK сервер отвергнет соединение, ответив TCP-пакетом с установленным флагом сброса соединения - RST. В случае, когда исследуемый TCP-порт открыт, ситуация может быть аналогична предыдущей или будет следующая:
Сканирующий узел (Client) -> TCP flags=SYN+ACK
(no response) <- Сканируемый узел (Server)
Пришедший на открытый
TCP-порт
TCP-пакет с установленными флагами
SYN и
ACK сервер может проигнорировать.

55
Метод ТСР-сканирования пакетами с установленными флагами
SYN и ACK малоинформативен. Если в ответ на отправленный
SYN|ACK-пакет приходит RST-пакет, то считают, что фильтрация порта не осуществляется (реакция открытого TCP-порта и закрытого
TCP-порта одинакова). Если ответа на отправленный SYN|ACK-пакет не последовало (или пришло ICMP-сообщение о недоступности порта), то TCP-порт считается фильтруемым. Метод SYN|ACK scanning невозможно использовать для определения статуса TCP- порта, однако данный метод позволяет отличить МЭ пакетный фильтр от МЭ экспертного уровня (StateFul Inspection).
Сканирование TCP FIN (FIN scanning)
При FIN scanning на исследуемый TCP-порт узла сети отправляется TCP-пакет с установленным флагом FIN. В соответствии с RFC 793 тестируемая система должна ответить TCP- пакетом с установленным флагом RST|ACK для всех закрытых TCP- портов, открытые порты должны игнорировать TCP(FIN)-пакеты.
Сценарий FIN scanning в случае, когда исследуемый TCP-порт закрыт:
Сканирующий узел (Client) -> TCP flags=FIN
TCP flags=RST+ACK <- Сканируемый узел (Server)
Сценарий FIN scanning в случае, когда исследуемый TCP-порт открыт:
Сканирующий узел (Client) -> TCP flags=FIN
(no response) <- Сканируемый узел (Server)
ОС Windows, BSDI, CISCO, HP/UX, MVS, IRIX и др. отвечают одинаково на TCP FIN пакеты во всех случаях, нарушая RFC 793.
Сканирование TCP Xmas
Метод TCP сканирования Xmas (рождественская елка) предполагает отправку TCP-пакета с установленными флагами FIN,
URG, PSH. По RFC 793 тестируемая система должна ответить RST- пакетом для всех закрытых TCP-портов. Реакция различных ОС на
TCP Xmas сканирование аналогична FIN scanning.

56
Нулевое сканирование (TCP Null scanning)
Метод TCP Null scanning основан на сбрасывании всех флагов отправляемого TCP-пакета. По RFC 793 тестируемая система должна ответить RST-пакетом для всех закрытых TCP-портов. Реакция различных ОС на TCP Null сканирование аналогична предыдущим.
Реализация Stealth scan средствами сканера nmap
Методы Stealth TCP scanning можно реализовать средствами сканера nmap, используя опции: -sF; -sN; -sX (TCP FIN, NULL и Xmas соответственно).
-sF: FIN сканирование (устанавливается только бит TCP FIN): linux:
$ sudo nmap -sF yandex.ru –p 11,22,80 -PN
-sN: Null сканирование (флагов в TCP-заголовке 0): linux:
$ sudo nmap -sN yandex.ru –p 11,22,80 -PN
-sX: Xmas сканирование (устанавливаются флаги FIN, PSH и
URG): linux:
$ sudo nmap -sX yandex.ru –p 11,22,80 -PN
3. Практическое задание
1. Исследуйте ответ различных ОС на сканирование методами Stealth scanning. Занесите в таблицу (табл. 6) результаты для различных методов сканирования и состояний TCP-порта (порт открыт, порт закрыт, порт открыт и фильтруется, порт закрыт и фильтруется).
Таблица 6
Адрес узла (IP, mac) ОС
SYN|ACK
FIN
NULL
Xmas
2.
Найдите в сети лаборатории (компьютерного класса, экспериментальной установки) узлы, защищаемые МЭ.

57
Практическая работа №11
МЕТОДЫ СКРЫТОГО СКАНИРОВАНИЯ
(ACK PROBE SCANNING, TCP FRAGMENTATION SCANNING)

1. Цель работы

Продолжить знакомство с основными методами идентификации
TCP-портов. Научиться применять утилиты nmap, hping3 для решения задачи идентификации статуса TCP-портов методами ACK flag probe scanning, TCP Fragmenting.

2. Теоретические сведения. Методические рекомендации

ACK flag probe scanning
Этот метод сканирования не способен идентифицировать открытый порт (или даже открытый|фильтруемый). ACK flag probe scanning используется для выявления правил МЭ, определения фильтруемых TCP-портов, определения технологии МЭ (stateful, non- stateful).
Пакет запроса при ACK flag probe scanning содержит установленным только ACK-флаг. При сканировании систем, не фильтруемых МЭ, открытые и закрытые порты будут возвращать
RST-пакет, т.е. они достижимы для ACK-пакетов (открыт порт или закрыт, определить невозможно). Порты, которые не отвечают при
ACK flag probe scanning или отвечают ICMP-сообщением об ошибке
Destination Unreachable (тип 3 - получатель недостижим, код 1, 2, 3, 9,
10 или 13), помечают как фильтруемые.
Сценарий ACK flag probe scanning в случае, когда исследуемый
TCP-порт не фильтруется:
Сканирующий узел (Client) -> TCP flags=ACK
TCP flags=RST <- Сканируемый узел (Server)
Сценарий ACK flag probe scanning в случае, когда исследуемый
TCP-порт фильтруется МЭ:

58
Сканирующий узел (Client) -> TCP flags=ACK
(no response/ICMP Type=3) <- Сканируемый узел (Server)
Для использования метода ACK flag probe scanning средствами сканера nmap необходимо указать опцию -sA (сканирование TCP
ACK): linux:
$ sudo nmap -sA yandex.ru –p 11,22,80 -PN
Starting Nmap 5.21 ( http://nmap.org ) at 2011-09-22 23:09 MSD
Nmap scan report for yandex.ru (yandex.ru)
Host is up (0.000012s latency).
All 3 scanned ports on yandex.ru (yandex.ru) are unfiltered
Nmap done: 1 IP address (1 host up) scanned in 0.13 seconds

Analysis of the WINDOW field of received packets
Метод сканирования размера окна (WINDOW field of received packets) основан на анализе поля Initial Window TCP-пакета
(полученного в ответ на RST пакет). В некоторых ОС открытые TCP- порты используют положительное значение поля Initial Window (даже в RST пакетах), а закрытые - нулевое. Поэтому при Window сканировании TCP-порты идентифицируют как открытые, если значение поля TCP Window положительно или закрытые, если значение равно нулю.
Для использования метода WINDOW field of received packets средствами сканера nmap необходимо указать опцию -sW
(сканирование TCP Window).


59
3. Практическое задание

1. Исследуйте ответ различных ОС на сканирование методами ACK flag probe scanning, Window field of received packets. Результаты для различных методов сканирования и состояний TCP-порта (порт открыт, порт закрыт, порт открыт и фильтруется, порт закрыт и фильтруется) занесите в таблицу (табл. 7).
2. Необходимо обнаружить в сети лаборатории (компьютерного класса, экспериментальной установки) узлы, защищаемые МЭ.
Таблица 7
Адрес узла
(IP, mac)
ОС
ACK flag probe scanning
Window field of received packets

60
Практическая работа №12
МЕТОДЫ СКАНИРОВАНИЯ UDP-ПОРТОВ (UDP PORT
SCANNING). СКАНИРОВАНИЕ IP ПРОТОКОЛА

1. Цель работы

Освоить основные методы идентификации UDP-портов. Решить задачу идентификации статуса UDP-портов, применяя утилиты nmap, hping3.

2. Теоретические сведения. Методические рекомендации

Наиболее часто используемым транспортным протоколом для сервисов корпоративной сети является TCP. Служб, использующих в качестве транспорта
UDP, значительно меньше.
Самые распространенные из них: служба доменных имен DNS (Domain Name
System, RFC 1034, RFC 1035; UDP-порт 53), служба управления сетью на базе протокола SNMP (Simple Network Management Protocol, RFC
1155, RFC 1212, RFC 1213, RFC 1157; UDP-порты 161/162), служба динамического назначения IP адресов DHCP (Dynamic Host
Configuration Protocol, RFC 2131; UDP-порты 67/68), служба на базе простого протокола передачи файлов TFTP (Trivial File Transfer
Protocol, RFC 1350; UDP-порт 69). Инвентаризация UDP-портов -
UDP Port Scanning, несмотря на простоту протокола UDP, задача более сложная (в сравнении с TCP). Это связано с концепцией протокола UDP как транспортного протокола с негарантированной доставкой данных, выражающейся как в потере отдельных пакетов данных, так и в их дублировании.
Метод UDP Port Scanning заключается в следующем: на порт исследуемого узла сети отправляется пакет UDP, если узел отвечает сообщением ICMP Port Unreachable, можно делать вывод, что UDP- порт закрыт. В случае отсутствия ответа удаленного узла однозначного вывода сделать нельзя, ситуация может быть следующая: UDP-порт открыт, средствами МЭ фильтруется трафик

61 по UDP или ICMP протоколу, пакет потерялся (особенности протокола UDP).
Для решения проблемы потери пакетов рекомендуется увеличивать число отправляемых пакетов и время ожидания ответа при сканировании UDP Port Scanning. Для выявления фильтрации трафика по UDP или ICMP протоколу проводят предварительное сканирование узла сети. Некоторые диапазоны UDP-портов
(например, 230-240 или 45200-45270) используются приложениями крайне редко, следовательно, сообщение ICMP Port Unreachable от узла должно быть получено с большой вероятностью. Отсутствие сообщений ICMP Port Unreachable может свидетельствовать о фильтрации трафика по протоколу UDP или ICMP средствами МЭ.
Еще одной особенностью UDP Port Scanning является медленная скорость сканирования. ОС узла ограничивает лимит сообщений о недостижимости порта. Например, ядро Linux ограничивает количество ICMP Port Unreachable до 80 сообщений за 4 секунды, а если это ограничение было превышено, то с простоем 0,25 секунды. К способам увеличения скорости UDP-сканирования относятся: параллельное сканирование нескольких хостов, сканирование в первую очередь наиболее популярных портов.
UDP Port Scanning средствами сканера nmap
Для использования метода UDP Port Scanning сканером nmap необходимо установить соответствующий режим опцией –sU. UDP- сканирование nmap осуществляет путем отправки пустого UDP- заголовка на каждый целевой порт удаленного узла сети. Если в ответ приходит сообщения ICMP Port Unreachable (Type 3, Code 3), nmap идентифицирует UDP-порт как закрытый. При получении ICMP- сообщения с другим кодом (Type 3, Code 1, 2, 9, 10 или 13) nmap идентифицирует UDP-порт как фильтруемый. Если после отправки нескольких пакетов, ответа получено не было, nmap идентифицирует
UDP-порт как открыт|фильтруется, т.е. порт может быть открыт, или происходит фильтрация трафика МЭ.
Пример реализации UDP-сканирования сканером nmap:

62 linux:
$ sudo nmap -sU mail.ru --packet-trace
[sudo] password for linux:
Starting Nmap 5.21 ( http://nmap.org ) at 2011-09-14 23:13 MSD
Nmap scan report for mail.ru (94.100.191.201)
Host is up (0.037s latency).
Hostname mail.ru resolves to 4 IPs. Only scanned 94.100.191.201
Not shown: 999 open|filtered ports
PORT STATE SERVICE
123/udp open ntp
Nmap done: 1 IP address (1 host up) scanned in 65.03 seconds
UDP Port Scanning средствами утилит hping3, netcat
Генератор пакетов hping3 также поддерживает режимы UDP- сканирования. Для решения проблемы потери пакетов увеличим число отправляемых пакетов до десяти. Пример реализации UDP- сканирования утилитой hping3: linux:
$ sudo hping3 -2 –p 53 mail.ru –с 10
HPING mail.ru (eth0 94.100.191.202): udp mode set, 28 headers + 0 data bytes len=46 ip=10.1.11.35 ttl=124 DF id=8996 seq=6 rtt=0.5 ms
--- 10.1.11.35 hping statistic ---
10 packets transmitted, 1 packets received, 90% packet loss round-trip min/avg/max = 0.5/0.5/0.5 ms
Опция hping3 -2 (--udp) задает режим UDP Port Scanning, -p (-- destport) задает UDP-порт получателя, -c
(--count) увеличивает число отправляемых пакетов.
Еще одной утилитой, часто применяемой для идентификации статуса портов, является netcat (или nc). Утилита netcat позволяет применять основные методы TCP- и UDP-сканирования. Параметр -z применяется для включения режима нулевого ввода-вывода (zero mode I/O). По умолчанию утилита netcat выполняет TCP- сканирование. Для указания режима UDP Port Scanning необходимо использовать параметр -u.
Синтаксис утилиты netcat: nc [опции] host port
Некоторые опции netcat:
-h: Вывод справки;
-v: Вывод дополнительной информации (verbose);

63
-o [выходной файл]: Выводит дампы данных;
-i [число]: Пауза между отправляемыми данными (в секундах);
-z: Не отправлять данные (сканирование портов);
-u: Использовать UDP (по умолчанию используется TCP);
-l: Пассивный режим (прослушивание порта);
-p [число]: Локальный номер порта (для -l);
-n: Отключить разрешение DNS-имен и поиск номеров портов по
/etc/services;
-w [число]: Интервал ожидания (в секундах).
Пример реализации UDP-сканирования утилитой netcat: linux:
$ sudo nc -u -v -z -w2 mail.ru 1-140
[mail.ru] 53 (domain) open
3. Практическое задание

1. Проведите сканирование методом UDP Port Scanning некоторого количества узлов сети (уточнить у преподавателя).
2.
Сравните время сканирования при различных режимах сканирования, различными инструментами (nmap, hping3, netcat).
Результаты представьте в форме таблицы.
3. Исследуйте ответную реакцию на отправляемые пакеты при различных состояниях UDP-порта узла (порт открыт, порт закрыт, порт открыт и фильтруется, порт закрыт и фильтруется). Эксперимент повторите для различных ОС. Результаты оформите в виде таблицы.

64
Контрольные вопросы к разделу III
1.
Методы идентификации TCP портов узла КСПД.
2.
Состояния TCP соединения.
3.
Метод TCP Connect Scanning.
4.
Режим сканирования TCP Connect сканера nmap.
5.
Метод Half-open SYN flag scanning.
6.
Режим сканирования Half-open SYN flag сканера nmap.
7.
Достоинства и недостатки методов Stealth TCP scanning.
8.
Методы Inverse TCP flag scanning.
9.
ACK flag probe scanning.
10.
TCP fragmentation scanning.
11.
Режимы Stealth TCP scanning сканера nmap.
12.
Методы идентификации UDP-портов узла КСПД.
13.
Реализация UDP Port Scanning сканером nmap. Опции и режимы сканера.
14.
Реализация UDP Port Scanning средствами утилит hping3 и netcat. Опции и режимы.
1   2   3   4


База данных защищена авторским правом ©nethash.ru 2019
обратиться к администрации

войти | регистрация
    Главная страница


загрузить материал