Сканирование веб-сервера на наличие уязвимостей, неправильной конфигурации БЕСПЛАТНО с помощью сканера Nikto
Статистика уязвимостей
97% приложений, протестированных Trustwave, имели одну или несколько слабых сторон.
А 14% исследованных вторжений были вызваны неправильной конфигурацией. Неправильная конфигурация может привести к серьезным рискам.
Сканер Nikto
В Интернете существует множество онлайн сканеров уязвимостей для проверки веб-приложений. Однако если вы хотите проверить интранет-приложения или внутренние приложения, то можно воспользоваться веб-сканером Nikto.
Nikto - это сканер с открытым исходным кодом, и его можно использовать с любыми веб-серверами (Apache, Nginx, IHS, OHS, Litespeed и т.д.). Это идеальный штатный инструмент для сканирования веб-серверов. Он способен просканировать более 6700 элементов для обнаружения неправильной конфигурации, рискованных файлов и т.д. Некоторые из функций включают в себя;
- Возможность сохранения отчета в форматах HTML, XML, CSV
- Поддержка SSL
- Сканирование нескольких портов на сервере
- Поиск поддоменов
- Перечисление пользователей Apache
- Проверяет наличие устаревших компонентов
- Обнаружение парковочных сайтов
Начнем с установки и того, как пользоваться этим инструментом.
Существует множество способов использования Nikto.
- Использование Kali Linux
- Docker-контейнер
- Использование бинарного файла на UNIX-дистрибутиве или Windows.
Выполнение сканирования приводит к большому количеству запросов к вашему веб-серверу. Вы принимаете на себя риск и выполняете проверку только на своих серверах.
Использование Nikto в Kali Linux
Поскольку Nikto встроен в Kali, устанавливать ничего не нужно.
Перейдите в раздел Applications >> Vulnerability Analysis и нажмите кнопку nikto
Откроется терминал, в котором можно запустить сканирование веб-сервера. Существует несколько синтаксисов, которые можно использовать для запуска сканирования. Однако наиболее быстрый способ приведен ниже.
1 | nikto -h $webserverurl |
Не забудьте заменить $webserverurl на реальный IP или FQDN вашего веб-сервера.
Пример работы:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | ~# nikto -h example.com - Nikto v2.1.6 --------------------------------------------------------------------------- + Target IP: 123.234.222.222 + Target Hostname: example.com + Target Port: 80 + Start Time: 2023-08-22 06:33:13 (GMT8) --------------------------------------------------------------------------- + Server: Apache/2.4.18 (Ubuntu) + Server leaks inodes via ETags, header found with file /, fields: 0x2c39 0x53a938fc104ed + The anti-clickjacking X-Frame-Options header is not present. + The X-XSS-Protection header is not defined. This header can hint to the user agent to protect against some forms of XSS + The X-Content-Type-Options header is not set. This could allow the user agent to render the content of the site in a different fashion to the MIME type + No CGI Directories found (use '-C all' to force check all possible dirs) + Allowed HTTP Methods: GET, HEAD, POST, OPTIONS + Uncommon header 'x-ob_mode' found, with contents: 1 + OSVDB-3092: /manual/: Web server manual found. + OSVDB-3268: /manual/images/: Directory indexing found. + OSVDB-3233: /icons/README: Apache default file found. + /phpmyadmin/: phpMyAdmin directory found + 7596 requests: 0 error(s) and 10 item(s) reported on remote host + End Time: 2023-08-22 06:54:44 (GMT8) (1291 seconds) --------------------------------------------------------------------------- + 1 host(s) tested |
Как видно, приведенное выше сканирование касается стандартной конфигурации Apache 2.4, и в ней есть много элементов, требующих внимания.
Использование Nikto в CentOS
Войдите в CentOS или любую другую ОС на базе Linux и загрузите последнюю версию с Github с помощью wget
1 | wget https://github.com/sullo/nikto/archive/master.zip |
Распакуйте с помощью команды unzip
1 | unzip master.zip |
Будет создана новая папка с именем "nikto-master". Перейдите в папку nikto-master > program
1 | cd nikto-master/program |
Выполните nikto.pl с целевым доменом
После установки запустите nikto, и все должно быть в порядке. На этот раз я проведу проверку веб-сервера Nginx, чтобы посмотреть, как он работает.
1 | ./nikto.pl -h $IPADDRESS |
Пример работы
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | # ./nikto.pl -h XX.XX.123.123 - Nikto v2.1.6 --------------------------------------------------------------------------- + Target IP: XX.XX.123.123 + Target Hostname: XX.XX.123.123 + Target Port: 80 + Start Time: 2023-06-07 07:39:40 (GMT0) --------------------------------------------------------------------------- + Server: nginx/1.14.1 + The anti-clickjacking X-Frame-Options header is not present. + The X-XSS-Protection header is not defined. This header can hint to the user agent to protect against some forms of XSS + The X-Content-Type-Options header is not set. This could allow the user agent to render the content of the site in a different fashion to the MIME type + No CGI Directories found (use '-C all' to force check all possible dirs) + /httpd.conf: Apache httpd.conf configuration file + /httpd.conf.bak: Apache httpd.conf configuration file + 8075 requests: 0 error(s) and 5 item(s) reported on remote host + End Time: 2023-06-07 07:39:50 (GMT0) (10 seconds) --------------------------------------------------------------------------- + 1 host(s) tested |
Итак, как вы видите, конфигурация веб-сервера Nginx по умолчанию также уязвима.
Устранение неполадок
При работе на CentOS вы можете столкнуться со следующей ошибкой, которую можно исправить, как описано ниже.
ERROR -1
1 | + WARNING: Module JSON::PP missing. -Savedir and replay functionality cannot be used. |
ИЛИ
1 2 3 | ERROR: Required module not found: Getopt::Long ERROR: Required module not found: Time::Local ERROR: Required module not found: Time::HiRes qw(sleep ualarm gettimeofday tv_interval) |
Если вы получаете указанное выше предупреждение, то необходимо установить модуль Perl следующим образом.
1 | yum install perl-CPAN* |
или с помощью DNF в случае использования CentOS 8
1 | dnf install perl-CPAN* |
ОШИБКА - 2
1 | perl: warning: Setting locale failed. |
Для этого необходимо экспортировать локаль в терминал, как описано здесь.
1 2 | export LC_CTYPE=en_US.UTF-8 export LC_ALL=en_US.UTF-8 |
ОШИБКА - 3
1 | Can't locate bignum.pm in @INC (you may need to install the bignum module) |
Необходимо установить модуль Perl bignum.
1 | yum install perl-bignum |
или с помощью DNF
1 | dnf install perl-bignum |
Заключение
Попробуйте поиграть с программой Nikto, его можно использовать с любыми веб-серверами Apache, Nginx, IHS, OHS, Litespeed и т.д. Он способен просканировать более 6700 элементов для обнаружения неправильной конфигурации, рискованных файлов и т.д. Это идеальный штатный инструмент для сканирования веб-серверов.