пентест своими руками, часть 2

ПРОДОЛЖЕНИЕ. НАЧАЛО ЗДЕСЬ

Анализ веб-ресурсов

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

Основные этапы анализа веб-ресурсов - это сбор информации, обнаружение уязвимостей и их эксплуатация.

Сбор информации

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

  1. Сканирование портов
  2. Отпечатки веб-сервера, версии CMS и ОС.
  3. Методы HTTP
  4. Атрибуты куки 


Обнаружение

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

  1. Поиск альтернативного содержимого, т.е. перебор каталогов или файлов.
  2. Поиск конфигураций по умолчанию или неправильных конфигураций.
  3. Проверка входа в систему.
  4. Тестирование сеансовых токенов.
  5. Инъекции: SQL, XSS, XML, шаблоны, команды ОС.
  6. Открытое перенаправление.
  7. LFI и RFI атаки.
  8. Дефекты бизнес-логики.
  9. Отказ в обслуживании.
  10. Тестирование веб-сервисов REST и SOAP


Эксплуатация

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

  1. Захват браузера с помощью XSS.
  2. Утечка данных с помощью различных инъекций.
  3. Обход аутентификации.
  4. Взлом паролей в автономном режиме.
  5. Подделка межсайтовых запросов. 

Анализ веб-ресурсов публичными сканерами

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

Однако, данные сканеры выполняют лишь поверхностное сканирование. 

Анализ веб-ресурсов специализированными сканерами

Стоит отметить, что все нижеуказанные сканеры являются достаточно универсальными решениями, позволяющие выявить основные веб-уязвимости: XSS, CSRF, SQL-injection, File-injection. Данные инструменты не позволяют выявить множество других уязвимостей (к примеру, XEE, множество LFI/RFI-атак, выполнить анализ веб-сервисов REST, SOAP), да и в рамках вышеуказанных уязвимостей не обладает большой глубиной сканирования и аналитики результатов.

Один из самых удобных способов – воспользоваться сканером Arachni (Arachni Web Application Security Scanner Framework). Его достоинство – наличие графического интерфейса пользователя. Он достаточно просто в использовании и лишь требует указать целевой адрес сайта или целевой URL-адрес для сканирования.

Использование следующих двух сканеров: Nikto и Wapiti, – требует навыков работы с командной строкой и наличия дистрибутива с ОС Linux.

1) Nikto – это сканер веб-серверов с открытым исходным кодом (GPL), который выполняет комплексные тесты на множество элементов против веб-серверов.
Для загрузки Nikto в Ubuntu/Debian/MINT Linux, выполните команду:

sudo apt install nikto -y

У Nikto есть много вариантов использования, но для простого сканирования можно использовать базовый синтаксис с фактическим IP-адресом или именем хоста.

nikto -h <IP или имя хоста> 

Nikto может выявить более 6700 потенциально опасных файлов/программ, проверить на наличие устаревших версий более 1250 серверов и просканировать на наличие проблем, связанных с конкретной версией, более 270 серверов. Он также проверяет элементы конфигурации сервера, такие как наличие нескольких индексных файлов, опции HTTP-сервера, а также пытается определить установленные веб-серверы и программное обеспечение.
У Nikto есть много вариантов использования, но для простого сканирования можно использовать базовый синтаксис с фактическим IP-адресом или именем хоста.

nikto -h <IP или имя хоста>

Однако, Nikto способен выполнять сканирование SSL и порта 443, который используют сайты HTTPS (HTTP использует по умолчанию 80 порт). Таким образом, мы не ограничиваемся только сканированием старых сайтов, мы может проводить оценку уязвимостей сайтов, использующих SSL, что на сегодняшний день является почти обязательным требованием для индексирования в результатах поиска.

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

nikto -h <IP or hostname> -ssl 

2) Wapiti– еще один сканер веб-ресурс с открытым исходным кодом, основанный на принципе тестирования черным ящиком. Позволяет выявить большой класс уязвимостей: XSS, SQL, XPath, LDAP-injection, CSRF, XEE и др.

Однако его установка сопряжена с рядом сложностей – требуется наличие Python 3.7. При его наличии установка производится одной командой:

pip install wapiti3

Для сканирования целевого ресурса достаточно ввести:

wapiti -u http://имя хоста/ 

Burp Suite – это интегрированная платформа, используемая для тестирования безопасности веб-приложений. Она содержит несколько инструментов, которые работают вместе, поддерживая весь процесс тестирования.

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

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

OpenVas (Open Vulnerability Assessment System) представляет собой структуру из нескольких сервисов и инструментов. Ядром этой SSL-защищенной, сервис-ориентированной архитектуры является OpenVAS Scanner – инструмент, который можно использовать для выполнения тестов сетевых уязвимостей (NVTs), которые могут быть предоставлены либо через OpenVAS NVT Feed, либо через коммерческий сервис.
Для того, чтобы загрузить OpenVas на Ubuntu, используйте команды:

sudo add-apt-repository ppa:mrazavi/openvas
sudo apt install openvas 

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

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

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


Дополнительные рекомендуемые источники
http://www.pentest-standard.org/index.php/PTES_Technical_Guidelines
https://www.isecom.org/OSSTMM.3.pdf

Система комментирования SigComments

Вам так же могут понравиться другие наши статьи о пентесте. Добро пожаловать! 

наши контакты