ESPN Deportes¿Qué lecciones dejó la Roma vs Real Madrid rumbo al Clásico?Bollywood HungamaNiti Taylor recalls casting couch ordeal with Telugu film director: “You will have to sleep with me for it this time”PunchNPHCDA renovates 3,526 PHCs, targets more functional centresESPNTalking points, Matchday 2: Who's to blame for Man United mess? Chaos bad for Madrid?The Jerusalem PostEurope distinguishes Iranians from Iran. Why not Israelis from Israel? - opinionInquirerNortheasterly winds, ITCZ to bring rains in PH on FridayZDF heuteEntdecken Sie das ZDF-NachrichtenstudioDaily MaverickMAVERICK MIND QUIZ: Test your general knowledge with the Maverick Mind quizBillboardMalcolm Todd’s ‘Earrings’ Leads Top Gabb Music Songs for Second Month3DNewsMicrosoft научила ИИ предсказывать погоду на шесть недель вперёд — и для этого хватит обычного CPU
The Daily Newsstand · Free, Always
Thursday, October 15, 2026

Рекон как помощник багхантера в поиске скрытых активов

Translate

Наверняка вы замечали, что одни багхантеры находят уязвимости одну за другой, а многим это дается с бо́льшим (или даже больши́м) трудом. Хусейн Дахер, известный под ником hussein98d, считает, что дело не в технических навыках. Все решает рекон.

Хусейн Дахер — основатель и CEO компании Web Immunify, родом из Ливана. В багбаунти он больше десяти лет: за это время он нашел и зарепортил более тысячи уязвимостей на разных платформах. Хусейн также входит в топ исследователей на площадке Standoff Bug Bounty.

Один из самых громких результатов — первое место в программе Fidelity National Information Services меньше чем за полгода. Сам Хусейн объясняет это не удачей, а умением находить активы, до которых не добираются другие. С ним можно связаться на webimmunify.com и daherhussein.com.

В этой статье мы расскажем четыре реальные истории из его практики, когда Хусейну удавалось находить уязвимости там, где, казалось бы, уже все исследовано вдоль и поперек. В одной из них «мертвый» IP-адрес, который все обходили стороной, оказался приложением с захватом аккаунта в один клик. В другой старая сборка Android-приложения отдала ключи ко всей инфраструктуре компании. А еще был домен, который находился только через одну поисковую систему, и открыл доступ к базе данных. Чтобы подробнее разобрать каждый кейс - читайте дальше!

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

Почему одного списка поддоменов бывает недостаточно

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

Хусейн Дахер считает, что дело не только в технических навыках, но и в выборе цели. Можно отлично разбираться в уязвимостях и потратить несколько дней на актив, который до тебя проверили десятки исследователей. Глубокий рекон помогает расширить карту разрешенного периметра и найти части инфраструктуры, которым уделяли меньше внимания. Для каждого найденного актива нужно задать только один вопрос: находил ли это кто-нибудь раньше? Если ответ отрицательный, шансы найти уязвимость заметно повышаются.

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

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

Дело техники

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

Перечисление поддоменов

Перечисление поддоменов — это первый слой, на котором большинство и останавливается. Один запуск Subfinder дает тот же список, что и у всех. Хусейн советует использовать два-три инструмента и не забывать про BBOT: по его опыту, тот вытаскивает на 25–50% больше поддоменов.

Причем глубина здесь важнее ширины, то есть количества. Намного выгоднее рекурсивно брутфорсить поддомены, погружаясь все дальше внутрь сети. Большинство инструментов находят поддомены второго уровня, то есть что-то.domain.com, и дальше почти никто не идет. Хусейн советует копать до третьего и четвертого уровня, искать хосты вида dev.admin.domain.com. Именно там часто находится поверхность атаки с минимальной конкуренцией.

Поиск виртуальных хостов

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

Намного выигрышнее брать сырые IP-адреса из ASN и брутфорсить заголовки Host. Поддомены из списка проверяются по каждому IP-адресу. Для этого подойдут ffuf, Burp Suite Intruder или похожие инструменты. Правильный Host на правильном IP-адресе — это приложение, которое обычно не видно из интернета напрямую. Эту технику можно использовать и для поиска реального IP-адреса приложения за Cloudflare, Akamai или другим WAF.

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

