Форум Pentestnoob.ru

Обучение тестированию на проникновение
Текущее время: 22 апр 2019, 15:02

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ 1 сообщение ] 
Автор Сообщение
 Заголовок сообщения: Nmap
СообщениеДобавлено: 22 май 2015, 13:06 
Не в сети

Зарегистрирован: 12 май 2015, 14:54
Сообщения: 1
Доброго времени суток!
Неплохой обзор по Nmap (куда же без него в пентесте).

Nmap: обзор и базовые понятия
Оригинал: Learning Nmap: The Basics.
Автор: Rajesh Deodhar
Дата публикации: 1 Августа 2010 г.
Перевод: А.Панин
Дата перевода: 27 сентября 2012 г.

Использование Nmap является отправной точкой при анализе любой сети. Это потрясающий инструмент - компактный и мощный. В данной статье рассматривается ряд функций и параметров программы Nmap.

Страница руководства Nmap описывает данную программу как инструмент исследования и аудита безопасности сети, а также сканер портов. Nmap (Network Mapper) - это универсальная программа с открытым исходным кодом, без которой просто не могут обойтись системные администраторы. Некоторые возможности программы:
- Она быстрая!
- Использует "сырые" IP-пакеты наряду с различными инновационными методами исследования.
- Может определять название и версию операционной системы (в случае невозможности определения, пользователю предлагается выслать данные разработчикам для включения в новые версии Nmap).
- Предлагает различные варианты исследования сети.

Предупреждение: во время использования Nmap не забывайте о следующем!
По строгим правилам индийского законодательства в сфере информационных технологий (Indian Cyber Law 2000, включая последние поправки), даже сканирование портов некоторых серверов может повлечь ответственность в виде тюремного заключения. Не исследуйте системы и сети, к которым вы не имеете отношения без письменного согласия владельца.
Вы можете исследовать ресурс с адресом scanme.nmap.org с целью тестирования программы. При этом разрешено использование исключительно программы Nmap и запрещено тестирование эксплоитов и проведение атак отказа в обслуживании (DDOS - атак). Не забывайте следовать правилам, изложенным на странице руководства Nmap. В случае нарушения правил использования данного сервиса, от владельцев сайта последует обращение в государственные структуры.
Используйте Nmap очень аккуратно, и только для исследования и аудита безопасности ваших сетей. Как будет описано в данной статье, это очень мощный инструмент, который может нарушить работу или нанести ущерб исследуемой системе или сети.
Полностью разберитесь в том, что вы будете делать перед тем, как приступить к работе, даже при исследовании по сценарию. Неосведомленность не освобождает от ответственности.
Также помните, что если у вас есть сайт на сервере хостинг-провайдера или на арендованном вами сервере, вам принадлежит только контент сайта, но не сервер и сеть. В идеальном случае вам необходимо получить разрешение от хостинг-провайдера или владельца сервера даже для тестирования собственного сайта.


Стандартный формат командной строки Nmap выглядит следующим образом:
nmap [тип(ы) исследования] [параметры] {описание целей исследования}

У Nmap обширный список параметров командной строки, разделяемый на описание целей исследования, список узлов, параметры портов, идентификацию служб, технику исследования, сценарии исследования и параметры вывода данных. Некоторые параметры работают только при запуске Nmap пользователем root (суперпользователем). Рассмотрим ряд стандартных команд Nmap:

nmap -sL 192.168.10.0/24 - выводит список обнаруженных узлов (IP адреса всех активных узлов в подсети с адресами от 192.168.10.1 до 192.168.10.254).
nmap -p80,443 192.168.10.10-20 - исследует диапазон IP адресов в поисках открытых портов 80 и 443.
nmap -p T:80,8080,6588,800 172.16.0.1/22 - исследует все узлы с адресами от 172.16.0.1 до 172.16.3.254 в поисках открытых TCP портов 80,8080,6588 и 800 (стандартные порты, по которым принимают соединения различные прокси - сервера).
nmap -sP 192.168.10.10,20 - проводит пинг-исследование двух узлов (самый быстрый тип исследования).
nmap -PN 192.168.10.0/29 - исследует все узлы в диапазоне адресов от 192.168.10.1 до 192.168.10.6. Иногда межсетевые экраны на серверах не пропускают пинг-запросы, что усложняет процесс. В этих случаях полезен параметр -PN, позволяющий исследовать узлы, считая, что они активны.
nmap -A -F 192.168.10.1 - определяет операционную систему и службы, выполняющиеся на устройстве.

Эти стандартные команды полезны для исследования любой сети и преследуют такие цели, как: проверка на наличие открытых портов; определение нежелательных служб (таких как SSH, VNC, FTP и других), выполняющихся на важных узлах; получение списка активных IP-адресов в сети, и.т.д.

Тем не менее, эти простые и понятные операции могут не удовлетворять всем требованиям. Иногда, например, специфические типы исследования требуются для тестирования систем определения и предотвращения несанкционированного доступа. Также может стоять задача затруднить идентификацию сканера целевой системой.

Хотя Nmap и предоставляет ряд способов сокрытия вашего IP-адреса (вы также можете скрыть свой MAC адрес при помощи спуфинга), нужно быть осторожным при использовании данных команд. Они требуют глубоких знаний протоколов TCP/IP и могут нарушить работу или нанести ущерб исследуемой системе или сети в случае некорректного использования. Давайте рассмотрим несколько техник для затруднения идентификации сканера целевой системой.
Техника "Idlescan"
Код:
nmap -v -sI 192.168.10.100 192.168.10.105


В данном случае исследуется система с IP адресом 192.168.10.105 с имитацией того, что источником пакетов является другой узел; в логах исследуемой системы будет зафиксирован адрес 192.168.10.100. Данный узел называется зомби-узлом (zombie host).

