Введение
Nikto — популярный сканер веб-серверов с открытым исходным кодом, который выполняет комплексные тесты веб-серверов на наличие множества элементов, включая более 6700 потенциально опасных файлов/программ, проверяет устаревшие версии более чем 1250 серверов и проблемы, специфичные для версий, на более чем 270 серверах.
Понимание того, как читать и интерпретировать результаты сканирования Nikto, является фундаментальным навыком для любого специалиста по кибербезопасности, от пентестеров до системных администраторов. Вывод может показаться поначалу неясным, но он структурирован таким образом, чтобы предоставить ценную информацию о конфигурации веб-сервера и потенциальных уязвимостях безопасности.
В этой лаборатории вы научитесь анализировать стандартный отчет о сканировании Nikto. Чтобы сэкономить время и сосредоточиться на интерпретации, вам предоставлен предварительно сгенерированный файл с результатами сканирования. Вы проанализируете этот файл, чтобы идентифицировать целевую информацию, различать находки, понимать ссылки на уязвимости и просматривать итоговое резюме.
Определение раздела сводки информации о цели
На этом шаге вы изучите начало отчета Nikto, чтобы определить основную информацию о просканированной цели. Этот раздел имеет решающее значение, поскольку он подтверждает, что было протестировано, и какое базовое серверное программное обеспечение было обнаружено.
Пример файла отчета с именем nikto_scan_results.txt был создан в вашем каталоге ~/project. Используйте команду cat для отображения его содержимого в терминале.
cat ~/project/nikto_scan_results.txt
Посмотрите на первые несколько строк вывода. Этот начальный блок предоставляет сводку о цели.
- Nikto v2.1.6
---------------------------------------------------------------------------
+ Target IP: 172.17.0.2
+ Target Hostname: labex-server
+ Target Port: 80
+ Start Time: 2023-10-27 10:30:00 (GMT0)
---------------------------------------------------------------------------
+ Server: Apache/2.4.52 (Ubuntu)
Вот что означают эти строки:
Target IP: IP-адрес сканируемого сервера.Target Hostname: Имя хоста сервера.Target Port: TCP-порт, на котором работает веб-сервис (обычно 80 для HTTP или 443 для HTTPS).Server: Серверное программное обеспечение и его версия, как указано в заголовке HTTPServer. В данном случае это Apache версии 2.4.52, работающий на Ubuntu.
Определение информационных находок и ссылок OSVDB
На этом шаге вы научитесь определять информационные находки, которые отмечены символом +. Это не всегда прямые уязвимости, но они предоставляют полезный контекст о конфигурации сервера.
Многие находки в Nikto связаны с идентификатором OSVDB (Open Source Vulnerability Database). Хотя проект OSVDB больше не активен, эти идентификаторы по-прежнему могут быть полезны для исторической справки и поиска деталей о конкретной проблеме.
Давайте используем команду grep для фильтрации отчета и отображения только строк, представляющих находки. В выводе Nikto эти строки начинаются с +.
grep "^\+" ~/project/nikto_scan_results.txt
Вы увидите список всех находок из сканирования.
+ Target IP: 172.17.0.2
+ Target Hostname: labex-server
+ Target Port: 80
+ Start Time: 2023-10-27 10:30: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. This header can hint to the user agent to protect against some forms of XSS
+ 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.
+ Uncommon header 'x-powered-by' found, with contents: PHP/8.1.2
+ Allowed HTTP Methods: GET, HEAD, POST, OPTIONS
+ OSVDB-3233: /icons/README: The Apache web server is configured to return a valid response to a request for /icons/README.
+ /index.php: PHP is installed.
+ /admin/: Directory indexing found.
+ OSVDB-3233: /cgi-bin/: directory indexing found.
+ OSVDB-3268: /cgi-bin/test.cgi: This might be interesting...
+ 8123 requests: 0 error(s) and 11 item(s) reported on remote host
+ End Time: 2023-10-27 10:38:20 (GMT0) (500 seconds)
+ 1 host(s) tested
Обратите внимание на строку + OSVDB-3233: /icons/README: .... Это указывает на информационную находку (ID 3233), связанную с общедоступным файлом README в каталоге /icons/, что является обычным явлением на серверах Apache.
Различение уязвимостей низкого и высокого риска
На этом шаге вы научитесь различать находки, представляющие низкий риск, и те, которые могут вызывать большую обеспокоенность. Nikto не присваивает уровень серьезности; аналитик сам интерпретирует результаты на основе контекста.
Находки низкого риска обычно связаны с нереализованными рекомендациями по безопасности. Например:
+ The anti-clickjacking X-Frame-Options header is not present.
Это отсутствующий заголовок безопасности. Хотя его наличие является хорошей практикой, его отсутствие само по себе обычно не приводит к прямой компрометации.
Находки более высокого риска часто указывают на раскрытие информации или неправильную конфигурацию, которую можно использовать. Например:
+ /admin/: Directory indexing found.
Это более серьезно. Индексирование каталогов позволяет злоумышленнику видеть все файлы и подкаталоги в каталоге /admin/, потенциально раскрывая конфиденциальные файлы, структуру приложения или резервные копии.
Давайте используем grep для выделения этой находки более высокого риска из отчета.
grep "Directory indexing" ~/project/nikto_scan_results.txt
Эта команда покажет вам все случаи обнаружения индексирования каталогов.
+ /admin/: Directory indexing found.
+ OSVDB-3233: /cgi-bin/: directory indexing found.
Получение этих результатов должно побудить аналитика немедленно исследовать эти каталоги, чтобы определить, не раскрывается ли какая-либо конфиденциальная информация.
Понимание значений находок, связанных с CGI-каталогами
На этом шаге вы сосредоточитесь на находках, связанных с CGI-каталогами. CGI (Common Gateway Interface) — это стандартный протокол, который позволяет веб-серверам выполнять внешние программы, такие как скрипты. Эти каталоги являются частой целью для злоумышленников, поскольку они часто содержат исполняемые файлы, которые могут иметь уязвимости.
Nikto специально проверяет наличие распространенных CGI-каталогов, таких как /cgi-bin/. Обнаружение такого каталога и скриптов в нем является значительным событием.
Давайте используем grep для поиска всех строк в отчете, в которых упоминается /cgi-bin/.
grep "/cgi-bin/" ~/project/nikto_scan_results.txt
Вывод показывает две находки, связанные с этим каталогом.
+ OSVDB-3233: /cgi-bin/: directory indexing found.
+ OSVDB-3268: /cgi-bin/test.cgi: This might be interesting...
Первая строка подтверждает, что для каталога /cgi-bin/ включено индексирование каталогов, что является находкой высокого риска, как обсуждалось на предыдущем шаге. Вторая строка указывает на то, что Nikto обнаружил скрипт test.cgi. Тестовые скрипты часто остаются после разработчиков и иногда могут иметь уязвимости или раскрывать информацию об окружении сервера. Аналитик отметил бы это для ручного исследования.
Просмотр сводной статистики по завершении сканирования
На этом заключительном шаге вы изучите раздел сводки в конце отчета Nikto. Этот раздел предоставляет краткий обзор выполнения и области сканирования.
Чтобы легко просмотреть последние несколько строк файла, вы можете использовать команду tail. Давайте посмотрим последние 10 строк отчета.
tail -n 10 ~/project/nikto_scan_results.txt
Это отобразит конец отчета, который включает сводную статистику.
+ /admin/: Directory indexing found.
+ OSVDB-3233: /cgi-bin/: directory indexing found.
+ OSVDB-3268: /cgi-bin/test.cgi: This might be interesting...
+ 8123 requests: 0 error(s) and 11 item(s) reported on remote host
+ End Time: 2023-10-27 10:38:20 (GMT0) (500 seconds)
---------------------------------------------------------------------------
+ 1 host(s) tested
Вот разбивка ключевых строк сводки:
8123 requests: 0 error(s) and 11 item(s) reported...: Это означает, что Nikto отправил 8 123 HTTP-запроса на сервер, не столкнулся с ошибками и обнаружил 11 интересующих элементов.End Time: Здесь показана временная метка завершения сканирования и общая продолжительность.1 host(s) tested: Это подтверждает, что сканирование проводилось против одной цели.
Эта сводка полезна для понимания масштаба сканирования и получения общего количества найденных элементов.
Сводка
В этой лабораторной работе вы освоили основные навыки интерпретации стандартного отчета сканирования Nikto. Вы отработали систематический подход к анализу вывода, начиная с базовой информации о цели и переходя к более детальным находкам.
Вы научились:
- Определять IP-адрес, порт и баннер программного обеспечения целевого сервера.
- Распознавать информационные находки и значение ссылок на OSVDB.
- Различать находки низкого риска (например, отсутствующие заголовки) и находки более высокого риска (например, индексирование каталогов).
- Понимать важность обнаружения CGI-каталогов.
- Просматривать сводку по завершении сканирования для получения общего представления.
Этот процесс структурированного анализа является ключом к преобразованию необработанного вывода сканера в действенные сведения для защиты веб-приложений.


