Сканирование веб-серверов с помощью Nikto

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

Введение

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

Установка и проверка Nikto

Прежде чем приступить к поиску уязвимостей, необходимо установить Nikto. На этом этапе вы обновите список пакетов системы и установите инструмент с помощью пакетного менеджера apt. Все команды выполняются в терминале. Ваша рабочая директория по умолчанию — /home/labex/project.

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

sudo apt update

Затем установите Nikto. Флаг -y автоматически подтверждает установку, избавляя вас от необходимости вводить «Y» вручную.

sudo apt install -y nikto

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

nikto -Version

Вы должны увидеть вывод с номером версии Nikto, похожий на приведенный ниже. Точный номер версии может отличаться.

---------------------------------------------------------------------------
- Nikto v2.5.0
---------------------------------------------------------------------------

Теперь, когда Nikto успешно установлен, вы готовы перейти к сканированию веб-сервера.

Выполнение базового сканирования

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

Сначала убедитесь, что веб-сервер запущен. Мы воспользуемся утилитой curl с флагом -I, чтобы получить только HTTP-заголовки от сервера. Адрес цели в этой работе — http://localhost:8000.

curl -I http://localhost:8000

Успешный ответ будет содержать строку HTTP/1.0 200 OK, что означает активность сервера и его готовность принимать запросы.

HTTP/1.0 200 OK
Server: SimpleHTTP/0.6 Python/3.10.12
Date: ...
Content-type: text/html
Content-Length: 71

Теперь запустите ваше первое сканирование Nikto. Используйте флаг -h (или -host), чтобы указать цель.

nikto -h http://localhost:8000

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

- Nikto v2.5.0
---------------------------------------------------------------------------
+ Target IP:          127.0.0.1
+ Target Hostname:    localhost
+ Target Port:        8000
+ Start Time:         ...
---------------------------------------------------------------------------
+ Server: SimpleHTTP/0.6 Python/3.10.12
+ The anti-clickjacking X-Frame-Options header is not present.
+ The X-Content-Type-Options header is not set. This could allow the user agent to render the content of the site in a different fashion to the MIME type.
...
+ 1 host(s) tested

Вы выполнили базовое сканирование веб-сервера. На следующем этапе вы узнаете, как сохранить эти результаты для последующего анализа.

Сохранение результатов сканирования в файл

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

Nikto позволяет сохранять отчеты в различных форматах. На этом этапе вы сохраните результаты в виде обычного текстового файла. Используйте флаг -o (или -output) для указания имени выходного файла.

Запустите сканирование снова, на этот раз направив вывод в файл с именем nikto_report.txt.

nikto -h http://localhost:8000 -o nikto_report.txt

Процесс пойдет так же, как и раньше, но теперь, помимо отображения на экране, данные будут записаны в указанный файл в вашей текущей директории (/home/labex/project).

После завершения сканирования убедитесь, что файл отчета был создан, с помощью команды ls -l, которая выводит список файлов и информацию о них.

ls -l nikto_report.txt

Вы должны увидеть созданный файл отчета, размер которого больше нуля.

-rw-rw-r-- 1 labex labex 1234 ... nikto_report.txt

Чтобы быстро проверить содержимое файла, можно просмотреть первые 20 строк с помощью команды head.

head -n 20 nikto_report.txt

Это выведет начало отчета, включая сводку сканирования и первые обнаруженные уязвимости. Теперь у вас есть постоянная запись результатов вашей работы.

Анализ отчета о сканировании

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

Сначала вы можете просмотреть весь отчет целиком с помощью команды cat. Это полезно для получения общего представления о всей информации, собранной Nikto.

cat nikto_report.txt

Полный отчет может быть довольно объемным, поэтому зачастую эффективнее использовать фильтрацию. Nikto использует символ + в начале строки для обозначения важных находок или потенциальных уязвимостей. Вы можете использовать команду grep, чтобы отобразить только такие строки.

grep '+' nikto_report.txt

Эта команда отфильтрует отчет и покажет краткий список всех элементов, которые Nikto пометил как подозрительные.

+ Target Host: localhost
+ Target Port: 8000
+ GET /: The anti-clickjacking X-Frame-Options header is not present.
+ HEAD /: SimpleHTTP/0.6 appears to be outdated (current is at least 1.2)

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

Резюме

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