Как использовать Nmap для сканирования уязвимостей

Прочитано: 130 раз(а)


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

Если вы ищете простой в использовании сканер уязвимостей с хорошей технической поддержкой, Intrumer — спонсор этой статьи — является одним из таких инструментов, с защитой корпоративного уровня, охватывающей более 10 000 проверок безопасности, от внутреннего сканирования до периметра, веб-приложения и облако.

Начало работы с Nmap

Nmap, или карта сети, предоставляет бесплатные возможности с открытым исходным кодом для аудита ИТ-инфраструктуры, такие как сканирование портов, обнаружение хостов или идентификация устройств в сети. Как пен-тестеры, так и злоумышленники используют Nmap для сбора информации о своей цели, и CISA признала Nmap важным бесплатным инструментом для сетевой безопасности .

УстановкаNmap

Nmap начиналась как утилита для Linux, но теперь она доступна для всех основных операционных систем, включая Windows и macOS. Nmap предустановлен в нескольких версиях Linux, включая Kali Linux . Пользователи других систем Linux могут использовать команду «apt-get install Nmap» для его установки.

Пользователи всех операционных систем могут загрузить Nmap, а также интерфейс графического пользовательского интерфейса (GUI) ZeNmap для Nmap. Те, кто предпочитает использовать github, могут клонировать официальный репозиторий git.

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

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

Встроенные Скрипты Nmap

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

sudo Nmap --script-updatedb

Использование Пользовательских Сценариев Nmap

Опытные пользователи могут предпочесть объединить несколько строк инструкций или более сложные команды, используя язык Python и пакет Python-Nmap . Опытные пользователи также могут использовать механизм сценариев Nmap (NSE) для обнаружения сетей, обнаружения уязвимостей (например, бэкдора) и даже конкретных эксплойтов с использованием языка программирования Lua . Эти сценарии представляют собой файлы .nse и обычно содержат комментарии для конечных пользователей и инструкции по написанию кода для компьютеров.

Сканирование уязвимостей Nmap

Возможности сканирования уязвимостей Nmap основаны на сценариях обнаружения уязвимостей, отнесенных к категории «vuln» для уязвимостей, или на пользовательских сценариях. Пользователи могут запускать встроенные скрипты индивидуально или коллективно с помощью команды «vuln». Кроме того, пользователи также могут загружать собственные скрипты, такие как Vulscan или Vulners.

Как и при любом тестировании на проникновение или сканировании уязвимостей, пользователи должны помнить, что эти инвазивные сканирования следует выполнять только с разрешения. Даже сканирование системы без разрешения может привести к попыткам наложить штраф или тюремное заключение в зависимости от юрисдикции. Для получения дополнительной информации пользователь может изучить нормативные акты, например, действующие в США (Закон о компьютерном мошенничестве и злоупотреблениях), Англии (Закон о неправомерном использовании компьютеров 1990 г.), Индии (Закон об информационных технологиях, разделы 43 и 66), Японии (Закон о компьютерных технологиях). Запрет несанкционированного доступа к компьютеру) и многие другие страны.

Определенные Сканирования Уязвимостей Nmap

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

Сканирование приложений: запустите Nmap на целевом домене (например: esecurityplanet com), чтобы проверить веб-сайты на наличие уязвимостей, таких как:

  • http-csrf: обнаружение уязвимостей межсайтовой подделки запросов (CSRF) путем ввода команды: Nmap -sV –script http-csrf <целевой домен>
  • http-sherlock: проверьте, можно ли использовать уязвимость «shellshock» в веб-приложениях, введя команду: Nmap -sV –script http-sherlock <целевой домен>

Сканирование ИТ-хостов: запустите Nmap по целевому IP-адресу (например: 166.96.06.4), чтобы проверить наличие уязвимостей хоста, таких как:

  • dns-update: попытайтесь выполнить обновление службы динамических доменных имен (DNS) без аутентификации, введя команду: Nmap -sU -p 53 –script=dns-update –script-args=dns-update.hostname=foo.example. com,dns-update.ip=192.0.2.1 <целевой IP-адрес>
  • smb-vuln-cve-2017-7494: проверьте, уязвим ли целевой IP-адрес для уязвимости загрузки произвольной общей библиотеки, используя такой сценарий: Nmap –script smb-vuln-cve-2017-7494 -p 445 <целевой IP-адрес >

Сценарии Nmap, поддерживаемые правительством, иногда публикуются или рекламируются на официальных веб-сайтах, чтобы помочь организациям устранить конкретные уязвимости. Например, правительство Великобритании поддерживает репозиторий GitHub с открытым исходным кодом, который помогает организациям сканировать сети на предмет уязвимости Exim MTA в рамках проекта Scanning Made Easy от Национального центра кибербезопасности (NCSC) и его отраслевого партнерства i100.

Репозиторий предоставляет коллекцию официально продвигаемых скриптов Nmap для пользователей, таких как системные администраторы, для обнаружения уязвимостей системы. Первоначальный сценарий для Великобритании фокусируется на уязвимостях удаленного выполнения кода агента передачи сообщений (MTA) Exim от CVE-2020-28017 до CVE-2020-28026 , также известных как 21Nails.

