Крупный план вскрытого серверного блейда на антистатическом коврике: обгоревший чип с трещиной и лазерной гравировкой CVE-2023-22518 под жёстким светом лупы, глубокие тени, зернистая криминалистиче...


По данным аналитики за 2025 год, 28% эксплойтов запускались в течение суток после публикации CVE, а среднее время до рабочего exploit'а схлопнулось до пяти дней. При этом организации тратят от 60 до 150 дней на деплой патчей. Вот это окно между «патч вышел» и «патч накатили» - и есть рабочее пространство багхантера. Из моих 1-day отчётов за последний год треть вернулась как Duplicate. Каждый дубликат можно было предотвратить, если бы я точнее фильтровал цели на старте. Эта статья - конспект рабочего процесса: от отбора CVE до выплаты.

Разница между 0-day и n-day для багхантера​

0-day - уязвимость, о которой вендор не знает и для которой нет патча. Как только исправление выходит и CVE публикуется - баг становится 1-day (или n-day, где n - дни с момента раскрытия). Среди исследователей 1-day принято называть свежие уязвимости в первые недели после патча, пока основная масса инстансов не обновилась.

Практическая разница: поиск 0-day - это фаззинг, реверс-инжиниринг и месяцы работы. 1-day exploit разработка - анализ патча, воспроизведение на стенде и быстрая разведка непатченных целей. Порог входа ниже на порядок, а выплаты сопоставимы - при условии, что ты первый.

Бизнес-логика атаки. Для атакующих n-day ценны по тем же причинам: ransomware-группы используют свежие CVE для начального доступа (CVE-2023-22518 в Confluence фигурирует в каталоге CISA KEV с пометкой «ransomware»), access-брокеры продают проломленные через n-day периметры на теневых площадках. Багхантер делает ту же работу - но легально и за вознаграждение.

В терминах MITRE ATT&CK: Vulnerability Scanning (T1595.002, Reconnaissance) для обнаружения непатченных систем → Exploit Public-Facing Application (T1190, Initial Access) для эксплуатации. Понимание этой цепочки помогает не только при написании отчётов - на OSCP и PNPT оценивают именно умение выстроить kill chain целиком.

Отбор CVE: какие 1-day уязвимости стоят времени​

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

CVSS-вектор важнее скора. Числовое значение CVSS обманчиво без разбора вектора. Возьмём вектор: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N. PR:N (без аутентификации) - звучит вкусно. Но импакт: Confidentiality Low, Integrity Low, Availability None. Итог - 6.5 (MEDIUM). Это дефект дефолтных прав доступа (CWE-276, Incorrect Default Permissions): частично применённые политики безопасности дают анонимный доступ к тем компонентам, которые входят в затронутую политику. Реальный импакт зависит от конфигурации конкретной инсталляции CODESYS - не RCE, не захват админки, а ограниченный и конфигурационно-зависимый эффект. EPSS - 0.006, ниже медианы. Тратить на неё полдня - потерять время.

Для сравнения - CVE-2023-22518, Improper Authorization в Atlassian Confluence (CWE-863):

ПараметрCVE-2022-22518 (CODESYS)CVE-2023-22518 (Confluence)
CVSS6.5 (MEDIUM)9.8 (CRITICAL)
Вектор импактаC:L / I:L / A:NC:H / I:H / A:H
CWECWE-276CWE-863
EPSS0.006 (ниже медианы)1.000 (top 1%)
CISA KEVНетДа (связана с ransomware)
Стоит браться?НетДа

CVE-2023-22518 позволяет неаутентифицированному атакующему сбросить Confluence и создать учётную запись администратора - полная потеря конфиденциальности, целостности и доступности.

EPSS как фильтр. CVSS измеряет теоретическую тяжесть. EPSS (Exploit Prediction Scoring System от FIRST.org) предсказывает вероятность реальной эксплуатации в ближайшие 30 дней. Гипотетическая CVE с CVSS 9.8 и EPSS 0.01 - скорее всего никто не эксплуатирует (это не про CVE-2023-22518 с EPSS 1.0, а вымышленный пример для иллюстрации принципа). А вот CVE с CVSS 7.5 и EPSS 0.85 в нишевом продукте - реальная атакуемая цель. Для багхантера второй случай ценнее: конкуренция меньше, шанс на принятый отчёт выше.

