#31 Kali Linux для продвинутого тестирования на проникновение. Сканирование уязвимостей с помощью Nmap. Кастомизация сценариев NSE.
Здравствуйте, дорогие друзья.
До сих пор мы обсуждали, как использовать Nmap во время активной разведки, но злоумышленники используют Nmap не только для поиска открытых портов и сервисов, но также привлекают Nmap для оценки уязвимости. По состоянию на 21 декабря 2021, последняя версия Nmap — 7.92, и она поставляется более чем с 600 сценариями NSE, как показано на рисунке ниже:
Пентестеры используют самые мощные и гибкие функции Nmap, которые позволяют им писать свои собственные скрипты, а также автоматизировать их для упрощения эксплуатации. В первую очередь NSE была развита по следующим причинам:
• Обнаружение сети: основной целью, для которой злоумышленники используют Nmap, является сетевая безопасность.
• Лучшее определение версии службы: существуют тысячи служб со сведениями о версии одного и того же сервиса, поэтому Nmap упрощает идентификацию сервиса.
• Обнаружение уязвимости: для автоматического определения уязвимости в широком диапазоне сети; однако Nmap сам по себе не может быть полноценным сканером уязвимостей.
• Обнаружение бэкдоров: некоторые сценарии написаны для определения шаблонов бэкдоров. Если в сети есть какие-либо черви, это упрощает работу злоумышленника.
• Эксплуатация уязвимостей: Злоумышленники также потенциально могут использовать Nmap для эксплуатации, в сочетании с другими инструментами, такими как Metasploit, или написать собственный реверс-шелл оболочки и объединить возможности Nmap с ними для эксплуатации.
Прежде чем запускать Nmap для сканирования уязвимостей, специалисты по тестированию на проникновение должны обновить Nmap, и базу данных скриптов, чтобы узнать, добавлены ли в базу данных какие-либо новые скрипты, чтобы не пропустить идентификацию уязвимости:
1 |
sudo nmap --script-updatedb |
Используйте следующую команду, чтобы запустить все сценарии на целевом хосте:
1 |
sudo nmap -T4 -A -sV -v3 -d -oA Target output --script all --scriptargsvulns.showall target.com |
Введение в сценарии Lua
Lua — это легкий встраиваемый язык сценариев, построенный на основе программирования на C. Язык, был создан в Бразилии в 1993 году, и до сих пор активно развивается. Это мощный и быстрый язык программирования, в основном используемый в игровых приложениях и обработке изображений. Полный исходный код, руководство и бинарники для некоторых платформ не превышают 1,44 МБ (что меньше, чем дискета). Некоторыми инструментами безопасности, разработанными на Lua, являются Nmap, Wireshark, и Snort 3.0.
Одной из причин, по которой Lua был выбран в качестве языка сценариев в области информационной безопасности, является его компактность, отсутствие переполнения буфера и уязвимости строки формата, а также то, что его можно интерпретировать.
Lua можно установить непосредственно в Kali Linux, выполнив команду sudo apt install lua5.4
в терминале. Следующий фрагмент кода представляет собой пример скрипта для чтения файла и печати первой строки:
1 2 3 4 5 |
#!/usr/bin/lua local file = io.open("/etc/shadow", "r") contents = file:read() file:close() print (contents) |
Lua подобен любому другому сценарию, такому как сценарии Bash и Perl. Предыдущий скрипт должен произвести вывод, показанный на рисунке ниже:
Кастомизация сценариев NSE
Для достижения максимальной эффективности кастомизация скриптов помогает пентестерам находить, и своевременно устранять нужные уязвимости. Однако в большинстве случаев злоумышленники не имеют времени написания скриптов. Следующий фрагмент кода представляет собой сценарий Lua NSE, для определения определенного местоположения файла, которые будем искать по всей подсети с помощью Nmap:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
local http=require 'http' description = [[ This is my custom discovery on the network ]] categories = {"safe","discovery"} require("http") function portrule(host, port) return port.number == 80 end function action(host, port) local response response = http.get(host, port, "/config.php") if response.status and response.status ~= 404 then return "successful" end end |
Сохраните файл в папку /usr/share/nmap/scripts/. Наконец, Ваш скрипт готов к тестированию, как показано на рисунке ниже; Вы должны иметь возможность запускать свой собственный скрипт NSE без проблем:
Чтобы полностью понять предыдущий сценарий NSE, вот описание того, что находится в коде:
• локальный http: require’http’: вызывает нужную библиотеку из Lua; эта строка вызывает HTTP скрипт и делает его локальным запросом.
• описание: здесь тестировщики/исследователи могут ввести описание скрипта.
• категории: обычно имеет две переменные, одна из которых объявляет, является ли это безопасным.
На этом все. Всем хорошего дня!
#1 Kali Linux для продвинутого тестирования на проникновение. Целевое тестирование.
#2 Kali Linux для продвинутого тестирования на проникновение. Методология тестирования.
#3 Kali Linux для продвинутого тестирования на проникновение. Введение в возможности Kali Linux.
#7 Kali Linux для продвинутого тестирования на проникновение. Kali на Android (телефоны без рута).
#8 Kali Linux для продвинутого тестирования на проникновение. Настройка и кастомизация Kali Linux.
#11 Kali Linux для продвинутого тестирования на проникновение. Создание тестовой лаборатории. Metasploitable3.
#12 Kali Linux для продвинутого тестирования на проникновение. Создание тестовой лаборатории. Mutillidae.
#14 Kali Linux для продвинутого тестирования на проникновение. OSINT и Пассивная разведка.
#15 Kali Linux для продвинутого тестирования на проникновение. Наступательный OSINT. Maltego.
#16 Kali Linux для продвинутого тестирования на проникновение. Наступательный OSINT. OSRFramework. theHarvester.
#18 Kali Linux для продвинутого тестирования на проникновение. Наступательный OSINT. Гугл Дорки.
#20 Kali Linux для продвинутого тестирования на проникновение. Защитный OSINT. CUPP. CeWL. Twofi.
#24 Kali Linux для продвинутого тестирования на проникновение. IPv4. IPv6. Инструменты IPv6.
#26 Kali Linux для продвинутого тестирования на проникновение. Сканирование портов. Nmap. Masscan.
#27 Kali Linux для продвинутого тестирования на проникновение. Информация DHCP. ARP-broadcasting.
#30 Kali Linux для продвинутого тестирования на проникновение. Оценка уязвимости. Эксплойты.