В контексте сетей, зомби-узлами называются узлы, контролируемые другими узлами в сети. Не все узлы могут быть использованы как зомби, так как для этого необходимо выполнить ряд условий. (Найти зомби-узел в сети можно при помощи таких пакетов, как hping.) Параметр -v позволяет выводить более подробные сообщения в процессе работы программы.
Техника узлов-ловушек "Decoy host"
Код:
nmap -sS -P0 -D 192.168.10.201,192.168.10.202,192.168.10.203 192.168.10.50


Данная команда особенно полезна во время тестирования IDS/IPS (системы обнаружения и предотвращения вторжений). При помощи параметра -sS производится SYN-исследование устройства. В процессе происходит подмена содержимого пакетов для того, чтобы устройство считало источниками пакетов узлы, заданные параметром -D. Параметры -s1 и -D не могут быть использованы одновременно по понятным причинам.

Теперь небольшое предупреждение: будьте осторожны, чтобы не допустить непреднамеренной атаки отказа в обслуживании при использовании параметра -D. Для понимания того, как это может произойти, необходимо знать принцип действия трехэтапного рукопожатия TCP (TCP handshake). TCP - протокол, обеспечивающий постоянное соединение с гарантированной доставкой пакетов, использует трехэтапное рукопожатие:
- Клиент инициирует соединение, отправляя серверу сегмент SYN
- Сервер отвечает сегментами SYN-ACK
- Клиент отвечает сегментом ACK, после чего соединение считается установленным и может производиться обмен данными

Если параметр -D используется и присутствует работающее устройство по адресу узла-ловушки, то сегменты SYN-ACK достигают устройства с IP-адресом узла-ловушки, а не устройства с запущенной программой Nmap. Поскольку устройство с адресом узла-ловушки не инициировало соединение, оно закрывает его, отправляя сегмент RST. Здесь нет никаких проблем.

Тем не менее, проблема появляется, если устройство с адресом узла-ловушки не активно в сети - сегмент RST не отправляется исследуемому устройству, котораое держит соединение открытым. Так как Nmap продолжает генерировать запросы с адресом узла-ловушки, как источника пакетов, количество открытых соединений в стадии "соединение инициировано" растет. Это увеличивает потребление ресурсов исследуемым устройством и может привести к отказу в обслуживании, в том числе и соединений с другими узлами.
Другие параметры командной строки

Разработчики Nmap продумали ряд возможностей программы во время ее проектирования. Одним из примеров служит параметр -ttl. Чтобы понять, как его использовать, давайте снова подробно рассмотрим протокол IP. Заголовки пакетов содержат поле, называемое TTL (Time To Live - время жизни). Значение TTL устанавливается устройством, отправившим пакет. Каждое устройство, принимающее или передающее пакет по маршруту его назначения, уменьшает значение TTL на некоторую величину.

Если значение TTL уменьшается до нуля до того, как пакет достиг узла назначения, он отбрасывается, а ошибка ICMP отправляется источнику пакета. Данный механизм призван предотвратить затраты ресурсов сети на постоянную пересылку между узлами пакетов, которые не могут быть доставлены по адресу назначения.

Несмотря на то, что параметр TTL изначально задумывался как величина времени, на что указывает название, на самом деле, его значение уменьшается на один, а не на некое количество секунд при каждой пересылке пакета между узлами. Таким образом, значение поля TTL отражает максимальное количество передач пакета между узлами, при котором пакет не будет отброшен.

Стандартное значение TTL во многих операционных системах системах равно 128. Однако, параметр -ttl позволяет вам задать нужное значение TTL для пакетов Nmap, что является очень полезной особенностью. Это позволяет, к примеру, быть уверенным, что пакет не попадет из вашей локальной сети в Интернет. Здорово, не правда ли?

Некоторые другие важные параметры командной строки Nmap, требующие понимания протоколов TCP/IP:
- Фрагментация пакетов (параметры -f и -ff)
- Использование техники "FTP bounce" для исследования посредством FTP - серверов (-b)
- Изменяемое время задержки исследования (-scan_delay особенно полезно если на сервере используются системы IDS/IPS, блокирующие запросы Nmap)
- Временные политики (-T)
- Исследование по сценарию

Список активных узлов в сети
Стандартная последовательность действий при тестировании сети начинается с составления списка активных узлов. Список может использоваться как исходные данные для других программ, в которых не предусмотрено возможности поиска активных узлов, но требуется один или несколько IP-адресов. Короткая последовательность команд для этих целей:
Код:
nmap -sP -n -oG hostlist 192.168.10.0/24
cut -d " " -f2 hostlist > iplist


Первая команда выполняет пинг-исследование (-sP) и генерирует список активных узлов в заданной сети или диапазоне адресов. Этот список будет сохранен в файле hostlist в формате, совместимом с утилитой grep (-oG). Вторая команда читает данные из файла, делит каждую строку на несколько полей, используя пробел в качестве разделителя, и записывает содержимое второго поля (IP-адрес) в файл iplist, который и является списком активных IP-адресов в заданном диапазоне.

Nmap: основные типы сканирования устройств и сетей
Оригинал: Advanced NMap: Some Scan Types
Автор: Rajesh Deodhar
Дата публикации: 1 Ноября 2010
Перевод: А.Панин
Дата перевода: 28 сентября 2012 г.

Обзор и описание основных функций программы Nmap были приведены в предыдущей статье серии. В данной статье будут подробно описаны некоторые типы исследования различных устройств и сетей с помощью Nmap и приведены практические примеры их использования.

