Как найти уязвимости с помощью nmap

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

Скрипты Nmap scripting engine (NSE) Script – одна из самых популярных и мощных возможностей Nmap.

Nmap-Vulners – скрипт NSE, использующий известную службу для предоставления информации об уязвимостях

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

Common Vulnerabilities and Exposures (CVE) – это база данных публично раскрытых проблем безопасности данных.

🦟 Топ-7 крупных баз уязвимостей для поиска и отслеживания новых

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

В этой статье мы рассмотрим, как использовать Nmap для сканирования уязвимостей.

Давайте приступим!

Содержание

  1. Установка Nmap
  2. Сканирование уязвимостей с помощью Nmap
  3. Nmap-vulners
  4. Установка
  5. Использование
  6. Nmap – vuln
  7. Nmap-vulscan
  8. Установка
  9. Использование
  10. Примеры
  11. Заключение

Установка Nmap

Nmap предустановлен почти в каждом дистрибутиве Linux.

В случае его отсутствия, вам необходимо установить его вручную.

Его можно легко установить с помощью следующей команды.

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

./configure
make
make install

Последняя версия этого программного обеспечения, а также бинарные инсталляторы для Windows, macOS и Linux (RPM) доступны здесь:

https://nmap.org/download.html

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

Nmap-vulners, vulscan и vuln – это распространенные и наиболее популярные скрипты обнаружения CVE в системе Nmap.

Эти скрипты позволяют обнаружить важную информацию о недостатках безопасности системы.

Nmap-vulners

Одним из самых известных сканеров уязвимостей является Nmap-vulners.

Давайте рассмотрим, как настроить этот инструмент, а также как запустить базовое CVE-сканирование.

Nmap script engine выполняет поиск HTTP-ответов для выявления CPE для заданного скрипта.

Установка

Чтобы установить скрипт Nmap-vulners, перейдите в каталог скриптов Nmap с помощью следующей команды.

Nmap-vulscan

Vulscan – это скрипт NSE, который помогает Nmap обнаруживать уязвимости в целях на основе обнаружения сервисов и версий.

vulscan – это модуль для Nmap, который превращает его в сканер уязвимостей.

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

В настоящее время доступны следующие предустановленные базы данных:

  • exploitdb.csv
  • osvdb.csv
  • securitytracker.csv
  • openvas.csv
  • scipvuldb.csv
  • xforce.csv
  • securityfocus.csv
  • cve.csv

Установка

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

Затем измените права на запуск файла в системе.

Использование

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

NSE-скрипт vulscan можно использовать так же, как и nmap-vulners.

По умолчанию Vulscan выполняет поиск во всех базах данных одновременно.

Для запроса информации по всем базам данных требуется много времени.

Используя параметр vulscandb, вы можете передавать только одну базу данных CVE за раз.

Пример команды:

Сканирование отдельных уязвимостей

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

Здесь приведен список всех 600+ скриптов NSE и 139 библиотек NSE.

Примеры

http-csrf: Уязвимости подделки межсайтовых запросов (CSRF) обнаруживаются этим скриптом.

http-vmware-path-vuln: VMWare ESX, ESXi и Server проверяются на наличие уязвимости обхода пути

http-passwd: Пытается получить /etc/passwd или boot.ini, чтобы проверить, уязвим ли веб-сервер для обхода каталога.

http-internal-ip-disclosure: При отправке запроса HTTP/1.0 без заголовка Host, эта проверка определяет, раскрывает ли веб-сервер свой внутренний IP-адрес.

http-vuln-cve2013-0156: Обнаружение серверов Ruby on Rails, уязвимых к атакам DOS и инъекциям команд.

И, наконец, вот список всех скриптов NSE, которые относятся к категории “vuln“.

Разведка – это первый этап этичного хакерства и тестирования на проникновение.

Хакеры используют фазу разведки для поиска недостатков и лазеек в системе для атаки.

Поэтому системы защиты должны уметь их обнаруживать.

Вы будете получать предупреждения, если используете инструменты SIEM (Security Information and Event Management), брандмауэры и другие защитные меры.

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

Заключение

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

Время на прочтение
5 мин

Количество просмотров 18K

Приветствую тебя, дорогой читатель, в четвертой части серии статей «Приручение черного дракона. Этичный хакинг с Kali Linux».

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

Приручение черного дракона. Этичный хакинг с Kali Linux:

Часть 1. Вводная часть. Подготовка рабочего стенда.

Часть 2. Фазы атаки.

Часть 3. Footprinting. Разведка и сбор информации.

Часть 4. Сканирование и типы сканирования. Погружение в nmap.

Часть 5. Методы получения доступа к системе.

Часть 6. Пост-эксплуатация. Способы повышения привилегий.

Часть 7. Пост-эксплуатация. Закрепление в системе.

Часть 8. Методы и средства внешней разведки.

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

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

