Пентест и этичный хакинг: от основ до отчёта

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

1. Правовые основы, этика и методология пентеста

Правовые основы, этика и методология пентеста

Зачем пентесту нужны право, этика и методология

Пентест (тестирование на проникновение) — это контролируемая проверка защищённости систем, в которой специалист с разрешения владельца пытается найти и подтвердить реальные способы компрометации.

В этой статье мы заложим фундамент курса:

  • почему без юридического разрешения даже самые благие намерения могут стать нарушением закона;
  • как этика помогает не навредить бизнесу и пользователям;
  • как методология превращает «хаотичный поиск уязвимостей» в воспроизводимый процесс с понятным результатом и качественным отчётом.
  • В следующих темах курса мы будем разбирать техники и инструменты. Но использовать их корректно можно только при наличии правильных границ, целей и процесса, описанных здесь.

    Термины, которые важно понимать с самого начала

  • Пентест — проверка, в которой допускаются действия, имитирующие атакующего, чтобы подтвердить риск на практике.
  • Сканирование уязвимостей — автоматизированный поиск известных проблем (часто без подтверждения реального воздействия).
  • Аудит безопасности — более широкий анализ (процессы, конфигурации, документация), не обязательно с попытками эксплуатации.
  • Редтиминг — проверка устойчивости к реалистичным атакам с фокусом на цели (например, доступ к данным), часто с минимальной оглаской для синей команды.
  • Скоуп (scope) — согласованные границы работ: какие системы/аккаунты/диапазоны/IP/приложения разрешены.
  • Правила взаимодействия (Rules of Engagement, RoE) — ограничения, каналы связи, окна тестирования, стоп-условия и прочие правила выполнения работ.
  • Артефакты — доказательства выполненных действий и найденных проблем: логи, скриншоты, дампы, вывод команд, временные метки.
  • Правовые основы: что делает пентест законным

    Ключевая идея проста: пентест законен только при наличии явного разрешения владельца систем.

    При этом законы различаются по странам, а инфраструктура часто распределена (облака, SaaS, CDN, подрядчики). Поэтому практическое правило такое:

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

  • Письменная авторизация от владельца систем (или уполномоченного лица).
  • Описание работ и границ (что тестируем и как).
  • Разрешение на обработку данных, если в ходе теста возможен доступ к персональным данным или коммерческой тайне.
  • Контактные лица для оперативной связи и остановки работ при инциденте.
  • На практике это оформляется набором документов.

    Документы, которые чаще всего встречаются в пентесте

    | Документ | Зачем нужен | Что фиксирует | |---|---|---| | Договор / рамочное соглашение | Юридическая база взаимоотношений | Стороны, ответственность, порядок работ | | Техническое задание / SOW (Statement of Work) | Управление ожиданиями | Цели, объём, сроки, формат отчёта | | RoE (Rules of Engagement) | Безопасность и предсказуемость | Ограничения, окна, стоп-условия, коммуникации | | NDA (соглашение о неразглашении) | Защита информации | Что считается конфиденциальным и как хранить | | DPA / условия обработки данных | Законность работы с данными | Роли, сроки хранения, меры защиты | | Письмо-разрешение (Authorization to Test) | Быстрое подтверждение правомерности | Кто, когда, что и кому разрешил |

    Важно: один документ не заменяет другой. Например, RoE часто содержит критичные ограничения (запрет на DoS, запрет на фишинг, запрет на тесты в рабочее время), которые могут не быть отражены в договоре.

    Третьи стороны: частый источник юридических проблем

    Пентест может затрагивать инфраструктуру, которая формально принадлежит не заказчику:

  • облачный провайдер;
  • платёжный шлюз;
  • сервис рассылок;
  • CDN/WAF;
  • подрядчик, который обслуживает систему;
  • доменная зона или хостинг.
  • Если в скоуп попадают такие компоненты, нужно проверить условия провайдера и получить необходимые согласования. У многих провайдеров существуют специальные процессы для тестирования.

    Персональные данные и минимизация доступа

    Если в системе есть персональные данные, медицинская информация, финансовые сведения или коммерческая тайна, действует принцип:

  • получать минимально необходимый доступ;
  • не копировать лишнее;
  • хранить артефакты ограниченное время;
  • шифровать хранилища и каналы передачи.
  • Практическое правило: если для доказательства уязвимости достаточно одной записи (или маскированных данных), не нужно выгружать базу целиком.

    Что почти всегда запрещают или жёстко ограничивают

  • DoS/DDoS-нагрузка и «стресс-тесты» без отдельного согласования.
  • Деструктивные действия (удаление данных, изменение конфигураций в продакшене).
  • Выход за границы скоупа (включая случайный переход по внешним ссылкам, ведущим к чужим системам).
  • Социальная инженерия (фишинг, звонки) без отдельного явного разрешения.
  • Этика: как действовать профессионально даже при наличии разрешения

    Юридическое разрешение отвечает на вопрос «можно ли». Этические принципы отвечают на вопрос «как правильно».

    Базовые принципы этичного пентеста

  • Принцип минимального ущерба: проверяем риск, но не ломаем бизнес-процессы.
  • Принцип необходимости: делаем только то, что нужно для достижения цели.
  • Конфиденциальность: всё увиденное в ходе работ не выходит за рамки согласованных получателей.
  • Честность и прозрачность: не преувеличиваем находки, не скрываем ограничения теста.
  • Ответственное раскрытие: если обнаружена проблема у третьей стороны, действуем через заказчика и согласованный процесс.
  • Управление конфликтом интересов: избегаем ситуаций, когда личная выгода влияет на выводы.
  • Практические этические дилеммы и как их решать

  • Вы нашли доступ к данным клиентов.
  • - Действие: остановиться на минимальном доказательстве, зафиксировать артефакты, уведомить контактных лиц по RoE.
  • Нашли уязвимость вне скоупа (например, соседний домен).
  • - Действие: не эксплуатировать, записать наблюдение, сообщить заказчику, предложить расширить скоуп официально.
  • Можно «дожать» эксплуатацию, но есть риск простоя.
  • - Действие: согласовать с заказчиком время и подход, предложить безопасную проверку (например, в тестовом контуре).

    Методология: как организован профессиональный пентест

    Методология нужна, чтобы:

  • не забыть важные шаги;
  • воспроизводимо получать результат;
  • объяснять заказчику, что именно сделано;
  • формировать отчёт, которому доверяют.
  • В индустрии часто используют методические источники и стандарты:

  • PTES (Penetration Testing Execution Standard)
  • OWASP Web Security Testing Guide
  • NIST SP 800-115 Technical Guide to Information Security Testing and Assessment
  • Эти материалы не обязательно «выполнять дословно», но они помогают выстроить общий каркас.

    Типовой жизненный цикл пентеста

    !Блок-схема показывает этапы пентеста и то, что правила взаимодействия ограничивают каждый этап

    Ниже — наполнение этапов на практике.

    Планирование и согласование

  • формулирование целей (что считаем успехом);
  • утверждение скоупа и RoE;
  • выбор модели атакующего (внешний/внутренний, с учётной записью/без);
  • согласование временных окон и каналов связи;
  • подготовка тестовых аккаунтов и стендов (если применимо);
  • определение формата отчёта и критериев приёмки.
  • Результат этапа — все участники одинаково понимают границы и ожидаемый результат.

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

    Сбор информации — это получение данных, которые помогут понять поверхность атаки.

  • инвентаризация доменов, подсетей, сервисов (в рамках разрешения);
  • определение технологий и точек входа;
  • анализ публично доступных сведений, если это разрешено и описано.
  • Важно: даже «пассивный» сбор информации должен соответствовать RoE. Если RoE запрещает определённые источники или методы — их не применяют.

    Анализ и проверка уязвимостей

  • поиск потенциальных уязвимостей (ручной и инструментальный);
  • проверка гипотез безопасными способами;
  • фиксация условий, при которых проблема проявляется.
  • Здесь важно различать:

  • подозрение/срабатывание сканера;
  • подтверждённую уязвимость;
  • подтверждённое влияние на бизнес.
  • Эксплуатация (подтверждение влияния)

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

    Ограничения задаются RoE. Часто разрешено подтверждать влияние, но запрещено:

  • закрепляться в системе;
  • обходить сегментацию через опасные техники;
  • извлекать большие массивы данных;
  • модифицировать критичные настройки.
  • Пост-эксплуатация (только в пределах RoE)

    Цель — понять последствия компрометации:

  • какие данные доступны;
  • возможно ли повышение привилегий;
  • возможна ли латеральная перемещение между системами;
  • какие бизнес-сценарии становятся возможными.
  • Этот этап особенно чувствителен к этике и юридическим ограничениям.

    Отчёт и презентация

    Отчёт — главный «продукт» пентеста. Он должен быть понятен двум аудиториям:

  • руководству (что рискует бизнес и что делать);
  • техническим специалистам (как воспроизвести и исправить).
  • Типовая структура отчёта:

  • Резюме для руководства: ключевые риски, общий уровень защищённости, приоритеты.
  • Охват и ограничения: что входило в скоуп, какие предположения сделаны, что не тестировалось.
  • Методология: как проводились работы (без избыточных деталей).
  • Находки: описание, доказательства, риск, рекомендации.
  • Приложения: перечень активов, временные окна, артефакты (по необходимости).
  • Ретест

    Ретест — повторная проверка исправлений.

  • подтверждает, что уязвимость устранена;
  • снижает риск «бумажного исправления», когда проблема формально закрыта, но фактически остаётся.
  • RoE на практике: что должно быть согласовано

    Ниже — пункты, которые почти всегда стоит включать в RoE.

  • Скоуп: домены, IP-диапазоны, приложения, API, аккаунты.
  • Вне скоупа: что запрещено тестировать.
  • Временные окна: разрешённые интервалы работ.
  • Интенсивность: лимиты запросов, запрет нагрузочного тестирования.
  • Разрешённые техники: например, можно/нельзя социальную инженерию.
  • Стоп-условия: при каких признаках нужно немедленно остановиться.
  • Коммуникации: кого уведомлять, через какие каналы, SLA по ответу.
  • Обращение с данными: шифрование, места хранения, сроки удаления.
  • Формат артефактов: что именно нужно фиксировать.
  • Артефакты, доказательства и аккуратность

    Пентест ценен только тогда, когда выводы можно подтвердить.

    Хорошая доказательная база:

  • содержит временные метки;
  • показывает шаги воспроизведения на уровне, достаточном для разработчиков/админов;
  • не раскрывает лишние секреты (например, токены и пароли в открытом виде);
  • хранится и передаётся безопасно.
  • Практическое правило: если артефакт содержит секрет, его нужно либо маскировать, либо хранить в защищённом виде и передавать по согласованному каналу.

    Как связаны методология и отчёт

    Методология отвечает на вопрос «что мы делали и почему можно доверять результату». Отчёт отвечает на вопрос «что это значит для бизнеса и что делать дальше».

    Если методология хаотична, отчёт обычно получается таким же: неполным, неубедительным и трудно применимым.

    Что дальше по курсу

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

  • согласованному скоупу;
  • RoE и безопасности выполнения;
  • сбору качественных артефактов;
  • подготовке выводов для отчёта.
  • Рекомендуемые источники для закрепления подхода:

  • PTES (Penetration Testing Execution Standard)
  • OWASP Web Security Testing Guide
  • NIST SP 800-115 Technical Guide to Information Security Testing and Assessment
  • 2. Сбор информации и разведка: OSINT и сканирование

    Сбор информации и разведка: OSINT и сканирование

    Зачем нужна разведка в пентесте

    В предыдущей статье мы закрепили фундамент: пентест возможен только при письменной авторизации, чётком скоупе и понятных Rules of Engagement (RoE). Разведка (reconnaissance) — это первый технический этап, где эти принципы проверяются на практике: именно здесь проще всего случайно «выйти за границы», собрать лишние данные или создать чрезмерную нагрузку.

    Разведка отвечает на вопрос: что именно мы тестируем и где находится реальная поверхность атаки. Хорошо выполненная разведка:

  • снижает риск пропустить критичный актив;
  • ускоряет поиск уязвимостей на следующих этапах;
  • делает результаты воспроизводимыми и доказательными;
  • помогает объяснить заказчику, почему вы тратили время не только на «взлом», но и на картографирование.
  • !Диаграмма показывает, как OSINT и сканирование превращаются в инвентарь активов и артефакты в рамках RoE

    Термины: OSINT, пассивная и активная разведка

    Чтобы дальше не возникало путаницы, зафиксируем определения.

  • Разведка — сбор и уточнение информации об активах в рамках скоупа, чтобы понять поверхность атаки.
  • OSINT (Open Source Intelligence) — разведка по открытым источникам: данные, которые доступны публично или по подписке, без прямого взаимодействия с целевыми системами.
  • Пассивная разведка — подход, при котором вы не отправляете запросы в инфраструктуру цели (или минимизируете их до безопасного уровня), а используете внешние источники.
  • Активная разведка (сканирование) — вы напрямую взаимодействуете с целевыми хостами/сервисами: проверяете доступность, порты, версии, эндпоинты.
  • Важно: «пассивная» не значит «всегда безопасная». Даже OSINT может затрагивать персональные данные или коммерческую тайну, а также может быть ограничена RoE.

    OSINT и сканирование: в чём разница

    | Критерий | OSINT | Сканирование | |---|---|---| | Взаимодействие с целевыми системами | Обычно нет | Да | | Риск нагрузки/инцидента | Низкий | Средний и выше (зависит от методов) | | Тип данных | Внешний «след»: домены, сертификаты, утечки, упоминания | Технические факты: порты, сервисы, ответы приложений | | Главная ценность | Найти неизвестные активы и контекст | Подтвердить реальную поверхность атаки |

    Как RoE ограничивает разведку

    Разведка — этап, который должен быть буквально «пропитан» RoE. До начала действий полезно зафиксировать для себя три вопроса:

  • Какие активы разрешены (домены, подсети, приложения, аккаунты, API).
  • Какие методы разрешены (например, запрет на перебор директорий, запрет на интенсивное сканирование, запрет на использование внешних платформ).
  • Какие стоп-условия (ошибки 5xx, рост задержек, жалобы SOC, признаки деградации).
  • Практический приём: заведите журнал разведки и в первой строке запишите краткую выжимку RoE: разрешённые цели, окна времени, лимиты и контакты для эскалации.

    Цели разведки: что вы должны получить на выходе

    Хороший результат разведки — это не «много данных», а структурированный инвентарь.

    Минимальный набор выходных артефактов:

  • список активов в скоупе (домены, IP, приложения, API, внешние сервисы);
  • карта точек входа (веб, VPN, почта, админ-панели, SSO, публичные API);
  • данные для приоритизации (критичность, экспонированность в интернет, тип данных);
  • доказательства (артефакты) и таймлайн.
  • Пример структуры инвентаря активов

    | Актив | Тип | Как найден | Почему важен | Статус валидации | |---|---|---|---|---| | app.example.com | Веб-приложение | Документация заказчика | Основной пользовательский фронт | Подтверждён | | api.example.com | API | Поддомен из OSINT | Потенциально содержит бизнес-операции | Требует проверки | | vpn.example.com | Доступ | Список активов заказчика | Точка входа во внутреннюю сеть | Подтверждён |

    OSINT: что искать и где это обычно находится

    OSINT полезен в двух случаях:

  • когда список активов неполный или устарел;
  • когда нужно понять контекст (технологии, подрядчики, облака, типовые ошибки в конфигурациях).
  • Основные категории OSINT-данных

  • Домены и поддомены: исторические записи, альтернативные зоны, забытые окружения.
  • DNS-данные: A/AAAA/CNAME/MX/TXT записи, следы облаков и внешних провайдеров.
  • TLS-сертификаты: по ним часто обнаруживаются дополнительные поддомены.
  • Технологический след: публичные баннеры, заголовки, документация, вакансии.
  • Код и артефакты разработки: открытые репозитории, пакеты, контейнеры, CI/CD.
  • Утечки и экспонированные секреты: публично доступные токены/ключи, утекшие дампы.
  • Типовые источники OSINT (в контексте пентеста)

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

  • Реестры и сведения о доменах: ICANN Lookup
  • Логи сертификатов (Certificate Transparency): crt.sh
  • Поисковые системы по интернет-активам: Shodan
  • Поиск по открытым данным об экспонированных сервисах: Censys
  • Как не «утонуть» в OSINT: практический алгоритм

    Чтобы OSINT приносил пользу, а не шум, действуйте как аналитик.

  • Составьте начальный список того, что точно в скоупе (из ТЗ/SOW и от заказчика).
  • Для каждого домена определите «якоря»: основной сайт, API, почта, SSO, VPN.
  • Для каждого «якоря» попробуйте найти:
  • - альтернативные поддомены; - тестовые/стейджинг окружения; - административные интерфейсы; - внешних провайдеров (CDN, WAF, почта, аналитика).
  • Любую находку пометьте статусом:
  • - наблюдение (внешний сигнал); - верифицировано (подтверждено активной проверкой в рамках RoE); - вне скоупа (не трогать, только зафиксировать и согласовать).

    Активная разведка: сканирование без хаоса и без вреда

    Активная разведка — это контролируемое взаимодействие с активами в скоупе. Её задача — подтвердить, что актив существует, доступен, и понять, какие сервисы и точки входа действительно «живые».

    Что обычно входит в активную разведку

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

    Сканирование может:

  • создать нагрузку на слабые системы;
  • активировать защитные механизмы (WAF/IDS/IPS), что исказит картину;
  • привести к блокировкам IP и потере доступа в разгар теста;
  • быть интерпретировано как атака, если SOC не уведомлён.
  • Поэтому в рабочем процессе важны:

  • лимиты по частоте запросов и параллельности (если они указаны в RoE);
  • тестовые окна;
  • предварительное уведомление ответственных лиц;
  • поэтапность: от «лёгких» проверок к более глубоким.
  • Инструменты: как выбирать, а не «просто запускать»

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

    Примеры классов инструментов:

  • сетевые сканеры портов и сервисов (часто используют Nmap)
  • краулеры и прокси для веб-анализа
  • средства для инвентаризации DNS и поддоменов
  • Важно: в отчёте ценится не название инструмента, а воспроизводимый результат и контекст (что проверяли, на каких целях, в каких условиях).

    Валидация находок: от «похоже» к «точно»

    Разведка часто даёт ложные срабатывания и неоднозначности. Типовые причины:

  • устаревшие записи (поддомен больше не используется);
  • CDN/WAF скрывает реальный origin;
  • общие IP у хостинга, где «сидят» разные клиенты;
  • автодетект технологий ошибается.
  • Чтобы не переносить шум в отчёт и в следующий этап, используйте правило:

  • любая OSINT-находка — это гипотеза;
  • сканирование — способ подтвердить или опровергнуть гипотезу;
  • подтверждение фиксируется артефактом (вывод, заголовки, скриншот, временная метка) с маскированием секретов.
  • Артефакты разведки: что сохранять для отчёта

    Разведка должна быть доказательной и при этом аккуратной с данными.

    Минимальный набор артефактов

  • таблица активов с источником (заказчик/OSINT/сканирование);
  • журнал действий с временными метками;
  • выдержки результатов, которые подтверждают ключевые факты (доступность, редиректы, тип сервиса);
  • заметки об ограничениях (например, «WAF блокировал часть запросов», «запрещено углублённое сканирование»).
  • Как безопасно обращаться с данными

  • маскируйте токены, cookie, ключи в скриншотах и логах;
  • не сохраняйте лишние персональные данные;
  • храните артефакты в шифрованном виде и удаляйте по согласованному сроку;
  • фиксируйте, какие данные вы не собирали по этическим причинам или из-за RoE.
  • Типичные ошибки на этапе разведки

  • Скоуп-крип: случайный уход на сторонние домены через редиректы или внешние ссылки.
  • Смешивание сред: продакшен и тестовый контур выглядят одинаково, и проверка уходит не туда.
  • Слишком агрессивное сканирование: «положили» сервис, получили блокировку, потеряли доверие.
  • Непроверенные выводы: в отчёт попадают неподтверждённые OSINT-находки как «уязвимости».
  • Плохая фиксация: невозможно восстановить, как вы пришли к выводу.
  • Как разведка ложится в будущий отчёт

    Разведка — это основа секций отчёта:

  • Охват и ограничения: что реально было проверено, а что нет.
  • Методология: какие типы действий применялись (OSINT, активная проверка), без излишней «операторской» детализации.
  • Приложения: инвентарь активов и краткая карта поверхности атаки.
  • Если разведка выполнена аккуратно, следующие этапы (поиск уязвимостей и подтверждение влияния) будут быстрее, безопаснее и убедительнее для заказчика.

    Рекомендуемые источники для углубления

  • OWASP Web Security Testing Guide
  • NIST SP 800-115 Technical Guide to Information Security Testing and Assessment
  • Nmap Reference Guide
  • 3. Эксплуатация уязвимостей и повышение привилегий

    Эксплуатация уязвимостей и повышение привилегий

    Место эксплуатации в пентесте

    В предыдущих статьях курса мы закрепили две ключевые опоры:

  • законность и управляемость работ через письменную авторизацию, скоуп и Rules of Engagement (RoE);
  • качественную разведку (OSINT и сканирование), которая превращает «ощущения» в проверяемый инвентарь активов и фактов.
  • Эксплуатация уязвимостей — это следующий шаг: контролируемое подтверждение, что найденная проблема действительно может привести к негативным последствиям для бизнеса.

    Важно различать:

  • уязвимость как гипотезу (например, «похоже, версия уязвима»);
  • подтверждённую уязвимость (воспроизводится в рамках условий);
  • подтверждённое влияние (видно, к чему именно приводит эксплуатация: доступ к данным, изменение операций, обход контроля).
  • Эксплуатация в пентесте не равна «взлому любой ценой». Это дисциплина: минимум действий — максимум доказательности.

    !Диаграмма показывает, как эксплуатация связана с разведкой, RoE и итоговым отчётом

    Термины, которые нужны для этой темы

  • Эксплуатация (exploitation) — действие, которое демонстрирует, что уязвимость реально работает и даёт атакующему возможность нарушить конфиденциальность, целостность или доступность.
  • PoC (Proof of Concept) — минимальная демонстрация работоспособности уязвимости.
  • Влияние (impact) — измеримый результат эксплуатации: чтение данных, выполнение действий, получение роли, изменение настроек.
  • Повышение привилегий (privilege escalation) — получение более высоких прав, чем предусмотрено, за счёт уязвимости или ошибки конфигурации.
  • Горизонтальное повышение привилегий — доступ к объектам другого пользователя того же уровня.
  • Вертикальное повышение привилегий — переход на более высокий уровень (например, из обычного пользователя в администратора).
  • Пост-эксплуатация — ограниченный набор действий после первичного доступа, чтобы оценить последствия (например, доступные данные и возможности), строго в рамках RoE.
  • Артефакты — доказательства: журналы действий, скриншоты, фрагменты ответов, временные метки, хэши файлов (если применимо).
  • Когда эксплуатация уместна, а когда нет

    Эксплуатация оправдана, когда она:

  • переводит «возможную проблему» в подтверждённый риск;
  • помогает выбрать правильный приоритет исправления;
  • демонстрирует бизнесу сценарий атаки понятным способом;
  • не нарушает RoE и не создаёт неприемлемый риск простоя.
  • Эксплуатация часто неуместна или должна быть заменена безопасной проверкой, если:

  • RoE запрещает определённые действия (например, любые попытки выполнения кода);
  • система критична к нагрузке или изменениям;
  • достаточно менее рискованного доказательства (например, чтение только метаданных вместо выгрузки массива данных);
  • нет согласованного канала экстренной связи и стоп-условий.
  • Принцип «уровней доказательства»: как подтвердить риск без вреда

    На практике удобно мыслить уровнями подтверждения — от более безопасного к более рискованному.

    | Уровень | Что показываем | Пример результата | Риск для системы | |---|---|---|---| | Наблюдение | Есть признаки проблемы | Версия/конфигурация совпадает с известной уязвимостью | Низкий | | Безопасная валидация | Уязвимость воспроизводится без опасных действий | Ошибка контроля доступа подтверждена на тестовом объекте | Низкий–средний | | Контролируемый PoC | Минимально подтверждаем влияние | Доступ к одной записи данных или одной операции | Средний | | Подтверждение бизнес-влияния | Демонстрируем сценарий на значимом процессе | Нельзя/можно оформить действие без полномочий | Средний–высокий |

    Цель пентеста обычно достигается на уровне контролируемого PoC и точечного подтверждения влияния. «Дожимать» до максимума имеет смысл только если это согласовано и действительно нужно для принятия решений.

    Подготовка к эксплуатации: чек-лист до первого действия

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

  • Уточните скоуп и запреты RoE (особенно DoS, социальная инженерия, изменения данных).
  • Подтвердите контактных лиц и канал эскалации (кто и как быстро отвечает).
  • Проверьте временные окна и лимиты интенсивности.
  • Определите, какие данные считаются чувствительными и как их маскировать.
  • Согласуйте, можно ли создавать тестовые сущности (тестовый пользователь, тестовый заказ, тестовый документ).
  • Подготовьте журнал действий: время, цель, гипотеза, результат, ссылки на артефакты.
  • Общий процесс эксплуатации в пентесте

    Ниже — практический «скелет» процесса, который применим к вебу, инфраструктуре и внутренним средам.

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

  • Формализация гипотезы
  • - Что именно должно произойти, если уязвимость реальна. - Какие предпосылки нужны (роль, доступ, параметр, путь, конфигурация).

  • Проектирование безопасной проверки
  • - Минимизируйте изменения состояния. - Выбирайте тестовые данные и обратимые операции. - Учитывайте RoE и стоп-условия.

  • Выполнение контролируемого PoC
  • - Делайте изменения по одному. - Сохраняйте артефакты сразу, с временными метками. - Если проявляются признаки деградации сервиса, останавливайтесь.

  • Подтверждение влияния (если нужно и разрешено)
  • - Докажите последствия на минимальном объёме данных. - Не выходите за рамки «достаточно для доказательства».

  • Фиксация и восстановление
  • - Удалите тестовые объекты, если это согласовано. - Убедитесь, что не оставили секреты в логах/скриншотах. - Запишите, что именно было сделано и чего вы осознанно не делали из-за ограничений.

    Типовые классы эксплуатаций и что означает «подтверждение»

    Ошибки контроля доступа

    Самый частый и опасный класс проблем в прикладных системах.

    Подтверждение обычно выглядит так:

  • показано, что пользователь A может получить доступ к объекту пользователя B;
  • показано, что роль с низкими правами может выполнить админ-действие;
  • показано, что отсутствуют проверки на уровне API, даже если UI их скрывает.
  • Ключевые артефакты:

  • описание исходной роли и её разрешений;
  • запрос/ответ или последовательность действий, приводящая к доступу;
  • минимальное доказательство (например, идентификатор чужого объекта и один не-чувствительный атрибут).
  • Инъекции и выполнение непредусмотренных операций

    Сюда относятся ситуации, когда ввод пользователя приводит к непредусмотренному поведению: изменению запроса к базе, обходу фильтрации, выполнению интерпретируемого кода, влиянию на шаблоны или команды.

    Безопасное подтверждение должно:

  • показывать факт вмешательства в логику;
  • избегать разрушительных нагрузок;
  • не приводить к массовому извлечению данных.
  • Если RoE ограничивает эксплуатацию, допускается подтверждение через косвенные признаки (например, различия в ошибках, времени отклика, изменении результата), но в отчёте это нужно честно обозначить как ограничение.

    Ошибки аутентификации и управления сессиями

    Подтверждение может включать:

  • демонстрацию обхода проверки (в пределах разрешённого);
  • демонстрацию захвата сессии в безопасном контуре;
  • доказательство, что токены/куки недостаточно защищены.
  • Этический нюанс: любые реальные сессионные токены и пароли в артефактах нужно маскировать.

    Небезопасные конфигурации и «опасные по умолчанию» настройки

    Это частый источник успешной эксплуатации во внутреннем периметре.

    Подтверждение обычно строится на:

  • доказательстве доступности административных интерфейсов;
  • демонстрации слабой сегментации и доверительных связей;
  • показе избыточных прав сервисных учётных записей.
  • Повышение привилегий: зачем оно нужно в пентесте

    Повышение привилегий — это способ оценить глубину последствий.

  • Для бизнеса важно не только «можно войти», но и «что будет дальше».
  • Многие риски проявляются только при переходе на более высокий уровень прав.
  • При этом повышение привилегий почти всегда чувствительнее, чем первичная эксплуатация: оно ближе к «полной компрометации», поэтому должно быть особенно хорошо ограничено RoE.

    Модель мышления для повышения привилегий

    Вместо «давайте пробовать всё» используйте структурированный подход.

    Шаг 1. Определите текущий контекст доступа

  • Где вы находитесь: веб-приложение, контейнер, хост, внутренний сегмент.
  • Кто вы: роль/учётная запись/набор прав.
  • Какие ограничения действуют: сетевые ACL, политики, изоляция, мониторинг.
  • Шаг 2. Сформируйте карту потенциальных путей повышения

    Ниже — распространённые категории причин, по которым привилегии «поднимаются».

    | Категория | Суть | Типичный симптом | |---|---|---| | Избыточные права | Роль/аккаунт имеет больше прав, чем нужно | «Обычный» пользователь может управлять ресурсами | | Ошибки разграничения | Проверки есть в UI, но нет на API/сервере | Запросы напрямую дают доступ | | Слабая изоляция секретов | Секреты доступны там, где не должны | Токены/ключи лежат в доступных файлах/переменных | | Небезопасные настройки | Сервис запускается с высокими правами без необходимости | Компоненты работают от привилегированного аккаунта | | Уязвимости в компонентах | Ошибка в ОС/службе/библиотеке | Версия и конфигурация совпадают с известной проблемой |

    Шаг 3. Выберите безопасный способ валидации

    Хорошая валидация повышения привилегий:

  • демонстрирует новый уровень прав через простое, обратимое действие;
  • не требует закрепления (persistence) и скрытности;
  • не затрагивает данные пользователей сверх минимума.
  • Шаг 4. Зафиксируйте «до/после»

    В отчёте повышение привилегий ценится, когда видно:

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

    Пост-эксплуатация — не «свободная охота», а короткий этап, который отвечает на вопрос: что реально мог бы сделать атакующий после первичного доступа.

    Типовые безопасные цели пост-эксплуатации:

  • определить, какие данные доступны в рамках полученных прав;
  • понять, можно ли совершить критичную бизнес-операцию;
  • выявить возможность перехода в более критичный сегмент только если это явно разрешено;
  • оценить устойчивость мониторинга и контроля (например, логируются ли ключевые действия) без попыток скрыться.
  • То, что обычно запрещено без отдельного согласования:

  • закрепление и создание скрытых бэкдоров;
  • массовая выгрузка баз данных;
  • намеренное отключение средств защиты;
  • эксплуатация, способная повредить данные или вызвать простой.
  • Артефакты эксплуатации: что сохранять, чтобы отчёт был сильным

    Отчёт «верят» не из-за громких слов, а из-за воспроизводимости.

    Минимальный набор артефактов для каждой находки

  • Контекст: какой актив, какая роль, какие предпосылки.
  • Шаги воспроизведения: достаточно подробно для инженера.
  • Доказательство: скриншот, фрагмент ответа, лог с временной меткой.
  • Влияние: что именно стало возможно.
  • Ограничения: что не проверяли из-за RoE/рисков.
  • Маскирование чувствительных данных

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

  • Маскируйте пароли, токены, cookie, ключи.
  • Если нужно показать доступ к данным, показывайте минимум (одна запись, обезличенный фрагмент).
  • Храните артефакты в защищённом виде и удаляйте по согласованным срокам.
  • Как связывать эксплуатацию с риском и рекомендациями

    Одна из частых проблем новичков: они описывают «как получилось», но не объясняют «почему это важно».

    Хорошая связка в отчёте выглядит так:

  • Причина: конкретная ошибка (контроль доступа, конфигурация, уязвимая версия).
  • Эксплуатация: минимальная демонстрация.
  • Влияние: что можно сделать (данные, деньги, доступ, репутация, простой).
  • Рекомендация: что исправлять (не только «обновить», но и «как проверить», «какие контроли добавить»).
  • Проверка исправления: что будет считаться успешным ретестом.
  • Если уместно, можно связать наблюдения с тактиками и техниками из модели угроз (для единого языка с blue team), например через базу знаний MITRE ATT&CK: MITRE ATT&CK.

    Типичные ошибки на этапе эксплуатации и повышения привилегий

  • Эксплуатация без явной цели: «просто потому что можно».
  • Выход за скоуп через редиректы, зависимости, внешние сервисы.
  • Слишком «тяжёлые» проверки там, где достаточно минимального PoC.
  • Плохая фиксация: нет временных меток, непонятно, что было сделано.
  • Неаккуратные артефакты: секреты в открытом виде, лишние персональные данные.
  • Смешивание сред: эксплуатация в продакшене, когда подразумевался тестовый контур.
  • Практические источники и стандарты

  • PTES (Penetration Testing Execution Standard)
  • OWASP Web Security Testing Guide (WSTG)
  • NIST SP 800-115 Technical Guide to Information Security Testing and Assessment
  • MITRE ATT&CK
  • Что дальше по курсу

    Эксплуатация и повышение привилегий дают самое ценное для заказчика: доказанный сценарий риска. Дальше этот результат нужно превратить в качественный отчёт:

  • ясно описать влияние на бизнес;
  • приоритизировать исправления;
  • приложить артефакты так, чтобы они помогали устранению, а не создавали новую утечку;
  • подготовить основу для ретеста.
  • 4. Тестирование веб‑приложений и API: OWASP Top 10

    Тестирование веб‑приложений и API: OWASP Top 10

    Как эта тема связана с предыдущими статьями курса

    В прошлых модулях мы выстроили каркас профессионального пентеста:

  • Право, этика и методология: работаем только в рамках письменной авторизации, скоупа и Rules of Engagement (RoE).
  • Разведка (OSINT и сканирование): превращаем «ощущения» в проверяемый инвентарь активов и точек входа.
  • Эксплуатация и повышение привилегий: подтверждаем риск минимальным, но убедительным PoC и фиксируем артефакты.
  • Тестирование веб‑приложений и API — это мост между разведкой и эксплуатацией: вы системно проверяете наиболее распространённые классы ошибок, формируете подтверждённые находки и готовите материал для отчёта.

    В этой статье мы используем OWASP Top 10 как практическую «карту местности» для проверки веб‑приложений и отдельно отметим особенности API, потому что многие современные системы состоят из фронтенда и набора API‑эндпоинтов.

    Полезные опорные источники:

  • OWASP Top 10 (2021)
  • OWASP Web Security Testing Guide (WSTG)
  • OWASP API Security Top 10 (2023)
  • Базовые термины веб‑тестирования и API

    Чтобы дальше не появлялись «необъяснённые слова», зафиксируем минимум.

  • Веб‑приложение: серверная логика + клиентская часть (обычно браузер), где пользователи выполняют действия через страницы/формы.
  • API: интерфейс для обмена данными между компонентами. Чаще всего это HTTP‑эндпоинты, которые принимают и возвращают данные.
  • Эндпоинт: конкретный путь и метод запроса, например GET /api/orders/123.
  • Методы HTTP: GET (чтение), POST (создание), PUT/PATCH (изменение), DELETE (удаление). Это не «гарантия», а только соглашение.
  • Аутентификация (authentication): проверка, кто вы (логин/пароль, SSO, токены).
  • Авторизация (authorization): проверка, что вам разрешено (права, роли, доступ к конкретным объектам).
  • Сессия: состояние входа пользователя. В вебе часто через cookie, в API часто через токены.
  • Токен: строка, подтверждающая вход или права (например, Bearer‑токен в заголовке Authorization).
  • Контроль доступа на уровне объекта: проверка прав на конкретную сущность, например конкретный заказ, документ или аккаунт.
  • Зачем именно OWASP Top 10

    OWASP Top 10 — это не стандарт «как правильно тестировать всё», а практичный список наиболее критичных и распространённых классов рисков для веб‑приложений.

    Польза для пентестера:

  • помогает не забыть ключевые классы проблем;
  • даёт общий язык для отчёта (с заказчиком и разработчиками);
  • связывает техническую находку с понятным риском.
  • Ограничения:

  • это не чек‑лист на 100% покрытия;
  • отдельные домены (мобильные приложения, облачная инфраструктура) требуют дополнительных моделей угроз;
  • для API есть отдельный список, и его важно учитывать параллельно.
  • !Карта, где в типовой архитектуре проявляются классы OWASP Top 10

    Подход к тестированию: от инвентаря к проверкам

    Подготовка в рамках RoE

    Перед активными проверками убедитесь, что у вас согласованы:

  • аккаунты и роли (например, гость, пользователь, менеджер, администратор);
  • тестовые данные и разрешение создавать тестовые сущности (заказы, файлы, документы);
  • ограничения по нагрузке и запретные действия;
  • контакт для экстренной остановки;
  • правила обращения с чувствительными данными и требования к маскированию.
  • Минимальный набор артефактов для веб и API

    Чтобы находки потом «жили» в отчёте и ретесте, заранее планируйте, что фиксировать:

  • точный эндпоинт/URL, метод, параметры;
  • роль и контекст (каким пользователем выполнялось действие);
  • запрос и ответ в минимально достаточном виде (с маскированием токенов и персональных данных);
  • шаги воспроизведения, которые повторит инженер;
  • наблюдаемое влияние (что стало возможно сделать).
  • Типовой рабочий цикл

  • собрать карту функций и эндпоинтов на основе разведки;
  • построить матрицу ролей и «что им должно быть доступно»;
  • тестировать сначала контроль доступа и аутентификацию, затем инъекции и конфигурации;
  • подтверждать влияние безопасным PoC;
  • вести таймлайн и журнал действий.
  • OWASP Top 10: что проверять в веб‑приложениях и API

    Ниже — категории OWASP Top 10 (2021) и практический взгляд пентестера: смысл, типовые проявления и безопасные способы подтверждения.

    Broken Access Control

    Суть: система неверно ограничивает доступ к функциям или данным. Это чаще про авторизацию, чем про вход.

    Типовые проявления в веб и API:

  • доступ к чужим объектам при изменении идентификатора (например, id в пути или параметре);
  • выполнение админ‑действий обычным пользователем;
  • доступ к скрытым функциям напрямую через API, даже если UI их не показывает;
  • отсутствие проверки на сервере и доверие к клиенту.
  • Как безопасно проверять:

  • сравнить поведение для двух разных пользователей на одинаковом объекте;
  • проверить, что сервер возвращает отказ доступа корректно (например, запрет на уровне бизнес‑логики, а не только в интерфейсе);
  • подтверждать влияние на минимальном объекте и без массового перебора.
  • Что фиксировать в артефактах:

  • «до/после»: что было доступно исходно и что стало доступно;
  • конкретный объект и почему он должен быть запрещён;
  • запрос/ответ с маскированием чувствительных данных.
  • Связанный API‑фокус:

  • для API этот класс часто проявляется как Broken Object Level Authorization (BOLA) из OWASP API Security Top 10.
  • Cryptographic Failures

    Суть: данные недостаточно защищены криптографией или защищены неправильно.

    Типовые проявления:

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

  • проверить, что всё чувствительное доступно только по HTTPS;
  • убедиться, что пароли не возвращаются в ответах API;
  • проверить, что токены не попадают в URL (они должны быть в заголовках, а не в query‑параметрах).
  • Важно для отчёта:

  • описывать именно риск и тип данных, а не публиковать реальные секреты;
  • приводить примеры с маскированием.
  • Injection

    Суть: приложение интерпретирует ввод пользователя как команду, запрос или выражение (SQL, NoSQL, LDAP, шаблоны и другие варианты).

    Типовые проявления:

  • параметры запросов влияют на запрос к базе данных;
  • фильтры и сортировки работают «слишком гибко» и дают обходы;
  • ошибки, которые выдают подробности внутренней структуры.
  • Как проверять в пентесте без вреда:

  • начинать с безопасной валидации и минимального PoC;
  • не переходить к разрушительным нагрузкам;
  • для подтверждения часто достаточно показать изменение логики или контролируемую ошибку, а не извлечение больших объёмов данных.
  • Связь с методологией:

  • любая попытка подтвердить инъекцию должна быть согласована с RoE, потому что некоторые проверки могут быть «тяжёлыми».
  • Insecure Design

    Суть: риск заложен в самой логике и дизайне, даже если код написан «аккуратно». Это про отсутствие необходимых бизнес‑ограничений.

    Типовые проявления:

  • нет лимитов на критичные операции (например, бесконечные попытки);
  • можно обойти бизнес‑правила через альтернативный путь;
  • отсутствуют проверки целостности сценария (например, шаги оформления можно перескочить).
  • Как тестировать:

  • описать ожидаемый безопасный сценарий и проверить «обходные тропы»;
  • искать несоответствия между UI, документацией и реальным поведением API;
  • фиксировать бизнес‑влияние через минимальные действия.
  • Security Misconfiguration

    Суть: небезопасные настройки окружения, сервера, фреймворка или приложения.

    Типовые проявления:

  • включённые debug‑страницы и подробные ошибки;
  • лишние HTTP‑методы;
  • неверные заголовки безопасности;
  • открытые административные интерфейсы;
  • чрезмерно «разговорчивые» ответы API.
  • Как проверять:

  • аккуратно собирать заголовки и признаки конфигурации;
  • фиксировать воспроизводимый факт (например, конкретная debug‑страница);
  • учитывать, что CDN/WAF могут скрывать часть реальности (это нужно отметить как ограничение).
  • Vulnerable and Outdated Components

    Суть: приложение использует компоненты с известными уязвимостями или устаревшие версии.

    Типовые проявления:

  • уязвимые библиотеки на фронтенде;
  • уязвимые серверные зависимости;
  • устаревшие серверы и middleware.
  • Как действовать профессионально:

  • определить компонент и версию доказуемо (баннеры, файлы, метаданные сборки, SBOM если доступен);
  • сопоставить с публичной информацией об уязвимости;
  • подтвердить влияние только если это разрешено RoE и безопасно.
  • Важно в отчёте:

  • не ограничиваться советом «обновите всё», а указывать конкретный компонент, где используется, и путь валидации исправления.
  • Identification and Authentication Failures

    Суть: ошибки входа, управления сессией и идентификацией пользователя.

    Типовые проявления:

  • слабые требования к паролям или отсутствие защиты от перебора;
  • неверная логика восстановления пароля;
  • сессионные токены живут слишком долго или не инвалидируются при выходе;
  • один и тот же токен подходит в неподходящем контексте.
  • Как тестировать аккуратно:

  • не проводить агрессивный перебор без согласования;
  • проверять логику блокировок и лимитов в безопасном режиме;
  • маскировать токены в артефактах и никогда не вставлять реальные креды в отчёт.
  • Software and Data Integrity Failures

    Суть: нарушена целостность кода, обновлений и данных, которым доверяет система.

    Типовые проявления:

  • небезопасные механизмы обновления;
  • доверие неподписанным артефактам;
  • рискованные интеграции CI/CD;
  • опасная десериализация (когда входные данные превращаются в объекты без должной проверки).
  • Как проверять:

  • искать места, где система «подтягивает» внешние артефакты;
  • проверять, есть ли подписи, хэши, контроль источника;
  • фиксировать архитектурный риск и условия, при которых он может реализоваться.
  • Security Logging and Monitoring Failures

    Суть: события безопасности не логируются или по ним нельзя обнаружить атаку.

    Типовые проявления:

  • отсутствуют логи входов, отказов доступа, изменения ролей;
  • нет корреляции событий или алертов;
  • логи есть, но в них записываются секреты.
  • Как тестировать в пентесте:

  • согласовать с заказчиком, какие события должны появиться в логах;
  • выполнить минимальные действия (ошибка входа, отказ доступа, изменение критичного объекта) и запросить подтверждение у ответственных;
  • фиксировать результат как «логируется/не логируется» с привязкой ко времени.
  • Server-Side Request Forgery (SSRF)

    Суть: сервер делает запросы туда, куда его заставил пользователь (внутренние адреса, метаданные облака, административные сервисы), обходя сетевые границы.

    Типовые проявления:

  • функции импорта по URL, вебхуки, превью изображений, проверки ссылок;
  • серверный «fetch» по пользовательскому адресу;
  • отсутствие ограничений по хостам и схемам.
  • Как подтверждать безопасно:

  • демонстрировать факт серверного запроса через контролируемый внешний ресурс, не трогая внутренние системы;
  • не пытаться сканировать внутреннюю сеть без явного разрешения;
  • фиксировать, какие ограничения отсутствуют (allowlist, запрет приватных диапазонов, запрет нестандартных схем).
  • Что особенно важно для API

    OWASP Top 10 отлично применим, но у API есть повторяющиеся «болевые точки», которые стоит проверять отдельно.

    Проверка авторизации на уровне объекта и функции

    В API критично различать два вопроса:

  • имеет ли пользователь право вызвать функцию;
  • имеет ли пользователь право на конкретный объект.
  • Практический результат для пентеста:

  • проверяйте не только «ролями», но и «владением» объектом;
  • фиксируйте BOLA‑классы проблем как высокий приоритет.
  • Массовое присваивание (Mass Assignment)

    Суть: клиент может отправить лишние поля в JSON, и сервер их «примет», изменив то, что менять нельзя.

    Как проверять безопасно:

  • сравнивать поля, которые возвращает API, с полями, которые он принимает;
  • пробовать добавить поле, которое не должно быть доступно роли, на тестовом объекте;
  • фиксировать изменение состояния как влияние.
  • Этот класс подробно рассматривается в OWASP API Security Top 10 (2023).

    Отсутствие лимитов и защита от злоупотребления

    Даже без классического DoS, отсутствие ограничений может привести к:

  • подбору идентификаторов;
  • автоматизации операций;
  • финансовым и репутационным потерям.
  • С учётом RoE:

  • не проводите нагрузочные проверки без явного согласования;
  • вместо «силового» теста можно проверять наличие механизмов: rate limit, капчи, блокировки, квоты.
  • Как превращать проверки в качественные находки для отчёта

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

    Рекомендуемая структура описания находки:

  • Суть проблемы: к какой категории относится (например, Broken Access Control).
  • Условия: актив, роль, эндпоинт, предпосылки.
  • Шаги воспроизведения: коротко и воспроизводимо.
  • Факт и влияние: что получилось сделать.
  • Рекомендации: конкретные меры (серверная проверка прав, allowlist, безопасная обработка ошибок, обновление компонента).
  • Критерий ретеста: что должно измениться после исправления.
  • Полезная связка со стандартами:

  • детали техник тестирования удобно сверять с OWASP Web Security Testing Guide (WSTG);
  • требования к контролям можно сопоставлять с OWASP Application Security Verification Standard (ASVS).
  • Типичные ошибки новичков при тестировании веба и API

  • смешивание аутентификации и авторизации (проверили вход, но не проверили права на объекты);
  • доверие UI вместо проверки серверной логики;
  • «сканировать всё» без учёта RoE и рисков для доступности;
  • отсутствие артефактов: нельзя воспроизвести, нельзя исправить;
  • публикация секретов в отчёте вместо маскирования.
  • Что дальше по курсу

    Далее логичный шаг — собрать результаты веб‑ и API‑тестов в отчёт, который:

  • понятен бизнесу и технарям;
  • содержит доказательства, но не создаёт новых утечек;
  • даёт приоритеты и критерии ретеста.
  • OWASP Top 10 в этом смысле полезен не только как «что проверить», но и как общий язык для раздела отчёта «Классы рисков и рекомендации».

    5. Постэксплуатация, фиксация доказательств и отчётность

    Постэксплуатация, фиксация доказательств и отчётность

    Как эта тема связана с предыдущими модулями

    Ранее в курсе мы выстроили основу профессионального пентеста:

  • Правовые основы, этика и методология: работаем только с разрешением, в рамках скоупа и Rules of Engagement (RoE).
  • Разведка (OSINT и сканирование): превращаем разрозненные сигналы в проверенный инвентарь активов и точек входа.
  • Эксплуатация и повышение привилегий: подтверждаем риск минимальным PoC и аккуратно обращаемся с данными.
  • Тестирование веб‑приложений и API (OWASP Top 10): системно ищем критичные классы проблем и оформляем находки так, чтобы их можно было исправить.
  • Эта статья закрывает важнейший практический разрыв между «нашёл уязвимость» и «заказчик смог исправить и снизить риск». Мы разберём:

  • что такое постэксплуатация и где её границы;
  • как собирать и хранить доказательства (артефакты) так, чтобы они были убедительными и не создавали утечки;
  • как превращать технические результаты в отчёт, который понимают бизнес и инженеры.
  • Опорные источники, на которые удобно ориентироваться:

  • PTES (Penetration Testing Execution Standard)
  • NIST SP 800-115 (Technical Guide to Information Security Testing and Assessment)
  • OWASP Web Security Testing Guide (WSTG)
  • OWASP Top 10 (2021)
  • !Диаграмма показывает, как постэксплуатация и доказательства превращаются в отчёт и ретест

    Термины, которые нужны для темы

  • Постэксплуатация (post-exploitation): ограниченный этап после успешного доступа, цель которого — оценить реальные последствия компрометации в рамках RoE.
  • Артефакт: доказательство результата (фрагмент запроса/ответа, лог, скриншот, хэш файла, временная метка), пригодное для отчёта и ретеста.
  • Таймлайн: хронология действий и событий (что, когда и на каком активе делалось).
  • Репродуцируемость: возможность повторить шаги и получить тот же результат.
  • Редакция (redaction): маскирование секретов и персональных данных в артефактах.
  • Цепочка хранения (chain of custody): дисциплина учёта того, где и кем хранились доказательства и не изменялись ли они.
  • Постэксплуатация: цели и допустимые границы

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

    При этом постэксплуатация — один из самых «опасных» этапов с точки зрения ущерба, поэтому её границы определяются RoE строже, чем для разведки.

    Главная идея постэксплуатации

  • подтвердить масштаб влияния на бизнес;
  • найти пути повышения привилегий или расширения доступа, если это явно разрешено;
  • собрать достаточно доказательств для отчёта, не превращая тест в инцидент.
  • Что обычно допустимо (при наличии разрешения)

  • определить текущую роль, права и доступные ресурсы;
  • выяснить, к каким данным есть доступ, на минимальном объёме;
  • проверить возможность выполнения критичных бизнес‑операций на тестовых сущностях;
  • оценить, можно ли перейти от частичного доступа к более критичному через ошибки авторизации или конфигурации;
  • проверить, логируются ли ключевые действия (в согласованном формате взаимодействия с заказчиком).
  • Что обычно запрещено без отдельного согласования

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

    Ниже — безопасный, управляемый процесс, который можно адаптировать под веб, API и инфраструктуру.

    Определите «точку входа» и зафиксируйте исходный контекст

    Зафиксируйте минимум, который позволит объяснить находку:

  • актив и среда (прод/тест), если это известно;
  • роль/учётная запись, с которой получен доступ;
  • канал доступа (веб‑сессия, API‑токен, доступ к хосту);
  • ограничения RoE, которые влияют на дальнейшие действия.
  • Практическое правило: если вы не можете описать исходный контекст одной‑двумя фразами, отчёт почти наверняка будет «расплывчатым».

    Сформулируйте гипотезы о влиянии

    Примеры корректных гипотез:

  • «С этой ролью можно прочитать данные другого пользователя».
  • «Можно выполнить административную операцию через API, минуя UI».
  • «Можно получить доступ к внутреннему ресурсу через SSRF без сканирования сети».
  • Избегайте гипотез вида «посмотрим, что получится» — они часто приводят к выходу за границы и лишним данным.

    Подтвердите влияние минимальными действиями

    Минимальная демонстрация — это такая проверка, которая:

  • доказывает проблему;
  • затрагивает минимальный объём данных;
  • обратима (если создаются тестовые сущности, их можно удалить);
  • понятна инженеру, который будет исправлять.
  • Примеры минимального подтверждения:

  • при BOLA показать доступ к одному чужому объекту и только к не‑чувствительным полям;
  • при вертикальном повышении привилегий показать доступ к одной админ‑функции без изменения критичных настроек;
  • при доступе к файлам показать список каталога или метаданные вместо скачивания всего содержимого.
  • Остановитесь на «достаточном» уровне доказательства

    Пентестеру полезно держать внутренний критерий:

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

    Доказательства: какие артефакты нужны и как их собирать

    Хороший отчёт строится на доказательствах. Плохие доказательства приводят к двум проблемам:

  • заказчик не может воспроизвести и исправить;
  • заказчик не доверяет выводам.
  • Минимальный набор артефактов для одной находки

    | Что нужно зафиксировать | Зачем | Пример артефакта | |---|---|---| | Контекст | Понять условия проявления | «Роль: user, эндпоинт: GET /api/orders/{id}» | | Шаги воспроизведения | Повторить проверку | 3–6 шагов с параметрами | | Доказательство факта | Подтвердить, что это реально | фрагмент ответа 200 OK вместо 403 | | Влияние | Понять риск | «Можно прочитать чужой заказ» | | Ограничения | Честно описать рамки | «Без массового перебора из‑за RoE» |

    Принципы качественных артефактов

  • Репродуцируемость: другой специалист должен повторить результат.
  • Минимальность: только то, что нужно для доказательства.
  • Точность: актив, URL/эндпоинт, метод, параметры, роли.
  • Чистота: секреты и персональные данные замаскированы.
  • Привязка ко времени: у каждого ключевого артефакта есть временная метка.
  • Редакция: как маскировать секреты и данные

    Что чаще всего нужно маскировать:

  • пароли, API‑ключи, токены Bearer, cookie;
  • значения заголовков Authorization, Set-Cookie (частично или полностью);
  • персональные данные (ФИО, телефоны, email, адреса), номера документов;
  • внутренние идентификаторы, если они считаются чувствительными.
  • Как маскировать практично:

  • оставляйте «узнаваемый хвост», чтобы инженер различал токены в логах: eyJ...9kQ;
  • в скриншотах закрывайте чувствительные поля, но оставляйте важные признаки (роль, код ответа, идентификатор объекта);
  • если нужно показать доступ к данным, показывайте 1 запись и по возможности обезличенно.
  • Журнал действий и таймлайн

    Журнал действий нужен не только вам, но и заказчику:

  • помогает объяснить, что именно вы делали;
  • упрощает корреляцию с логами SOC и приложений;
  • снижает споры «это вы сломали или оно само».
  • Практичная структура строки журнала:

    | Поле | Пример | |---|---| | Время | 2026-02-07 14:12 UTC+3 | | Актив | api.example.com | | Действие | GET /api/orders/124 | | Роль | user_a | | Результат | 200 OK, order принадлежит user_b | | Ссылка на артефакт | evidence/IDOR_01.txt |

    Надёжное хранение доказательств

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

    Базовые меры

  • храните артефакты в шифрованном хранилище (на уровне диска или контейнера);
  • ограничьте доступ по принципу минимально необходимого;
  • используйте согласованные каналы передачи (по RoE и политикам заказчика);
  • удаляйте артефакты по согласованному сроку.
  • Хэши и контроль неизменности

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

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

    Пример команды, которую часто используют для хэширования файлов:

    Отчёт: продукт, который «продаёт» ценность пентеста

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

  • понятны тем, кто принимает решения;
  • дают чёткий план исправления;
  • позволяют проверить, что исправления действительно работают.
  • Две аудитории отчёта

  • Руководство и владельцы рисков: интересует влияние на бизнес, приоритеты, сроки.
  • Инженеры: интересуют точные шаги, доказательства, рекомендации и критерии ретеста.
  • Хороший отчёт удовлетворяет обе аудитории, не превращаясь в «роман».

    !Иллюстрация показывает, как один отчёт обслуживает бизнес и техническую команду

    Рекомендуемая структура отчёта

  • Резюме для руководства (Executive Summary)
  • - общий вывод о состоянии защищённости; - ключевые риски и их бизнес‑последствия; - приоритетный план исправлений.
  • Скоуп и ограничения
  • - что входило в работы; - что не тестировалось и почему (RoE, отсутствие доступов, технические ограничения).
  • Методология (кратко)
  • - разведка, тестирование, подтверждение, постэксплуатация; - без избыточных «операторских» деталей.
  • Находки (детально)
  • - карточка на каждую уязвимость: описание, риск, доказательства, шаги воспроизведения, рекомендации.
  • Приложения
  • - инвентарь активов; - таймлайн; - список использованных аккаунтов/ролей (без раскрытия паролей); - дополнительные артефакты (если согласовано).

    Карточка находки: шаблон, который реально помогает исправлять

    | Поле | Что писать | |---|---| | Название | Коротко и предметно: «BOLA в GET /api/orders/{id}» | | Актив | Домен/IP/приложение/компонент | | Уровень риска | Критичность и обоснование | | Описание | Что не так и почему это ошибка | | Условия | Роль, эндпоинт, параметры, предпосылки | | Шаги воспроизведения | Конкретные шаги без лишней воды | | Доказательства | Фрагменты запросов/ответов, скриншоты, временные метки | | Влияние | Что может сделать атакующий, бизнес‑сценарий | | Рекомендации | Конкретные технические меры и где применить | | Критерий ретеста | Что должно измениться после исправления |

    Как описывать риск без «страшилок»

    Риск в отчёте должен быть связкой:

  • вероятность: насколько реалистично эксплуатация;
  • влияние: какой ущерб и на какие процессы;
  • контекст: какие контроли уже есть (или отсутствуют).
  • Если вы используете систему приоритизации (например, CVSS), указывайте не только оценку, но и почему именно так. Для веб‑и API‑ошибок особенно важно объяснять бизнес‑влияние: утечка данных, несанкционированные операции, обход платежей, компрометация аккаунтов.

    Рекомендации: чем они отличаются от «обновите всё»

    Хорошая рекомендация:

  • адресует причину, а не симптом;
  • учитывает архитектуру (например, проверка авторизации на сервере, а не в UI);
  • предлагает валидацию исправления.
  • Примеры формулировок:

  • вместо «Добавьте проверки доступа» → «На сервере проверять, что order.user_id == authenticated_user.id для GET/PUT/DELETE /orders/{id}; запретить доступ иначе возвращая 403»;
  • вместо «Спрячьте админку» → «Ограничить доступ к админ‑эндпоинтам по allowlist/VPN/SSO; включить MFA; отключить доступ из интернета»;
  • вместо «Обновите библиотеку» → «Обновить компонент X до версии Y или выше, проверить отсутствие уязвимого пути Z, добавить контроль в CI (SCA)».
  • Ретест: как доказать, что стало безопаснее

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

    Что считается хорошим ретестом

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

    Критерий ретеста должен быть проверяемым.

    Примеры:

  • «При попытке user_a запросить order пользователя user_b сервер возвращает 403, данные не выдаются».
  • «Сессия инвалидируется при выходе, старый токен получает отказ».
  • «SSRF‑функция принимает только URL из allowlist и блокирует приватные диапазоны».
  • Частые ошибки новичков на этапе постэксплуатации и отчётности

  • Постэксплуатация превращается в «свободный поиск» без явной цели и границ.
  • Доказательства не воспроизводимы: нет ролей, эндпоинтов, параметров, времени.
  • В отчёт попадают секреты и персональные данные без маскирования.
  • Рекомендации абстрактны и не содержат критерия ретеста.
  • Не описаны ограничения: заказчик думает, что проверено «всё», хотя RoE запрещал часть действий.
  • Итог

    Постэксплуатация, фиксация доказательств и отчётность — это этап, где пентест становится полезным для бизнеса:

  • постэксплуатация переводит «уязвимость» в понятный сценарий влияния;
  • артефакты делают выводы доказательными и пригодными для исправления;
  • отчёт превращает технические факты в приоритеты и план действий;
  • ретест подтверждает снижение риска на практике.
  • В следующей логике курса вы можете использовать этот материал как «стандарт качества»: любая находка должна иметь ясные границы, минимальный PoC, аккуратные артефакты и понятный критерий ретеста.