Комплексный сканер веб-уязвимостей с базой тысяч проверок: устаревшее ПО, небезопасные заголовки, опасные файлы и директории.
sudo apt install nikto # Или из исходников: git clone https://github.com/sullo/nikto cd nikto/program perl nikto.pl -h http://target.com
Веб-сканер серверов Nikto - https://cirt.net/Nikto2
Полная документация - https://github.com/sullo/nikto/wiki
Запуск в обычном режиме:
git clone https://github.com/sullo/nikto
# Основной скрипт находится в каталоге program/
cd nikto/program
# Запуск с использованием интерпретатора shebang
./nikto.pl -h http://www.example.com
# Запуск с помощью perl (если вы забыли выполнить chmod)
perl nikto.pl -h http://www.example.com
Запуск в контейнере Docker из ghcr.io:
docker pull ghcr.io/sullo/nikto:latest
Запуск в контейнере Docker из Dockerfile:
git clone https://github.com/sullo/nikto.git
cd nikto
docker build -t sullo/nikto .
# Запустите без аргументов, чтобы отобразить полную справку
docker run --rm sullo/nikto
# Базовое использование
docker run --rm sullo/nikto -h http://www.example.com
# Чтобы сохранить отчет в определенном формате, подмонтируйте /tmp как том:
docker run --rm -v $(pwd):/tmp sullo/nikto -h http://www.example.com -o /tmp/out.json
Базовое использование:
Параметры:
-Add-header Добавить HTTP-заголовки (можно указывать несколько раз, по одному на пару заголовков)
-ask+ Спрашивать ли об отправке обновлений
yes Спрашивать о каждом (по умолчанию)
no Не спрашивать, не отправлять
auto Не спрашивать, только отправлять
-check6 Проверить, работает ли IPv6 (подключение к ipv6.google.com или значению из nikto.conf)
-Cgidirs+ Сканировать эти CGI-каталоги: "none", "all" или значения вроде "/cgi/ /cgi-a/"
-config+ Использовать этот файл конфигурации
-Display+ Включить/выключить вывод:
1 Показать перенаправления
2 Показать полученные cookies
3 Показать все ответы 200/OK
4 Показать URL, требующие аутентификации
D Вывод отладки
E Показать все ошибки HTTP
P Вывести прогресс в STDOUT
S Очистить вывод от IP-адресов и имен хостов
V Подробный вывод
-dbcheck Проверить базу данных и другие ключевые файлы на синтаксические ошибки
-evasion+ Техника обфускации:
1 Случайное кодирование URI (не UTF8)
2 Самоссылка на каталог (/./)
3 Досрочное завершение URL
4 Добавить длинную случайную строку в начало
5 Ложный параметр
6 TAB в качестве разделителя запроса
7 Изменить регистр URL
8 Использовать разделитель каталогов Windows (\)
A Использовать возврат каретки (0x0d) в качестве разделителя запроса
B Использовать двоичное значение 0x0b в качестве разделителя запроса
-followredirects Следовать за 3xx перенаправлениями на новое место
-Format+ Формат файла (-o). Можно указать несколько форматов через запятую (например, htm,sql,txt,json,xml):
csv Формат значений, разделенных запятой
json Формат JSON
htm Формат HTML
sql Общий SQL (смотрите документацию по схеме)
sqld SQL Direct (прямая вставка в базу данных MySQL/PostgreSQL)
txt Простой текст
xml Формат XML
(если не указано, формат будет взят из расширения файла, переданного в -output)
Примечание: формат sqld требует параметров DB_TYPE, DB_HOST, DB_PORT, DB_NAME в файле nikto.conf
и переменных окружения NIKTO_DB_USER, NIKTO_DB_PASS
-Help Эта справочная информация
-host+ Целевой хост/URL
-id+ Используемые учетные данные для аутентификации на хосте, формат: id:pass или id:pass:realm
-ipv4 Только IPv4
-ipv6 Только IPv6
-key+ Файл ключа клиентского сертификата
-list-plugins Вывести список всех доступных плагинов, тестирование не выполняется
-maxtime+ Максимальное время тестирования на хост (например, 1h, 60m, 3600s)
-mutate+ Угадать дополнительные имена файлов:
1 Тестировать все файлы со всеми корневыми каталогами
2 Угадывать имена файлов паролей
3 Перечислить имена пользователей через Apache (запросы типа /~user)
4 Перечислить имена пользователей через cgiwrap (запросы типа /cgi-bin/cgiwrap/~user)
5 Попробовать подобрать имена поддоменов, предполагая, что имя хоста является родительским доменом
6 Попробовать угадать имена каталогов из предоставленного файла словаря
-mutate-options Предоставить информацию для мутаций
-nocheck Не проверять обновления при запуске
-nocookies Не использовать cookies из ответов в запросах (cookies хранятся и отправляются по умолчанию)
-nointeractive Отключить интерактивные функции
-nolookup Отключить DNS-запросы
-noslash Убрать завершающий слэш из URL (например, '/admin/' в '/admin')
-nossl Отключить использование SSL
-no404 Отключить попытки Nikto угадать страницу 404
-Option Переопределить параметр в nikto.conf, можно указывать несколько раз
-output+ Записать вывод в этот файл ('.' для автоимени)
-Pause+ Пауза между тестами (в секундах)
-Platform+ Платформа цели (nix, win, all)
-Plugins+ Список плагинов для запуска (по умолчанию: ВСЕ)
-port+ Используемый порт (по умолчанию 80)
-RSAcert+ Файл клиентского сертификата
-root+ Добавить корневое значение ко всем запросам, формат: /directory
-Save Сохранить положительные ответы в этот каталог ('.' для автоимени)
-ssl Принудительно включить режим ssl для порта
-Tuning+ Настройка сканирования:
1 Интересный файл / Встречается в логах
2 Неправильная конфигурация / Файл по умолчанию
3 Раскрытие информации
4 Инъекция (XSS/Script/HTML)
5 Удаленное получение файлов - Внутри веб-корня
6 Отказ в обслуживании (DoS)
7 Удаленное получение файлов - На уровне сервера
8 Выполнение команд / Удаленный shell
9 SQL-инъекция
0 Загрузка файла
a Обход аутентификации
b Идентификация программного обеспечения
c Включение удаленного источника
d Веб-сервис
e Административная консоль
x Обратные параметры настройки (т.е. включить все, кроме указанных)
-timeout+ Тайм-аут для запросов (по умолчанию 10 секунд)
-Userdbs Загружать только пользовательские базы данных, а не стандартные
all Отключить стандартные БД и загружать только пользовательские
tests Отключить только db_tests и загружать udb_tests
-useragent Принудительно задать User-Agent вместо получения из базы данных
-url+ Целевой хост/URL (алиас для -host)
-useproxy Использовать прокси, определенный в nikto.conf, или аргумент http://server:port
-Version Вывести версии плагинов и базы данных
-vhost+ Виртуальный хост (для заголовка Host)
-404code Игнорировать эти HTTP-коды как отрицательные ответы (всегда). Формат: "302,301".
-404string Игнорировать эту строку в содержимом тела ответа как отрицательный ответ (всегда). Может быть регулярным выражением.
+ требует указания значения
Тестовая база данных Nikto поддерживает мини-DSL для сопоставления ответов. Поддерживаются следующие сопоставители:
BODY: и !BODY: — Сопоставить или исключить содержимое в теле ответа.HEADER: и !HEADER: — Сопоставить или исключить содержимое в HTTP-заголовках.COOKIE: и !COOKIE: — Сопоставить или исключить содержимое в HTTP-кахах. (НОВОЕ)CODE: и !CODE: — Сопоставить или исключить HTTP-коды состояния.Вы можете комбинировать несколько сопоставителей с помощью && (И). Пример:
BODY:login&&!BODY:logout&&HEADER:X-Powered-By&&COOKIE:sessionid
Это будет соответствовать, если тело ответа содержит "login", не содержит "logout", заголовки включают "X-Powered-By" и присутствует cookie с именем "sessionid".
Авторское право (C) 2001–2026 Chris Sullo. Все права защищены.
Уведомление об этой лицензии применяется только к коду Nikto
Информацию о лицензировании LibWhisker смотрите в COPYING.LibWhisker).
Файлы базы данных НЕ лицензированы по GPL и могут распространяться только как часть официального пакета или установщика Nikto, исключительно для использования с Nikto.
Для получения полных условий лицензирования и политик коммерческого использования посетите: https://cirt.net/Nikto-Licensing
Эта программа является свободным программным обеспечением: вы можете распространять ее и/или изменять ее в соответствии с условиями Стандартной общественной лицензии GNU (GPL), версии 3, опубликованной Free Software Foundation.
Эта программа распространяется в надежде, что она будет полезной, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ; даже без гарантии КОММЕРЧЕСКОЙ ЦЕННОСТИ или ПРИГОДНОСТИ ДЛЯ КОНКРЕТНОЙ ЦЕЛИ. Подробнее смотрите в Стандартной общественной лицензии GNU.
Полный текст лицензии доступен по адресу: https://www.gnu.org/licenses/gpl-3.0.txt
Полное уведомление о лицензии смотрите в COPYING).