1) Сканирование сети в целях построения ее карты и понимания того, какие устройства кроме нашего в нем присутствуют (например, как мы это делали утилитой arp-scan)

2) Сканирование портов в целях обнаружения активных служб используемых на целевом устройстве (тут подойдет простое сканирование утилитой nmap, а если использовать дополнительные ключи, то можно получить гораздо больше информации о цели)

3) Сканирование уязвимостей которые можно будет успешно использовать для следующей фазы — получения доступа к системе (тут можно использовать как nmap с определенным набором скриптов, так и специальные сканеры уязвимостей вроде OpenVAS и Nessus либо отдельные сканеры для определенных сервисов по типу nikto).

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

Ну, что же… погнали!:)

Для начала выполняем уже привычные нам действия: запускаем нашу машину с Kali Linux, открываем терминал и переходим в режим суперпользователя с root правами. параллельно запускаем уязвимую машину Metasploitable2 на которой и будем отрабатывать все типы сканирования.

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

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

https://nmap.org/book/ Все команды (а вернее сказать параметры или ключи, имеющие в свою очередь определенные атрибуты) в этом списке разделены на группы. Рассмотрим самые значимые из них:

TARGET SPECIFICATION — содержит параметры определяющие тип (специфику) цели (например, если мы хотим просканировать разом целый список из множества целей вместо одной).

HOST DISCOVERY — содержит параметры обнаружение хоста (например, если нам нужно просканировать только командой ping, чтобы понять за какими адресами хосты активны, или просканировать все хосты в сети как активные не прибегая к их обнаружению).

SCAN TECHNIQUES — содержит параметры определяющие методы (техники) сканирования (например, молниеносное сканирование портов методом TCP SYN или сканирование по протоколу UDP таких сервисов как DNS, SNMP либо DHCP).

PORT SPECIFICATION AND SCAN ORDER — содержит параметры определяющие тип порта и порядок сканирования (например, если нам нужно сканировать определенный диапазон портов).

SERVICE/VERSION DETECTION — обнаружение сервиса/версии (например, в случае когда нам надо определить версию и семейство ОС установленной на целевом хосте).

SCRIPT SCAN — сканирование при помощи различных скриптов. Пожалуй, самый интересный раздел, поскольку скриптов у nmap великое множество под совершенно различные задачи, от брутфорса паролей по словарю для Telnet и SSH, до сканера CVE уязвимостей.

FIREWALL/IDS EVASION AND SPOOFING — обход сетевых средств защиты таких как межсетевые экраны и системы обнаружения вторжений. Думаю, что тут и так все понятно, для чего оно нам нужно:)

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

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

Сравним результаты сканирования без параметра -A и с ним:

Обычное сканирование без каких-либо атрибутов:

Сканирование с параметром -A:

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

И так, с определением типа и версии ОС, а так же служб все понятно. Но вот касаемо применения скриптов остаются вопросы. Для того, чтобы вывести весь список имеющийся в арсенале nmap скриптов перейдем в директорию usr/share/nmap/scripts и выведем ее содержимое командой ls

Перед нами выпадает огромнейший список скриптов, каждый из которых выполняет свою определенную функцию. Тут есть, как скрипты для поиска уязвимостей в CMS системах, базах данных SQL и отдельных сетевых службах, так и скрипты для перебора паролей методом брутфорса и много чего еще, делающего из nmap поистине мощнейший инструмент для пентестера. Разбирать все мы разумеется не будем, а остановимся только на одном в качестве примера. Это скрипт поиска по базе данных общеизвестных уязвимостей vulners.nse

Давайте запустим nmap с ключом -A и атрибутом —script прописав после атрибута полное имя файла скрипта. Важно учитывать, что запускаться скрипты должны из директории /usr/share/nmap/scripts. Для этого необходимо сперва перейти в директорию, а затем запустить команду nmap -A —script vulners.nse <IP адрес цели>

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

В выпадающем списке обнаруженных уязвимостей мы можем перейти прямо по ссылкам рядом с номером уязвимости и ознакомиться с подробной информацией по ней на сайте https://vulners.com/ либо на крупнейшем ресурсе в сети https://www.exploit-db.com/

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

Вот мы и рассмотрели ряд основных возможностей сканера nmap, который вполне заслужено является золотым стандартом в своей области применения. В ходе практики мы закрепим полученные знания и опробуем различные методы сканирования, а так же скрипты, которых, как мы уже знаем, в составе nmap великое множество.

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

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

Nmap

Сценарии Nmap scripting engine (NSE) Script — одна из самых популярных и мощных возможностей Nmap. Эти сценарии сканирования уязвимостей Nmap используются специалистами по тестированию на проникновение и хакерами для изучения общих известных уязвимостей.

Common Vulnerabilities and Exposures (CVE) — это база данных публично раскрытых проблем безопасности данных. Она служит эталонной моделью для обнаружения уязвимостей и угроз, связанных с безопасностью информационных систем.