Перед рассмотрением типов исследования устройств и сетей, рассмотрим основные понятия, включая трехэтапное рукопожатие TCP.
TCP/IP представляет собой не отдельный протокол, а набор множества протоколов, некоторые из них представлены ниже:
1. Прикладной уровень: FTP, HTTP, SNMP, BOOTP, DHCP
2. Транспортный уровень: TCP, UDP, ICMP, IGMP
3. Сетевой уровень: ARP, IP, RARP
4. Канальный уровень: SLIP, PPP

UDP и TCP
UDP - протокол, не предусматривающий установление постоянного соединения и не гарантирующий доставку пакетов получателю. Это не значит, что протокол UDP не надежен; контроль доставки данных возлагается на высокоуровневое пользовательское приложение. У UDP есть свои области применения, такие, как трансляция аудио/видео потоков в условиях необходимости минимальных задержек.

TCP - протокол, предусматривающий установление постоянного соединения и гарантирующий доставку пакетов. Пакеты ICMP используются для оповещения об ошибках в случае возникновения. Трехэтапное рукопожатие TCP используется для установления и разрыва соединения, и эта идея является ключевой для понимания различных типов исследования устройств и сетей, предоставляемых программой Nmap. Этот процесс осуществляется следующим образом:

Клиент инициирует соединение отправкой сегмента SYN (Synchronize) со случайным числом в качестве идентификатора X.
Сервер отвечает отправкой сегментов SYN-ACK (Acknowledgment) с идентификаторами X+1 и случайным числом Y.
Клиент отправляет сегмент ACK с идентификатором Y+1, завершая рукопожатие. После этого клиент и сервер могут начать обмен данными.

После завершения обмена данными, клиент отправляет сегмент FIN (Finish) для завершения соединения.

Nmap эффективно использует рукопожатие TCP стандартным и нестандартным образом для различных типов исследования. Перед тем, как продолжить, давайте проясним два простых и важных аспекта работы Nmap:

По умолчанию Nmap сканирует 1000 стандартных портов для каждого протокола. Список этих портов может быть изменен, он находится в файле nmap-services, обычно расположенном в каталоге /etc/services. (Я никогда не пользовался этим; в подавляющем большинстве случаев стандартных портов вполне достаточно!)
Привилегии пользователя root необходимы при любом типе исследования, изменяющем стандартную процедуру трехэтапного рукопожатия TCP.

Теперь давайте попробуем разобраться в подробностях работы различных типов исследования устройств и сетей.
TCP SYN-исследование -sS

Этот тип исследования, используемый в Nmap по умолчанию, позволяет определять открытые TCP порты в заданном диапазоне. В начале процесса Nmap инициирует рукопожатие TCP с портом при помощи стандартного SYN-сегмента. Ответ, полученный от исследуемой системы, говорит о состоянии порта (см. таблицу).
Состояние порта Ответ клиента Заключение
Открыт Стандартный ответ с сегментами SYN-ACK Служба работает
Закрыт Стандартный ответ с сегментом RST Служба не работает
Фильтруется Нет ответа Порт защищен межсетевым экраном

Если устройство отвечает сегментами SYN-ACK, Nmap отправляет сегмент RST вместо ACK, сбрасывая соединение, вместо завершения рукопожатия для обмена данными. Если бы вместо RST отправлялся ACK, соединение оставалось бы открытым вплоть до истечения времени сессии, приводя устройство к ситуации, аналогичной атаке отказа в обслуживании.

Для проведения SYN-исследования в операционной системе Linux необходимы права пользователя root. SYN-исследование используется для установления состояния портов TCP для различных устройств в сети. Поскольку этот тип исследования работает на уровне протокола TCP, его можно использовать со всеми операционными системами и устройствами, для которых реализована поддержка протокола TCP, такими как контроллеры, PLC, сетевые принтеры, сетевые маршрутизаторы и мобильные телефоны.

Поскольку полноценного TCP-соединения не создается, данный вид исследования сложно идентифицировать. Тем не менее, при тщательном мониторинге состояния сети, можно обнаружить большое количество сегментов RST, ввиду того, что для каждого порта генерируется по одному сегменту. Пример командной строки для осуществления SYN-исследования, возвращающего список открытых TCP-портов:
Код:
nmap -sS 192.168.100.100


Пинг-исследование -sP
Этот тип исследования используется для поиска активных узлов в диапазоне адресов. В отличие от использования портов в SYN-исследовании, данный метод начинает свою работу с отправки эхо-запроса ICMP в диапазоне адресов. Активные устройства сети должны ответить при помощи эхо-ответа ICMP, подтвердив тем самым свой статус.

В случае использования межсетевого экрана с блокировкой ICMP, устройства не смогут ответить на эхо-запрос. Очевидным применением данного метода является поиск всех активных устройств в сети. Две приведенные ниже команды позволяют получить список активных IP-адресов в диапазоне 192.168.100.0/24:
Код:
nmap -sP -n -oG hostlist 192.168.100.0/24    ## запись в файл hostlist, совместимый с grep
cut -d " "-f2 hostlist > iplist    ##  iplist - список всех активных IP-адресов в заданном диапазоне


Пинг-исследование использует только один пакет для запроса и ожидает один пакет в ответ, что делает этот тип исследования самым быстрым среди всех типов исследования Nmap с наименьшей нагрузкой на сеть. Этот тип не совместим с другими типами.

UDP-исследование -sU
Этот тип исследования позволяет определить состояние UDP-портов в заданном диапазоне. В начале процесса Nmap отправляет UDP-пакет размером 0 байт на порт. Ответ, полученный от исследуемой системы, говорит о состоянии порта:
1. Порт открыт: в ответ приходит дейтаграмма.
2. Порт закрыт: в ответ приходит пакет ICMP с сообщением об ошибке.
3. Порт открыт или фильтруется: в ответ не приходит пакета ICMP с сообщением об ошибке. Nmap ждет в течение заданного периода времени, но не может определить, открыт ли порт, либо защищен межсетевым экраном.

