Сканирование нескольких хостов из файла с помощью Nikto

Kali LinuxBeginner
Практиковаться сейчас

Введение

Nikto — популярный сканер веб-серверов с открытым исходным кодом, который выполняет комплексные тесты веб-серверов на наличие множества элементов, включая более 6700 потенциально опасных файлов/программ, проверяет устаревшие версии более чем 1250 серверов и проблемы, специфичные для версий, на более чем 270 серверах.

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

Создание текстового файла с несколькими IP-адресами или именами хостов целей

На этом шаге вы создадите простой текстовый файл, содержащий имена хостов целей, которые вы хотите просканировать. Nikto может прочитать этот файл и просканировать каждый хост, указанный в нем. Каждое имя хоста или IP-адрес должно быть на новой строке. Мы будем использовать текстовый редактор nano для создания этого файла в вашей текущей рабочей директории, ~/project.

Сначала откройте новый файл с именем targets.txt с помощью nano:

nano targets.txt

Теперь, внутри редактора nano, добавьте следующие два имени хостов. Это общедоступные сайты, доступные для тестирования.

scanme.nmap.org
example.com

Чтобы сохранить файл в nano, нажмите Ctrl+O, затем нажмите Enter для подтверждения имени файла. Чтобы выйти из nano, нажмите Ctrl+X.

Вы можете проверить содержимое вашего файла с помощью команды cat:

cat targets.txt

Вы должны увидеть следующий вывод:

scanme.nmap.org
example.com

Теперь у вас есть файл с целями, готовый для Nikto.

Использование флага -h с путем к вашему текстовому файлу

На этом шаге мы подготовим команду Nikto для сканирования нескольких целей. Флаг -h (или --host) используется для указания цели. Хотя обычно он принимает одно имя хоста или IP-адрес, он также может принимать путь к файлу. Когда вы указываете путь к файлу, Nikto понимает, что ему следует читать цели из этого файла.

Базовый синтаксис для этой операции:

nikto -h /path/to/your/file.txt

Поскольку наш файл targets.txt находится в текущей директории (~/project), мы можем просто использовать имя файла.

Перед выполнением фактического сканирования хорошей практикой является ознакомление с параметрами Nikto. Вы можете просмотреть справочное меню, выполнив:

nikto -Help

Прокрутите вывод, и вы найдете описание опции -h / -host, подтверждающее, что она может принимать хост или файл с хостами. Фактическое сканирование мы выполним на следующем шаге.

Запуск сканирования нескольких целей

Теперь, когда вы создали файл с целями и понимаете структуру команды, пришло время запустить сканирование. Nikto прочитает файл targets.txt и просканирует каждый хост, указанный в нем, один за другим.

Выполните следующую команду в терминале, чтобы начать сканирование. Пожалуйста, будьте терпеливы, так как полное сканирование нескольких хостов может занять несколько минут.

nikto -h targets.txt

Терминал теперь будет отображать ход сканирования в реальном времени.

Отслеживание вывода по мере последовательного сканирования Nikto каждого хоста

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

Сначала Nikto отобразит свой баннер и начнет с первой цели, scanme.nmap.org. Вы увидите такую информацию, как ее IP-адрес, серверное программное обеспечение и найденные уязвимости.

Усеченный пример начального вывода для первого хоста может выглядеть следующим образом:

- Nikto v2.5.0
---------------------------------------------------------------------------
+ Target IP:          45.33.32.156
+ Target Hostname:    scanme.nmap.org
+ Target Port:        80
+ Start Time:         ...
---------------------------------------------------------------------------
+ Server: Apache/2.4.7 (Ubuntu)
... (проверки уязвимостей и результаты для scanme.nmap.org) ...

Как только сканирование scanme.nmap.org будет завершено, Nikto автоматически начнет сканирование следующей цели, example.com. Вывод будет четко указывать на переход к новой цели:

... (конец сканирования для scanme.nmap.org) ...
+ 1 host(s) tested
- Nikto v2.5.0
---------------------------------------------------------------------------
+ Target IP:          93.184.216.34
+ Target Hostname:    example.com
+ Target Port:        80
+ Start Time:         ...
---------------------------------------------------------------------------
+ Server: ECS (sjc/4E5D)
... (проверки уязвимостей и результаты для example.com) ...

Просто наблюдайте за терминалом, пока весь процесс не завершится.

Просмотр объединенных результатов в выводе или сохраненном файле

После того как Nikto завершит сканирование всех хостов из targets.txt, он выведет итоговую сводку. Эта сводка включает общее количество протестированных хостов и время окончания сканирования. Весь журнал сканирования для всех хостов будет виден в вашем терминале.

Хотя просмотр вывода в терминале полезен, для документирования или дальнейшего анализа лучше сохранить результаты в файл. Это можно сделать с помощью флага -o (или -output).

Давайте запустим сканирование еще раз, но на этот раз сохраним вывод в файл с именем scan_results.txt.

nikto -h targets.txt -o scan_results.txt

Эта команда выполнит то же сканирование, но помимо отображения вывода на экране, запишет его в файл scan_results.txt. После завершения сканирования вы можете просмотреть содержимое сохраненного отчета с помощью команды cat:

cat scan_results.txt

Это позволит вам в любое время просмотреть результаты всех просканированных хостов, не запуская сканирование повторно.

Итоги

В этой лабораторной работе вы успешно научились автоматизировать сканирование нескольких веб-серверов с помощью Nikto. Вы отработали создание списка целей в текстовом файле, где каждая цель находится на новой строке. Затем вы использовали флаг -h, чтобы указать Nikto на этот файл, что позволило ему последовательно сканировать каждый хост. Наконец, вы узнали, как сохранить объединенные результаты многохостового сканирования в выходной файл с помощью флага -o для удобного просмотра и ведения записей. Этот метод является фундаментальным для повышения эффективности рабочих процессов сетевой разведки и оценки уязвимостей.