CISA KEV как сигнал. Каталог Known Exploited Vulnerabilities - если CVE туда попала, её эксплуатируют прямо сейчас. Для багхантера это двойной сигнал: подтверждённая эксплуатируемость упрощает доказательство импакта, но вендоры в KEV-списке обязаны патчиться в установленные CISA сроки (due date назначается индивидуально - от 3 дней для критичных, как CVE-2026-35616, до ~21 дня, хотя SSVC-решение может варьироваться от 'Act' до 'Attend' даже для KEV-записей с ransomware-меткой). Окно сужается. Впрочем, даже для KEV-записей с ransomware-меткой SSVC-решение не всегда максимально срочное: для CVE-2023-22518 SSVC-decision - Attend (патчить в штатном цикле), что на практике оставляет более широкое окно, чем ожидаешь.

Чек-лист для поиска известных CVE в багбаунти:
  • PR:N или PR:L - атака без аутентификации или с минимальными привилегиями
  • C:H или I:H - высокий ущерб
  • EPSS > 0.5 - подтверждённая вероятность эксплуатации
  • Продукт встречается в скоупах твоих программ
  • Advisory содержит достаточно деталей для воспроизведения

Как найти уязвимый актив по CVE​

Подходящая CVE выбрана. Дальше - обнаружить непатченные инстансы в скоупе.

Мониторинг источников. Репозиторий CVEProject/cvelistV5 на GitHub обновляется в реальном времени - новые записи появляются раньше, чем на cve.org. Advisory вендоров иногда публикуются за сутки до назначения CVE: для CVE-2023-22518 advisory Atlassian вышел 30 октября 2023, CVE в базе - 31 октября. Некоторые вендоры публикуют полные отчёты исследователей после embargo-периода - это готовый PoC без лишней работы.

Ещё один источник - changelogs и коммиты open source проектов. Иногда исправление уже в коде, а CVE не назначен. Если commit message содержит что-то вроде «fix auth bypass» или «patch path traversal» - это потенциальная 1-day, о которой публично не знает почти никто. Такая разведка по CVE базам и git-истории даёт фору в несколько дней.

Shodan и Censys. Базовый запрос для Confluence в Shodan: http.title:"Confluence" или фильтр по хэшу фавиконки. Censys позволяет уточнить по HTTP-заголовкам и версиям. Для российских программ багбаунти данные Shodan бывают неполными - определённые IP-диапазоны сканируются реже. Собственные сканеры по скоупу программы обязательны.

Nuclei для масштабной проверки. Для CVE-2023-22518 есть готовый nuclei-шаблон в официальном репозитории projectdiscovery/nuclei-templates (http/cves/2023/CVE-2023-22518.yaml). Запуск:
Bash:
nuclei -t http/cves/2023/CVE-2023-22518.yaml -l targets.txt -o results.txt
Файл targets.txt - URL из скоупа программы. Nuclei-шаблоны для громких CVE (особенно из CISA KEV) появляются в течение дней после advisory. Но для нишевых CVE - а именно на них стоит ориентироваться для снижения конкуренции - готовых шаблонов может не быть месяцами. Для таких случаев я пишу собственные YAML-темплейты и контрибьючу их обратно в репозиторий (заодно карма на GitHub растёт).

Идентификация продукта. Если на целевом хосте кастомная главная - скормите HTML в LLM с вопросом «какой продукт развёрнут». Нейросети неплохо распознают ПО по CSS-классам, meta-тегам и путям к ресурсам. Не идеально, но как первый фильтр - работает.

Патч-диффинг уязвимостей: от патча к PoC эксплойту​

📚 Часть контента скрыта. Этот материал доступен участникам сообщества с рангом One Level или выше
Получить доступ просто — достаточно зарегистрироваться и проявить активность на форуме

захламляется из-за суффиксов версий в именах файлов. Решение - скрипт нормализации имён JAR перед сравнением. Для бинарных диффов - bindiff и diffoscope показывают изменения на уровне инструкций. В некоторых случаях помогает настроить remote debugging (JDWP для Java, delve для Go) - это позволяет отследить выполнение кода в реальном времени.