UDP-исследование может эффективно использоваться для обнаружения вредоносного программного обеспечения (malware/spyware). Пример командной строки для осуществления UDP-исследования, возвращающий список открытых/закрытых/открытых/фильтруемых UDP-портов:
Код:
nmap -sU 192.168.100.100


Краткое сравнение SYN-, пинг- и UDP-исследования.
Тип Описание
SYN-исследование (-sS) - работает с TCP-портами - Не оставляет записи в журнале событий
- Требует привилегий пользователя root
- В ходе исследования, трафик RST-сегментов возрастает
- Позволяет получить информацию состоянии портов TCP
Пинг-исследование (-sP) - устанавливает активные узлы - Очень сложно отследить - необходимо всего два стандартных ICMP-пакета, часто встречающихся в сети.
- Не требует привилегий пользователя root
- Позволяет установить активные устройства в сети
UDP-исследование (-sU) - работает с UDP-портами - Использует пакеты UDP размером 0 байт, что мало загружает сеть.
- Требует привилегий пользователя root
- Многие операционные системы накладывают ограничения на трафик по протоколу UDP, что может привести к замедлению процесса на этих ОС.
- Хорошо работает на операционных системах от Microsoft, где нет ограничений на трафик по протоколу UDP
- Хорошо подходит для проверки стандартных UDP-портов, используемых вредоносным программным обеспечением для обмена данными.

Nmap: подробнее о типах исследования сетей и устройств
Оригинал: Advanced Nmap: Scanning Techniques Continued
Автор: Rajesh Deodhar
Дата публикации: 1 декабря 2010 г.
Перевод: А.Панин
Дата перевода: 28 сентября 2012 г.

В предыдущих статьях серии были затронуты основные функции программы Nmap, подробности работы трехэтапного рукопожатия TCP и основные типы исследования сетей и устройств с примерами практического применения. Третья статья серии продолжает рассмотрение типов исследования сетей и устройств при помощи программы Nmap.

Очень важным аспектом исследования сетей и устройств является процесс Nmap-пинга, называемый также процессом обнаружения/пингования узлов. Согласно документации на сайте nmap.org, процесс исследования подсети обычно начинается с обнаружения активных узлов. Процесс обнаружения узлов выполняется перед каждым типом исследования сети. Этот процесс отличается от классического ICMP-запроса и сочетает в себе запросы к ARP-кэшу с уточняющими комбинациями TCP-, ICMP- и других типов проверок. Вид проверок определяется на основании того, исследует ли Nmap внутреннюю (локальную) или внешнюю подсеть. За обнаружением узлов следует процесс исследования каждого из активных узлов.

Типичный процесс обнаружения узлов при помощи Nmap

Внутренние подсети

Для исследования устройств во внутренней сети Nmap использует ARP-запрос к устройству в сети. Устройство отправляет ARP-ответ, обнаруживая свое присутствие. Поскольку эти действия происходят на канальном уровне (OSI Layer 2), ARP-запросы ограничены внутренней подсетью.

Внешние подсети
Для исследования внешних подсетей, Nmap отправляет эхо-пакет ICMP и TCP ACK-сегмент устройству в сети. Устройство должно отправить в ответ соответственно ответ ICMP и TCP RST-сегмент, указывая на на свое присутствие.

Отключение обнаружения узлов
Давайте представим часто встречающийся случай, при котором все узлы в сети защищены межсетевыми экранами и стандартное пинг-исследование указывает на отсутствие активных узлов в сети. Как действовать в таком случае? У Nmap существует замечательный параметр -PN, который заставляет Nmap не проводить пинг-исследование, а предположить, что все устройства в диапазоне адресов обнаружены и активны.

Последствия отключения обнаружения узлов даже для подсети класса C, состоящей из 254 IP-адресов, состоят в том, что будут проверены все 254 адреса, включая несуществующие узлы, что значительно увеличит протяженность процесса во времени. Учитесь использовать этот параметр с максимальной осторожностью. Например, при вводе nmap -v -PN 192.168.100.0/24, будут исследованы узлы с адресами от 192.168.100.1 до 192.168.100.254. (Параметр -v повышает информативность выводимых сообщений).
TCP-исследование при помощи соединения

Как обсуждалось ранее, любой тип исследования, требующий изменения процесса трехэтапного рукопожатия TCP, требует административных привилегий. Поскольку используемое по умолчанию TCP SYN-исследование, требует административных привилегий, для непривилегированных пользователей используется исследование при помощи TCP-соединения.

Процесс исследования начинается с того, что Nmap инициирует рукопожатие TCP, отправляя SYN-сегмент на порт исследуемого устройства. Ответ исследуемого устройства аналогичен ответу при TCP SYN-исследовании, он зависит от состояния порта (см. таблицу).
Ответы клиента при исследовании посредством TCP-соединения

Состояние порта Ответ клиента Заключение
Открыт Стандартный ответ: SYN ACK Служба работает на указанном порту, порт открыт
Закрыт Стандартный ответ: RST Служба не работает на указанном порту, порт закрыт
Фильтруется Нет ответа Порт защищен межсетевым экраном

В случае открытого порта, Nmap отправляет сегмент ACK для завершения рукопожатия TCP, открывая тем самым соединение. Затем Nmap отправляет сегмент RST для закрытия соединения. Таким образом, исследование производится без изменения процедуры рукопожатия TCP. Заметили ли вы обратную сторону такого типа исследования? Поскольку рукопожатие TCP производится в полном объеме, в журнале событий исследуемого устройства остается запись об этом.

Аналогично TCP SYN-исследованию, данный тип работает на всех операционных системах и устройствах с поддержкой протокола TCP, таких как PLC, сетевые принтеры, сетевые маршрутизаторы, мобильные телефоны, и.т.д. Пример командной строки:
Код:
nmap -sT 192.168.100.100

