NSE (Nmap Scripting Engine) Учебное пособие

Nmap Scripting Engine Изучение

NSE (Nmap Scripting Engine) включает дополнительные функции в процессе сканирования Nmap, разрешая сценарии для дополнительных задач, таких как грубая сила, обнаружение уязвимостей или эксплуатация.

Механизм сценариев Nmap (NSE) содержит набор сценариев, классифицированных по категориям, и пользователи могут писать свои собственные сценарии с настраиваемыми функциями.

В этом руководстве объясняются основы NSE, включая практические примеры, показывающие, как использовать Nmap Scripting Engine для взлома сайтов WordPress и учетных данных SSH или выполнения нескольких дополнительных проверок безопасности.

NSE (Nmap Scripting Engine) Категории и типы скриптов

Скрипты, включенные в NSE, классифицируются по разным критериям в зависимости от момента выполнения, цели скрипта и методов.

Первая классификация, основанная в основном на моменте исполнения, включает 4 типа скриптов:

  • Скрипты Preruleвыполняются перед любой фазой сканирования Nmap, например скрипты, используемые для генерации новых целей.
  • Сценарии хоставыполняются в процессе сканирования.
  • Служебные скриптывыполняются после сканирования каждого пакета хостов, как и скрипты хостов.
  • Скрипты Postruleвыполняются после сканирования; эти сценарии могут использовать уязвимость, обнаруженную в процессе сканирования.

Вторая классификация основана на назначении и безопасности сценария. Категории упорядочивают скрипты в соответствии с этими критериями. Категории:

Auth: скрипты из этой категории полезны для проверки подлинности. В этой категории вы можете найти сценарии для обхода процессов аутентификации, такие как http-method-tamper для обхода защищенных паролем ресурсов путем подделки HTTP-команды. Если массив проверяемых путей не задан, он просканирует веб-сервер и выполнит проверку любого найденного защищенного паролем ресурса.

Категория Auth не включает скрипты грубой силы, хранящиеся в категории Brute. Тем не менее, в разделе Auth вы можете найти функции, аналогичные скрипту http-default-accounts, для проверки доступа с учетными данными по умолчанию в различных веб-приложениях и устройствах.

Широковещательная рассылка: эти скрипты позволяют обнаруживать хосты путем широковещательной передачи в локальную сеть.

Brute: эта категория содержит скрипты для выполнения атак грубой силы, такие как скрипт http-wordpress-brute для атаки на сайты WordPress или rsync-brute для выполнения атак против протокола rsync.

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

Обнаружение: сценарии в этой категории пытаются узнать больше о цели, запрашивая общедоступные источники, устройства с поддержкой SNMP, каталоги и т. Д. Сценарий http-affiliate-id захватывает идентификаторы партнерской сети, такие как Google AdSense или Analytics, Amazon и т. Д., С веб-страницы и может использоваться для идентификации страниц с одним и тем же владельцем.

DOS: эти сценарии полезны для проверки целей на уязвимости перед атаками DOS; эти сценарии могут привести к сбою уязвимой системы или службы.

Эксплойт: Скрипты этой категории используются для использования уязвимостей в целях.

Внешний: эта категория содержит сценарии, задействующие внешние ресурсы во время процесса сканирования, такие как запросы информации базы данных на целевом объекте. В эту категорию помещаются скрипты, передающие информацию о процессе сканирования сторонним базам данных. IP-геолокации-geoplugin , например, пытается определить физическое местоположение цели, используя http://www.geoplugin.com/.

Fuzzer: эта категория содержит сценарии для массовой отправки случайных полей для обнаружения уязвимостей для использования переполнения буфера, DOS (отказ в обслуживании), межсайтовых сценариев или SQL-инъекций.

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

Вредоносное ПО: скрипты вредоносного ПО предназначены для обнаружения возможных вредоносных программ или бэкдоров на цели.

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

Версия: скрипты версий расширяют возможности версии Nmap; Примером является docker-версия скрипта, используемая для определения версии докера службы.

Vuln: Скрипты Vuln полезны для точного тестирования уязвимостей на целевых объектах.

Скрипты NSE расположены в / usr / share / nmap / scripts, и любой новый скрипт, который вы хотите добавить (например, Vulscan ), должен быть помещен туда.

Как использовать Nmap Scripting Engine (NSE)

NSE включен в Nmap, чтобы начать установку Nmap, если у вас его еще нет, запустив (в дистрибутивах Linux на основе Debian и Debian):

sudo apt install nmap
Как использовать Nmap Scripting Engine

Примечание. В дистрибутивах Linux на основе RedHat вы можете запускать:

yum install nmap

После установки или если у вас уже установлен Nmap, выполните следующую команду, чтобы обновить базу данных Nmap Scripting Engine:

nmap —script-updatedb

После установки или если у вас уже установлен Nmap, выполните следующую команду

Nmap позволяет запускать сканирование с различным синтаксисом; В следующем примере показано сканирование Nmap с определением версии, вызовом сценария http-WordPress-brute и передачей в качестве аргумента местоположения словарей. Это возможный синтаксис, если вы знаете, какой скрипт хотите запустить.

В первом примере я покажу, как Nmap NSE может взломать веб-сайт WordPress с помощью грубой силы, используя скрипт http-wordpress-brute.nse. В этом примере взломанный веб-сайт — это Noticias Mercedes, владельцем которого я являюсь.

nmap -sV —script http-wordpress-brute —script-args ‘userdb=users.txt,passdb=pass.txt’ noticiasmercedes.com

В этом примере взломанный веб-сайт — это Noticias Mercedes

Где:

Nmap -sV: вызывает nmap и включает определение версии.

—Script http-wordpress-brute: вызывает сценарий http-wordpress-brute для перебора сайтов wordpress.

—Script-args ’userdb = users.txt, passdb = pass.txt’: указывает словари пользователей и паролей, в этом случае я создал файлы users.txt и pass.txt, содержащие фиктивные данные и правильные учетные данные, файлы были расположены в том же каталоге, в котором был запущен Nmap, вы также можете указать путь: —script-args ’userdb = / path / to / dicionaty / users.txt, passdb = / path / to / dicionaty / pass.txt’

Как видно из вывода, пароль был успешно взломан:

Как видно из вывода, пароль был успешно взломан

В следующем примере предположим, что вы не уверены в том, какой сценарий вы хотите запустить для своей цели, но хотите ограничить сканирование проверками безопасности. Также в этом случае вы можете указать Nmap запускать все сценарии, принадлежащие категориям Safe или Default, либо обеим категориям.

Также в этом случае вы можете указать Nmap запускать все сценарии, принадлежащие категориям Safe или Default

В следующем примере показано, как запустить все сценарии, принадлежащие как к категориям по умолчанию, так и к безопасным, с удобным для пользователя синтаксисом:

nmap —script «default and safe» noticiasmercedes.com

В последнем примере показано, как взломать учетные данные SSH с помощью NSE:

nmap —script ssh-brute.nse localhost

В последнем примере показано, как взломать учетные данные SSH с помощью NSE

Как и в случае с http-WordPress-brute, в этом скрипте вы также можете указывать словари, минуя аргумент:

—script-args userdb=users.txt,passdb=pass.txt

Где users.txt и pass.txt должны быть заменены вашими словарями (и путем, если необходимо),

Читайте также:  Что такое AutoGPT и как его использовать?
Оцените статью
bestprogrammer.ru
Добавить комментарий