open atlas
↑ К треку
Наступательная безопасность RED · 05 · 01

Тулкит пентестера

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

RED Middle ◷ 15 min
Уровень
ОсновыJuniorMiddleSenior

Джуниор на разрешённом проекте наводит сканер на приложение в скоупе, выгружает отчёт и вставляет 140 «находок» в тикет. Сеньор за двадцать минут вычёркивает 130 из них. Большинство — это сканер, отметивший отсутствующий заголовок на статической странице ошибки; треть — дубликаты одного и того же отражённого параметра; два «критикала» оказались собственным зондирующим трафиком сканера, вернувшимся обратно. А в шуме спрятались три настоящих бага, которых сканер так и не назвал, — IDOR, цена, которой сервер поверил от клиента, и SSRF, — потому что ни один автоматический инструмент не понимает бизнес-логику. Инструменты не подвели. Они сделали ровно то, для чего созданы. Джуниор просто не знал, для чего каждый из них, где он врёт и какой класс багов он не видит в принципе.

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

Правило, которое идёт раньше любого инструмента: авторизация

Прежде чем хоть одна категория ниже станет важной, — шлюз: ты запускаешь эти инструменты только против систем, которыми владеешь или на тестирование которых есть явное письменное разрешение. Сканер, обходящий приложение, фаззер, долбящий эндпоинт, и nmap, сметающий подсеть, — это всё попытки несанкционированного доступа в тот момент, когда они касаются хоста, которого нет в твоём подписанном скоупе. Пакеты идентичны, целишься ли ты в свою лабораторию или в чужой продакшен; единственное, что превращает это в пентест, а не в правонарушение по закону о компьютерных преступлениях, — документ об авторизации с названной в нём целью. Поэтому порядок всегда такой: сначала подтверди письмо об ангажементе и скоуп, задай лимиты скорости в правилах проведения работ, а уже потом открывай инструмент. Тренируйся на специально уязвимых лабораториях (свои ВМ, OWASP Juice Shop, намеренно собранные CTF-цели) — но никогда на хосте, который ты просто нашёл.

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

Четыре категории и для чего каждая

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

КатегорияНа какой вопрос отвечаетТиповые инструментыСильна на классе баговГде она тебе врёт
Разведка / обнаружениеЧто существует и достижимо?nmap, masscan, subfinder, amassОткрытая поверхность, забытые хосты, открытые портыЗакрытый порт сейчас — не навсегда; скоуп ≠ то, что достижимо
Перехватывающий проксиЧто клиент реально шлёт и что будет, если я это изменю?Burp Suite, OWASP ZAP, mitmproxyIDOR, сломанная аутентификация, значения, которым верит серверВидит только трафик через себя; TLS-пиннинг ослепляет
СканерКакие известные плохие паттерны присутствуют?Burp Scanner, ZAP, nuclei, NessusИзвестные CVE, мисконфиг, отражённый XSS, отсутствующие заголовкиЛожные срабатывания и пропуски; никогда не видит бизнес-логику
ФаззерЧто ломается, если быстро слать много странных вводов?ffuf, Burp Intruder, wfuzz, AFL++Скрытые эндпоинты/параметры, инъекции, краши, переборГромко и медленно; «интересно» — это дельта длины/статуса, а не баг

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

Перехватывающий прокси отвечает на что клиент реально шлёт и что произойдёт, если я это подделаю. Это самый важный инструмент для веб-тестирования, и Burp Suite — его архетип. Он стоит между браузером и сервером (man-in-the-middle на твоём собственном трафике), так что каждый запрос замирает там, где ты можешь его отредактировать, прежде чем он дойдёт до сервера: поменять userId, выкинуть поле цены, переиграть запрос с чужим токеном. Так находят баги, которые не видит сканер: IDOR, сломанный контроль доступа и любое значение, которому сервер верит от клиента.

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

Фаззер отвечает на что ломается под потоком странных вводов. Наведи ffuf на словарь, чтобы обнаружить скрытые эндпоинты (/admin, /.git/, бэкап-файлы), или используй Burp Intruder, чтобы распылять полезные нагрузки по одному параметру в поисках инъекции. Инструмент не может сказать тебе, что находка — это баг; он говорит, какие вводы дали аномальный ответ (другой код статуса, другую длину, более медленный отклик), а ты решаешь, что это значит.

Почему категории размываются — и почему это ловушка

На практике границы смазываются. Burp Suite — это прокси и сканер и фаззер (Intruder) в одном продукте; ZAP такой же. Это удобство прячет реальный риск: джуниор запускает автоматический скан Burp, видит чистый отчёт и заключает, что приложение защищено. Но он использовал Burp-как-сканер и ни разу не использовал Burp-как-прокси, чтобы вручную подделать хоть один запрос, — так что весь класс багов IDOR/контроля доступа остался непротестированным. Категория инструмента, которую ты пропустил, — это класс багов, который ты не проверил. Сеньор относится к четырём категориям как к чек-листу покрытия, а не как к панели кнопок: картировала ли разведка поверхность, гонял ли я прокси вручную, прошёлся ли сканер по известным паттернам, охотился ли фаззер за скрытой поверхностью — и, что критично, рассуждал ли человек о логике, которую не покрывает ни одна категория?