Содержание

  1. Установка Nmap
  2. Установка GIT
  3. Сканирование уязвимостей с помощью Nmap
  4. Nmap-vulners
  5. Nmap — vuln
  6. Nmap-vulscan
  7. Сканирование отдельных уязвимостей

Установка Nmap

Nmap предустановлен почти в каждом дистрибутиве Linux. В случае его отсутствия, вам необходимо установить его вручную. Его можно легко установить с помощью следующих команд.

Debian или Ubuntu

Centos

yum install nmap

Вы также можете установить его, клонировав официальный git-репозиторий.

git clone https://github.com/nmap/nmap.git

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

./configure
make
make install

Установка GIT

Для установки скриптов нам так же понадобиться утилита GIT

Debian или Ubuntu

Centos

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

Nmap-vulners, vulscan и vuln — это распространенные и наиболее популярные скрипты обнаружения CVE в поисковой системе Nmap. Эти скрипты позволяют обнаружить важную информацию о недостатках безопасности системы.

Nmap-vulners

Одним из наиболее известных сканеров уязвимостей является Nmap-vulners. Давайте рассмотрим, как настроить этот инструмент, а также как запустить базовое CVE-сканирование. Сценарный движок Nmap выполняет поиск HTTP-ответов для выявления CPE для заданного сценария.

Установка

Чтобы установить скрипт Nmap-vulners, перейдите в каталог скриптов Nmap с помощью следующей команды.

cd /usr/share/nmap/scripts/

Следующим шагом будет клонирование git-репозитория.

git clone https://github.com/vulnersCom/nmap-vulners.git

После клонирования git-репозитория вам больше ничего не нужно будет делать для настройки. Инструмент будет установлен автоматически.

Если вы хотите увидеть NSE скрипты, присутствующие в базе данных Nmap-vulners, используйте команду ls. Она отобразит на терминале все скрипты с расширением .nse.

Использование

Использовать скрипты NSE очень просто. Просто передайте аргумент -script нашей команде Nmap, чтобы указать, какой NSE-скрипт использовать.

nmap -sV --script vulners [--script-args mincvss=<arg_val>] <target>

Не забудьте передать аргумент «-sV» при использовании скриптов NSE. Nmap-vulners не сможет получить доступ к базе данных эксплойтов Vulners, если не получит информацию о версии от Nmap. Поэтому параметр -sV необходим всегда.

Пример команды

Синтаксис команды довольно прост. Просто вызовите скрипт с параметром «-script» и укажите движок vulners и цель для начала сканирования.

nmap -sV --script nmap-vulners/ <target>

Если вы хотите сканировать какие-то определенные порты, просто добавьте опцию «-p» в конец команды и передайте номер порта, который вы хотите просканировать.

nmap -sV --script nmap-vulners/ <target> -p80,443

Nmap — vuln

Скрипты NSE классифицируются в соответствии с набором заранее определенных категорий, к которым относится каждый скрипт. Аутентификация, грубая сила, вторжение, вредоносное ПО, безопасность, версия — вот некоторые из категорий. Вы можете найти все типы категорий скриптов NSE и их фазы здесь.

Сценарии, относящиеся к категории «vuln», ищут определенные известные уязвимости и сообщают только в том случае, если таковые обнаружены в целевой системе.

nmap -sV --script vuln <target>

Nmap-vulscan

Vulscan — это скрипт NSE, который помогает Nmap обнаруживать уязвимости в целях на основе обнаружения сервисов и версий. vulscan — это модуль для Nmap, который превращает его в сканер уязвимостей. Опция Nmap -sV позволяет определять версии для каждого сервиса, что используется для выявления потенциальных эксплойтов для обнаруженных уязвимостей в системе.

В настоящее время доступны следующие предустановленные базы данных:

  • exploitdb.csv
  • osvdb.csv
  • securitytracker.csv
  • openvas.csv
  • scipvuldb.csv
  • xforce.csv
  • securityfocus.csv
  • cve.csv

Установка

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

cd /usr/share/nmap/scripts/

Следующим шагом будет клонирование git-репозитория и установка всех требований.

git clone https://github.com/scipag/vulscan.git
ln -s `pwd`/scipag_vulscan /usr/share/nmap/scripts/vulscan

Vulscan использует предварительно настроенные базы данных, сохраненные локально на нашей машине. Чтобы обновить базу данных, перейдите в каталог updater. Введите следующую команду в терминале, чтобы перейти в каталог updater.

cd vulscan/utilities/updater/

Далее измените права доступа к файлу для запуска в системе.

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

Использование

Давайте воспользуемся vulscan для сканирования уязвимостей Nmap. NSE-скрипт vulscan можно использовать так же, как и nmap-vulners.

nmap -sV --script vulscan <target>

