Статья Наращиваем потенциал nmap (nmap+vulscan)

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

Начало
Всем знакома такая утилита как nmap. Она даже не нуждается в представлении, ибо любой эникейщих хоть раз в жизни её запускал, а пользователи данного ресурса скорее всего используют её даже в повседневной жизни.
А вот vulscan - это уже интереснее.
Vulscan - это модуль, который расширяет nmap до сканера уязвимостей. Опция nmap -sV обеспечивает обнаружение версии для каждой службы, которая используется для определения потенциальных недостатков в соответствии с идентифицированным продуктом.(Перевод с оф.сайта)
Если пересказывать своими словами то, vulscan - это дополнительный модуль, состоящий из скрипта и 8-ми баз с записями об уязвимостях в формате csv.

Как показали мои опыты с данным продуктом, процесс анализа происходит так:
  1. Nmap с ключом -sV сканирует таргет на открытые порты (а так же получает информацию об версии софта или службы на данном порту)
  2. После того он начинает сверять полученный результат по всем 8-ми базам, и при совпадении это выдавать на экран.
Установка
Установка занимает минимум по времени, и немного знания линукс.

  1. Устанавливаем nmap, у кого его нет
    Bash:
    sudo apt-get install nmap
  2. Скачиваем архив с Github
    Bash:
    git clone https://github.com/scipag/vulscan.git
  3. Если следовать той инструкции когда я познавал сие творение, то копируем полученную папку к nmap
    Bash:
    cp -R vulscan/ /usr/share/nmap/scripts/
  4. И не забываем выдать права на папку, в противном случаи nmap не сможет их запустить
Запуск и использование
Bash:
nmap -sV --script=vulscan/vulscan.nse Ваш-таргет
Но по своему опыту скажу, лучше весь вывод nmapa отправлять в файл, ибо текста много и он нам не раз понадобится.
Время данных проверок могут варьироваться от 30 секунд до 5 минут.

Разбор полётов и примеры.
Для того что бы сформировать ваше первое мнение я проведу пару тестов и попытаюсь рассказать как я лично это использую.
Примерами будут выступать один из корпоративных сайтов(1) который я обслуживаю (он находится у стороннего хостинга), и личный домашний сервачёк(2) с поднятым LAMP+nextcloud находящийся за NAT.



(1)
Шапка
Безымянный.jpg

21/tcp open ftp Pure-FTPd
| vulscan: scip VulDB - :
| [102925] Foscam C1 Indoor HD Camera 2.52.2.37 Web Management Interface pureftpd.passwd HTTP Request privilege escalation
[/QUOTE]
Зачем на web сервере держать камеру, да и сомневаюсь я,что она там есть. Хотя есть предположение, часть инфы он берет от ресурса за маршрутизатором, а часть он него. К примеру (Если за роутером стоит web сервер только c http, а перед ним роутер/маршрутизатор с включенным ssh, то в выводе мы увидем и оба сервиса, так как мы обращаемся к адресу самого маршрутизатора).
Остальной вывод nmapa будет находится в прикрепленом файле site.txt . Единственное что бы я хотел дополнить, я лично при анализе какого либо ресурса не обращаю внимание на каждую строку, а сперва просматриваю строки с указанием на CVE.

(2)
Второй пример, я так же не буду расписывать, вы сами можете его рассмотреть в файле (mysrv.txt). Он не сильно отличается от первого примера, за исключением того что тут nmap смог обнаружить один из 3-х портов находящийся за 5000 пулом. А так же каким то фигом он начал репортить об apple устройствах в той же сети (надо будет потом перепроверить это).

5080/tcp open ssl/ssl Apache httpd (SSL-only mode)
| [94348] Apple macOS up to 10.12.1 apache_mod_php denial of service
| [94347] Apple macOS up to 10.12.1 apache_mod_php denial of service
| [94346] Apple macOS up to 10.12.1 apache_mod_php denial of service
| [94345] Apple macOS up to 10.12.1 apache_mod_php denial of service
| [94344] Apple macOS up to 10.12.1 apache_mod_php denial of service
| [94343] Apple macOS up to 10.12.1 apache_mod_php memory corruption
| [94342] Apple macOS up to 10.12.1 apache_mod_php memory corruption