Шаг 3: фильтрация. Сравнение хэшей JAR с Maven Central помогает отсеять неизменённые сторонние зависимости. Но если changelog патча упоминает обновление зависимости - её тоже нужно проверить: патч мог закрывать уязвимость через обновление сторонней библиотеки, а не через правку основного кода. Этот момент часто упускают.

Шаг 4: локализация. После фильтрации остаётся обозримый набор изменений. Для Java - декомпилятор (JD-GUI, Procyon, CFR). Для Go - стандартный git diff между тегами. Ищите изменения в обработке авторизации, валидации ввода, парсинге путей. В CVE-2023-22518 изменение касалось проверки авторизации на эндпоинтах управления инстансом - без неё неаутентифицированный пользователь мог обратиться к эндпоинту сброса.

Шаг 5: воспроизведение. Тестируйте только на локальном стенде. В багбаунти на основе публичных CVE достаточно подтвердить наличие уязвимой версии на активе и описать путь эксплуатации - запускать эксплойт на продакшне не нужно и обычно запрещено правилами программы.

Монетизация уязвимостей в багбаунти: репортинг и подводные камни​

Качество отчёта определяет результат. Triage-команда обрабатывает десятки репортов в день. 1-day отчёт должен содержать: CVE-ID, доказательство уязвимой версии на конкретном активе в скоупе, описание шагов воспроизведения и оценку импакта. «Нашёл Confluence 8.3.3 - вот CVE» без доказательства доступности уязвимого эндпоинта - понизят severity или отклонят.

Дубликаты - главный враг. Чем популярнее CVE, тем выше риск. CVE-2023-22518 с EPSS 1.0, вероятно, отрепортили десятки хантеров в первые часы. Шансы повышает работа с менее «хайповыми» CVE - высокий EPSS, но без массового освещения в соцсетях. Нишевые продукты и программы с узким скоупом - золотая жила.

Скорость решает. Если ты начал работать с CVE через неделю после публикации - крупные программы уже пропатчились или получили дубликаты. Мой рабочий SLA: 24-48 часов от advisory до готового отчёта. Для этого нужен пайплайн: мониторинг → фильтрация → стенд → PoC → скан скоупа → репорт.

Легальность для российских багхантеров. Выплаты на международных платформах (HackerOne, Bugcrowd) для резидентов РФ - отдельная боль: KYC-процедуры требуют верификации, санкционные ограничения могут блокировать банковские переводы. Standoff Bug Bounty решает этот вопрос для программ российских вендоров. Перед регистрацией на любой платформе - проверьте актуальную политику выплат для вашей юрисдикции и доступные способы вывода.

Многие багхантеры переоценивают значимость CVSS-скора. Публичная CVE с 9.8 привлекает сотни хантеров, и 99% получают дубликат. А CVE с 7.5 и EPSS 0.85 в нишевом API-шлюзе, который стоит на периметре двух программ из твоего скоупа - тихая выплата без гонки.

Разница между хантером с нулевым балансом и хантером с десятком принятых отчётов за квартал - не в скорости набора python exploit.py, а в умении за тридцать секунд оценить: стоит ли эта CVE моего времени? Тут работает не CVSS, а EPSS, скоуп-маппинг и набитый опыт - сколько раз ты обжёгся на дубликатах, чтобы перестать бежать за хайпом. Лучшие мои выплаты за последний год были по CVE, о которых даже не упоминали в Twitter. Исследовательские AI-фреймворки (по данным arxiv) уже достигают 30% success rate автоматической эксплуатации реальных веб-CVE - порог входа продолжит падать, но умение выбрать цель останется человеческим навыком. Если хочется довести этот цикл от фильтрации CVE до PoC до системного навыка - на WAPT аналогичную цепочку проходят в модулях с лабами на реальных уязвимостях.
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

Похожие темы

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →
🧭 Навигатор · ИБ 2026
Не знаешь, какой трек твой?
5 направлений ИБ, реальные зарплаты и точка входа для каждого — в одном треде.
JuniorSenior+
100K → 600K+ ₽ /мес
Открыть навигатор →
🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab