Как пользоваться nikto linux

Обновлено: 06.07.2024

В прошлом году в спецвыпуске, посвященном сетевой безопасности, был рассмотрен сетевой сканер nmap, позволяющий определить наличие открытых портов на компьютере и работу тех или иных сервисов на сервере. Однако зачастую необходимо протестировать определенный сервис на наличие уязвимостей. Одним из узкоспециализированных сканеров является сканер веб-серверов Nikto, ориентированный на определение программного обеспечения web-сервера, наличие дополнительных модулей и типовых скриптов, в которых уязвимости уже известны. Такой инструмент поможет системному администратору вовремя устранить возможные уязвимости и защититься от атак хакеров. Безусловно, этот сканер можно использовать и для предварительной проверки web-сервера перед нападением, поскольку подобные инструменты зачастую применяются как для взлома, так и для защиты.

Принцип и возможности сканера

Nikto — утилита для обнаружения файлов, которые копируются при установке сервера в папки по умолчанию. Помимо этого она тестирует web- и CGI-серверы на предмет безопасного использования. Во время работы сканер осуществляет многочисленные запросы на удаленный сервер, что в некоторых случаях может вызвать его падение, поскольку такой же принцип применяется в DoS-атаках. Необходимо отметить, что применение данного программного обеспечения для тестирования сервера без предварительного согласования с его владельцем может быть чревато для тестера серьезными неприятностями. В конце концов УК РФ (да и любой другой страны) еще никто не отменял.

Сканер Nikto предназначен для изучения web-серверов на предмет наличия:

  • неправильных конфигурационных файлов;
  • файлов и сценариев, которые остаются после установки сервера;
  • опасных файлов и исполняемых сценариев;
  • устаревшего программного обеспечения.

Nikto может автоматически осуществлять проверку на наличие обновлений и при необходимости закачать свежую версию с официального сайта. По умолчанию автоматические обновления сканера в конфигурационном файле отключены.

После того как дистрибутив Nikto скачан с сайта, его необходимо разархивировать. Запускать web-сканер можно из-под простого пользователя, так как он не требует привилегий суперпользователя root, что очень удобно и повышает безопасность системы в целом. В корневой директории, где и располагается исполняемый скрипт сканера (nikto.pl), находится конфигурационный файл config.txt. В нем можно указать некоторые специфические настройки, такие как путь к сканеру nmap, настройки прокси-сервера, если необходимо работать через него, настройки обновлений и IP-адрес, с которого Nikto будет скачивать обновления. Также в этом файле можно принудительно указать те порты (или диапазон портов), которые не подлежат сканированию во избежание обнаружения работы сканера. Все остальные параметры задаются через командную строку. Нельзя не отметить тот факт, что, поскольку сканер написан на языке Perl, редактирование основного файла не составит труда для подкованного программиста и изменение необходимых параметров займет совсем немного времени. Полный список дополнительных параметров для запуска с их краткими объяснениями можно получить, запустив из командной строки:

Параметры запуска

Прежде всего следует обратить внимание на синтаксис параметров. Все они регистрозависимые — при наборе необходимо учитывать прописные и строчные буквы.

Параметр -config

Данный параметр позволяет задать другой конфигурационный файл и не использовать тот, который находится в корне директории nikto.

Параметр -Cgidirs

Опция позволяет явно указать точную директорию на web-сервере, где находятся скрипты cgi. Она также может принимать значение all, которое указывает сканеру на работу со всеми известными директориями cgi. Значение none полностью отключает сканирование cgi-директории.

Параметр -Display

Данный параметр отвечает за вывод информации на экран компьютера в процессе сканирования. Всего эта опция может принимать шесть различных значений. Поскольку Nikto — разработка любителей, значения представлены в виде цифр и символов. Приведем расшифровку этих значений:

1 — выводит на экран перенаправления с сервера, если таковые выявлены в процессе сканирования;

3 — выводит все успешные запросы (у которых статус 200/OK);

4 — показывает все страницы (URL), которые требуют аутентификации;

D — выводит debug-информацию (что необходимо при отладке);

V — работает в режиме verbose, то есть в режиме показа всей дополнительной информации.

Параметр -dbcheck

Выполнение скрипта с этим параметром предполагает проверку базы данных на наличие ошибок и, если таковые найдены, уведомление об этом пользователя.

Параметр -evasion

Как описывалось ранее, этот параметр отвечает за использование техники уклонений IDS (Intrusion Detection System). Успешное применение методов сокрытия основано на том предположении, что стеки протоколов, реализованные в IDS и в атакуемой (целевой) системе, различаются. Передаваемая по сети информация может быть по-разному обработана IDS и целевой системой. Из-за различий в стеках протоколов возможно создание последовательности пакетов, которая будет принята IDS, но отвергнута целевой системой. В таком случае IDS не знает, что целевая система не приняла пакет, и атакующий может воспользоваться этим для сокрытия факта проведения атаки, посылая специально созданные пакеты. Создавая ситуацию, когда целевая система отбрасывает пакеты, а система обнаружения атак их принимает, нарушитель как бы вставляет данные в анализатор событий IDS. Всего сканер Nikto поддерживает до восьми различных способов уклонений, но одновременно может использоваться только один из них. Перечислим данные тактики:

  • Random URI encoding (non-UTF8);
  • Directory self-reference (/./);
  • Premature URL ending;
  • Prepend long random string;
  • Fake parameter;
  • TAB as request spacer;
  • Change the case of the URL;
  • Use Windows directory separator (\).

Следует отметить, что применение IDS-уклонений в большинстве случаев не скроет полностью работу сканера, однако позволит значительно уменьшить вероятность его обнаружения.

Параметр -findonly

Параметр -Format

Настоящий параметр позволяет задать метод вывода результатов сканирования в файл. Он может принимать значения txt, htm, csv и xml. Из их названий видно, за какой формат они отвечают. Соответственно эта опция работает лишь с параметром -o (-output).

Параметр -host

Данным параметром задается имя исследуемого компьютера или его IP-адрес. В случае если параметр -nolookup указан, необходимо задавать IP-адрес, а не DNS-имя компьютера.

Параметр -id

Опция -id позволяет задать имя пользователя и пароль для входа на web-сервер, который требует предварительной авторизации. Пример работы этой команды следующий:

./nikto.pl –id login:password –host testserver, где login — имя пользователя; password — пароль; testserver — название исследуемого компьютера.

Параметр -mutate

Задание этого параметра позволяет более подробно поработать в процессе сканирования с директориями и названиями файлов на сервере.

Параметр -output

Данный параметр задает название файла, в который будет записан результат сканирования сервера. Название файла может быть любым, но если в дальнейшем указывается дополнительный параметр –Format, то расширение файла будет добавлено автоматически.

Параметр -port

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

Параметр -Pause

С помощью этой опции можно явно задать время в секундах между запросами. По умолчанию оно составляет не более секунды. Увеличение данного параметра даст возможность уменьшить вероятность обнаружения сканирования, однако существенно увеличит время работы сканера.

Параметр -ssl

Параметр -timeout

Задает время в секундах на отклик от сервера при запросах. По умолчанию этот параметр равен 2 с — это оптимальное время для быстрого сканирования.

Параметр -useproxy

Данная опция включает режим работы через прокси-сервер, который указывается в конфигурационном файле config.txt. Работа через прокси-сервер более корректна с точки зрения защиты от обнаружения сканирования удаленным компьютером.

Параметр -update

Настоящая опция заставляет принудительно запросить сервер, указанный в config.txt, на наличие обновлений для сканера. Если таковые будут найдены, скрипт загрузит обновления с сайта и обновит сканер. Сканирование совместно с этим параметром невозможно.

Параметр -Version

Данный параметр позволяет вывести текущие версии установленных плагинов и самого скрипта-ядра, а также дату последних изменений плагинов. Таким образом можно определить, насколько плагин новый.

В качестве примера работы web-сканера Nikto приведен листинг.

./nikto.pl -host 192.168.192.1

- ***** SSL support not available (see docs for SSL install instructions) *****

+ Target IP: 192.168.192.1

+ Target Hostname: 192.168.192.1

+ Server: Apache/2.2.2 (ASPLinux)

- Root page / redirects to: php-fusion/news.php

+ OSVDB-0: Retrieved X-Powered-By header: PHP/5.1.6

+ PHP/5.1.6 appears to be outdated (current is at least 5.2.5)

+ Apache/2.2.2 appears to be outdated (current is at least Apache/2.2.6). Apache 1.3.39 and 2.0.61 are also current.

+ OSVDB-3092: GET /stats/ : This might be interesting.

+ OSVDB-3268: GET /icons/ : Directory indexing is enabled: /icons

+ OSVDB-3233: GET /icons/README : Apache default file found.

+ 4347 items checked: 11 item(s) reported on remote host