Недостатком данного типа исследования является то, что он использует больше ресурсов, чем TCP SYN-исследование, так как проводится полная процедура открытия TCP-соединения с его последующим сбросом. Также при использовании данного типа остаются записи в журнале событий исследуемого устройства.

Определение версий системных служб
Изучая Nmap, вы будете все больше и больше удивляться возможностям данной программы. Nmap использует простые TCP-, UDP- и ICMP-исследования различными способами: для определения различных устройств, операционных систем, слижб, работающих на различных портах и даже версий этих служб.

Для получения версий служб, выполняющихся на открытых портах исследуемого устройства, используется параметр -sV. Простая команда
Код:
nmap -v -sV 192.168.100.100

позволяет вывести список открытых портов исследуемого устройства вместе с версиями всех системных служб, работающих на этих портах.

Определение операционной системы
Nmap может определить операционную систему, под управлением которой работает устройство. Если, например, использовать команду
Код:
nmap -v -O 192.168.100.100

становится возможной идентификация ряда операционных систем, таких как различные версии Microsoft Windows, Linux (включая версию ядра), и.т.д.

Если параметры службы или операционной системы невозможно определить, Nmap выводит идентификатор и просит пользователя отправить его вместе с описанием службы или операционной системы разработчикам на http://www.insecure.org для включения идентификатора в новые версии Nmap.

Nmap: FIN-исследование и идентификация операционных систем устройств в сети
Оригинал: Advanced Nmap: FIN Scan & OS Detection
Автор: Rajesh Deodhar
Дата публикации: 1 Января 2011 г.
Перевод: А.Панин
Дата перевода: 23 Сентября 2012 г.

Nmap - это фантастический инструмент, я просто не могу удержаться, чтобы не похвалить его каждый раз, когда использую. В предыдущих статьях серии (см. 1, 2, 3) были подробно описаны многие важные типы исследований устройств и сетей, осуществляемые при помощи Nmap. Давайте продолжим рассматривать особенности Nmap, обсудив некоторые другие параметры командной строки.

Тип исследования TCP SYN, который мы обсуждали ранее, оставляет много следов в системном журнале исследуемого устройства, позволяя обнаружить адрес узла с запущеной программой Nmap. Некоторые узлы с системами защиты от проникновения (IDS) и межсетевыми экранами следят за SYN-сегментами, отправленными на определенные порты. Как же обойти эту проблему при тестировании на возможность проникновения в систему?
FIN-исследование

FIN-исследование предназначено для работы в таких ситуациях. Стандартным применением FIN-пакета является завершение соединения - обычно после того, как обмен данными завершен. Вместо SYN-пакета, Nmap начинает FIN-исследование, используя FIN-пакет.

Поскольку ранее соединение с исследуемым узлом не было установлено, исследуемый узел отвечает RST-пакетом для сброса соединения. Поступая таким образом, исследуемый узел сообщает о своем существовании. FIN-исследование инициируется с помощью команды, подобной этой: nmap -sF 192.168.100.100.
Идентификация операционной системы устройства

С таким обилием различных операционных систем и их версий, любопытно, как программе Nmap удается определить операционную систему исследуемого устройства за очень короткий промежуток времени. Давайте изучим процесс идентификации операционной системы досконально. В таблице представлен пример вывода данных в процессе идентификации операционной системы, при этом исследуется устройство с сетевой картой Intel под управлением ОС Windows XP SP3.

Таблица 1. Анализ вывода данных в процессе идентификации операционной системы