По умолчанию Vulscan будет искать во всех базах данных одновременно. Для запроса информации по всем базам данных требуется много времени. Используя параметр vulscandb, вы можете передавать только одну базу данных CVE за раз.

--script-args vulscandb=имя_базы_данных

Пример команды

nmap -sV --script vulscan --script-args vulscandb=exploit.csv <target> -p 80,443

Сканирование отдельных уязвимостей

Индивидуальное сканирование уязвимостей также может быть выполнено с использованием определенных скриптов в каждой категории. Здесь приведен список всех 600+ скриптов NSE и 139 библиотек NSE.

http-csrf: Этот скрипт обнаруживает уязвимости межсайтовой подделки запросов (CSRF).

nmap -sV --script http-csrf <target>

http-sherlock: Предназначен для эксплуатации уязвимости «shellshock» в веб-приложениях.

nmap -sV --script http-sherlock <target>

http-slowloris-attack: Не запуская DoS-атаку, этот скрипт проверяет веб-сервер или целевую систему на наличие уязвимости для проведения DoS-атаки Slowloris.

nmap -sV --script http-slowloris-check <target>

http-vmware-path-vuln: VMWare ESX, ESXi и Server проверяются на наличие уязвимости обхода пути.

nmap -sV --script http-vmware-path-vuln <target>

http-passwd: Пытается получить /etc/passwd или boot.ini, чтобы проверить, уязвим ли веб-сервер к обходу каталога.

nmap -sV --script http-passwd <target>

http-internal-ip-disclosure: При отправке запроса HTTP/1.0 без заголовка Host эта проверка определяет, не раскрывает ли веб-сервер свой внутренний IP-адрес.

nmap -sV --script http-internal-ip-disclosure <target>

http-vuln-cve2013-0156: Обнаруживает серверы Ruby on Rails, уязвимые к атакам DOS и инъекции команд.

nmap -sV --script http-vuln-cve2013-0156 <target>

И, наконец, вот список всех скриптов NSE, которые относятся к категории «vuln».

Nmap, or network mapper, is a toolkit for functionality and penetration testing throughout a network, including port scanning and vulnerability detection.

Nmap scripting engine (NSE) Script is one of the most popular and powerful capabilities of Nmap. These Nmap vulnerability scan scripts are used by penetration testers and hackers to examine common known vulnerabilities.

Common Vulnerabilities and Exposures (CVE) is a database of publicly disclosed data security issues. It serves as a reference model for detecting vulnerabilities and threats related to the security of information systems.

In this article, we’ll look at how to use Nmap for Vulnerability Scan.

Let’s get started!

Nmap Installation

Nmap is pre-installed in almost every Linux distribution. In case it’s missing, you need to install it manually. It can be easily installed with the following command.

apt-get install nmap

And you can also install it by cloning the official git repository.

git clone https://github.com/nmap/nmap.git

Next, navigate to that directory and install the requirements using the below commands.

./configure
make
make install

This software’s most recent version, as well as binary installers for Windows, macOS, and Linux (RPM), are available here.

Vulnerability scan with Nmap

Nmap-vulners, vulscan, and vuln are the common and most popular CVE detection scripts in the Nmap search engine. These scripts allow you to discover important information about system security flaws.

Nmap-vulners

One of the most well-known vulnerability scanners is Nmap-vulners. Let’s look at how to set up this tool as well as how to run a basic CVE scan. The Nmap script engine searches HTTP responses to identify CPEs for the given script.

Installation

To install the Nmap-vulners script, navigate to the Nmap scripts directory using the following command.

cd /usr/share/nmap/scripts/

The Next step is to clone the git repository.

git clone https://github.com/vulnersCom/nmap-vulners.git

After cloning the git repository, you won’t need to do anything else for the configuration. The tool will be automatically installed.

And if you want to see the NSE scripts present in Nmap-vulners database, use ls command. It will display all the .nse extension scripts on the terminal.

Usage

It’s easy to use NSE scripts. Simply pass the -script argument to our Nmap command to instruct what NSE script to use.

nmap -sV --script vulners [--script-args mincvss=<arg_val>] <target>

Don’t forget to pass “-sV” argument while using NSE scripts. Nmap-vulners will be unable to access the Vulners exploit database if it does not receive any version information from Nmap. So, the -sV parameter is required all the time.

Example command

The syntax is quite straightforward. Just call the script with “–script” option and specify the vulners engine and target to begin scanning.

nmap -sV --script nmap-vulners/ <target>

If you wish to scan any specific ports, just add “-p” option to the end of the command and pass the port number you want to scan.

nmap -sV --script nmap-vulners/ <target> -p80,223

Nmap – vuln

NSE scripts are classified according to a set of predetermined categories to which each script belongs. Authentication, broadcast, brute force, intrusive, malware, safe, version, and vuln are some of the categories. You can find all the category types of NSE scripts and their phases here.

The scripts which come under the “vuln” category look for specific known vulnerabilities and only report back if any are identified in the target system.

nmap -sV --script vuln <target>

Nmap-vulscan

Vulscan is an NSE script that assists Nmap in detecting vulnerabilities on targets based on services and version detections. vulscan is like a module for Nmap that transforms it into a vulnerability scanner. The Nmap option -sV allows for per-service version detection, which is used to identify potential exploits for the detected vulnerabilities in the system. 

Currently, the following pre-installed databases are available:

  • exploitdb.csv
  • osvdb.csv
  • securitytracker.csv
  • openvas.csv
  • scipvuldb.csv
  • xforce.csv
  • securityfocus.csv
  • cve.csv

Installation

To install the Vulscan, First, go to the Nmap scripts directory by using the following command.

cd /usr/share/nmap/scripts/

The Next step is to clone the git repository and install all the requirements.

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

ln -s `pwd`/scipag_vulscan /usr/share/nmap/scripts/vulscan 

Vulscan makes use of pre-configured databases saved locally on our machine. To update the database, go to the updater directory. Type the following command into a terminal to navigate to the updater directory.

cd vulscan/utilities/updater/

Next, change the permissions of the file to be run in the system.

chmod +x updateFiles.sh

And finally, update the exploit databases with the below command.

 ./updateFiles.sh

Usage

Let’s use vulscan to do a Nmap vulnerability scan. The vulscan NSE script can be used in the same way as nmap-vulners.

nmap -sV --script vulscan <target>

By default, Vulscan will search all of the databases simultaneously. It takes a lot of time to query information using all the databases. Using the vulscandb parameter, you can pass only one CVE database at a time.

--script-args vulscandb=database_name

Example Command

nmap -sV --script vulscan --script-args vulscandb=exploit.csv <target> -p 80,233

Individual vulnerability Scanning

Individual vulnerability scans can also be performed utilizing particular scripts within each category. Here is a list of all 600+ NSE scripts and 139 NSE libraries.

Examples

  • http-csrf: Cross-Site Request Forgery (CSRF) vulnerabilities are detected by this script.
nmap -sV --script http-csrf <target>
  • http-sherlock: Intends to exploit the “shellshock” vulnerability in web applications.
nmap -sV --script http-sherlock <target>
  • http-slowloris-attack: Without launching a DoS attack, this script checks a web server or a target system for vulnerability to perform the Slowloris DoS attack.
nmap -sV --script http-slowloris-check <target>
  • http-vmware-path-vuln: VMWare ESX, ESXi, and Server are all tested for a path-traversal vulnerability
nmap -sV --script http-vmware-path-vuln <target>
  • http-passwd: Attempts to retrieve /etc/passwd or boot.ini to see if a web server is vulnerable to directory traversal.
nmap -sV --script http-passwd <target>
  • http-internal-ip-disclosure: When sending an HTTP/1.0 request without a Host header, this check determines if the web server leaks its internal IP address.
nmap -sV --script http-internal-ip-disclosure <target>
  • http-vuln-cve2013-0156: Detects Ruby on Rails servers that are vulnerable to DOS attacks and command injection.
nmap -sV --script http-vuln-cve2013-0156 <target-address>

And finally, here is a list of all NSE scripts which come under the “vuln” category.

Is your system capable of detecting Nmap scans?

Reconnaissance is the first phase in ethical hacking and penetration testing. Hackers use the reconnaissance phase to locate flaws and loopholes in a system to attack. Therefore defense systems should be able to detect them.

You will receive alerts if you use SIEM (Security Information and Event Management )tools, firewalls, and other defensive measures. And here is a list of the best SIEM Tools to Secure Your business and organization from Cyberattacks. These tools even help in logging Nmap scans. Vulnerability scans are worthwhile since early identification can avert future damage to the systems.

Conclusion

I hope you found this article very useful in learning how to use Nmap for vulnerability scan.

You may also be interested in learning the list of Open Source Web Security Scanners to find vulnerabilities.

If you’re concerned about cybersecurity and are interested in securing your network using Nmap vulnerability scanning, this article is for you.

Nmap is a powerful tool used by network administrators, penetration testers, and ethical hackers for network scanning and monitoring.

Let’s dive in deeper to learn more about how you can use Nmap for vulnerability scanning.

What is Nmap Vulnerability Scanning Anyway?

In cybersecurity terms, a vulnerability is a weakness or loophole left in software code that allows attackers to infiltrate a system and run malicious code or install malware.

Such an intrusion, when successful, can allow bad actors to steal or destroy data, take over systems and accounts, and execute unauthorized actions on behalf of the compromised user.

nmap.org home page

Nmap Vulnerability Scanning

Nmap vulnerability scanning is the process of using Nmap to scan for and identify known vulnerabilities. Even though Nmap isn’t primarily a vulnerability scanner, the tool’s robust script library makes it possible for cybersecurity professionals to use it for this purpose effectively.

