- •Отзывы и пожелания
- •Список опечаток
- •Нарушение авторских прав
- •Предисловие
- •Кому адресована эта книга
- •О чем идет речь в книге
- •Как извлечь максимум из книги?
- •Загрузка примеров
- •Загрузка цветных изображений
- •Условные обозначения
- •Атаки на веб-приложения. Введение
- •Правила применения оружия
- •Вопросы конфиденциальности данных
- •Очистка
- •Инструментарий тестировщика
- •Kali Linux
- •Альтернативы Kali Linux
- •Прокси-сервер
- •Burp Suite
- •Zed Attack Proxy
- •Облачная инфраструктура
- •Дополнительные источники
- •Упражнения
- •Резюме
- •Глава 2
- •Эффективное обнаружение
- •Типы тестирования
- •Построение карты сети
- •Masscan
- •hatWeb
- •Nikto
- •CMS-сканеры
- •Эффективная атака методом полного перебора
- •Средства сканирования
- •Постоянное картирование контента
- •Обработка полезной нагрузки
- •«Полиглот»
- •Запутывание (обфускация) кода
- •Дополнительные источники
- •Упражнения
- •Резюме
- •Глава 3
- •Легкая добыча
- •Анализ сети
- •Ищем вход
- •Определение учетных данных
- •Есть способ получше
- •Очистка
- •Дополнительные ресурсы
- •Резюме
- •Глава 4
- •Продвинутые способы атаки с использованием метода полного перебора
- •Распыление подбора пароля
- •Спросим LinkedIn
- •Метаданные
- •Кассетная бомба
- •За семью прокси-серверами
- •ProxyCannon
- •Резюме
- •Глава 5
- •Внедрение файлов
- •Удаленное внедрение файлов
- •Локальное внедрение файлов
- •Внедрение файла для удаленного выполнения кода
- •Резюме
- •Обнаружение и эксплуатация уязвимостей в приложениях с помощью внешних сервисов
- •Распространенный сценарий
- •Командно-контрольный сервер
- •Центр сертификации Let’s Encrypt
- •INetSim
- •Подтверждение
- •Асинхронное извлечение данных
- •Построение выводов на основе анализа данных
- •Резюме
- •Расширение функциональных возможностей Burp Suite
- •Нелегальная аутентификация и злоупотребление учетными записями
- •Швейцарский нож
- •Запутывание кода
- •Collaborator
- •Открытый сервер
- •Выделенный сервер Collaborator
- •Резюме
- •Глава 8
- •Вредоносная сериализация
- •Использование десериализации
- •Атака на пользовательские протоколы
- •Анализ протокола
- •Эксплойт для осуществления атаки
- •Резюме
- •Практические атаки на стороне клиента
- •Правила ограничения домена
- •Совместное использование ресурсов разными источниками
- •Межсайтовый скриптинг
- •Постоянный XSS
- •DOM-модели
- •Межсайтовая подделка запроса
- •BeEF
- •Перехват
- •Атаки с применением методов социальной инженерии
- •Кейлоггер
- •Закрепление в системе
- •Автоматическая эксплуатация
- •Туннелирование трафика
- •Резюме
- •Практические атаки на стороне сервера
- •Внутренние и внешние ссылки
- •Атаки XXE
- •Атака billion laughs
- •Подделка запроса
- •Сканер портов
- •Утечка информации
- •«Слепой» XXE
- •Удаленное выполнение кода
- •Резюме
- •Глава 11
- •Атака на API
- •Протоколы передачи данных
- •SOAP
- •REST
- •Аутентификация с помощью API
- •Базовая аутентификация
- •Ключи API
- •Токены на предъявителя
- •Postman
- •Установка
- •Вышестоящий прокси-сервер
- •Среда выполнения
- •Коллекции
- •Запуск коллекции
- •Факторы атаки
- •Резюме
- •Глава 12
- •Атака на CMS
- •Оценка приложения
- •WPScan
- •sqlmap
- •Droopescan
- •Arachni
- •Взлом кода с помощью бэкдора
- •Закрепление в системе
- •Утечка учетных данных
- •Резюме
- •Глава 13
- •Взлом контейнеров
- •Сценарий уязвимости в Docker
- •Осведомленность о ситуации
- •Взлом контейнера
- •Резюме
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
Глава 2 |
||||
|
|
|
|
|
|
g |
|
|
||
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-xcha |
|
|
|
|
Эффективное обнаружение
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-x cha |
|
|
|
|
Картирование контента и сбор информации обычно являются первыми шагами при атаке на приложение.Цель их в том,чтобы как можно больше узнать о приложении в рекордно короткий период времени. Время – это роскошь, которой у нас нет, и мы должны максимально использовать свои ограниченные ресурсы.
Эффективность также поможет нам оставаться немного тише при атаке на приложения.
Умные списки слов уменьшают количество запросов к серверу и быстрее возвращают результаты. Это не панацея, но для начала неплохо.
В этой главе мы рассмотрим следующие темы:
различные типы тестирования на проникновение;построение карты сети с помощью различных сетевых и веб-сканеров;
эффективные способы атаки методом полного перебора;вирус-«полиглот».
Типы тестирования
В зависимости от соглашения с клиентом у вас может быть некая требуемая информация,многоинформацииилинебытьеевообще.Тестирование белого ящика позволяеттщательно проверить приложение. В этом случае злоумышленникиобладают,посуществу,темжедоступом,чтоиразработчик.Унихесть не только аутентифицированный доступ к приложению, но и его исходный код,любые проектные документы и все остальное,что может понадобиться.
Тестирование белого ящика, как правило, проводится внутренними командами, и оно довольно трудоемко. Тестировщику предоставляется любая информация,необходимаядляполнойоценкиприложенияилиинфраструктуры. Преимущество предоставления тестировщикам таких сведений заключается в том,что они смогутпросматривать каждое приложение и проводить проверку на предмет наличия уязвимостей. Это роскошь, которой нет у злоумышленников, действующих снаружи, но она эффективно использует ограниченное время и ресурсы во время тестирования.
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
hang |
e |
|
|
|
|
|
||
|
|
|
C |
|
E |
|
|
|
|
|
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|
||||||
|
|
X |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
X |
|
|
|
|
|
|
|||||||
|
- |
|
|
|
|
|
d |
|
|
|
|
|
|
|
|
- |
|
|
|
|
|
|
d |
|
||||||
|
F |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
F |
|
|
|
|
|
|
|
|
i |
|
|||
|
|
|
|
|
|
|
|
t |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
t |
|
|||||
P |
D |
|
|
|
|
|
|
|
|
|
o |
|
|
|
|
|
P |
D |
|
|
|
|
|
|
|
|
|
o |
||
|
|
|
NOW! |
|
r |
|
|
|
|
|
|
|
|
|
NOW! |
r |
||||||||||||||
|
|
|
|
|
|
|
|
|
Глава 2.Эффективное обнаружение |
|
|
|
|
|
|
BUY |
|
|
||||||||||||
|
|
|
|
to |
BUY 32 |
|
|
|
|
|
|
to |
|
|
|
|
|
|
||||||||||||
w |
|
|
|
|
|
|
|
|
|
|
m |
|
|
|
|
|
w |
|
|
|
|
|
|
|
|
|
|
m |
||
w Click |
|
|
|
|
|
|
|
o |
|
|
|
|
|
w Click |
|
|
|
|
|
|
o |
|||||||||
|
w |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
|
|
|
||
|
. |
|
|
|
|
|
|
.c |
|
|
|
|
|
|
|
. |
|
|
|
|
|
|
|
.c |
|
|||||
|
|
p |
df |
|
|
|
|
e |
|
|
|
|
|
|
|
|
|
p |
df |
|
|
|
|
e |
|
|||||
|
|
|
|
|
g |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
g |
|
|
|
|||||||
|
|
|
|
|
n |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
n |
|
|
|
|
|||||
|
|
|
|
-xcha |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-x cha |
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
Сценарии серого ящика более распространены, поскольку предоставляют |
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
достаточно информации, чтобы тестировщики могли правильно исследовать |
|
|
|
|
|
|
|
|||||||||||||||||
|
|
|
|
|
|
приложение. Клиент предоставляет учетные данные и немного информации |
|
|
|
|
|
|
|
|||||||||||||||||
|
|
|
|
|
|
о дизайне инфраструктуры или приложения, но не более. Идея заключается в |
|
|
|
|
|
|
|
|||||||||||||||||
|
|
|
|
|
|
том, что клиент предполагает, что злоумышленник уже располагает опреде- |
|
|
|
|
|
|
|
|||||||||||||||||
|
|
|
|
|
|
леннымуровнемдоступаилизнаний,иклиентдолженпонять,какможнопри- |
|
|
|
|
|
|
|
|||||||||||||||||
|
|
|
|
|
|
чинить гораздо бóльший ущерб. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
Наконец, тестирование черного ящика будет имитировать атаку с точ- |
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
ки зрения постороннего лица, не имеющего сведений о приложении или об |
|
|
|
|
|
|
|
|||||||||||||||||
|
|
|
|
|
|
инфраструктуре |
. Компании, загружающие приложения в интернет, постоян- |
|
|
|
|
|
|
|
||||||||||||||||
|
|
|
|
|
|
но подвергаются атакам извне. В то же время важно помнить, что не все зло |
|
|
|
|
|
|
|
|||||||||||||||||
|
|
|
|
|
|
умышленники действуют извне, поскольку недовольные сотрудники могут |
|
|
|
|
|
|
|
|||||||||||||||||
|
|
|
|
|
|
нанести такой же ущерб, вредоносные атаки типа «черный ящик» довольно |
|
|
|
|
|
|
|
|||||||||||||||||
|
|
|
|
|
|
распространены и могут быть очень разрушительными. |
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
Ниже приводится разбивкатрех распространенныхтиповтестов на проник- |
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
новение для приложений. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
Тестирование белого ящика |
Тестирование серого ящика |
Тестирование черного ящика |
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
Злоумышленник располага- |
Доступна некоторая инфор- |
Нет никаких сведений |
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
ет доступом ко всей необхо- |
мация |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
димой информации |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
Тестирование с самыми вы- |
Тестирование с точки зрения |
Тестирование с точки зрения |
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
сокими |
привилегиями, то |
угрозы, которая уже имеет |
внешней угрозы |
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
есть со знаниями, которыми |
определенный уровень досту- |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
обладает разработчик |
па или знаний |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
Доступной информацией мо- |
Предоставляет злоумышлен- |
Информация не предостав- |
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
гут быть следующие сведе- |
нику некоторую информацию: |
ляется заранее, и злоумыш- |
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
ния: |
|
|
• |
учетные записи пользова- |
ленник должен собрать все, |
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
• |
|
учетные записи пользо- |
что ему нужно, с помощью |
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
телей; |
разведки на основе открытых |
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
вателей; |
|
• |
документацию высокого |
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
источников или уязвимостей, |
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
• |
|
исходный код; |
|
|
уровня. |
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
которые приводят к утечке |
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
• документыпопроектиро |
Злоумышленник обычно не |
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
информации |
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
ванию инфраструктуры; |
располагает доступом к ис- |
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
• |
|
список каталогов |
ходному коду или другой кон- |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
фиденциальной информации |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
В оставшейся части книги будем использовать подход, тяготеющий к тестированию серого ящика,имитируя типичную ситуацию.