Вывод и свое мнение.
Развлекаясь с данной связкой, я пришел к выводу (по крайней мере для себя):
  1. Хоть оно и выдает много информации, ведя поиск только по CVE можно потихоньку учиться работе с базами уязвимостей (как новичку, кем я на данный момент и являюсь в сфере ИБ), а так же и знакомиться и изучать огромный список уже известных дыр.
  2. Данные базы представленные в описании имеют свежые обновления, некоторые не обновлялись уже с 13 года. Но я считаю, что полезную информацию или старую дырку в безопасности с помощью этого можно обнаружить.
  3. И последнее, что хотел сказать: Как по мне, нельзя со 100% доверяться ей, и анализ лучше проводить не из вне, а на оборот в локальной сети.
 

mCstl

Green Team
08.08.2017
83
71
BIT
0
есть еще подобные скрипты:

Код:
nmap --script nmap-vulners -sV 

nmap --script vulscan -sV 

nmap --script vulscan --script-args vulscandb=scipvuldb.csv -sV

nmap --script vulscan --script-args vulscandb=exploitdb.csv -sV 

nmap --script vulscan --script-args vulscandb=securitytracker.csv -sV
 

ftp13

Green Team
18.02.2017
31
33
BIT
0
есть еще подобные скрипты:

Код:
nmap --script nmap-vulners -sV
nmap --script vulscan -sV
nmap --script vulscan --script-args vulscandb=scipvuldb.csv -sV
nmap --script vulscan --script-args vulscandb=exploitdb.csv -sV
nmap --script vulscan --script-args vulscandb=securitytracker.csv -sV
Только скорее надо писать vulscan.nse, и параметр --script-args vulscandb позволяет сканить только по одной конкретно указанной бд.
То есть мы с вами говорим про один и тот же скрипт, но с разными ключами.
 

Frick_go

Member
03.07.2019
8
0
BIT
0
Получается что вместо таргета надо писать ip адрес домена?
 

TrUffAlDiNo

Заблокирован
29.10.2019
115
32
BIT
0
И не забываем выдать права на папку, в противном случаи nmap не сможет их запустить
А какие там права надо выдавать ?
Все права на папку /usr/share/nmap и вложенные папки и файлы имеет суперпользователь и никто кроме него.
Там нужно только файл обновления сделать исполняемым.

Делаем скрипт обновления исполняемым:
# chmod +x /usr/share/nmap/scripts/vulscan/utilities/updater/updateFiles.sh

Но рассмотренный в теме скрипт - не единственный.
Первый Nmap-vulners

Второй Nmap-vulners

##########################################################################################
Первый Nmap-vulners

Действия производятся под учёткой суперпользователя:
Переходим во временную папку:
# cd /tmp

Клонируем с github:
# git clone GitHub - scipag/vulscan: Advanced vulnerability scanning with Nmap NSE

Копируем в папку со скриптами nmap:
# cp -R vulscan/ /usr/share/nmap/scripts/

Переходим в папку, где находятся утилиты скрипта:
# cd /usr/share/nmap/scripts/vulscan/utilities/updater/

Делаем скрипт обновления исполняемым:
# chmod +x updateFiles.sh

Обновление:
# ./updateFiles.sh

Cканирование:
# nmap -sV script=vulscan/vulscan.nse <target>

Сканирование при помощи какой-то определённой базы:
nmap script=vulscan/vulscan.nse --script-args vulscandb=exploitdb.csv -sV <target IP>

Примеры баз на сайте GitHub - scipag/vulscan: Advanced vulnerability scanning with Nmap NSE или в паке /usr/share/nmap/scripts/vulscan
exploitdb.csv
openvas.csv
scipvuldb.csv

Полный скан сразу в одной команде
nmap script=vulscan/vulscan.nse --script-args vulscandb=scipvuldb.csv -sV -sV <target IP>


##########################################################################################
Второй Nmap-vulners

cd /usr/share/nmap/scripts/
git clone GitHub - vulnersCom/nmap-vulners: NSE script based on Vulners.com API
 
  • Нравится
Реакции: Muxtar и Crazy Jack

Crazy Jack

Well-known member
08.07.2017
573
89
BIT
35
Спасибо за развернутую статью.
Под Windows сделал командный файлик:

echo nmap -sV --script=vulscan/vulscan.nse %1 > nmapvulscan.cmd

и жить стало проще :)

nmapvulscan 127.0.0.1

1630397803642.png


Нада еще на BASH сотворить.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!