Как видно из отчета, это результат сканирования локального web-сервера 192.168.192.1 без каких-либо дополнительных параметров. Nikto определяет версию программного обеспечения, установленного на сервере, а также возможные уязвимости. В качестве комментариев к каждой из найденных уязвимостей предлагается возможное решение проблемы: обновление сервера, замена конфигурационных файлов и т.п. Скорость работы сканера очень высокая, поэтому одновременно можно сканировать сразу несколько компьютеров без потери производительности. При работе задействуется 50% ресурсов центрального процессора и очень малый объем памяти, что позволяет работать со сканером даже нf загруженных серверах.

В заключение отметим, что сканер Nikto является отличным подспорьем и для системного администратора, и для web-программиста, поскольку позволяет определять уязвимости не только серверного программного обеспечения (Apache и др.), но и самих скриптов. Базы данных, поставляемые в комплекте со сканером, содержат записи о тысячах уязвимостей, которые ранее были найдены в популярных скриптах (форумах, голосованиях, CMS). Напоследок поясним, что своим названием — Nikto — web-сканер обязан фильмам «Армия Тьмы» (“Army of Darkness”) и «День, когда Земля остановилась» (“The Day the Earth Stood Still”).

Всем привет! В марте OTUS запускает новый курс «Практикум по Kali Linux». В преддверии старта курса подготовили для вас перевод полезного материала. Также хотим пригласить всех желающих на бесплатный урок по теме: «Denial of Service атаки и защита от них».



Перед тем как атаковать любой сайт, хакер или пентестер сначала составляет список целей. После того, как он проведет хорошую разведку и найдет слабые места для «наведения прицела», ему понадобится инструмент сканирования веб-сервера, такой как Nikto, который поможет найти уязвимости – потенциальные вектора атаки.

Nikto – это простой открытый сканер веб-серверов, который проверяет веб-сайт и сообщает о найденных уязвимостях, которые могут быть использованы для эксплойта или взлома. Кроме того, это один из наиболее широко используемых инструментов сканирования веб-сайтов на уязвимости во всей отрасли, а во многих кругах он считается отраслевым стандартом.

Несмотря на то, что этот инструмент чрезвычайно эффективен, он не действует скрытно. Любой сайт с системой обнаружения вторжений или иными мерами безопасности поймет, что его сканируют. Nikto был разработан для тестирования безопасности и о скрытности его работы никто не задумывался.

Как правильно использовать Nikto

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

Прежде чем начинать сканирование с помощью Nikto, лучше предварительно провести разведку с помощью такого открытого инструмента как Maltego. Такие инструменты могут оказаться полезными при создании профиля и формировании более конкретного списка целей, на которых стоит сосредоточиться. Как только вы это сделаете, можно будет воспользоваться Nikto для поиска потенциальных уязвимостей в целях из вашего списка.

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

Шаг 1: Установка Nikto

Если вы используете Kali Linux, то Nikto будет предустановлен, поэтому вам ничего скачивать и устанавливать не придется. Он будет расположен в категории «Vulnerability Analysis». Если у вас его по какой-то причине нет, вы можете скачать Nikto с его репозитория на GitHub или просто использовать команду apt install .


Если вы работаете на Mac, то можете использовать Homebrew, чтобы установить Nikto.

Шаг 2: Познакомьтесь с Nikto

Перед сканированием веб-серверов с помощью Nikto, воспользуйтесь параметром -Help, чтобы увидеть все, что можно делать с этим инструментом:

Шаг 3: Используйте базовый синтаксис

Как вы видите из предыдущего шага, у Nikto есть много вариантов использования, но для наших целей мы будем использовать базовый синтаксис <IP или hostname> с фактическим IP-адресом или именем хоста без угловых скобок.

Если мы знаем, что у целевого сайта есть SSL, мы можем указать это в Nikto, чтобы сэкономить некоторые время на сканировании, добавив -ssl в конец команды.

Шаг 4: Сканируйте сайты с SSL

Шаг 5: Сканирование IP-адреса

IP-адрес, который нам нужен относится к «inet». На нем мы можем использовать ipcalc для того, чтобы получить сетевой диапазон. Если у вас нет ipcalc, вы можете установить его с помощью команды apt install ipcalc , а затем повторить попытку. Диапазон будет стоять после «Network», в моем случае это 192.168.0.0/24.

Теперь мы хотим запустить Nmap, чтобы найти службы, работающие в этом сетевом диапазоне. Давайте сканировать 80 порт с помощью нашего диапазона, для этого допишем -oG (grepable output), чтобы получить только те хосты, которые подняты и работают, то есть те, которые отвечают, говоря, что 80 порт открыт. Затем мы сохраним все это в файл, который я назову nullbyte.txt , вы, в свою очередь, можете назвать его как угодно.


