Библиотека сайта rus-linux.net
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. Следите за новыми статьями из данной серии, вас ждет множество интересных советов и реальных примеров!
Продолжение здесь!