Картирование ASN

Картирование ASN — это работа со всем IP-пространством организации. Нужно построить карту всех диапазонов, которыми владеет компания. Речь по-прежнему идет о больших целях и широком периметре тестирования.

Схема, по которой работает Хусейн, выглядит так:

  • он получает информацию о том, какие диапазоны IP-адресов принадлежат организации, то есть BGP-данные;

  • затем выводит все IP-адреса внутри этих диапазонов через prips;

  • после этого запускает ffuf в режиме поиска виртуальных хостов по всем адресам.

Один ASN может превратиться в тысячи IP-адресов и сотни нетронутых виртуальных хостов. Bing тоже помогает: в нем есть поиск по IP-адресу с помощью оператора ip:. Google такого не умеет. Еще один полезный прием — сверка диапазонов через Shodan с использованием SSL-запросов по названию организации. Это может показать IP-адреса без публичных имен хостов.

Словарь под конкретную цель

Четвертая техника — создание словаря под конкретную цель. Универсальные словари находят универсальные пути. Если два исследователя используют один и тот же список, они приходят к одним и тем же результатам.

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

Для сбора данных подойдут Katana, Wayback Machine и gau. Они помогают автоматически обойти страницы сайта и собрать все найденные ссылки. Затем данные разбиваются на отдельные слова:

  • список делится по строкам и специальным символам;

  • результат сортируется и очищается от дубликатов;

  • остаются только уникальные значения.

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

Доркинг в разных поисковых системах

Доркинг хорошо дополняет остальные способы рекона. Запросы с операторами site, intitle и inurl помогают обнаруживать старые страницы, документы и поддомены. Такие находки часто не попадают в список активов, который собрали другими инструментами.

Выдача сильно зависит от поисковой системы. Страница может отсутствовать в Google, но при этом сохраниться в индексе Bing, Yahoo, DuckDuckGo или Yandex. Поэтому один и тот же набор запросов имеет смысл повторить в нескольких поисковиках и сравнить результаты.

У Bing есть свои особенности работы с операторами. Например, запрос site:*.atlassian. может показать страницы сразу на atlassian.net, atlassian.io и atlassian.dev. Иногда помогают поиск по IP-адресу и запросы с inbody:login. Перед дальнейшей проверкой найденный ресурс нужно сверить со скоупом программы.

Массовое тестирование без дубликатов

Вручную открыть сто или тысячу поддоменов невозможно, но и спамить nuclei бессмысленно: получишь те же дубликаты, что и все. Хусейн передает все активы — поддомены, IP-адреса, виртуальные хосты — в Burp Suite Intruder с одним payload и смотрит различия визуально.

Ответы можно сортировать по статус-коду, длине и количеству строк. Так намного проще видеть различия между большим количеством активов. Одна ошибка конфигурации Apache раскрыла Хусейну внутренние SSH-баннеры. Главный вопрос звучит так: что вы делаете иначе, чего не делают остальные сто багхантеров?

Майнинг и брутфорс параметров

Страница кажется тупиком только до тех пор, пока не обнаружены скрытые параметры. Для поиска подойдут Arjun и Param Miner — их лучше запускать оба, потому что находят они разное.

Когда параметры найдены, стоит проверить, принимает ли приложение XML. Иногда достаточно заменить JSON на XML и поменять Content-Type. Многие приложения это распарсят, и именно там находится XXE. Все тестируют видимые параметры, а скрытые остаются без внимания. На активах, обнаруженных в ходе глубокой разведки, стоит заново проводить полное тестирование. Лучшие баги часто находятся там, где никто не ждет немедленного ответа.

Рекон по фавиконам

Компании часто используют один и тот же фавикон (теперь вы знаете, как называется иконка на вкладке браузера!) на поддоменах и связанных хостах. Хусейн применяет для этого платформу Profundis. Она находит уникальные хеши фавиконов и сравнивает иконки визуально, а не только по точному хешу.

Например, у Apple логотип сероватый. Если кто-то использует фавикон Apple в синем цвете, Profundis это обнаружит

Например, у Apple логотип сероватый. Если кто-то использует фавикон Apple в синем цвете, Profundis это обнаружит

Такой подход полезен и для рекона, и для анализа. Хеш в Profundis — собственный визуальный хеш, а не mmh3 из Shodan, который в нашем случае ничего не вернет.