Теперь мы можем просмотреть содержимое нашего нового файла с помощью cat, чтобы увидеть все IP-адреса, у которых открыт 80 порт.


Результаты будут аналогичны тем, что мы получили при сканировании с SSL.

Из информации выше, мы понимаем, что присутствует сервер Varnish и некоторые заголовки, которые могут подсказать, как сконфигурирован веб-сайт. Однако более полезная информация – это обнаруженные каталоги, которые могут помочь зацепить конфигурационные файлы, содержащие учетные данные или другие вещи, которые были неправильно сконфигурированы и оказались доступными непреднамеренно.

Несмотря на то, что наше сканирование не выявило никаких критических уязвимостей, которые можно было бы эксплуатировать, вы можете использовать справочный инструмент CVE для перевода идентификатора OSVDB в запись CVE, чтобы вы могли воспользоваться одним из сайтов, приведенных выше.


Шаг 7: Сканирование вместе с Metasploit

Одна из лучших вещей в Nikto заключается в том, что вы можете просто экспортировать информацию, полученную при сканировании, в формат, который сможет прочитать Metasploit. Для этого просто используйте команды для выполнения сканирования, приведенные выше, но добавьте к ним в конце флаги -Format msf+. Этот формат может помочь быстро сопоставить данные, полученные с помощью эксплойта.


Итак, в сегодняшнем руководстве мы перешли от определения цели к поиску уязвимостей в ней, а затем связали найденные уязвимости с эксплойтом, чтобы нам не пришлось делать всю работу вручную. Поскольку Nikto не работает скрытно, разумно выполнять эти сканирования через VPN, Tor или другой тип сервиса, чтобы ваш IP-адрес не был помечен как подозрительный.

Проверка на проникновение в Kali Linux Web Глава 5 Автоматическое сканирование

Краткое введение

Почти каждый проект по тестированию на проникновение должен следовать строгому графику, большинство из которых определяются потребностями клиента или датой обсуждения разработки. Для тестеров на проникновение полезно иметь инструмент, который может выполнить несколько тестов для одного приложения за короткий промежуток времени, чтобы выявить как можно больше уязвимостей во время графика. Автоматические сканеры уязвимостей - это инструменты для решения этой задачи, которые также используются для поиска альтернативных эксплойтов или для гарантии того, что в тесте на проникновение не пропущено ничего очевидного.

Kali включает в себя несколько сканеров уязвимостей для веб-приложений или определенных веб-уязвимостей. В этой главе мы рассмотрим некоторые из наиболее широко используемых инструментов среди тестеров на проникновение и исследователей безопасности.

5.1 Сканирование с Никто

В этом рецепте мы будем использовать Nikto для поиска уязвимостей на веб-серверах и анализа результатов,

Операционные шаги

Никто - инструмент командной строки, поэтому мы открываем терминал.

Мы сканируем приложения Peruggia и экспортируем результаты в отчет HTML:


-h Опция сообщает Никто, какие хосты сканировать, -o Опции сообщают, где хранить выходные данные, а расширение файла определяет принятый формат. Здесь мы используем .html Чтобы получить отчет о результатах в формате HTML. Вывод также может быть в формате CSV, TXT или XML.

Для завершения сканирования требуется некоторое время. Когда закончим, можем ли мы открыть result.html Файл:


Принцип работы

В этом рецепте мы используем Nikto для сканирования приложения и создания отчета в формате HTML. У этого инструмента есть еще несколько опций для выполнения определенных проверок или генерации определенных выходных форматов. Некоторые из наиболее полезных опций:

-H : Это показывает помощь Никто.

-config <file> : Используйте пользовательский профиль для сканирования.

-update : Обновить базу данных плагинов.

-Format <format> : Это определяет формат вывода и может быть CSV, HTML, NBE (Nessus), SQL, TXT или XML. Форматы, такие как CSV, XML и NBE, полезны, когда мы планируем использовать их для ввода из других инструментов.

-evasion <techique> При этом используются некоторые методы кодирования, помогающие избежать обнаружения брандмауэрами веб-приложений и системами обнаружения вторжений.

-list-plugins : Просмотр доступных тестовых плагинов.

-Plugins <plugins> : Выберите, какой плагин использовать при сканировании (по умолчанию все).

-port <port number> : Если сервер использует нестандартные порты (80, 443), мы можем использовать Nikto с этой опцией.

5.2 Обнаружение уязвимостей с помощью Wapiti