Objectives of Nmap Vulnerability Scanning

As an ethical hacker or a penetration tester, the goal of Nmap vulnerability scanning is to gather information about a target host, system, network, or an information technology asset, test it for weaknesses, attempt to exploit those weaknesses, and report on the findings so appropriate security measures can be taken to eliminate any reported problems.

Nmap vulnerability scanning may also be conducted to check the effectiveness of an organization’s security policy, adherence to compliance regulations, company-wide awareness of security measures, and the ability of an organization to flag and respond to security threats and violations.

How Nmap Vulnerability Scanning Works

Background

In 2013, US officials acknowledged that cyber-attacks have become a bigger threat than terrorism. Attackers can use vulnerabilities in software code to disrupt computer networks, steal or destroy data, and take over systems and accounts.

With increasing reliance on digitization globally, such attacks can lead to major infrastructure problems for countries, be it power, transportation, agriculture, media, finance, or defense.

In 2021 alone, nearly 22,000 cybersecurity vulnerabilities were published, the highest number ever recorded in a year. This underscores the need for better awareness for individuals and businesses on staying safe online and effectively deploying the necessary cybersecurity tools available today.

This is Where Nmap Comes In

Nmap, also called Network Mapper, is a network scanner created by Gordon Lyon in September 1997. It is a command-line tool, initially developed for Linux but is now available on other operating systems including Windows, macOS, and BSD.

Nmap can probe networks in a variety of ways, such as detecting hosts, services, operating systems, etc by sending IP packets and analyzing the responses.

What Can Nmap Do?

Here’s a quick look at what Nmap is capable of:

Scan Active IPs

Get detailed reporting on every IP on your network to figure out if a certain IP address is compromised and needs further investigation. Nmap can flag compromised IPs and report on whether they’re being used by a legitimate network service or a hacker.

Scan Your Entire Network

Nmap can help you visualize and map out your entire local network. It can also show you a list of active live hosts, available ports, and the operating systems running on every device connected.

Scan for Vulnerabilities

In addition to a number of network scanning functions, Nmap can also be used to identify vulnerabilities in your network. The tool gives you a front-row view of what attackers would see if they attempt to infiltrate your network defenses. This can help you prepare better for any future cybersecurity threats.

Visualize Your Network

Nmap is a command-line tool. But it has a graphical user interface called Zenmap that can help you visually map your network so you can understand it better and prepare reports that are easier to understand.

Nmap Commands

The default command format for Nmap is:

nmap [Scan Type(s)] [Options] {target specification}

You can simply write “nmap” and press enter at the command prompt for detailed instructions on each scan type and the options that can be used with them.

Here’s a quick summary of some common commands you can try when using Nmap:

Ping Scanning

A ping scan can return information on every IP active on your target network.

You can use the following command to run a basic ping scan:

  • nmap scanme.nmap.org

The result should look something like this:

nmap 192.168.18.7

