Nmap — утилита сканирования сетей¶
Nmap (сокращение от Network Mapper) — утилита с открытым исходным кодом для сканирования компьютерных сетей и аудита безопасности, разработанная Гордоном Лайоном (Gordon Fyodor Lyon). Программа позволяет обнаруживать узлы в сети, определять открытые порты, типы и версии работающих сервисов, а также операционные системы удалённых устройств. Nmap работает на различных платформах, включая Linux, Windows, macOS и FreeBSD, и распространяется под лицензией Nmap Public Source License.
¶История
Первая версия Nmap была выпущена в сентябре 1997 года в рассылке Phrack Magazine. Автором выступил Гордон Лайон, тогда ещё студент. Изначально инструмент представлял собой простой сканер портов для Linux, но со временем приобрёл функциональность полноценного средства сетевого аудита.
В 2006 году Лайон основал компанию Insecure.com LLC, которая занимается развитием и поддержкой Nmap. В том же году вышла версия Nmap 4.00, включившая скриптовый движок Nmap Scripting Engine (NSE), позволивший расширять функциональность программы пользовательскими скриптами на языке Lua.
Среди заметных релизов:
- Nmap 3.00 (2002) — добавлена поддержка сканирования TCP и UDP с использованием нестандартных методов.
- Nmap 4.00 (2006) — появление NSE.
- Nmap 5.00 (2009) — улучшенная графическая утилита Zenmap.
- Nmap 6.00 (2012) — переработанный интерфейс, поддержка IPv6 и сканирования по протоколу SCTP.
- Nmap 7.00 (2015) — обновлённый движок сканирования, поддержка новых опций.
Последние версии регулярно обновляются, добавляется поддержка новых протоколов и сервисов.
¶Возможности
Основной функцией Nmap является сканирование сетей для выявления активных хостов и открытых портов. Инструмент поддерживает множество методов сканирования:
- TCP SYN-сканирование — отправка SYN-пакетов для определения статуса порта (открыт, закрыт, фильтруется).
- TCP Connect-сканирование — полноценное установление TCP-соединения.
- UDP-сканирование — обнаружение открытых UDP-портов.
- FIN, NULL, Xmas-сканирование — скрытые методы, использующие нестандартные комбинации флагов TCP.
- Ping-сканирование — определение активных хостов в сети.
Nmap умеет определять версии работающих сервисов (service version detection), операционные системы удалённых устройств (OS detection), а также проводить трассировку маршрута до цели.
¶Скриптовый движок NSE
Nmap Scripting Engine — расширение, позволяющее выполнять пользовательские скрипты на языке Lua. NSE включает сотни готовых скриптов, разделённых на категории:
- auth — проверка аутентификации;
- broadcast — обнаружение хостов широковещательными запросами;
- brute — перебор учётных данных;
- default — базовые проверки;
- discovery — сбор информации о сети;
- dos — проверка на отказ в обслуживании;
- exploit — использование известных уязвимостей;
- fuzzer — тестирование на неожиданное поведение;
- malware — обнаружение вредоносного ПО;
- safe — безопасные проверки;
- version — уточнение версий сервисов;
- vuln — проверка на известные уязвимости.
Скрипты NSE позволяют автоматизировать множество задач аудита: от проверки конфигураций до обнаружения уязвимостей в популярных сервисах.
¶Графические интерфейсы
Помимо командной строки, Nmap поставляется с несколькими графическими оболочками:
- Zenmap — кроссплатформенный GUI-инструмент для сканирования и визуализации результатов.
- NmapFE — устаревшая графическая оболочка для Unix-систем.
- NDiff — утилита для сравнения результатов двух сканирований.
Zenmap позволяет сохранять профили сканирования, строить карты сети и просматривать статистику по результатам.
¶Применение
Nmap широко используется системными администраторами и специалистами по информационной безопасности для:
- инвентаризации сетевых ресурсов;
- аудита конфигураций безопасности;
- обнаружения несанкционированных устройств;
- проверки брандмауэров и систем обнаружения вторжений;
- подготовки к пентестам.
Инструмент применяется в образовательных целях и входит в стандартный набор Kali Linux и других дистрибутивов для тестирования на проникновение.
¶Правовой статус
Использование Nmap для сканирования чужих сетей без разрешения владельца может нарушать законодательство различных стран. В ряде юрисдикций несанкционированное сканирование квалифицируется как несанкционированный доступ к компьютерной информации. В России ответственность за подобные действия предусмотрена статьями Уголовного кодекса, в частности статьёй 272 (неправомерный доступ к компьютерной информации).
¶Критика
Nmap иногда используется злоумышленниками для разведки целевых сетей перед атаками. Из-за этого ряд корпоративных систем обнаружения вторжений и антивирусов классифицируют Nmap как потенциально нежелательное ПО. Разработчики подчёркивают, что инструмент предназначен исключительно для легитимного аудита безопасности.
¶Источники
- Лайон Г. «Nmap Network Scanning: The Official Nmap Project Guide to Network Discovery and Security Scanning». — Insecure.com LLC, 2009.
- Официальный сайт Nmap Project — nmap.org
- Phrack Magazine, выпуск 49, 1997 (первая публикация Nmap)
- RFC 793 — Transmission Control Protocol