Wapiti - это еще один терминальный сканер веб-уязвимостей, который отправляет запросы GET и POST целевым сайтам, чтобы найти следующие уязвимости (

Операционные шаги

Мы можем открыть Wapiti из окна терминала, например:

Мы будем сканировать приложение Peruggia в уязвимом_vm, сохранить вывод в формате HTML и сохранить его в wapiti_result Каталог и пропустить обнаружение слепой инъекции SQL.

Если мы откроем каталог отчетов, и index.html Файл, мы увидим что-то вроде этого:


Здесь мы видим, что Wapiti обнаружила 12 уязвимостей XSS и 20 уязвимостей при обработке файлов.

Нажмите сейчас Cross Site Scripting (Межсайтовый скриптинг).



Мы нашли уязвимость XSS.

Принцип работы

В этом чите мы пропустили слепое обнаружение инъекций SQL -m "-blindsql" ), Потому что это приложение имеет эту уязвимость. Это вызывает ошибку тайм-аута, в результате чего Wapiti закрывается до завершения сканирования, потому что Wapiti проходит sleep() Команда для тестирования несколько раз, пока сервер не превысит порог тайм-аута. В то же время мы выбрали формат HTML для вывода ( -o html ), wapiti_result В качестве целевого каталога для отчета мы также можем выбрать другие форматы, такие как JSON, OpenVAS, TXT или XML.

У Wapiti есть еще несколько интересных опций:

-x <URL> : Исключить определенные URL-адреса из сканирования. Полезно для выхода из системы и изменения URL-адресов паролей.

-i <file> : Восстановить ранее сохраненное сканирование из файла XML. Имя файла не является обязательным, потому что если опустить Wapiti из scan Чтение файлов из папки.

--auth-method <method> : Для -a Опция определяет метод авторизации, может быть basic , digest , kerberos или ntlm 。

-s <URL> : Определить URL для сканирования.

5.3 Сканирование на наличие уязвимостей с помощью OWASP ZAP

OWASP ZAP - это инструмент, который мы использовали в этой книге для различных задач, и среди его многочисленных функций есть автоматический сканер уязвимостей. Его использование и генерация отчетов будут рассмотрены в этом мошенничестве.

готовый

Прежде чем мы сможем успешно выполнить сканирование уязвимостей с помощью OWASP ZAP, нам нужно просканировать сайт:

Откройте OWASP ZAP и настройте браузер на использование его в качестве прокси.

Следуйте инструкциям в главе 3 «Пауки, использующие ZAP».

Операционные шаги

Доступ к OWASP ZAP Sites Панель и правый клик peruggia Папка.

Доступ к меню Attack | Active Scan 。


Появится новое окно. Здесь мы знаем, какие технологии используют наше приложение и сервер, поэтому доступ Technology Tab и только проверка MySQL 、 PostgreSQL и Linux И Apache 。


Здесь мы можем настроить наш сканер Scope (С чего начать сканирование, в каком контексте и т. Д.), Input Vectors (Параметры, если вы собираетесь тестировать запросы GET и POST, заголовки протокола, файлы cookie и другие параметры), Custom Vectors (Добавить конкретные символы или слова в исходный запрос в качестве вектора атаки), Technology (Какие технологические тесты выполнять) и Policy (Настройте параметры для определенных параметров теста).

Нажмите на Start Scan 。

Active Scan Вкладка появляется в верхней части панели, и там отображаются все запросы. Когда сканирование завершено, мы можем ALerts Проверьте результаты во вкладках.


Если мы выберем определенное предупреждение, мы сможем просмотреть сгенерированный запрос и ответ, полученный с сервера. Это позволяет нам проанализировать атаку и определить, является ли она реальной уязвимостью или ложным срабатыванием. Мы также можем использовать эту информацию для нечетких тестов, воспроизведения запроса в браузере или углубления, чтобы воспользоваться преимуществами. Чтобы создать отчет в формате HTML, как и в предыдущем инструменте, откройте его из главного меню. Report Выберите после Generate HTML Report. 。

Новый диалог запрашивает имя файла и местоположение. Например, настройка zap_result. html И откройте файл, когда закончите:


Принцип работы

OWASP ZAP способен выполнять активные и пассивные сканирования уязвимостей. Пассивное сканирование - это неинвазивный тест, выполняемый OWASP ZAP во время просмотра, отправки данных и перехода по ссылкам. Упреждающее тестирование включает использование нескольких строк атаки на каждую переменную формы или значение запроса, чтобы определить, несет ли ответ сервера то, что мы называем «хрупким поведением».

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