Результат поиска через Profundis по хешу фавикона — домен macjunk.hsquaredmedia.app, выдающий себя за Apple

Результат поиска через Profundis по хешу фавикона — домен macjunk.hsquaredmedia.app, выдающий себя за Apple

Reverse DNS по всему ASN

Reverse DNS, пожалуй, последний слой, о котором стоит помнить. Исследователь уже вывел все IP-адреса в диапазоне организации, теперь нужно сделать PTR-запрос по каждому, то есть сопоставить их IP-адреса с именем хоста в обратной зоне DNS. Эти имена могут раскрыть хосты, которые никогда не публиковались в прямой зоне.

Работа с обратной зоной DNS включает несколько шагов. Сначала берутся размеченные IP-адреса из ASN, затем по каждому адресу выполняются PTR-запросы через prips и dnsx. В результате для каждого адреса получается reverse IP hostname.

Так можно найти скрытые имена и имена внутренних хостов. Имена вроде bastion, vpn или jenkins часто оказываются очень интересными для проверки. У некоторых IP-адресов есть PTR-запись, но нет прямой A-записи. Обычное перечисление через прямые DNS-запросы их никогда не увидит. Reverse DNS — единственный способ до них добраться. Каждое найденное имя также нужно добавлять в словарь и использовать для брутфорса виртуальных хостов.

Реальные кейсы

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

Кейс 1. «Мертвый» IP-адрес и скрытое приложение

Первый кейс можно описать как путь от «мертвого» IP-адреса к скрытому приложению. В программе с большим периметром он картировал ASN и проверял каждый IP-адрес. Все они входили в программу, так что тестирование было разрешено ее правилами.

Большинство пропускают адреса, которые сбрасывают соединение, — в браузере такой IP-адрес просто не работает, и его помечают как неактивный. Однако сброс соединения обычно говорит о наличии фильтра, а не о пустом сервере. То есть сам хост существует, просто запрос идет без нужного заголовка и сбрасывается. Что, если пойти дальше и попробовать перебрать поддомены организации через заголовок Host на этом адресе?

Для этого подойдут такие инструменты, как ffuf или Burp Suite Intruder. В общем виде атака выглядит так: исследователь передает словарь поддоменов и IP-адрес и указывает, что фаззить нужно значение внутри заголовка Host. Валидные хосты возвращают настоящие ответы, невалидные уходят в тайм-аут — полезный сигнал заметен сразу.

В итоге мы вышли на внутреннее приложение, до которого не смог бы добраться никто, кто полагается только на DNS. В программах с большим периметром виртуальные хосты на правильных IP-адресах — одна из лучших поверхностей атаки с минимальной конкуренцией, ведь туда почти никто не смотрит.

Если все игнорируют какой-то IP-адрес, то у вас есть шанс стать первым, кто его найдет

Если все игнорируют какой-то IP-адрес, то у вас есть шанс стать первым, кто его найдет

Верность этого подхода Хусейн подтвердил на практике, когда нашел в сети одной компании несколько тщательно скрытых поддоменов и IP-адресов, которые не отвечали напрямую. Когда он указал найденный брутфорсом заголовок Host, оказалось, что через перенаправление пользователей (open redirect) можно захватывать аккаунты одной ссылкой. В результате уязвимость получила высокий уровень опасности, а исследователь заработал 1200 $.

Кейс 2. Старая сборка приложения и утекшие учетные данные

Второй кейс связан со старой сборкой приложения и утекшими учетными данными. Иногда при исследовании организации находится API-поддомен, который отдает APK-файлы. Такие файлы также встречаются в Google Play и на других маркетплейсах. В одном случае рекурсивное перечисление поддоменов обнаружило хост вида api.target.com, который разрешено было тестировать в рамках программы багбаунти.

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

Обычно там можно найти разные секреты, например данные о скрытых внутренних доменах, поддоменах или IP-адресах. Этот хост появился только после брутфорса поддоменов. Именно на третьем уровне часто скрываются тихие, малозаметные активы. Хусейн вставил заголовок страницы в Google и Bing и нашел то же приложение на другом поддомене, но с более старой датой.

Одна забытая сборка вручает нам ключи от всей организации

Одна забытая сборка вручает нам ключи от всей организации