Почему это работает

Почему сканер не может просто найти IDOR? Потому что IDOR — это не строка в трафике, а отсутствующая связь. Чтобы понять, что GET /api/invoices/4816 вернул запись, которую вызывающий не должен видеть, инструменту пришлось бы знать, кто вызывающий, какими счетами он владеет и что 4816 — не один из них. Это состояние приложения и бизнес-намерение, а не сигнатура. Сканер может отметить, что параметр — последовательное целое (подсказка), но только человек (или сессия Burp с двумя аутентифицированными аккаунтами для сравнения) может подтвердить, что проверка контроля доступа действительно отсутствует. Это вечный потолок автоматизации: инструменты находят паттерны; люди находят смысл.

Как читать отчёт сканера по-сеньорски

Автоматический вывод — это стартовая гипотеза, никогда не вывод. Каждая находка сканера требует, чтобы человек ответил на три вопроса, прежде чем она станет тикетом: реальна ли она (или это ложное срабатывание на неэксплуатируемом пути), достижима ли она (сидит ли за аутентификацией или фичефлагом, что делает её неактуальной), и важна ли она (серьёзность в контексте этого приложения, а не дженериковый CVSS сканера). Сто сорок находок из вступления схлопнулись до трёх, потому что сеньор применил ровно этот фильтр — а затем добавил баги, которые сканер структурно найти не может.

Выбери лучший вариант

На разрешённом веб-проекте нужно найти сломанный контроль доступа (один пользователь читает записи другого). Какая категория инструментов — правильный основной инструмент?

Викторина

Сканер сообщает о 0 уязвимостях на разрешённом веб-приложении. Какой верный вывод сеньора?

Викторина

Какое утверждение об авторизации и инструментах верно?

Расставь шаги по порядку

Упорядочь разрешённый веб-пентест по естественной последовательности категорий инструментов, от шлюза до логики:

  1. 1 Подтвердить авторизацию и скоуп (шлюз перед любым инструментом)
  2. 2 Разведка: картировать достижимую поверхность (nmap, subfinder)
  3. 3 Перехватывающий прокси: захватить и подделать реальные запросы (Burp)
  4. 4 Сканер + фаззер: пройтись по известным паттернам и скрытой поверхности
  5. 5 Человеческий триаж: проверить находки и охотиться на баги логики, которых не видит ни один инструмент
Вспомните перед уходом
  1. 01
    Назови четыре категории инструментов пентеста, вопрос, на который отвечает каждая, и класс багов, на котором каждая сильна.
  2. 02
    Почему автоматические сканеры никогда не найдут IDOR или баг бизнес-логики, и что это значит для чтения вывода сканера?
Итог

Инструментарий пентеста лучше всего понимать как четыре работы, а не как кучу программ: разведка (nmap, subfinder) картирует то, что существует; перехватывающий прокси (Burp, ZAP) даёт видеть и подделывать реальные запросы, которые шлёт твой клиент; сканер (nuclei, Nessus, Burp Scanner) сметает известные плохие паттерны; а фаззер (ffuf, Intruder) заливает вводы, чтобы выявить скрытые эндпоинты и аномалии. Каждая категория владеет своим классом багов — поэтому та, что ты пропускаешь, остаётся непротестированной, — и поэтому всё-в-одном инструменты вроде Burp становятся ловушкой, если ты всегда жмёшь только кнопку скана. Вечный потолок в том, что инструменты сопоставляют паттерны, тогда как самые высокоущербные баги — IDOR, сломанный контроль доступа, цена, которой сервер верит от клиента, SSRF — суть логика, которую не описывает ни одна сигнатура, так что человеческий триаж необязателен только на словах, а отчёты сканера — это гипотезы для проверки, а не выводы. Над всем этим стоит шлюз: каждый из этих инструментов становится попыткой несанкционированного доступа в тот момент, когда касается хоста вне твоего подписанного скоупа, поэтому письмо об ангажементе идёт раньше первого зонда, и тренируешься ты на лабораториях, которыми владеешь, — а не на хосте, который ты просто нашёл.

Практика

Начни сверху. Задачи идут от простого к сложному: вспомнить факт, применить к случаю, затем senior-уровень. Открой, попробуй, потом открой ответ.

вспомнитьприменитьуглубить0 из 7 завершено
Связанные уроки
углубляется в

Что-то непонятно?

Задай вопрос по этому уроку. Вопросы анонимны и попадают напрямую автору — урок станет лучше.

хоткеи развернуть
поиск
K
пред. пьеса
k
след. пьеса
j
тиры
t
это меню
?
sources2
expand
  1. 01
  2. 02

Trademarks belong to their respective owners. Editorial reference only.