Nmap, или network mapper, - это набор инструментов для функционального тестирования и тестирования на проникновение во всей сети, включая сканирование портов и обнаружение уязвимостей.
Сценарии Nmap scripting engine (NSE) Script - одна из самых популярных и мощных возможностей Nmap. Эти сценарии сканирования уязвимостей Nmap используются специалистами по тестированию на проникновение и хакерами для изучения общих известных уязвимостей.
Common Vulnerabilities and Exposures (CVE) - это база данных публично раскрытых проблем безопасности данных. Она служит эталонной моделью для обнаружения уязвимостей и угроз, связанных с безопасностью информационных систем.
Установка Nmap
Nmap предустановлен почти в каждом дистрибутиве Linux. В случае его отсутствия, вам необходимо установить его вручную. Его можно легко установить с помощью следующих команд.
Debian или Ubuntu
1 | apt-get install nmap |
Centos
yum install nmap
Вы также можете установить его, клонировав официальный git-репозиторий.
1 | git clone https://github.com/nmap/nmap.git |
Затем перейдите в этот каталог и установите необходимые требования с помощью следующих команд.
1 2 3 | ./configure make make install |
Установка GIT
Для установки скриптов нам так же понадобиться утилита GIT
Debian или Ubuntu
1 | apt install git |
Centos
1 | yum install git |
Сканирование уязвимостей с помощью Nmap
Nmap-vulners, vulscan и vuln - это распространенные и наиболее популярные скрипты обнаружения CVE в поисковой системе Nmap. Эти скрипты позволяют обнаружить важную информацию о недостатках безопасности системы.
Nmap-vulners
Одним из наиболее известных сканеров уязвимостей является Nmap-vulners. Давайте рассмотрим, как настроить этот инструмент, а также как запустить базовое CVE-сканирование. Сценарный движок Nmap выполняет поиск HTTP-ответов для выявления CPE для заданного сценария.
Установка
Чтобы установить скрипт Nmap-vulners, перейдите в каталог скриптов Nmap с помощью следующей команды.
1 | cd /usr/share/nmap/scripts/ |
Следующим шагом будет клонирование git-репозитория.
1 | git clone https://github.com/vulnersCom/nmap-vulners.git |
После клонирования git-репозитория вам больше ничего не нужно будет делать для настройки. Инструмент будет установлен автоматически.
Если вы хотите увидеть NSE скрипты, присутствующие в базе данных Nmap-vulners, используйте команду ls. Она отобразит на терминале все скрипты с расширением .nse.
Использование
Использовать скрипты NSE очень просто. Просто передайте аргумент -script нашей команде Nmap, чтобы указать, какой NSE-скрипт использовать.
1 | nmap -sV --script vulners [--script-args mincvss=<arg_val>] <target> |
Не забудьте передать аргумент "-sV" при использовании скриптов NSE. Nmap-vulners не сможет получить доступ к базе данных эксплойтов Vulners, если не получит информацию о версии от Nmap. Поэтому параметр -sV необходим всегда.
Пример команды
Синтаксис команды довольно прост. Просто вызовите скрипт с параметром "-script" и укажите движок vulners и цель для начала сканирования.
1 | nmap -sV --script nmap-vulners/ <target> |
Если вы хотите сканировать какие-то определенные порты, просто добавьте опцию "-p" в конец команды и передайте номер порта, который вы хотите просканировать.
1 | nmap -sV --script nmap-vulners/ <target> -p80,443 |
Nmap - vuln
Скрипты NSE классифицируются в соответствии с набором заранее определенных категорий, к которым относится каждый скрипт. Аутентификация, грубая сила, вторжение, вредоносное ПО, безопасность, версия - вот некоторые из категорий. Вы можете найти все типы категорий скриптов NSE и их фазы здесь.
Сценарии, относящиеся к категории "vuln", ищут определенные известные уязвимости и сообщают только в том случае, если таковые обнаружены в целевой системе.
1 | 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, используя следующую команду.
1 | cd /usr/share/nmap/scripts/ |
Следующим шагом будет клонирование git-репозитория и установка всех требований.
1 2 | git clone https://github.com/scipag/vulscan.git ln -s `pwd`/scipag_vulscan /usr/share/nmap/scripts/vulscan |
Vulscan использует предварительно настроенные базы данных, сохраненные локально на нашей машине. Чтобы обновить базу данных, перейдите в каталог updater. Введите следующую команду в терминале, чтобы перейти в каталог updater.
1 | cd vulscan/utilities/updater/ |
Далее измените права доступа к файлу для запуска в системе.
1 | chmod +x updateFiles.sh |
И наконец, обновите базы данных эксплойтов с помощью следующей команды.
1 | ./updateFiles.sh |
Использование
Давайте воспользуемся vulscan для сканирования уязвимостей Nmap. NSE-скрипт vulscan можно использовать так же, как и nmap-vulners.
1 | nmap -sV --script vulscan <target> |
По умолчанию Vulscan будет искать во всех базах данных одновременно. Для запроса информации по всем базам данных требуется много времени. Используя параметр vulscandb, вы можете передавать только одну базу данных CVE за раз.
1 | --script-args vulscandb=имя_базы_данных |
Пример команды
1 | nmap -sV --script vulscan --script-args vulscandb=exploit.csv <target> -p 80,443 |
Сканирование отдельных уязвимостей
Индивидуальное сканирование уязвимостей также может быть выполнено с использованием определенных скриптов в каждой категории. Здесь приведен список всех 600+ скриптов NSE и 139 библиотек NSE.
http-csrf: Этот скрипт обнаруживает уязвимости межсайтовой подделки запросов (CSRF).
1 | nmap -sV --script http-csrf <target> |
http-sherlock: Предназначен для эксплуатации уязвимости "shellshock" в веб-приложениях.
1 | nmap -sV --script http-sherlock <target> |
http-slowloris-attack: Не запуская DoS-атаку, этот скрипт проверяет веб-сервер или целевую систему на наличие уязвимости для проведения DoS-атаки Slowloris.
1 | nmap -sV --script http-slowloris-check <target> |
http-vmware-path-vuln: VMWare ESX, ESXi и Server проверяются на наличие уязвимости обхода пути.
1 | nmap -sV --script http-vmware-path-vuln <target> |
http-passwd: Пытается получить /etc/passwd или boot.ini, чтобы проверить, уязвим ли веб-сервер к обходу каталога.
1 | nmap -sV --script http-passwd <target> |
http-internal-ip-disclosure: При отправке запроса HTTP/1.0 без заголовка Host эта проверка определяет, не раскрывает ли веб-сервер свой внутренний IP-адрес.
1 | nmap -sV --script http-internal-ip-disclosure <target> |
http-vuln-cve2013-0156: Обнаруживает серверы Ruby on Rails, уязвимые к атакам DOS и инъекции команд.
1 | nmap -sV --script http-vuln-cve2013-0156 <target> |
И, наконец, вот список всех скриптов NSE, которые относятся к категории "vuln".