Определение ОС
Одна из наиболее известных функциональных возможностей Nmap это удаленное определение ОС на основе
анализа работы стека TCP/IP. Nmap посылает серию TCP и UDP пакетов на удаленный хост и изучает практически
каждый бит в ответах. После проведения дюжины тестов таких как TCP ISN выборки, поддержки опций TCP, IP ID
выборки, и анализа продолжительности процедуры инициализации, Nmap сравнивает результаты со своей
nmap-os-db
базой данных, состоящей из более чем тысячи известных наборов
типичных результатов для различных ОС и, при нахождении соответствий, выводит информацию об ОС. Каждый набор
содержит свободное текстовое описание ОС и классификацию, в которой указаны название производителя (напр. Sun),
название ОС (напр. Solaris), поколение ОС (напр. 10), и тип устройства ().
OS, and a classification which provides the vendor name
(e.g. Sun), underlying OS (e.g. Solaris), OS generation (e.g. 10),
and device type (для общих целей, роутер, коммутатор (switch), игровая консоль и т.д.).
Если Nmap не может определить ОС, но для этого есть хорошие предпосылки (наприме, по крайней мере, найдены один открытый и один закрытый порты), то Nmap предоставит URL, по которому, если вы точно знаете, какая ОС используется, вы сможете предоставить набор ее характеристик. Тем самым вы внесете свой вклад в дополнение базы данных известных ОС Nmap, и она будет более полезна для всех остальных.
Опция определения ОС также активирует проведение некоторых других тестов, которые позволяют воспользоваться
собираемой в процессе работы информацией. Один из них Классификация Предсказуемости Последовательности TCP
(TCP Sequence Predictability Classification). Это позволяет приблизительно определить, насколько сложно установить
ложное TCP соединение с удаленным хостом. Это может быть полезно для взлома и эксплуатации программ, базирующихся
на доверительных отношениях (rlogin, фильтры брандмауэров и т.д.) или для сокрытия источника атаки. Этот тип
спуфинга (spoofing) теперь редко используется, но многие машины все еще уязвимы к такого рода атакам. Число,
характеризующее сложность, базируется на статистической выборке и может колебаться. Обычно лучше испльзовать
классификацию с испльзованием английских фраз типа
«worthy challenge(достойное испытание)» или «trivial joke(шуточное дело)». Эта
информация будет выведена только при включенном вербальном режиме (-v
). Когда вербальный режим
активирован вместе с опцией -O
, то выводится также информация о генарции IP ID последовательности.
Большинство машин находятся в классе «incremental(возрастающий)», что означает, что они увеличивают
поле ID в IP заголовке для каждого посланого пакета. Это делает их уязвимыми к спуфинг(spoofing) атакам и атакам
с целью сбора расширенной информации.
Также во время определения ОС делается попытка узнать время работы целевой машины. С помощью временных меток (timestamp) TCP (RFC 1323) Nmap пробует угадать, когда машина была перезагружена в последний раз. Информация может быть не точна, т.к. счетчик временной метки не был обнулен или был переполнен, или каким-то образом скрыт. Информация выводится только в вербальном режиме.
Бумажная документация по работе, использованию и настройки опции определения ОС находится на
https://nmap.org/book/osdetect.html
.
Функция определения ОС включается и управляется с помощью следующих опций:
-
-O
(Включить определение ОС) Включает фукнцию определения ОС, работа которой описана выше. Вы также можете использовать опцию
-A
, которая помимо других функций включает определение ОС.-
--osscan-limit
(Использовать функцию определения ОС только для "перспективных" хостов) Функция определения ОС намного более эффективна, если обнаружены, по крайней мере, один открытый и один закрытый TCP порты. Задайте эту опцию, и Nmap не будет даже пытаться определить ОС хостов, не удовлетворяющих этому критерию. Это поможет сэкономить массу времени, особенно при
-PN
сканирование многих хостов. Эта опция будет действовать только при включении функции ОС путем задания опций-O
или-A
.-
--osscan-guess
;--fuzzy
(Угадать результаты определения ОС) Когда Nmap не в состоянии определеить точное совпадение, она иногда предоставляет наиболее близкие к результатам сканирования совпадения. Чтобы Nmap сделала это по умолчанию, совпадения должны быть очень близки. Любая их этих (равных) опций побуждает Nmap к более агрессивному анализу результатов. Nmap по-прежнему будет сообщать, когда будет найдено не идеальное совпадение, а также отображать стпень соответствия (в процентах) для каждого набора характеристик.
-
--max-os-tries
(Устанавливает максимальное количество попыток определения ОС) Когда Nmap пытается определить ОС на целевом хосте и не может найти идеального соответствия результатов, то она обычно повторяет попытку. По умолчанию, Nmap совершает пять попыток при условии, что существуют благоприятные условия для определения ОС, и дважды - в противном случае. Задание более низкого значения
--max-os-tries
(напр. 1) увеличивает скорость работы Nmap, однако вы пропускаете некоторые записи, с помощью которых, возможно, можно было бы определить ОС. Большое значение может быть задано для разрешения большего количества попыток при благоприятных условиях. Это делается редко, за исключением тех случаев, когда необходимо сгенерировать более детальный набор характеристик ОС для занесения в базу данных Nmap.