Введение
Добро пожаловать в лабораторную работу по сканированию веб-серверов с помощью Nikto.
Nikto — это широко используемый сканер уязвимостей веб-серверов с открытым исходным кодом. Он выполняет комплексное тестирование веб-серверов по множеству параметров, включая проверку более 6700 потенциально опасных файлов и программ, поиск устаревших версий более чем 1250 серверов, а также выявление проблем, специфичных для конкретных версий ПО. Хотя Nikto не предназначен для скрытной работы (он довольно «шумный» и легко обнаруживается системами обнаружения вторжений), он невероятно быстр и эффективен для проведения базового аудита безопасности.
Nikto лучше всего рассматривать как инструмент для быстрого аудита «в ширину». Он помогает оперативно выявить очевидные проблемы веб-сервера, но не заменяет тщательную ручную проверку. Его «шумность» — это плата за охват.
В этой лабораторной работе вы научитесь использовать Nikto для сканирования локального веб-сервера, настраивать сканирование для фокусировки на конкретных уязвимостях, сохранять результаты в структурированные отчеты и анализировать полученные данные для повышения безопасности сервера.
Выполнение базового сканирования Nikto
В этом шаге вы научитесь выполнять базовое сканирование целевого веб-сервера на наличие уязвимостей с помощью Nikto.
Для этой лабораторной работы в вашей среде уже установлен и запущен локальный веб-сервер Apache. Этот сервер будет нашей целью. Nikto работает через командную строку, и для самого простого использования требуется только флаг -h (host), за которым следует IP-адрес или доменное имя цели.
Чтобы запустить базовое сканирование вашего локального веб-сервера, выполните следующую команду в терминале:
nikto -h http://localhost
На данном этапе цель состоит в том, чтобы создать базовое представление о видимых слабостях и ошибках конфигурации, а не доказывать возможность эксплуатации каждого найденного элемента.
Как только вы выполните команду, Nikto начнет зондирование веб-сервера. Вы увидите вывод на экране по мере того, как Nikto будет обнаруживать информацию.
- Nikto v2.1.5
---------------------------------------------------------------------------
+ Target IP: 127.0.0.1
+ Target Hostname: localhost
+ Target Port: 80
+ Start Time: 2026-10-25 10:00:00 (GMT0)
---------------------------------------------------------------------------
+ Server: Apache/2.4.52 (Ubuntu)
+ The anti-clickjacking X-Frame-Options header is not present.
+ The X-XSS-Protection header is not defined.
+ The X-Content-Type-Options header is not set.
+ No CGI Directories found (use '-C all' to force check all possible dirs)
+ /admin.txt: This might be interesting...
+ /info.php: Output from the phpinfo() function was found.
+ 8000 requests: 0 error(s) and 6 item(s) reported on remote host
+ End Time: 2026-10-25 10:00:15 (GMT0) (15 seconds)
---------------------------------------------------------------------------
+ 1 host(s) tested
Вывод предоставляет массу полезной информации. Он определяет версию серверного ПО (Apache/2.4.52), указывает на отсутствие заголовков безопасности (таких как X-Frame-Options) и подсвечивает потенциально конфиденциальные файлы, оставленные на сервере, например /admin.txt и /info.php.
Игнорирование ложных срабатываний (настройка)
В этом шаге вы научитесь настраивать сканирование Nikto.
Поскольку Nikto проверяет тысячи потенциальных проблем, сканирование по умолчанию иногда может занимать много времени и создавать много «шума» или ложных срабатываний. Чтобы сделать сканирование быстрее и целенаправленнее, в Nikto предусмотрен флаг -Tuning.
Это хорошее напоминание о том, что качество результатов сканера зависит от области охвата. Сужение категорий тестирования часто повышает полезность полученных данных.
Флаг -Tuning позволяет точно указать, какие категории тестов вы хотите запустить. Каждая категория представлена цифрой или буквой. Например:
1- Интересный файл / Встречается в логах2- Ошибка конфигурации / Стандартный файл3- Раскрытие информации4- Инъекции (XSS/Script/HTML)9- SQL-инъекция
Если вы хотите проверить только ошибки конфигурации (2) и раскрытие информации (3), вы можете объединить эти цифры.
Выполните следующую команду для проведения настроенного сканирования, которое ищет только ошибки конфигурации и раскрытие информации:
nikto -h http://localhost -Tuning 23
Вы заметите, что это сканирование завершается гораздо быстрее, чем базовое, поскольку оно пропускает сотни нерелевантных тестов, таких как SQL-инъекции или проверки на отказ в обслуживании (DoS).
- Nikto v2.1.5
---------------------------------------------------------------------------
+ Target IP: 127.0.0.1
+ Target Hostname: localhost
+ Target Port: 80
+ Start Time: 2026-10-25 10:05:00 (GMT0)
---------------------------------------------------------------------------
+ Server: Apache/2.4.52 (Ubuntu)
+ /admin.txt: This might be interesting...
+ /info.php: Output from the phpinfo() function was found.
+ 1500 requests: 0 error(s) and 3 item(s) reported on remote host
+ End Time: 2026-10-25 10:05:03 (GMT0) (3 seconds)
---------------------------------------------------------------------------
+ 1 host(s) tested
Используя флаг -Tuning, вы можете адаптировать Nikto под свои конкретные задачи аудита, экономя время и уменьшая количество «мусора» в отчетах.
Сохранение вывода в отчет
В этом шаге вы научитесь сохранять результаты сканирования Nikto в структурированный файл отчета.
При проведении профессионального аудита безопасности крайне важно вести учет найденных проблем. Чтение результатов непосредственно из терминала подходит для быстрой проверки, но для обмена результатами с командой требуется надлежащий документ. Nikto поддерживает сохранение вывода в нескольких форматах, включая HTML, CSV, XML и обычный текст.
Чтобы сохранить отчет, необходимо использовать два флага:
-o(или-output): Указывает путь к файлу и имя, под которым будет сохранен отчет.-Format: Указывает формат отчета (например,htm,csv,xml,txt).
Давайте запустим сканирование и сохраним вывод в виде HTML-файла в директории вашего проекта. Выполните следующую команду:
nikto -h http://localhost -Format htm -o /home/labex/project/report.html
Во время сканирования вы по-прежнему будете видеть стандартный вывод в терминале. Как только сканирование завершится, Nikto создаст HTML-файл по указанному вами пути.
Вы можете убедиться, что файл был успешно создан, просмотрев содержимое текущей директории:
ls -l /home/labex/project/report.html
-rw-r--r-- 1 root root 4521 Oct 25 10:10 /home/labex/project/report.html
Этот HTML-отчет позже можно скачать и открыть в любом стандартном веб-браузере, что обеспечит удобный табличный вид всех обнаруженных уязвимостей.
Анализ отчета об уязвимостях Nikto
В этом заключительном шаге вы научитесь быстро анализировать созданный отчет с помощью инструментов командной строки.
Хотя HTML-отчеты отлично подходят для просмотра в браузере, часто вам придется работать исключительно в терминальной среде без графического интерфейса. В таких случаях можно использовать стандартные инструменты обработки текста Linux, такие как grep, для извлечения конкретной информации из отчетов.
Давайте поищем в HTML-отчете, который мы создали на предыдущем шаге, информацию о том, успешно ли Nikto задокументировал раскрытие статуса сервера Apache.
Используйте команду grep для поиска слова "server-status" внутри вашего отчета:
grep "server-status" /home/labex/project/report.html
<td>/server-status: This reveals Apache information. Comment out appropriate line in httpd.conf or restrict access to allowed hosts.</td>
Теперь давайте проверим, зафиксировал ли отчет отсутствие заголовка безопасности X-Frame-Options. Этот заголовок критически важен для предотвращения атак типа clickjacking.
grep "X-Frame-Options" /home/labex/project/report.html
<td>The anti-clickjacking X-Frame-Options header is not present.</td>
Комбинируя возможности отчетности Nikto с утилитами командной строки Linux, вы можете быстро анализировать большие отчеты о сканировании уязвимостей, извлекать критические находки и приступать к процессу защиты вашего веб-сервера.
Резюме
Поздравляем! Вы успешно завершили лабораторную работу по сканированию веб-серверов с помощью Nikto.
В этой лабораторной работе вы научились:
- Выполнять базовое сканирование целевого веб-сервера на наличие уязвимостей с помощью Nikto.
- Использовать флаг
-Tuningдля фокусировки сканирования на конкретных категориях уязвимостей, что снижает количество ложных срабатываний и экономит время. - Экспортировать результаты сканирования в структурированный HTML-отчет для документирования и обмена данными.
- Анализировать созданный отчет с помощью инструментов командной строки, таких как
grep, для быстрого выявления критических уязвимостей безопасности.
Эти навыки формируют прочную основу для проведения быстрой первичной оценки безопасности веб-инфраструктуры.



