Использование Nmap Scripting Engine (NSE)
Nmap Scripting Engine (NSE) — это мощный инструмент, который позволяет расширять возможности Nmap с помощью скриптов на языке Lua. Lua — это легковесный язык программирования, и эти скрипты могут выполнять широкий спектр задач. Например, они могут помочь в продвинутом обнаружении служб, то есть более точном определении, какие службы работают на сетевом устройстве. Они также могут использоваться для сканирования на уязвимости, что является важным для выявления уязвимостей безопасности в системе.
Давайте используем NSE для сбора более подробной информации о нашем HTTP - сервере. Скрипты NSE группируются по разным категориям. Эти категории включают "default" (по умолчанию), которая содержит часто используемые и безопасные скрипты; "discovery" (обнаружение), которая предназначена для поиска сетевых служб; "safe" (безопасные), которые не причинят вреда целевой системе; и "vuln" (уязвимости), которая используется для сканирования на уязвимости.
Сначала мы хотим узнать, какие скрипты, связанные с HTTP, доступны. Для этого мы используем следующую команду:
ls /usr/share/nmap/scripts/http*
Эта команда выводит список всех скриптов NSE в директории /usr/share/nmap/scripts/, которые начинаются с http. Когда вы выполните эту команду, вы увидите список скриптов, предназначенных для взаимодействия с HTTP - службами. Эти скрипты могут выполнять разные функции, от простого сбора информации, например, получения заголовка веб - страницы, до более сложных задач, таких как сканирование HTTP - службы на уязвимости.
Теперь давайте используем скрипт http-title для извлечения заголовка нашей веб - страницы. Скрипт http-title предназначен для анализа HTTP - службы и нахождения заголовка веб - страницы, которую она предоставляет. Вот команда для запуска этого скрипта:
sudo nmap --script=http-title -p 8000 localhost > /home/labex/project/nmap_script_output.txt
В этой команде sudo используется для выполнения команды с административными привилегиями, так как некоторые операции Nmap могут потребовать их. nmap — это основная команда, а --script=http-title сообщает Nmap использовать скрипт http-title. -p 8000 указывает, что мы целируемся на порт 8000, где работает наш HTTP - сервер. localhost — это цель, то есть мы выполняем сканирование на собственном компьютере. Символ > перенаправляет вывод команды в файл /home/labex/project/nmap_script_output.txt.
Давайте проверим вывод команды. Мы можем сделать это, используя следующую команду:
cat /home/labex/project/nmap_script_output.txt
Команда cat используется для отображения содержимого файла. Когда вы выполните эту команду, вы должны увидеть вывод, который включает информацию о заголовке нашей веб - страницы. Вывод может выглядеть так:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-XX-XX XX:XX XXX
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000040s latency).
PORT STATE SERVICE
8000/tcp open http-alt
|_http-title: Directory listing for /
Nmap done: 1 IP address (1 host up) scanned in X.XX seconds
Теперь давайте попробуем более комплексное сканирование с использованием нескольких скриптов. Категория "default" включает безопасные скрипты, которые предоставляют полезную информацию о цели. Чтобы запустить все скрипты из категории "default" на нашем HTTP - сервере на порту 8000, мы используем следующую команду:
sudo nmap --script=default -p 8000 localhost > /home/labex/project/nmap_default_scripts.txt
Эта команда похожа на предыдущую, но вместо указания одного скрипта мы сообщаем Nmap запустить все скрипты из категории "default".
Давайте рассмотрим результаты этого сканирования. Мы можем сделать это, снова используя команду cat:
cat /home/labex/project/nmap_default_scripts.txt
Вывод будет содержать более подробную информацию о нашем HTTP - сервере, собранную различными скриптами NSE, которые запускаются по умолчанию.
Наконец, давайте исследуем функцию справки по скриптам, чтобы узнать больше о конкретном скрипте. Если вы хотите узнать больше о скрипте http-title, вы можете использовать следующую команду:
nmap --script-help=http-title
Эта команда отображает документацию для скрипта http-title. Документация включает цель скрипта, способ его использования и формат его вывода. Понимание документации скриптов является важным при использовании NSE для конкретных задач, так как это помогает понять, что делает скрипт и как правильно его использовать.