Личный блог Suvan`a.

Работая и играя с Linux... И что из этого иногда получается.

Nikto - сканер уязвимостей Web-сервера.

Рубрика: Безопасность -> Аудит сети
Метки: | | |
Пятница, 20 марта 2009 г.
Просмотров: 82841

     Для чего нужен Nikto?

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

     Сервер Apache - один из наиболее защищенных Web-серверов, но все старания разработчиков пропадают впустую, потому что администраторы размещают некоторые CGI-сценариев в каталоге cgi-bin.


     Рассмотрим сканер уязвимостей Web-сервера - программу Nikto, в базе данных которой содержатся сведений о более чем 3500 уязвимостях для 900 различных серверов и версии специфических проблем о более чем 250 серверов. Эта утилита чрезвычайно полезна не только для хакеров, но и для администраторов Web-сервера.

     Основные функции программы:

  • Поддержка плагинов, что позволяет пользователям расширять возможности программы, добавляя новые типы сканирования.
  • "Обход" IDS (Intrusion Detection System, система обнаружения вторжения).
  • Поддержка SSL (Secure Sockets Layer).
  • Поддержка прокси.
  • Вывод в форматах: текст, HTML, CSV (Comma Separated Values).
  • Находит Web-сервера, расположенные на нестандартных портах.
  • Проверка огромного числа уязвимостей.

     Чтобы запустить Nikto ваша система должна иметь базовую поддержку Perl. Самой программе нужны два модуля: LibWhisker и Net::SSLeay. LibWhisker - это нестандартный модуль Perl, его можно скачать здесь: http://www.wiretrip.net/rfp/lw.asp. Perl-модуль Net::SSLeay можно загрузить с сайта http://cpan.org. Также в системе должна быть поддержка OpenSSL и установлен сканер уязвимостей nmap

     Сама программа Nikto находится на сайте http://www.cirt.net/nikto2.

     Параметры обхода IDS.

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

     Параметры IDS устанавливаются в командной строке с помощью опции -е:

  • Произвольное URL-кодирование (нe-UTF8).
  • Добавление "ссылки" каталога (/./).
  • Преждевременное завершение URL.
  • Присоединение длинных случайных строк к запросу.
  • Использование в запросах TAB вместо пробела.
  • Использование разделителя пути MS Windows (\) вместо (/).
  • Случайный выбор регистра.

     Можно устанавливать несколько опций, например, -е 25 означает, что были выбраны опции 2 и 5.

     Кроме опции -е, можно использовать опции:

  • -Cgidirs — указывает каталог /cgi-bin.
  • -cookies - выводит полученные во время сканирования Cookies.
  • -generic - запускает полное сканирование.

     Использование Nikto.

     Базовое сканирование. Например, просканировать внутренний Web-сервер:

perl nikto.pl -h 192.168.0.1

     Можно указать определенный порт (например, порт 443), или даже протокол, который будет проверяться (например, https://), или проверку порта 443 с использованием ssl:

perl nikto.pl -h 192.168.0.1 -p 443

perl nikto.pl -h https://192.168.0.1:443/

perl nikto.pl -h 192.168.0.1 -p 443 -ssl

     Nikto поддерживает сканирование с использованием нескольких портов, например:

perl nikto.pl -h 192.168.0.1 -p 80,88,443

     Также эта программа умеет работать через прокси. Для этого нужно установить значение переменой системы PROXY. Используется следующая команда:

perl nikto.pl -h 192.168.0.1 -p 80 -u

     Для автоматизации сканирования предусмотрено сканирование нескольких web-серверов за один раз. Для этого нужно создать текстовый файл (web.txt) такого вида:

192.168.0.2:80

192.168.0.2:443

192.168.2.30:8000

     И передать его программе Nikto:

perl nikto.pl -h web.txt

     Если в файле не указать номер порта, то по умолчанию будет использоваться порт 80.

     При выводе отчета о сканировании Nikto выводит версии Apache и РНР и сообщает, что, если они содержат уязвимости, их нужно обновить.

     Конфигурационный файл Nikto.

     В дополнение к опциям командной строки Nikto для удобства поддержива­ет текстовый файл конфигурации - config.txt. Все параметры в этом фай­ле хорошо прокомментированы, следовательно, можно самостоятельно с ними разобраться. Рассмотрим некоторые опции для примера:

  • CGIDIRS — список каталогов (разделенный пробелами), в котором нужно производить поиск CGI-сценариев. Для администратора: использование нестандартного имени каталога для CGI-файлов не остановит хакера.
  • ADMINDIR — список каталогов администратора.
  • USERS — имена пользователей, которые будут использоваться при попытке установить домашние каталоги пользователей или при подборе паролей, когда будет достигнута защищенная паролем область Web-сервера.

     На официальном сайте также говорится о возможности интеграции сканера уязвимостей Nikto со сканером Nessus. Кому интересно могут посмотреть здесь: http://cirt.net/nikto2-docs/ch03s06.html.