Nmap, або ж мережевий картограф, являє собою набір інструментів, призначених для перевірки працездатності та виявлення потенційних вразливостей у мережах. Він дозволяє проводити сканування портів, а також ідентифікувати слабкі місця в системі безпеки.
Однією з найпотужніших функцій Nmap є механізм створення скриптів Nmap Scripting Engine (NSE). Ці скрипти, розроблені для виявлення вразливостей, активно використовуються спеціалістами з тестування на проникнення та хакерами для дослідження поширених відомих проблем безпеки.
База даних Загальних вразливостей та експозицій (CVE) містить інформацію про публічно оприлюднені проблеми безпеки даних. Вона слугує своєрідним еталоном для ідентифікації вразливостей і загроз, що стосуються безпеки інформаційних систем.
У цій статті ми розглянемо методи використання Nmap для сканування на наявність вразливостей.
Отже, почнемо!
Встановлення Nmap
Nmap, як правило, вже встановлено в більшості дистрибутивів Linux. Якщо ж він відсутній, його можна легко встановити вручну, скориставшись наступною командою:
apt-get install nmap
Також, ви можете встановити Nmap, клонувавши офіційний репозиторій git.
git clone https://github.com/nmap/nmap.git
Після цього перейдіть до каталогу з клонованим репозиторієм і встановіть необхідні залежності, виконавши наступні команди:
./configure make make install
Остання версія Nmap доступна для завантаження, включаючи двійкові інсталятори для Windows, macOS і Linux (RPM). Завантажити їх можна тут.
Сканування вразливостей за допомогою Nmap
Nmap-vulners, vulscan та vuln є одними з найпопулярніших скриптів для виявлення CVE в Nmap. Ці скрипти допомагають знаходити важливу інформацію про недоліки безпеки в системах.
Nmap-вулнерс
Nmap-вулнерс є одним з найвідоміших сканерів вразливостей. Розглянемо, як його налаштувати та запустити базове сканування CVE. Механізм скриптів Nmap аналізує HTTP-відповіді для визначення CPE (Common Platform Enumeration) для даного об’єкта сканування.
Інсталяція
Щоб встановити скрипт 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>] <ціль>
Не забувайте про аргумент `-sV` під час використання скриптів NSE. Nmap-вулнерс не зможе отримати доступ до бази даних експлойтів Vulners, якщо Nmap не отримає інформацію про версію відсканованого об’єкта. Тому параметр `-sV` є обов’язковим.
Приклад команди
Синтаксис команди доволі простий. Просто викличте скрипт з опцією `–script` та вкажіть систему вразливостей та ціль, щоб розпочати сканування.
nmap -sV --script nmap-vulners/ <ціль>
Якщо ви бажаєте просканувати конкретні порти, додайте опцію `-p` в кінці команди та вкажіть номери портів, які потрібно просканувати.
nmap -sV --script nmap-vulners/ <ціль> -p80,223
Nmap – vuln
Скрипти NSE поділяються на категорії, визначені заздалегідь. Кожен скрипт належить до певної категорії. Серед них: `auth`, `broadcast`, `brute`, `dos`, `exploit`, `malware`, `safe`, `version` та `vuln`. Повний список категорій скриптів NSE та їх фази можна знайти тут.
Скрипти з категорії “vuln” призначені для пошуку конкретних відомих вразливостей та повідомляють лише про їхнє виявлення в цільовій системі.
nmap -sV --script vuln <ціль>
Nmap-вулскан
Вулскан – це скрипт 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 використовує попередньо налаштовані бази даних, які зберігаються локально. Щоб оновити базу даних, перейдіть до каталогу оновлення:
cd vulscan/utilities/updater/
Далі змініть права доступу для файлу, який буде запущено:
chmod +x updateFiles.sh
І, нарешті, оновіть бази даних експлойтів за допомогою наступної команди:
./updateFiles.sh
Використання
Давайте використаємо vulscan для сканування вразливостей Nmap. Скрипт vulscan NSE можна використовувати так само, як і nmap-vulners:
nmap -sV --script vulscan <ціль>
За замовчуванням Vulscan здійснюватиме пошук у всіх базах даних одночасно, що може зайняти значний час. За допомогою параметра `vulscandb` ви можете передавати лише одну базу даних CVE за раз.
--script-args vulscandb=database_name
Приклад команди
nmap -sV --script vulscan --script-args vulscandb=exploit.csv <ціль> -p 80,233
Сканування індивідуальних вразливостей
Сканування окремих вразливостей також можна виконувати за допомогою певних скриптів у кожній категорії. Ось список всіх 600+ скриптів NSE та 139 бібліотек NSE.
Приклади
- `http-csrf`: цей скрипт виявляє вразливості міжсайтової підробки запитів (CSRF).
nmap -sV --script http-csrf <ціль>
- `http-sherlock`: призначений для використання вразливості “shellshock” у веб-додатках.
nmap -sV --script http-sherlock <ціль>
- `http-slowloris-attack`: не запускаючи DoS-атаку, цей скрипт перевіряє веб-сервер або цільову систему на вразливість до виконання Slowloris DoS-атаки.
nmap -sV --script http-slowloris-check <ціль>
- `http-vmware-path-vuln`: перевіряє VMWare ESX, ESXi та Server на вразливості, пов’язані з проходженням шляху.
nmap -sV --script http-vmware-path-vuln <ціль>
- `http-passwd`: намагається отримати файли `/etc/passwd` або `boot.ini`, щоб перевірити, чи веб-сервер вразливий до проходження каталогу.
nmap -sV --script http-passwd <ціль>
- `http-internal-ip-disclosure`: під час надсилання запиту HTTP/1.0 без заголовка `Host`, цей скрипт визначає, чи веб-сервер розкриває свою внутрішню IP-адресу.
nmap -sV --script http-internal-ip-disclosure <ціль>
- `http-vuln-cve2013-0156`: виявляє сервери Ruby on Rails, вразливі до DoS-атак та впровадження команд.
nmap -sV --script http-vuln-cve2013-0156 <адреса_цілі>
І, наостанок, ось список всіх скриптів NSE, які належать до категорії “vuln“.
Чи здатна ваша система виявляти сканування Nmap?
Розвідка є початковою фазою етичного хакінгу та тестування на проникнення. Хакери використовують цей етап для виявлення слабких місць та вразливостей у системі для подальшої атаки. Тому, системи захисту повинні мати можливість виявляти такі дії.
Ви будете отримувати сповіщення, якщо використовуєте інструменти SIEM (Security Information and Event Management), брандмауери та інші засоби захисту. Ось список найкращих інструментів SIEM для захисту вашого бізнесу та організації від кібератак. Ці інструменти можуть фіксувати сканування Nmap. Сканування на вразливості є важливим, оскільки своєчасне виявлення може запобігти майбутнім пошкодженням систем.
Висновок
Сподіваюсь, ця стаття допомогла вам навчитись використовувати Nmap для сканування вразливостей.
Можливо, вам також буде цікаво ознайомитися зі списком сканерів веб-безпеки з відкритим кодом для виявлення вразливостей.