Скрипт содержит информацию о:

  • Как он проверяет наличие уязвимости
  • Почему проверка не навязчива
  • Почему могут быть ложноположительные и ложноотрицательные результаты

Как Использовать Vuln

Nmap может сканировать целевой домен или IP-адрес на наличие всех уязвимостей в библиотеке сценариев по умолчанию для категории «vuln» с помощью команды Vuln с соответствующим названием:

sudo Nmap --script vuln <target domain or IP Address> -v

Обратите внимание, что для запуска команды от имени суперпользователя или эквивалента администратора в Linux может потребоваться команда «sudo». В большинстве случаев для запуска более агрессивных и проверочных команд Nmap потребуются повышенные привилегии. Флаг -v, или verbosity, предоставит подробную информацию о проведенных тестах и ​​их результатах.

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

Подмножество сканирования уязвимостей можно выполнить с использованием подстановочных знаков или звездочек (*) для одновременного запуска нескольких сценариев со схожими именами. Например, добавление подстановочного знака после команды http (http*) запустит все сканирования уязвимостей, начинающиеся с «http», в отношении целевого домена.

При использовании любого массового сканирования результаты могут оказаться ошеломляющими, и некоторые пользователи захотят исключить уязвимости с низким рейтингом CVSS. Чтобы отображать уязвимости только в определенном диапазоне, добавьте к команде следующий флаг, где «xx» — это оценка CVSS (например: 6,5).

--script-args=mincvss=x.x

Полная команда для исключения уязвимостей ниже 6.5 будет такой:

Nmap --script vuln --script-args mincvss=6.5 <target>

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

Два распространенных примера полной команды:

  • XML-файл: Nmap –script vuln -oX file.xml <цель>
  • XML-файл, удобный для браузера: Nmap –script vuln –webxml -oX file.xml <цель>

Конечно, базовый набор сканирования уязвимостей может оказаться недостаточным для некоторых пользователей, поскольку он исследует лишь ограниченный, хотя и важный набор уязвимостей. Опытные пользователи могут загрузить собственные сценарии, такие как Vulscan или Vulners, чтобы получить доступ к более крупной базе данных уязвимостей.

Как Использовать Vulscan

Чтобы использовать скрипт NSE Vulscan, пользователь должен сначала клонировать программное обеспечение из репозитория github с помощью команды git:

sudo git clone https://github com/scipag/vulscan

Пользователю может потребоваться создать мягкую ссылку на каталог сценариев NSE, выполнив следующую команду:

sudo ln -s pwd /scipag_vulscan /usr/share/Nmap/scripts/vulscan

В этом случае /usr/share/Nmap/scripts/vulscan — это предполагаемый каталог для сценариев Nmap на компьютере пользователя, но этот каталог можно изменить по мере необходимости. Как только каталог станет известен Nmap, Vulscan можно будет вызвать с помощью флага –script для запуска дополнительных проверок на уязвимости, используя следующий синтаксис:

sudo Nmap -sV --script=vulscan/vulscan.nse <target IP address or host name>

Vulscan можно запустить для обнаружения ИТ-уязвимостей по IP-адресу в сети или уязвимостей программного обеспечения по имени хоста (например: esecurityplanet com). Vulscan проведет неинвазивное тестирование всех применимых уязвимостей цели. В результатах будет указан порт, а затем ограниченная информация о конкретных обнаруженных CVE.

Как Использовать Уязвимости

Уязвимости обычно включаются в стандартные сценарии Nmap NSE, но пользователь также может клонировать сценарий NSE для уязвимостей из своего репозитория github с помощью команды git:

sudo git clone https://github com/vulnersCom/Nmap-vulners.git /usr/share/Nmap/scripts/vulners

Каталог файлов /usr/share/Nmap/scripts/vulscan является предполагаемым каталогом для сценариев Nmap на компьютере пользователя, но этот каталог можно изменить по мере необходимости. После клонирования Vulners можно вызвать с помощью флага –script, используя следующий синтаксис:

sudo Nmap -sV --script Nmap-vulners/vulners.nse <target host or IP address>

Пользователи могут назначать определенные порты на IP-адресе, добавляя -p<#> (например: -p80 для целевого порта 80) в конце командной строки. В результатах будут отображены обнаруженные CVE и ссылка на веб-сайт Vulners для получения дополнительной информации.

Vuln и Vulners включены в базовую базу данных скриптов NSE и будут обновляться при обновлении всех скриптов для Nmap. Vulscan не входит в базовый набор скриптов и его необходимо загружать и обновлять отдельно.

Vulners отправляет информацию об общем перечислении платформ (CPE) , полученную в результате сканирования портов, на vulners com, используя API сайта, чтобы активно загружать новейшую информацию о распространенных уязвимостях и воздействиях (CVE) из базы данных сайта. Vulners также требует доступа в Интернет для доступа к внешним базам данных уязвимостей.

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

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