Starting Nmap 7.92 ( https://nmap.org ) at 2022-04-26 17:19

Nmap scan report for 192.168.18.7

Host is up (0.00082s latency).

Not shown: 996 closed tcp ports (reset)

PORT     STATE SERVICE

135/tcp  open  msrpc

139/tcp  open  netbios-ssn

445/tcp  open  microsoft-ds

5357/tcp open  wsdapi

Nmap done: 1 IP address (1 host up) scanned in 0.59 seconds

Note: Port scanning can sometimes get you in trouble with the law or your employer. So, it’s safer to use the “-sn” parameter to disable port scanning when running a ping request.

Scan for Open Ports

Where port scanning is safe, there are numerous ways to do so. The differences among the various kinds of port scans are determined by whether you want to cover TCP or UDP ports and if they’re on a TCP connection.

For example, if you run a TCP Connect scan, Nmap is going to query every host on the network and request a response. On the other hand, the UDP scan would send UDP packets to scan DNS, SNMP, and DHCP ports to achieve the same result.

Let’s have a look at the different port scanning commands and options below.

Use the -p parameter to run a scan for a specific port:

nmap -p 973 scanme.nmap.org

Use a TCP connection to scan for a particular connection type—provided you specify the type of port:

nmap -p T:7777,973 scanme.nmap.org

You can scan a range of ports using hyphens:

nmap -p 76–973 scanme.nmap.org

Use the -top-ports parameter to specify the top n ports to scan:

nmap –top-ports 10 scanme.nmap.org

Scan Hosts

Get detailed information on a certain host or a full range of IP addresses. Furthermore, get useful information about latency, MAC addresses, and descriptions linked to these addresses. This is a quick and easy way to identify and disconnect suspicious hosts from your network.

Run the following command to execute host scanning:

To scan multiple hosts simultaneously, simply write the host addresses one after the other with a space in between as shown below:

nmap 192.168.1.1 192.168.0.2 192.168.1.2

You can also scan the full subnet range using the asterisk (*) wildcard:

nmap 192.168.1.*

To scan particular subnets, simply type them out and separate them with commas:

nmap 192.164.0.1,2,3,4

You can tell Nmap to scan a full range of IPs by using a hyphen:

nmap 192.164.0.0–255

The same rules apply to hostnames. Just replace the IPs with hostnames and you’re good to go.

Identify Operating Systems

One of the most powerful abilities of Nmap is to run scans to identify what operating system is the target running. Every OS has its own set of vulnerabilities, so having this information forms an important part of the puzzle.

Nmap identifies operating systems by sending TCP and UDP packets to a certain port, analyzing the response, and comparing that response with its OS database.

You can run an OS scan by typing:

nmap -sV scanme.nmap.org

It’s important to note that OS detection isn’t always 100% accurate. It’s only one piece of the puzzle that needs to be seen in the context of other relevant information obtained about the target.

Stealth Scanning

Stealth scans are executed to avoid detection by firewalls and security systems. This is achieved by avoiding a 3-way handshake between the systems. Nmap sends a SYN packet and analyzes the response from the target. If it also responds with SYN or ACK, that’s an indication that the part is open and a TCP connection can be established.

Use the following command to run a stealth scan:

nmap -sS scanme.nmap.org

Scan Commonly Used Ports

This command scans several “most commonly used” ports of a target.

To execute this command, enter the following:

nmap –top-ports n scanme.nmap.org

Where n is the number of ports you’d like to scan.

Output to a File

Sometimes, you’d want to share a log of the results you get from your scans instead of saving screenshots. Nmap allows you to save your scan results to several file formats.

Use the following parameters:

To save the results to a text file: -oN output.txt

To save the results to an XML file: -oX output.xml

Using Nmap for Vulnerability Scanning

As discussed earlier, the primary function of Nmap is not to scan for vulnerabilities. But the tool can be supercharged using scripts to obtain even more information on a target. Vulnerability detection is one such feature that is enabled via the Nmap Scripting Engine.

Nmap Scripting Engine

The Nmap Scripting Engine or NSE is an incredible Nmap feature. It’s a suite of scripts that you can use to find security weaknesses in your system. In addition, you can also write NSE scripts yourself using the Lua programming language to shape Nmap’s behavior according to your needs. 

Nmap Vulnerability Scanning Scripts

Nmap vulnerability scanning scripts are sets of instructions for Nmap for particular use cases. These scripts form the basis of what we know as the Nmap Scripting Engine. Nmap vulnerability scanning scripts, combined with Nmap commands, can detect Common Vulnerabilities and Exposures or CVEs on your target network.

Three of the most popular scripts for Nmap vulnerability scanning are vuln, vulscan, and nmap-vulners. These scripts help to identify and retrieve information on countless CVEs every year and make Nmap a robust vulnerability scanner.

NSE Scripts Page

Visit the NSE Scripts page to browse and download more scripts.

Example #1: Using the Vulscan Script for Vulnerability Scanning

Vulscan has a set of comprehensive CVE databases that it queries when required. These databases are all hosted on the client’s system and include the following files:

  • Osvdb.csv
  • Securitytracker.csv
  • Openvas.csv
  • Exploitdb.csv
  • Xforce.csv
  • Securityfocus.csv
  • Cve.csv
  • Scipvuldb.csv

Once installed, the vulscan script for Nmap can be activated using the following command:

  • nmap -sV –script=vulscan/vulscan.nse www.example.com 

Note: www.example.com is your target host.

Please allow some time for the scan to be completed. The result of the activity should look something like this:

nmap -sV –script=vulscan/vulscan.nse 192.168.1.105

Starting Nmap 7.70 ( https://nmap.org ) at 2022-04-24 11:24 -03

Nmap scan report for 192.168.1.105 (192.168.1.105)

Host is up (0.000061s latency).

Not shown: 999 closed ports

PORT STATE SERVICE VERSION

53/tcp open domain dnsmasq 2.80

| vulscan: VulDB – https://vuldb.com:

| [49778] Thekelleys dnsmasq up to 2.32 tftp.c tftp_request memory corruption

| [43410] The Kelleys dnsmasq 2.43 Crash denial of service

| [43287] Thekelleys dnsmasq 2.25 Crash denial of service

| MITRE CVE – https://cve.mitre.org:

| [CVE-2013-0198] Dnsmasq before 2.66test2, when used with certain libvirt configurations, replies to queries from prohibited interfaces, which allows remote attackers to cause a denial of service (traffic amplification) via spoofed TCP based DNS queries. NOTE: this vulnerability exists because of an incomplete fix for CVE-2012-3411.

| [CVE-2012-3411] Dnsmasq before 2.63test1, when used with certain libvirt configurations, replies to requests from prohibited interfaces, which allows remote attackers to cause a denial of service (traffic amplification) via a spoofed DNS query.

| [CVE-2009-2958] The tftp_request function in tftp.c in dnsmasq before 2.50, when –enable-tftp is used, allows remote attackers to cause a denial of service (NULL pointer dereference and daemon crash) via a TFTP read (aka RRQ) request with a malformed blksize option.

| SecurityFocus – https://www.securityfocus.com/bid/:

| [31017] Dnsmasq DCHP Lease Multiple Remote Denial Of Service Vulnerabilities

| [17662] DNSmasq Broadcast Reply Denial Of Service Vulnerability

| [12897] Dnsmasq Multiple Remote Vulnerabilities

Nmap done: 1 IP address (1 host up) scanned in 11.25 seconds

Example #2: Using the Nmap-Vulners Script for Vulnerability Scanning

Nmap-vulners is another popular vulnerability scanning script. It relies on the Vulners exploit database when we execute the NSE script. To run a simple CVE or vulnerability scan, follow the syntax below after installing the script:

  • nmap –script nmap-vulners/ -sV 55.44.33.22

Just replace the IP given above with your target’s IP, and you’re good to go. Similarly, you can use a hostname instead of an IP address in the command.

For example:

nmap –script nmap-vulners/ -sV scanme.nmap.org

The addition of the -sV parameter here ensures you get the version information of the services active on the host system.

The expected output should look like this:

nmap –script nmap-vulners/ -sV 192.168.1.105 -p 21-80

Starting Nmap 7.70 ( https://nmap.org ) at 2019-10-25 10:41 -03

Nmap scan report for 192.168.1.105

Host is up (0.34s latency).

Not shown: 55 closed ports

PORT STATE

21/tcp open ftp ProFTPD 1.3.3e

22/tcp open ssh OpenSSH 5.3p1 Debian 3 ubuntu7.1 (Ubuntu Linux; protocol 2.0)

| vulners:

| cpe:/a:openbsd:openssh:5.3p1:

| CVE-2016-10708 5.0 https://vulners.com/cve/CVE-2016-10708 8

| CVE-2017-15906 5.0 https://vulners.com/cve/CVE-2017-15906

| CVE-2018-15473 5.0 https://vulners.com/cve/CVE-2018-15473

|_ CVE-2016-0777 4.0 https://vulners.com/cve/CVE-2016-0777

25/tcp open smtp Postfix smtpd

53/tcp open domain ISC BIND DNS

| vulners:

| ISC BIND DNS:

| CVE-2012-1667 8.5 https://vulners.com/cve/CVE-2012-1667

| CVE-2002-0651 7.5 https://vulners.com/cve/CVE-2002-0651

| CVE-2002-0029 7.5 https://vulners.com/cve/CVE-2002-0029

80/tcp open http nginx 1.4.1

|_http-server-header: nginx/1.4.1

Example #3: DOS Attack Vulnerability Scan

DOS or Denial of Service attacks are among the most common and easiest attacks to carry out. That’s all the more reason for being prepared for them. Use the built-in DOS script to scan for DOS vulnerability. Type the following:

  • Nmap –script dos scanme.nmap.org

How to Get Started With Nmap Vulnerability Scanning

Step 1: Installation

Nmap download page

The first step in the process is to install Nmap for your operating system.

Visit the Nmap download page and choose the right operating system.

Follow the instructions of the installation package to set up Nmap on your system.

Step 2: Install the Required Scripts

The commands used here to install the scripts are for Linux-based systems since that’s the dominant operating system for Nmap.

Vulscan:

To install Vulscan, use the following commands:

  • git clone https://github.com/scipag/vulscan scipag_vulscan
  • ln -s `pwd`/scipag_vulscan /usr/share/nmap/scripts/vulscan

Nmap-vulners:

To install Nmap-vulners, type the following:

  • cd /usr/share/nmap/scripts/
  • git clone https://github.com/vulnersCom/nmap-vulners.git

Step 3: Run the Vulnerability Scans

Vuln: 

The vuln script comes built-in with Nmap. To activate it in its most basic form, simply type:

  • Nmap –script vuln scanme.nmap.org

Note: scanme.nmap.org can be replaced with your target host.

Vulscan:

To activate the Vulscan vulnerability scan, type:

  • nmap -sV –script=vulscan/vulscan.nse www.example.com 

Note: www.example.com is your target host.

Nmap-vulners:

To execute the Nmap-vulners vulnerability scanning script, enter the following command:

  • nmap –script nmap-vulners/ -sV 55.44.33.22

Note: 55.44.33.22 should be replaced with your target IP or hostname.

Понравилась статья? Поделить с друзьями:
  • Как найти все счета умершего родственника
  • Как составить акт технического обследования объекта
  • Как найти график касательной к параболе
  • Как найти разность двух отрезков
  • Как найти маленькую сестру