June 16, 2020

Nikto. Веб-сканер. Как использовать?

Nikto — это утилита для оценки веб-серверов. Он ищет небезопасные файлы, конфиги, то есть уязвимости на веб-сервере.

Nikto сделан на LibWhisker2 (by RFP) и может работать на любой платформе, в которой есть окружение Perl. Он поддерживает SSL, прокси, аутентификацию на хосте, кодировку полезной нагрузки и другое.

Nikto не создавался быть незаметным. Он будет тестировать веб-сервер за самое быстрое возможное время, очевидно, что его активность попадёт в логи веб-сервера и в поле зрение IPS/IDS (систем обнаружения/предотвращения вторжений). Тем не менее, имеется поддержка для анти-IDS методов из LibWhisker – на случай, если вы захотите их попробовать (или протестировать вашу систему IDS).

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

Установка:

Nikto уже имеется в ИБ дистрибутивах (Kali Linux, Parrot OS, BlackArch и т.д.)

nikto -H (Полная справка)

Но у кого нет ИБ дистрибутива, мы будем качать с гитхаба.

Качаем с гитхаба:

git clone https://github.com/sullo/nikto.git

Заходим в папку утилиты:

cd nikto/program/

Запускаем:

./nikto.pl -H

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

Для начала мы можем просканировать определенный хост.

nikto -h http://mysite.com (192.168.1.255)

Рассказываю: -h (-host) - наша цель, http://mysite.com (192.168.1.255 локальный ip-адрес) — Название хоста

Сканирование с определенным портом:

nikto -h http://mysite.com (192.168.1.255) -p 443 или nikto -h http://mysite.com:443/

Сканирование с несколькими портами:

nikto -h http://mysite.com (192.168.1.255) -p 443,80,88

Сканирование с SSL протоколом:

nikto -h http://mysite.com (192.168.1.255) -p 443 -ssl

Nikto начнёт с обычного HTTP и если это не получится, перейдёт к HTTPS. Если вы уверены, что это сервер с SSL, то это ускорит сканирование.

Сканирование с использованием прокси:

Что бы использовался прокси нужно зайти в nikto.conf

nano /etc/nikto.conf (для ИБ дистрибутива). nano home/root/nikto/program/nikto.conf

Установите переменные PROXY*. Если вы сделали всё правильно:

nikto -h http://mysite.com -p 443 -useproxy

Можно установить прокси через командную строку:

nikto -h http://mysite.com -useproxy http://myproxy.com:8080

Анонимное сканирование:

Для анонимных сканирований можно воспользоваться услугами сети Tor. Но поскольку Nikto не поддерживает работу с SOCKS, то нам дополнительно нужно настроить ещё и Privoxy

В ИБ дистрибутивах можно сделать так:

sudo apt install tor privoxy

Для Arch Linux:

sudo pacman -S tor privoxy

Далее заходим в /etc/privoxy/config

И добавляем эти строки:

forward-socks4 / localhost:9050

forward-socks4a / localhost:9050

forward-socks5t / localhost:9050

Запускаем и добавляем службы:

sudo systemctl start tor

sudo systemctl enable tor

sudo systemctl start privoxy

sudo systemctl enable privoxy

Чтобы сканирование происходило через Tor:

nikto -h http://mysite.com -useproxy http://localhost:8118/

Другие функции:

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

  1. Пробел — Сообщить текущий статус сканирования.
  2. v — Включить/включить вербальный режим.
  3. d — Включить/выключить режим отладки.
  4. e — Включить/включить сообщения об ошибках.
  5. p — Включить/включить сообщение о прогрессе.
  6. r — Включить/включить отображения перенаправления.
  7. c — Включить/включить отображение кукиз.
  8. o — Включить/включить показ OK.
  9. a — Включить/включить отображение аутентификации.
  10. q — Выйти.
  11. N — Следующий хост.
  12. p - Пауза.