Nikto - сканер уязвимостей Web-сервера.
Метки: IDS | nessus | Nikto | skaner
Пятница, 20 марта 2009 г.
Просмотров: 8326
Для чего нужен 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.