Конкретный пример связан с находкой APK-сборки одного приложения. Исследователь извлек ее содержимое и обнаружил файлы properties, через которые удалось получить доступ к ключам Okta и SMS. Это привело к полному захвату аккаунта без какого-либо взаимодействия с пользователем.

Кейс 3. Сто тысяч доменов и удаленный доступ

Следующий кейс стал результатом участия в программе Fidelity National Information Services на Bugcrowd. Одна из попыток поиска домена по данным владельца в сети (известна также под названием Reversed Whois lookup) организации вернула около ста тысяч доменов — проверять такой объем вручную невозможно, что и отпугнуло большинство других исследователей. А значит, поверхность атаки осталась почти без конкуренции — тем более что процесс можно автоматизировать.

Однако нет готового дорк-инструмента, который нормально обработает сто тысяч запросов. Мешают капчи, rate limit и другие ограничения, поэтому пришлось потратить время и написать собственный инструмент для доркинга с обходом этих ограничений.

Когда все было готово, он взял полный список доменных имен и запустил по ним доркинг, а затем использовал перестановки с терминами вроде login, signup, upload и admin. Когда появлялись результаты, он отправлял их обратно в Katana и повторял цикл, пока поверхность атаки увеличивалась.

Пока остальные боятся масштаба задач, вы автоматизируете работу и находите уязвимости

Пока остальные боятся масштаба задач, вы автоматизируете работу и находите уязвимости

Один из дорков через Bing привел к файлу documentation/branch-archive.zip. Вскрытие Распаковка показала, что внутри находится MSI-установщик для Windows. После его запуска и декомпиляции удалось получить часть исходного кода из библиотеки DLL.

Внутри оказались учетные данные client_upload_svc и localhost-эндпойнты ASMX. Путь к веб-сервису и утекшие данные Хусейн перебрал по всем хостам, пока не нашёл тот, который ответил. Усилия не оказались напрасными — в итоге нашелся конкретный домен, который принимал запросы к веб-сервису.

Так учетные данные client_approved_svc позволили получить данные компании — фактически это был удаленный доступ, к которому привел ZIP-файл, найденный через дорк. Иными словами, разрушительный потенциал этой уязвимости почти такой же, как у RCE.

Кейс 4. Домен, известный только Bing, и SQL-инъекция

Четвертый кейс — разрыв между поисковыми системами и SQL-инъекция. Все началось с домена, который входил в скоуп программы и был разрешен к тестированию. О нем знал только поисковик Bing, а Хусейн считает себя фанатом доркинга именно в нем. Там можно использовать дорк с копирайтом организации и годом в кавычках.

Так было найдено новое приложение, о котором не знали другие багхантеры. Дальше возник вопрос: какой самый простой и слабый input стоит проверить первым? Разные поисковые системы индексируют разные участки интернета. Никем не тестируемый домен — это тот, о котором знает только один поисковик.

Оказалось, что в этом приложении никто не проверил куки. Обычный тест на задержку ответа сервера заставил базу данных «заснуть», что подтвердило временную SQL-инъекцию. А если WAF блокирует инъекцию, можно запускать sqlmap с tamper-скриптами и другими обходами.

Цепочка, которую не проверили более 300 багхантеров

Цепочка, которую не проверили более 300 багхантеров

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

Заключение

Во всех кейсах первая находка выглядела довольно буднично. IP-адрес не отвечал, APK-файл оказался устаревшим, нужный домен нашелся только в Bing, а установщик лежал в забытом архиве. Их значение стало понятно позже, когда Хусейн сопоставил результаты из разных источников.

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

Несколько выводов из опыта Хусейна:

  • поверхность атаки часто появляется не сразу, а только на третьем и следующих циклах рекона;

  • результаты рекона лучше сохранять и регулярно сравнивать;

  • помните, что connection reset не означает, что хост «мертв»;

  • идите туда, куда не доходит краулер: в Bing, Yandex, cookie, старые версии Android-приложения;

  • полезная информация может находиться в документации, PDF-файлах и страницах, которые пропускают краулеры;

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

Проще говоря — запускайте, повторяйте, краульте, фаззьте и снова краульте!

View the original on Хабр →

KioskNews shows a cleaned-up reading view extracted from the publisher’s page — the original always lives on their site, not ours.