Преимущество отправки информации CPE заключается в том, что Vulners размещает полностью обновленный набор CVE . Vuln обнаруживает только 150 основных уязвимостей систем, а Vulscan использует автономную копию баз данных уязвимостей.

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

Vulners и Vulscan избегают риска сбоев , поскольку не пытаются проверять или использовать уязвимости. Доверие к обоим этим инструментам зависит от точности и точности обнаружения конкретной версии Nmap. Оба этих инструмента также могут быть сбиты с толку нестандартными, пользовательскими или исправленными сборками конкретных сервисов, что может привести к большему количеству ложных срабатываний.

Из трех инструментов скрипты категории Vuln могут немедленно выполнить высокоточное сканирование на наличие ограниченного набора важных уязвимостей. Однако, пока количество уязвимостей невелико, углубленное исследование уязвимости может занять в 3-4 раза больше времени, чем у Vulners или Vulscan .

Хотя оба сканера уязвимостей, загруженные вручную, будут иметь гораздо более обширный и надежный выбор CVE для обнаружения, Vulners, как правило, будут наиболее обновленными сканами , поскольку ИТ-команды могут забыть вручную обновить базы данных Vulscan. Но для более секретных организаций, которым необходимо избегать разглашения информации CPE, использование Vulscan локальной базы данных может быть лучшим выбором среди вариантов Nmap.

Как злоумышленники используют Nmap?

Злоумышленники используют Nmap для быстрого сканирования больших сетей, используя необработанные IP-пакеты для идентификации доступных хостов и служб в сети и определения их уязвимостей. Хакеры и пен-тестеры обычно добавляют специальные опции, чтобы замести следы.

При сканировании-обманке добавляется флаг опции -D (Nmap -p 123 -D decoyIP targetIP), чтобы скрыть атакующий IP-адрес и отправлять на цель пакеты, подделанные источником, в дополнение к пакетам сканирующей машины. Дополнительные пакеты усложняют обнаружение сканирования портов для защитников.

Злоумышленники также могут запустить зомби-сканирование, также известное как сканирование в режиме ожидания. Эта атака по побочному каналу пытается отправить поддельные пакеты SYN цели, используя IP-адрес конечной точки «зомби» в сети. Этот метод пытается обмануть систему обнаружения вторжений (IDS) , приняв невинный компьютер-зомби за злоумышленника. Более подробный обзор атак Nmap можно найти в Nmap Ultimate Guide: Pentest Product Review and Analysis .

Обнаруживают Ли Хост-Системы Сканирования Nmap?

Инструменты SIEM , межсетевые экраны и другие защитные инструменты могут получать оповещения от систем, а сканируемая система регистрирует успешные TCP-запросы в результате множества сканирований портов Nmap. Более сложные инструменты IDS/IDP также могут обнаруживать некорректные TCP-запросы, например скрытые запросы Nmap, которые не завершают TCP-соединение. Нарушающие сканирование, вызывающие сбой системы или службы, обязательно будут обнаружены как системами, так и затронутыми пользователями.

Плюсы и минусы использования Nmap

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

Плюсы: Причины Использовать Nmap

  • Открытый исходный код и бесплатность, поэтому отлично подходят для хакеров, студентов и всех организаций.
  • Быстрое сканирование позволяет быстро выявить потенциальные уязвимости.
  • Легкое сканирование TCP не потребляет огромную пропускную способность сети и может обойти некоторые инструменты сетевой безопасности.
  • Хакерский предварительный просмотр для организаций, проверяющих свои внутренние системы
  • Сканирование по сценариям позволяет организации создавать повторяемые сканирования уязвимостей, которые могут использовать нетехнические пользователи, а хакерам — встраивать команды и сканирования Nmap во вредоносное ПО.

Минусы: Причины Не Использовать Nmap

  • Менее удобны для пользователя , чем коммерческие инструменты, с более продвинутым графическим интерфейсом.
  • Легко допустить ошибки при вводе командной строки
  • Нехватка программистов в ИТ-персонале организации для создания собственных сценариев или понимания сценариев Nmap.
  • Менее формальная поддержка , чем у коммерческих инструментов.
  • Ограниченное сканирование уязвимостей с помощью базовой команды vuln.

Альтернативы сканеру уязвимостей Nmap

Nmap остается популярным инструментом среди многих, но это, конечно, не единственный доступный сканер уязвимостей. Варианты сканера уязвимостей с открытым исходным кодом для приложений включают OSV-Scanner или OWASP Zed Attack Proxy (ZAP), а для инфраструктуры — CloudSploit или OpenVAS.

Существует также множество коммерчески доступных сканеров уязвимостей. К лучшим сканерам уязвимостей для приложений или инфраструктуры относятся Invicti, Tenable.io, ManageEngine’s Vulnerability Manager Plus, а также другие.

Итог: используйте Nmap для недорогого и эффективного сканирования уязвимостей

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

Как использовать Nmap для сканирования уязвимостей



Новости партнеров