Еще одна интересная особенность этого инструмента заключается в том, что мы можем генерировать запросы при обнаружении уязвимостей, и соответствующий ответ будет находиться в том же окне во время обнаружения. Это позволяет нам быстро прочитать, является ли это реальной уязвимостью или ложным срабатыванием, и следует ли разработать наше доказательство уязвимости (POC) или начать его использовать.


более

Мы говорили о Burp Suite. Кали включает только бесплатную версию, она не имеет активных и пассивных функций сканирования. Настоятельно рекомендуется получить профессиональную лицензию Burp Suite, поскольку она имеет практические функции и улучшения по сравнению с бесплатной версией, такие как активное и пассивное сканирование уязвимостей.

Сканирование пассивной уязвимости происходит, когда мы используем Burp Suite в качестве прокси для браузера и просматриваем Интернет. Burp анализирует все запросы и ответы, ища шаблоны, соответствующие известным уязвимостям.

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

5.4 Сканирование с помощью w3af

w3af поддерживает аудит приложений и инфраструктуры атак. Это сканер веб-уязвимостей на основе Python с открытым исходным кодом. Он имеет графический интерфейс и интерфейс командной строки, оба с одинаковыми функциями. В этом рецепте мы будем использовать графический интерфейс w3af для настройки параметров сканирования и отчетов для выполнения сканирования.

Операционные шаги

Для запуска w3af мы можем выбрать его в строке меню приложения и просмотреть Applications | 03 Web Application Analysis | w3af Или из терминала:

в Profiles В разделе мы выбираем full_audit 。

В разделе плагинов посетите crawl И выберите web_spider (Уже выбрано).

Мы не собираемся позволять сканеру тестировать все серверы, но мы позволим ему протестировать приложение. В разделе плагинов выберите only_forward Вариант и нажмите Save 。


Теперь мы сообщим w3af сгенерировать отчет HTML, когда закончим. доступ output Плагин и выберите html_file 。

Чтобы выбрать имя файла и место для сохранения отчета, измените output_file Параметры. Здесь мы укажем корневой каталог w3af_report.html , Нажмите на Save 。



Вкладка журнала получит фокус, и мы сможем увидеть ход сканирования. Нам нужно ждать, пока это закончится.

После этого переключитесь на Results Вкладка, как это:


Чтобы просмотреть подробный отчет, откройте в своем браузере w3af_report.html HTML-файл


Принцип работы

w3af использует файлы конфигурации для упрощения задачи выбора плагинов для сканирования. Например, мы можем определить файл конфигурации, который содержит только SQL-инъекции. Он проверяет SQL-инъекцию приложения и больше ничего не делает. full_audit В конфигурации используются плагины, которые выполняют тесты сканирования, извлекают списки слов, которые можно использовать в качестве паролей, тестируют большинство связанных с ними веб-уязвимостей, таких как XSS, SQLi, включение файлов, обратный путь в каталогах и многое другое. Мы модифицировали web_spider Плагин сканируется, поэтому мы можем сосредоточиться на приложении, которое мы собираемся протестировать, и избежать сканирования в другие приложения. Мы также изменили плагин вывода для генерации отчетов в формате HTML вместо вывода на консоль и текстовых файлов.

В w3af также есть такие инструменты, как прокси-серверы перехвата, фаззеры, текстовые кодеки и экспортеры запросов, которые могут преобразовывать необработанные запросы в исходный код на нескольких языках.

более

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

5.5 Использование Vega Scanner

Vega - это сканер веб-уязвимостей, созданный канадской компанией Subgraph и распространяемый как инструмент с открытым исходным кодом. Помимо того, что он является сканером, он также может использоваться как прокси-сервер для перехвата, а также для сканирования, когда наш браузер нацелен на сайт.

В этом рецепте мы будем использовать Vega для обнаружения веб-уязвимостей.

Операционные шаги

Выберите его в меню приложения для доступа Applications | Kali Linux | Web Applications | Web Vulnerability Scanners | vega Или открыть Vega через терминал:


Нажмите на Next , Здесь мы можем выбрать, какой модуль запускать в приложении. Давайте сохраним по умолчанию.


Нажмите на Finish Для начала сканирования.


Когда сканирование завершено, мы можем получить доступ к Scan Alerts Дерево для проверки результатов. Детали уязвимости отображаются на правой панели, например:


Принцип работы

Vega сначала сканирует URL-адрес, который мы указали в качестве цели, выявляя формы и другие возможные данные, такие как файлы cookie или заголовки запросов. После того, как они были найдены, Vega попробовала разные данные, выявив уязвимости, проанализировав ответы и сопоставив их с известными шаблонами уязвимостей.