Строка Интерпретация
nmap -O -v -oversiondetect.txt 192.168.2.101 Синтаксис исполняемой программы. Параметр -v делает вывод более подробным
Initiating OS detection (try #1) against 192.168.2.101 Идентификация операционной системы проводится при помощи комбинации эхо-пакетов ICMP, TCP- и UDP-пакетов.
Host 192.168.2.101 is up (0.0030s latency). Состояние узла выявлено почти мгновенно (узел активен).
Interesting ports on 192.168.2.101:
Not shown: 997 closed ports
PORT STATE SERVICE
135/tcp open msrpc
139/tcp open netbios-ssn
445/tcp open microsoft-ds Список найденных открытых портов.
MAC Address: 00:16:76:CE:8C:3C (Intel) MAC-адрес сетевой карты и ее производитель.
Device type: general purpose
Running: Microsoft Windows XP При наличии только одного открытого и одного закрытого порта, Nmap может точно определить операционную систему. Для того, чтобы работать только с узлами, где есть такие порты, и тем самым сэкономить время, используется параметр --osscan-limit.

OS details: Microsoft Windows XP SP2 or SP3 or Windows server 2003
Network Distance: 1 hop Исследуемый узел в этой же сети.
TCP Sequence Prediction:
Difficulty=264 (Good luck!) Предсказание TCP-последовательности: трехэтапное рукопожатие TCP инициируется SYN-пакетом с числовым идентификатором. Если значение идентификатора может быть предсказано, возможна атака, при которой специально сформированный пакет может быть выдан за пакет от исследуемого узла. Это значение обозначает сложность предсказания начального идентификатора.
IP ID Sequence Generation: Incremental
Read data files from: /usr/share/nmap
OS detection performed. Please report any incorrect results at http://nmap.org/submit/. Позволяет пользователю отправить отчет о неверном определении ОС для улучшения в будущих версиях Nmap.
# NMap done at Tue Nov 30 20:13:03 2010 - 1 IP address (1 host up) scanned in 3.56 seconds Определение ОС для одного устройства заняло меньше 4 секунд!

Безопасность за счет сокрытия информации? Предположим, что вы веб-разработчик, хотели бы вы использовать httpd на нестандартном TCP-порту, например, 1793 вместо стандартного TCP-порта 80? Раньше, до того, как я узнал достаточно о исследовании с помощью Nmap, я думал, что это невероятно! Если служба выполняется на нестандартном порту, это серьезно повышает безопасность.

Добро пожаловать в мир Nmap, который определяет практически любую службу, даже работающую на нестандартном порту.

Таблица 2 показывает вывод Nmap при исследовании реальной системы, защищенной межсетевым экраном IPCop, веб интерфейс которого настроен на работу по протоколу TCP на порту 1775. По умолчанию IPCop предоставляет SSH-сервис на нестандартном порту 222 (вместо стандартного для SSH порта 22). Некоторые строки частично скрыты.

Таблица 2. Вывод данных в процессе исследования операционной системы, защищенной IPCop

Строка Интерпретация
# NMap 5.00 scan initiated Tue Nov 30 21:04:17 2010 as:
nmap -v -O -PN -p222, 1775 -sV -oIPCopOS.txt 121.xxx.xxx.xxx Для уменьшения времени исследования, используется параметр -PN и указаны номера портов.
Initiating OS detection (try #1) against 121.xxx.xxx.xxx.static-pune.vsnl.net.in (121.xxx.xxx.xxx) Реальный работающий в сети узел
Host 121.xxx.xxx.xxx.static-pune.vsnl.net.in (121.xxx.xxx.xxx) is up (0.052s latency).
Interesting ports on 121.xxx.xxx.xxx.static-pune.vsnl.net.in (121.xxx.xxx.xxx):

PORT STATE SERVICE VERSION
222/tcp open ssh OpenSSH 4.7 (protocol 2.0)
1775/tcp open http Apache httpd
- Порт SSH с номером 222 обнаружен вместе с версией ПО.
- Порт HTTP с номером 1775 обнаружен вместе с версией ПО.
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Device type: firewall
Running: IPCop Linux 2.4.X
OS details: IPCop firewall 1.4.10 - 1.4.18 (Linux 2.4.31 - 2.4.34) Несмотря на то, что один открытый и один закрытый порт не удалось обнаружить, Nmap определил операционную систему и версию ядра.
TCP Sequence Prediction: Difficulty=206 (Good luck!)
IP ID Sequence Generation: All zeros
Read data files from: /usr/share/nmap
OS and Service detection performed. Please report any incorrect results at http://nmap.org/submit/ .
# NMap done at Tue Nov 30 21:04:30 2010 - 1 IP address (1 host up) scanned in 13.61 seconds

Во время исследования реальных сетей, может потребоваться по разному указывать цели исследования, например, вы хотите исследовать диапазон IP-адресов от 192.168.100.0 до 192.168.100.127. Вводить каждый адрес нецелесообразно, поэтому можно ввести диапазон адресов двумя разными методами: 192.168.100.0/25 или 192.168.100.0-127. Выбирайте метод, который вам больше подходит.

Небольшое предупреждение: будьте осторожны во время использования бесклассовой нотации (CIDR-нотации). Начиная исследование статических IP-адресов с длиной префикса /16, будьте готовы к тому, что это приведет к исследованию всего диапазона адресов класса B. Чтобы узнать, какие адреса в заданном диапазоне будут рассматриваться, добавьте параметр -sL и выполните команду. При этом программа выведет только диапазон адресов и завершится. После проверки можете удалить параметр -sL из командной строки.

Nmap: аудит безопасности реальной системы с межсетевым экраном
Оригинал: Advanced Nmap: Scanning Firewalls
Автор: Rajesh Deodhar
Дата публикации: 1 Февраля 2011 г.
Перевод: А.Панин
Дата перевода: 30 Сентября 2012 г.

После четырех статей (см. 1, 2, 3, 4), посвященных Nmap и описывающих ряд параметров командной строки для выбора типа исследования, описания целей исследования, описания портов, обнаружения устройств, выбора техник сокрытия факта исследования и других параметров, самое время рассмотреть пример использования Nmap в условиях реальных систем. Данная статья продемонстрирует принципы исследования межсетевого экрана, анализ результатов исследования и выбор настроек межсетевого экрана для повышения безопасности сети при помощи Nmap.

Давайте начнем обсуждение с классификации межсетевых экранов. По реализации они могут быть разделены на программные продукты, установленные на узле и автономные межсетевые экраны.

Программные продукты, установленные на узле

Данные программные пакеты работают на отдельном узле (компьютерной системе) и используются для контроля входящего трафика (поток трафика из сети на устройство) и исходящего трафика (поток трафика с устройства в сеть). Они взаимодействуют непосредственно с операционной системой устройств. В качестве примеров можно привести: IPTables и Firestarter для Linux, и Zone Alarm и Tiny Personal Firewall для Windows.

Межсетевые экраны, установленные на узле, контролируют доступ системных служб, работающих на устройстве, индивидуально для каждой службы, поэтому важные системные службы имеют доступ только к нескольким сетевым ресурсам. Например, доступ к серверу FTP может быть разрешен только с нескольких IP-адресов, а владельцы всех остальных адресов даже не будут знать о существовании FTP -сервера на этом узле.

Также они могут быть настроены таким образом, что только выбранные программы будут иметь доступ к Интернет. Например, вы можете запретить доступ к сети Инетернет для Internet Explorer и разрешить для Mozilla Firefox. Вы также можете запретить программе Nero Burning ROM проверять наличие обновления каждый раз при загрузке ПК.
Автономные межсетевые экраны

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

Межсетевые экраны устанавливаются между защищенной и незаищенной сетью. Они наблюдают за трафиком в двух направлениях, и настроены с помощью правил для пропуска только разрешенного входящего и исходящего трафика в зависимости от правил использования сети Интернет, установленных в организации. Межсетевой экран сравнивает все запросы с введенными при настройке правилами и пропускает только те запросы, которые соответствуют правилам.

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

Перед тем, как продолжить, давайте повторим команды Nmap, рассмотренные в предыдущих статьях. Список наиболее важных команд приведен в таблице.

nmap [тип(ы) исследования] [параметры] {описание целей исследования}

Таблица 1: Список наиболее важных команд Nmap

Тип Параметр Описание
Тип исследования -sS
TCP SYN-исследование -sT
FIN-исследование -sF
ACK-исследование -sA
Window-исследование -sW
Описание исследуемых портов
-p Поиск TCP-портов
-sU Поиск UDP-портов
-r Последовательно исследовать порты (не использовать произвольный порядок)
-F Быстрое исследование, использовать короткий список портов

Идентификация ОС/служб
-O Идентифицировать ОС
-sV Определить версии служб

Определение активных узлов
-sL Вывести целевые адреса
-PN Считать, что все узлы сети активны

Время/производительность
-T(0-5) 5-самый быстрый метод исследования, 0-самый медленный
-F Быстрое исследование, использовать короткий список портов

Исследование межсетевых экранов, EDS, спуфинг
-D IP_Addresses Использовать метод узлов-ловушек
-g port_number Подменять исходный порт
-f Использовать фрагментацию пакетов

Параметры вывода
-oN Классический вывод
-oG Вывод, совместимый с утилитой grep
-oX Вывод в формате XML
-oA Вывод во всех форматах


Описание целей исследования
IP-адрес
192.168.100.1,
192.168.100.2 Задать список IP-адресов через запятую
Диапазон IP-адресов
192.168.100.1-50
Задать диапазон IP-адресов
CIDR
192.168.100.1/24
Бесклассовая нотация
-iL filename Прочитать список IP-адресов из файла с именем filename

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

Таблица 2: Порты при исследовании межсетевого экрана

Состояние порта Тип порта Описание
Заблокирован Закрытый порт Большинство портов, защищенных межсетевым экраном, должны быть закрыты
Фильтруется Фильтруемый порт К малому количеству портов применяют фильтрование, ограничивая доступ служб к сети несколькими IP-адресами
Доступен Открытый порт Очень малое количество портов открыто. В случае обнаружения таких портов, не забудьте исследовать службу более подробно и закрыть порты при необходимости.

Теперь, когда мы освежили в памяти основные понятия, приступим к исследованию работающей системы, защищенной межсетевым экраном. Часто говорят: "опыт - лучший учитель". Для понимания процесса исследования систем с межсетевыми экранами, давайте исследуем работающую систему и рассмотрим полученные результаты.
Исследование работающей системы

Исследуемая система защищена межсетевым экраном IPCop, соединение с Интернет по PPPoE, система работает под управлением ОС openSUSE, версия Nmap 5.21. Подробные характеристики сети:

ПК с Nmap: openSUSE Linux - 192.168.1.201 (исследование проводится с правами пользователя root)
Внешняя сеть (Firewall Internet (Red) port) - PPPoE, IP 117.x.x.x
Внутренняя сеть (Firewall Internal (Green) port) - IP 192.168.1.1

Параметры межсетевого экрана:

Веб-интерфейс межсетевого экрана (HTTPS) работавший на TCP-порту 445, перенесен на нестандартный порт 775 для лучшего понимания техники исследования.
Доступ из внешней сети к веб-интерфейсу разрешен.
Ответ на пинг-запросы из сети Интернет отключен.

(Некоторые строки вывода были удалены для экономии места).

Приступим. Начнем с ACK-исследования для поиска открытых TCP-портов. Сначала было проведено исследование без параметра -PN, но поскольку ответы на пинг-запросы из Интернет заблокированы, было предложено использовать параметр -PN.

Таблица 3: Результат ACK-исследования

Команда и результат Описание
nmap -PN -sA -vv -n -p1-1000 -T4 -oNmapACKScan.txt 117.X.X.X Командная строка для исследования; параметр -n позволяет не проводить разрешение имен DNS, экономя время.
Nmap scan report for 117.X.X.X
Host is up. Хотя пинг-ответ запрещен, удалось определить, что узел активен.
All 1000 scanned ports on 117.195.42.218 are filtered Не удалось обнаружить открытый порт 775.
# Nmap done at Wed Jan 5 02:04:44 2011 - 1 IP address (1 host up) scanned in 101.87 seconds Потребовалось немного меньше двух минут для завершения процесса.

ACK-исследование, как и Window-исследование (-sW) не позволяет обнаружить открытые порты на защищенной системе. Поэтому давайте попробуем TCP-исследование при помощи соединения.

Таблица 4: Результат TCP-исследования при помощи соединения

Команда и результат
nmap -PN -sT -vv -n -p1-1000 -T4 -oNmapTCPConnect.txt 117.X.X.X
Nmap scan report for 117.X.X.X
Not shown: 999 filtered ports
PORT STATE SERVICE
775/tcp open entomb Открытый порт 775 обнаружен, название службы entomb
# Nmap done at Wed Jan 5 02:33:32 2011 - 1 IP address (1 host up) scanned in 91.78 seconds

TCP-исследование при помощи соединения позволило обнаружить открытый TCP порт 775. Поскольку не было проведено определение версии службы, в качестве названия выведено стандартное название службы для номера порта (entomb). Далее было проведено SYN-исследование с фрагментацией. Здесь был применен дополнительный параметр - ограничение времени ожидания RTT до 15 миллисекунд.

Таблица 5: Результат SYN-исследования

Команда и результат Описание
nmap -PN -sS -f -vv -n -p1-1000 -T4 -max-rtt-timeout 15 -oNmapSYNScan.txt 117.X.X.X Параметры времени изменены для лучшей производительности.
Nmap scan report for 117.X.X.X
Host is up (0.049s latency).
Scanned at 2011-01-05 02:41:20 IST for 14s
Not shown: 999 filtered ports
PORT STATE SERVICE
775/tcp open entomb Определен открытый порт 755 со службой entomb
# Nmap done at Wed Jan 5 02:39:34 2011 - 1 IP address (1 host up) scanned in 14.74 seconds Обратите внимание, что за счет изменения времени ожидания, исследование заняло меньше 15 секунд вместо 2-8 минут.

SYN-исследование также позволило обнаружить открытый TCP-порт номер 775. Время, необходимое для исследования, составило 15 секунд вместо 100-120 секунд в предыдущих типах исследования.

Выполнение команды nmap -PN -sS -vv -p1-1000 -oNmapSYNStandardscan.txt 117.X.X.X заняло более 300 секунд. Необходимо выбирать подходящие параметры времени ожидания для повышения эффективности исследования.

Исследование было продолжено с целью определения версии службы, работающей на открытом порту.

Таблица 6: Результат определения версии службы

Команда и результат Описание
nmap -PN -sV -vv -n -p775 -oNmapServiceDetection.txt 117.X.X.X

PORT STATE SERVICE VERSION
775/tcp open http Apache httpd


Service detection performed. Please report any incorrect results at http://nmap.org/submit/. Предлагается отправить информацию о некорректном определении версии службы разработчикам Nmap для улучшений в будущих версиях программы
# Nmap done at Wed Jan 5 02:47:29 2011 - 1 IP address (1 host up) scanned in 11.43 seconds Потребовалось менее 12 секунд для идентификации веб-сервера Apache httpd на нестандартном TCP-порту 775.

Кстати, в этих примерах мы исследовали только TCP-порты в диапазоне от 1 до 1000 включительно, хотя разумным решением также является исследование всех 65535 TCP-портов, как и UDP-портов с использованием различных типов исследований и идентификации версий системных служб.

Как только исследования закончены, комбинация результатов может быть использована для проверки настроек межсетевого экрана. Если обнаружены нежелательные службы или нежелательные открытые порты, они должны быть отключены или закрыты соответственно.

Теперь давайте исследуем данный межсетевой экран из внутренней сети.

Таблица 7: Результаты исследования межсетевого экрана из внутренней сети

Команда и результат Описание
nmap -vv -sU -sT -p1-1000 -n -r -T4 -oNmapIPCopInternal.txt 192.168.1.1 Запущено UDP- и TCP-исследование при помощи подключения для портов 1-1000. При выполнения этой команды остается множество записей в системном журнале межсетевого экрана. На рисунке представлен снимок этого журнала. Обратите внимание, что открытые порты не генерируют записей в журнале.
Host is up (0.040s latency).
Scanned at 2011-01-05 15:24:01 IST for 44
Not shown: 998 open|filtered ports, 994 filtered ports

PORT STATE SERVICE
53/tcp open domain
80/tcp open http
123/tcp closed ntp
222/tcp open rsh-spx
775/tcp open entomb
800/tcp open mdbs_daemon
53/udp open domain
123/udp closed ntp



Обнаружен ряд открытых TCP- и UDP-портов.
Служба синхронизации времени NTP присутствует, но доступ к ней за

Таблица 8: Результат определения версий служб

Команда и результат Описание
nmap -vv -p53,80,123,222,775,800 -sV -oNmapIPCopIntUDPServDet.txt 192.168.1.1 Исследуются только открытые порты.
Running service detection against all ports may take just too long!!
Scanned at 2011-01-05 15:36:56 IST for 12s

PORT STATE SERVICE VERSION
53/tcp open domain dnsmasq 2.45
80/tcp open http-proxy Squid webproxy 2.7.STABLE9
123/tcp closed ntp
222/tcp open ssh OpenSSH 4.7 (protocol 2.0)
775/tcp open http Apache httpd
800/tcp open http-proxy Squid webproxy 2.7.STABLE9



Обнаружен кэширующий сервер доменных имен DNS.
Прозрачный прокси-сервер работает на открытом порту 80.
Сервер синхронизации времени NTP работает, но не доступен из внутренней сети.
Обнаружен работающий SSH-сервер.
Найден HTTP-порт, измененный со стандартного значения 445.
HTTP прокси-сервер работает на этом порту.

Наблюдения

На исследованном автономном межсетевом экране выполняется ряд служб, предназначенных для внутренней сети, таких как: DNS, SSH, HTTPS и прокси-сервер. Они доступны всем компьютерам из внутренней сети. Также обнаружен прозрачный прокси-сервер на порту 80, что позволяет пользователям из внутренней сети не менять настройки соединения браузеров. Функция идентификации операционной системы (-A) корректно идентифицирует операционную систему как IPCop Firewall 1.4.10/1.4.21, Linux 2.4.31-2.4.36 вместе с публичными ключами SSH.
Рекомендации для данного межсетевого экрана

Веб-интерфейс по протоколу HTTPS используется для удаленного управления межсетевым экраном. Он должен быть включен только во время технического обслуживания и настройки.
Нужно отключить режим прозрачного прокси. Эффективный контроль трафика возможен только при непрозрачном режиме работы прокси-сервера.
Службы HTTPS и SSH должны быть доступны только для MAC-адреса компьютера системного администратора.
Необходимо исследовать все оставшиеся порты (1001-65535), определить выполняющиеся и отключить нежелательные службы.
Служба синхронизации времени выполняется, но не доступна из защищенной сети. Нужно открыть доступ для NTP во внутреннюю сеть.


Вернуться к началу
 Профиль  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ 1 сообщение ] 

Часовой пояс: UTC + 3 часа


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB