Thursday, September 17, 2009

Нахождение уязвимостей с помощью Nikto

Особенности:

  1. Uses rfp's LibWhisker as a base for all network funtionality

  2. Main scan database in CSV format for easy updates

  3. Fingerprint servers via favicon.ico files

  4. Determines "OK" vs "NOT FOUND" responses for file type, if possible

  5. Determines CGI directories for each server, if possible

  6. Switch HTTP versions as needed so that the server understands requests properly

  7. SSL Support (Unix with OpenSSL or maybe Windows with ActiveState's Perl/NetSSL)

  8. Output to file in plain text, HTML or CSV

  9. Plugin support (standard PERL)

  10. Checks for outdated server software

  11. Proxy support (with authentication)

  12. Host authentication (Basic)

  13. Watches for "bogus" OK responses

  14. Attempts to perform educated guesses for Authentication realms

  15. Captures/prints any Cookies received

  16. Mutate mode to "go fishing" on web servers for odd items

  17. Builds Mutate checks based on robots.txt entries (if present)

  18. Scan multiple ports on a target to find web servers (can integrate nmap for speed, if available)

  19. Multiple IDS evasion techniques

  20. Users can add a custom scan database

  21. Supports automatic code/check updates (with web access)

  22. Multiple host/port scanning (scan list files)

  23. Username guessing plugin via the cgiwrap program and Apache ~user methods


Описание:
Nikto - это Perl сканер под GPL лицензией, который выполняет всесторонние тесты для веб-серверов, включая более 3500 потенциально опасных уязвимостей, вариантами для более чем 900 серверов, и специфическими проблемами для более чем 250 серверов. Позволяет находить ошибки в конфигурациях серверов и программ, ошибки в байлах, проблемы с безопасностью файлов и программ, устаревшие программы. Сканер поддерживает SSL, прокси сервера, аутентификацию, IDS evasion. База уязвимостей а также плагины очень часто обновляются и процесс обновления можно сделать автоматическим.

Nikto не был разработан как стелс сканер. Следы активности программы будут скорее всего отражены в лог-файлах. Однако, присутствует поддержка LibWhisker's anti-IDS(Intrusion-detection system) методов если вы хотите использовать именно этот метод ну или для тестирования вашей системы обнаружения вторжений.

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



Требования:
Windows c Perl/Linux/Mac OS X

Единственная библиотека PERL которая не работает с Nikto - это LibWhisker

Также для работы с SSL, необходимо установить Net::SSLeay модуль

Чтобы сканировать большое количество портов рекомендуется установить nmap - он работает гораздо быстрее сканера портов в Nikto.

Установка:
Опишу для Windows, потому как для *Nix систем эта процедура выглядет куда проще.

  1. Установите ActivePerl

  2. Распакуйте Nikto(под Windows это легко делается с помощью Winrar)

Вся сложность настройки Perl под Windows, иногда рабоает с первого раза, а иногда и надо помучаться. Если вы получаете сообщения об отсутствии библиотек, то для ActivePerl запустите из меню "Пуск" - Perl Package Manager.
Использование:
perl nikto.pl -h 192.168.0.1 -p 80,88,443
сканирует хост 192.168.0.1 по портам 80,88 и 443. Самое примитивное тестирование.
perl nikto.pl -update
Позволяет загрузить апдейты.
perl nikto.pl -help

Выведет помощь для более полного использования сканера.

Продвинутое использование:
Использование техники "мутаций" - Nikto может комбинировать тесты или попытки для того чтобы "угадать" значения. Эта техника может вызвать громадное количество запросов к "жертве". Можно указать один или несколько подвидов техники:
  1. тестировать все файлы и все рутовые директории. Nikto берет каждый тест и разбивает его на директории и файлы, а потом создает скан-лист из комбинаций каждого файла и каждой директории.

  2. Угадывание имен файлов с паролями. Берется список наиболее употребляемых имен, расширений файлов и составляется список для проверки.

  3. Подсчитываение имен пользователей в Apache(/~user type request). Експлоит в неверной конфигурафии Apache UserDir который позволяет обнаружить список реальных пользователей.

  4. Подсчет пользователей через cgiwrap (/cgi-bin/cgiwrap/~user type requests).
Настройка отображения:
  1. Отображение редиректов

  2. Показ полученных cookies

  3. Показ всех 200/OK ответов

  4. Показ URL для которых требуется аутенификация
Можно указать специфические тесты для уменьшения общего количества тестов:
Ситаксис такой:
perl nikto.pl -h 192.168.0.1 -T 58
-T 58 означает, что будут сделаны опции 5 и 8 из списка ниже.

Перечень опций:
0 - File Upload. Проверка возможности загрузки файла на удаленный сервер.
1 - Interesting File / Seen in logs. Неизвестный или подозрительный файл, который можно будет увидеть в логах. Ничего конкретней на сайте не нашел.
2 - Misconfiguration / Default File. Проверка стандартных файлов и конфигурации. Это может быть документация или ресурс, который защищен паролем.
3 - Information Disclosure. Раскрытие информации - тестирование на получение информации: пути к файам или имени аккаунта.
4 - Injection (XSS/Script/HTML). Любые методы иньекций, включая cross site scripting (XSS) или контент (HTML).
5 - Remote File Retrieval - проверка на возможность несанкционированного получения файлов из корневой папки веб сервера.
6 - Denial of Service. Отказ в обслуживании. Не DDos атака.
7 - Remote File Retrieval - Проверка на возможность несанкционированного получения файлов из любого места веб сервера.
8 - Command Execution / Remote Shell. Тестирование на возможность вызова командной строки или шела.
9 - SQL Injection. Тестирование на возможность исполнения SQL запросов к базе

Официальный сайт программы.

No comments:

Post a Comment