В Vega мы можем сканировать один сайт или ряд сайтов в пределах диапазона. Мы можем выбрать, какой тест выполнить, выбрав модуль, используемый при сканировании. Точно так же мы можем использовать идентификационные данные (предварительно сохраненную комбинацию пользователя и пароля) или сеансовые куки для аутентификации сайта и исключения некоторых параметров из тестирования.

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

5.6 Использование Wmap от Metasploit для обнаружения уязвимостей в сети

Wmap сам по себе не является сканером уязвимостей, а представляет собой модуль Metasploit, который использует веб-уязвимости и серверные модули во всех средах и координирует их для загрузки и выполнения на целевом сервере. Его результаты экспортируются не в виде отчетов, а в виде записей в базе данных Metasploit.

В этом рецепте мы будем использовать Wmap для поиска уязвимостей в уязвимых местах и ​​использовать инструмент командной строки Metasploit для проверки результатов.

готовый

Прежде чем запустить консоль Metasploit, нам нужно запустить подключенный сервер базы данных, чтобы сохранить сгенерированные нами результаты:

Операционные шаги

Запустите терминал и запустите консоль Metasploit:

После загрузки загрузите модуль Wmap:

Теперь мы добавляем сайты в Wamp:

Теперь мы установили этот сайт в качестве цели сканирования:

Если мы намереваемся подключить выбранную цель, мы можем использовать:


Сейчас мы проводим тест:



Принцип работы

Wmap использует модули Metasploit для поиска уязвимостей в целевых приложениях и серверах. Он берет информацию о сайте из базы данных и модулей Metasploit и отправляет результаты в базу данных. Очень практический аспект этой интеграции заключается в том, что если мы выполняем тестирование на проникновение на нескольких серверах и используем в тесте Metasploit, Wmap автоматически получает IP-адреса всех веб-серверов и известных URL-адресов и интегрирует их в сайт. Так что, когда мы планируем провести веб-оценку, нам просто нужно выбрать цель из списка сайтов.

В исполнении wmap_run В то время мы можем выбрать, какой модуль выполнить. по -m Варианты и регулярные выражения. Например, следующая командная строка включит все модули, кроме dos Модуль, который означает отсутствие отказа в обслуживании теста:

Еще одна полезная опция -p , Это позволяет нам выбирать путь, который мы намереваемся проверить с помощью регулярных выражений, например, в следующей команде мы проверим все содержащие слова login URL.

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

Продолжаем рассматривать тематику взлома систем, и давайте поищем еще один способ, как взломать нашу цель. В предыдущих уроках мы с Вами рассматривали некоторые инструменты для сканирования, такие как «nmap» и «nessus».

Сейчас рассмотрим инструмент под названием «Nikto». Этот инструмент предназначен для сканирования уязвимостей веб-приложений. Этот инструмент сканирует сайты на предмет возможных уязвимостей. Мы можем использовать «Nikto», так как на атакуемой машине мы имеем несколько веб-сервисов.

Если запустить этот сканер с помощью команды «nikto» без параметров, то мы увидим ошибку:

nikto

Иными словами, для корректной работы инструмента нам нужно указывать некоторые опции, в частности, «-host <ip-адрес>». Имейте ввиду, что на атакуемой машине несколько веб-серверов. Один из них использует 80 порт (сервер Apache), а другой 8180 (Apache Tomcat).

Давайте поработаем с сервером Apache Tomcat.

В нашу команду добавляем опцию «-p», а также порт 8180, т.к. по-умолчанию используется 80 порт, который нам пока что не нужен. Команда будет иметь вид: «nikto -host 192.168.15.131 -p 8180»:

nikto -host 192.168.15.131 -p 8180

Nikto запустился, и нам нужно подождать результат работы инструмента:

работа сканера nikto

HTTP метод

Не будем подробнее останавливаться на этой уязвимости, так как нас интересует другая уязвимость на этом сервере Tomcat. Эта уязвимость позволяет удаленно выполнять команды на этом сервере. Для начала эксплуатации данной уязвимости нам нужно авторизироваться на этом веб-сервере, т.е. мне нужны верные учетные данные.

К счастью, сканер «Nikto» обнаружил учетные данные, которые принадлежат ему:

учетные данные tomcat

На этом сервере используются стандартные имя пользователя и пароль. Можно проверить это вручную для авторизации на этом веб-сервере. Для проверки переходим в браузер и вводим айпи адрес и порт.:

apache tomcat

Номер порта указывается для того, чтобы не использовались дефолтные порты, такие как 80 и 443.

