Авторские курсы Михаила Тарасова

Кража сессий через забытые subdomain: как угнать куки через пыльный DNS

Кража сессий через забытые subdomain: как угнать куки через пыльный DNS

Что вижу:
Основной домен target.com крутится на HTTPS, куки с флагом Secure. Но забытый субдомен oldblog.target.com висит на HTTP, а куки всё ещё шлются с Domain=target.com. Пахнет кражей сессий, как забытый пароль на стикере в офисе.

Как поймал:
— Инструмент: subfinder -d target.com + httpx -sc -title для поиска HTTP-субдоменов.
— Метод: Проверил куки через Burp на предмет Domain= и отсутствие Secure, затем запросил / на старом субдомене.

Чем пахнет:
— Класс: Session Hijacking через устаревшие DNS-записи.
— Вероятность: 8/10. Компании забывают чистить старые субдомены, а куки наследуются на уровне домена.

Че почем

Эксплойт:
Разворачиваешь страницу на своём домене или перехватываешь забытый субдомен:

  1. Находишь dev.target.com (DNS указывает на твой IP, если регистрация истекла).

  2. Поднимаешь HTTP-сервер:

  1. Заманиваешь жертву на http://dev.target.com через фишинг.

Итог: Куки с target.com (включая сессионные токены) улетают к тебе.

Обход защиты:
— Если субдомен не забыт, но на HTTP: Используй MitM через ARP-спуфинг в локалке.
— Если куки с HttpOnly: Перехватывай через XSS на том же субдомене (если есть уязвимый фронт).
— Если DNS не взять: Ищи через waybackurls старые записи или утечки в GitHub (target.com site:github.com).

Доказательство:
Скриншот логов с куками: sessionid=abc123; user=admin«Видишь токен? Это не твой Wi-Fi код — это ключ от админки».

Советы

3 вектора для добивания:

  1. Takeover субдомена: Если staging.target.com не привязан к IP, регистрируй через AWS Route53 или Cloudflare.

  2. XSS на старом сайте: Если субдомен — это legacy-блог, ищи XSS в комментах для слива кук без MitM.

  3. Downgrade атака: Если основной сайт редиректит с HTTP на HTTPS, перехватывай начальный запрос до редиректа.

План атаки:

  1. Сканируешь субдомены через subfinder или amass.

  2. Фильтруешь по HTTP (httpx -fc 301,302,403) и ищешь заброшенные сайты с 404 или истёкшим DNS.

  3. Проверяешь куки на Domain=target.com через Burp или document.cookie в консоли.

  4. Если успех — либо бери субдомен под контроль, либо ставь HTTP-сервер для перехвата сессий.

Если в DNS-записях есть CNAME на Azure/AWS:
— Гугли возможность subdomain takeover через незакреплённые записи.
— Эксплойт: Используй can-i-take-over-xyz для проверки на захват (https://github.com/EdOverflow/can-i-take-over-xyz).

Мемная аналитика:
«Забытые субдомены — как старый аккаунт на форуме: казалось, удалил, а он до сих пор логинит тебя в админку».

Итог:
— Уязвимость: Неправильная настройка кук с Domain= и забытые субдомены на HTTP.
— Фикс: Устанавливать Secure на куки, чистить старые DNS-записи, мониторить субдомены.
— Но пока админы забывают про свои ‘тестовые’ среды, угоняй сессии и сдавай репорты на баг-баунти.

Мои курсы