Управление поведением сканирования с помощью опций тюнинга в Nikto

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

Введение

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

Хотя стандартное сканирование является тщательным, оно также может занимать много времени и генерировать большой объем выходных данных. Для более целенаправленных оценок Nikto предоставляет опцию -Tuning. Эта функция позволяет указать, какие типы тестов следует запускать, делая ваши сканирования быстрее и более сфокусированными.

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

Понимание назначения опции -Tuning

На этом шаге вы узнаете об опции -Tuning и различных категориях тестов, которыми она может управлять. Опция -Tuning помогает вам сфокусировать сканирование на конкретных областях интереса, экономя время и уменьшая "шум" в выходных данных.

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

Выполните следующую команду, чтобы отобразить меню справки Nikto:

nikto -h

Прокрутите вывод и найдите раздел -Tuning. Он будет выглядеть примерно так:

   -Tuning
       Tuning options control the test that Nikto will use against a target.
       By default, Nikto runs the default set of tests. The tuning options
       are a bitwise value, so they can be combined (e.g. -Tuning 12).
       The options are:
           0 - File Upload
           1 - Interesting File / Seen in logs
           2 - Misconfiguration / Default File
           3 - Information Disclosure
           4 - Injection (XSS/Script/HTML)
           5 - Remote File Retrieval - Inside Web Root
           6 - Denial of Service
           7 - Remote File Retrieval - Server Wide
           8 - Command Execution / Remote Shell
           9 - SQL Injection
           a - Authentication Bypass
           b - Software Identification
           c - Remote Source Inclusion
           x - Reverse Tuning Options (i.e., include all except specified)

Как вы видите, каждое число соответствует определенной категории тестов. Например, 1 — для "Interesting File" (Интересный файл), а 2 — для "Misconfiguration" (Неправильная конфигурация). Опция x является особой; она инвертирует логику, указывая Nikto запустить все тесты, кроме указанных вами.

Запуск сканирования с опцией -Tuning 1 для поиска интересных файлов

На этом шаге вы выполните сфокусированное сканирование для поиска только "Интересных файлов". Этот тип сканирования ищет файлы, которые могут быть не связаны напрямую из веб-приложения, но могут содержать конфиденциальную информацию, такую как резервные копии файлов, файлы конфигурации или журналы. Наш скрипт настройки создал файл config.bak для этой цели.

Мы будем использовать опцию -Tuning 1, чтобы указать Nikto запускать только тесты из категории "Interesting File / Seen in logs" (Интересный файл / Виден в журналах). Веб-сервер запущен на 127.0.0.1 на порту 8000.

Выполните следующую команду в вашем терминале:

nikto -h http://127.0.0.1:8000 -Tuning 1

После завершения сканирования вы увидите вывод, похожий на следующий. Обратите внимание, что Nikto обнаружил файл config.bak.

- Nikto v2.5.0
---------------------------------------------------------------------------
+ Target IP:          127.0.0.1
+ Target Hostname:    127.0.0.1
+ Target Port:        8000
+ Start Time:         ...
---------------------------------------------------------------------------
+ Server: SimpleHTTP/0.6 Python/3.10.6
+ /config.bak: A backup file was found.
+ 1 host(s) tested

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

Запуск сканирования с опцией -Tuning 2 для поиска неправильных конфигураций

На этом шаге вы будете использовать опцию -Tuning 2 для сканирования на наличие распространенных неправильных конфигураций сервера и файлов по умолчанию. Распространенной неправильной конфигурацией является разрешение индексирования каталогов, которое выводит список содержимого каталога, если файл индекса (например, index.html) отсутствует. Простой сервер Python, который мы используем, имеет такое поведение.

Давайте выполним сканирование, сфокусированное исключительно на неправильных конфигурациях.

Выполните эту команду:

nikto -h http://127.0.0.1:8000 -Tuning 2

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

- Nikto v2.5.0
---------------------------------------------------------------------------
+ Target IP:          127.0.0.1
+ Target Hostname:    127.0.0.1
+ Target Port:        8000
+ Start Time:         ...
---------------------------------------------------------------------------
+ Server: SimpleHTTP/0.6 Python/3.10.6
+ /: Directory indexing is enabled.
+ 1 host(s) tested

Обратите внимание, что это сканирование не сообщило о файле config.bak, поскольку мы ограничили тесты категорией "Misconfiguration" (Неправильная конфигурация).

Использование опции -Tuning x для выполнения инверсного сканирования

На этом шаге вы научитесь использовать инверсное сканирование (inverse tuning). Иногда требуется выполнить широкое сканирование, но исключить определенную категорию тестов, которые вы знаете как нерелевантные или слишком "шумные". Опция x в -Tuning позволяет сделать это.

Например, предположим, вы хотите запустить все тесты, кроме проверок "Interesting File" (Интересный файл). Вы можете добиться этого, объединив x с 1.

Выполните следующую команду для выполнения инверсного сканирования, исключающего тесты "Interesting File":

nikto -h http://127.0.0.1:8000 -Tuning x1

Наблюдайте за выводом. Вы увидите различные результаты, такие как неправильная конфигурация индексирования каталогов, но файл config.bak не будет указан.

- Nikto v2.5.0
---------------------------------------------------------------------------
+ Target IP:          127.0.0.1
+ Target Hostname:    127.0.0.1
+ Target Port:        8000
+ Start Time:         ...
---------------------------------------------------------------------------
+ Server: SimpleHTTP/0.6 Python/3.10.6
+ 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.
+ /: Directory indexing is enabled.
...
+ 1 host(s) tested

Инверсное сканирование — это мощный способ настройки ваших сканирований путем удаления определенных проверок, которые не требуются для вашей текущей оценки.

Сравнение результатов сканирования с различными уровнями тюнинга

На этом заключительном практическом шаге вы объедините несколько опций тюнинга для создания более комплексного, но при этом настроенного сканирования. Опция -Tuning принимает несколько значений для запуска тестов из всех указанных категорий.

Давайте выполним сканирование, которое объединит поиск "Interesting Files" (Интересные файлы) (1) и "Misconfigurations" (Неправильные конфигурации) (2).

Выполните следующую команду:

nikto -h http://127.0.0.1:8000 -Tuning 12

Теперь изучите вывод. Вы увидите, что Nikto сообщает о результатах из обеих категорий. Он найдет как файл config.bak, так и проблему с индексированием каталогов.

- Nikto v2.5.0
---------------------------------------------------------------------------
+ Target IP:          127.0.0.1
+ Target Hostname:    127.0.0.1
+ Target Port:        8000
+ Start Time:         ...
---------------------------------------------------------------------------
+ Server: SimpleHTTP/0.6 Python/3.10.6
+ /: Directory indexing is enabled.
+ /config.bak: A backup file was found.
+ 1 host(s) tested

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

Резюме

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

Вы практиковались в следующем:

  • Понимание различных категорий тестов, доступных в Nikto.
  • Выполнение целенаправленного сканирования на наличие "Interesting Files" (Интересные файлы) с использованием -Tuning 1.
  • Сканирование на наличие "Misconfigurations" (Неправильные конфигурации) с использованием -Tuning 2.
  • Выполнение инверсного сканирования для исключения определенных тестов с использованием -Tuning x.
  • Объединение нескольких опций тюнинга для создания пользовательского профиля сканирования.

Овладев опцией -Tuning, вы можете значительно улучшить свой рабочий процесс с Nikto, позволяя быстро сосредоточиться на конкретных типах уязвимостей и сократить время, затрачиваемое на анализ результатов сканирования.