Пробуем авторизироваться в Tomcat, и используем вкладку «Tomcat Manager»:

авторизация в tomcat

Отлично. Мы авторизировались в панели управления Tomcat:

Теперь я могу изменить сайт, изменить что-либо и так далее.

Можно создать для Ваших целей определенное ПО, или воспользоваться инструментом «Metasploit», воспользовавшись готовым модулем, для загрузки на сервер. Запустим Metasploit, и воспользуемся поиском. Команда будет выглядеть как: «search tomcat»:

search tomcat

В этом выводе есть две подходящие опции – это «tomcat_mgr_deploy» и «tomcat_mgr_upload»:

«tomcat_mgr_deploy» и «tomcat_mgr_upload»

Обе эти опции отлично подходят нам против Tomcat. Выбираем вторую, и выполняем команду «use»:

use

Просмотрим опции с помощью команды «show options»:

show options

Вспомните взлом vsftpd, который был в прошлом занятии. Сейчас ничего не отличается, кроме большего списка параметров, которые нужно настраивать.

Для начала укажем имя пользователя и пароль:

указываем имя пользователя и пароль tomcat

Далее нужно указать удаленный хост или айпи-адрес цели и порт. У меня это 192.168.119.130:8180. По-умолчанию стоит порт 80, который мы изменили:

rhost rport

Давайте перепроверим, что все опции настроены правильно. Это делается с помощью команды «show options»:

show options

И, наконец, выполняем команду «run»:

команда run

Отлично. Теперь у меня есть шелл Meterpreter-a. Данный шелл является частью Metasploit. Он позволяет выполнять команды на атакуемой машине. Данные команды будут отличаться от обычных команд моей цели. Например, если мы выполним команду «id», то появляется ошибка:

команда id

Все дело в том, что meterpreter не знает этой команды, так как он является отдельным шеллом со своими командами, к которым не относится команда «id».

Можем ввести команду «pwd», и она сработает:

Данная команда работает и на meterpreter, и на linux-системах.

Если выполнить команду «whoami», то она не сработает:

команда whoami не работает

Для того, чтобы узнать, какие команды нам нужно использовать, нужно ввести знак вопроса «?»:

отображение справки metarpreter

Это длинный список команд meterpreter.

Если meterpreter кажется Вам непонятным, то не волнуйтесь и рассматривайте его следующим образом; при взломе атакуемой машины Metasploit загружает на нее программу, которая позволяет взаимодействовать с этой машиной, и выполнять различные команды. Это программа называется «meterpreter».

И сейчас мы взаимодействуем с этой программой, которая позволяет нам управлять системой на удаленной машине.

Если мне нужен линукс-шелл, то для этого нужно ввести команду «shell»:

ввод команды shell

В нем работают все команды, которые присущи линукс-системам.

Если выполнить команду «guid», то она уже не сработает:

команда guid

Все из-за того, что я нахожусь в линукс-шелле.

Однако, можно выполнить команду «whoami», и «id», то они будут работать:

команды whoami и id

Обратите внимание, что вышеописанные команды не работали в meterpreter. После ввода команды «shell», я получил доступ непосредственно к стандартному линукс шеллу. Теперь я могу выполнять стандартные линукс команды.

Есть один момент, который заключается в том, что я не рут пользователь, а обычный пользователь «tomcat55».

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

С помощью инструмента «Nikto», мы оказались там, где мы сейчас находимся. Имейте ввиду, что это не специализированный инструмент для работы с конкретными сайтами.

Существуют инструменты, которые заточены на работу с определенными веб-технологиями. К примеру, для работы с сайтом на вордпресс существует инструмент для поиска уязвимостей, который называется wpscan.

Все зависит от того, какая технология будет использоваться на сайте, и будет предпочтительнее, если Вы будете использовать инструменты, которые были созданы именно под это программное обеспечение.

Мы нашли несколько способов, как можно взломать нашу цель, используя разные уязвимости. Сначала мы взломали ftp-сервис, при этом мы использовали версию ftp, которую мы узнали с помощью «nmap». После этого мы использовали результат сканирования «nessus», где мы узнали, что есть эксплойт для попадания в систему. Как в случае с ftp и ssh сервисами, мы получали рут-права на системе жертвы. Далее мы использовали эксплойт веб-приложений, и смогли попасть в систему через веб-сайт. В последнем случае мы смогли попасть в систему только как обычный пользователь, а не как рут-пользователь. Нам осталось лишь повысить права. Однако, перед этим давайте взломаем систему еще одним способом.

Читайте также: