Domain/Subdomain takeover
Reading time: 6 minutes
tip
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Підтримайте HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.
Domain takeover
Якщо ви виявите якийсь домен (domain.tld), який використовується якоюсь службою в межах але компанія втратила власність на нього, ви можете спробувати зареєструвати його (якщо це достатньо дешево) і повідомити компанію. Якщо цей домен отримує якусь чутливу інформацію, таку як сесійний cookie через GET параметр або в заголовку Referer, це безумовно є вразливістю.
Subdomain takeover
Субдомен компанії вказує на сервіс третьої сторони з незареєстрованим ім'ям. Якщо ви можете створити обліковий запис у цьому сервісі третьої сторони і зареєструвати ім'я, яке використовується, ви можете виконати захоплення субдомену.
Існує кілька інструментів з словниками для перевірки можливих захоплень:
- https://github.com/EdOverflow/can-i-take-over-xyz
- https://github.com/blacklanternsecurity/bbot
- https://github.com/punk-security/dnsReaper
- https://github.com/haccer/subjack
- https://github.com/anshumanbh/tko-sub
- https://github.com/ArifulProtik/sub-domain-takeover
- https://github.com/SaadAhmedx/Subdomain-Takeover
- https://github.com/Ice3man543/SubOver
- https://github.com/antichown/subdomain-takeover
- https://github.com/musana/mx-takeover
- https://github.com/PentestPad/subzy
- https://github.com/Stratus-Security/Subdominator
- https://github.com/NImaism/takeit
Subdomain Takeover Generation via DNS Wildcard
Коли в домені використовується DNS wildcard, будь-який запитуваний субдомен цього домену, який не має іншої адреси, буде вирішено на ту ж інформацію. Це може бути A IP адреса, CNAME...
Наприклад, якщо *.testing.com
wildcarded на 1.1.1.1
. Тоді not-existent.testing.com
буде вказувати на 1.1.1.1
.
Однак, якщо замість вказування на IP адресу, системний адміністратор вказує його на сервіс третьої сторони через CNAME, наприклад, субдомен GitHub (sohomdatta1.github.io
). Зловмисник може створити свою власну сторінку третьої сторони (в GitHub в цьому випадку) і сказати, що something.testing.com
вказує туди. Оскільки CNAME wildcard дозволяє зловмиснику генерувати довільні субдомени для домену жертви, вказуючи на його сторінки.
Ви можете знайти приклад цієї вразливості в CTF звіті: https://ctf.zeyu2001.com/2022/nitectf-2022/undocumented-js-api
Exploiting a subdomain takeover
Захоплення субдомену по суті є DNS спуфінгом для конкретного домену в Інтернеті, що дозволяє зловмисникам встановлювати A записи для домену, змушуючи браузери відображати контент з сервера зловмисника. Ця прозорість у браузерах робить домени вразливими до фішингу. Зловмисники можуть використовувати typosquatting або Doppelganger domains для цієї мети. Особливо вразливими є домени, де URL у фішинговому електронному листі виглядає легітимно, обманюючи користувачів і ухиляючись від спам-фільтрів через вроджену довіру до домену.
Перевірте цей пост для подальших деталей
SSL Certificates
SSL сертифікати, якщо їх генерують зловмисники через сервіси, такі як Let's Encrypt, додають легітимності цим фальшивим доменам, роблячи фішингові атаки більш переконливими.
Cookie Security and Browser Transparency
Прозорість браузера також поширюється на безпеку cookie, що регулюється політиками, такими як Same-origin policy. Cookie, які часто використовуються для управління сесіями та зберігання токенів входу, можуть бути використані через захоплення субдомену. Зловмисники можуть збирати сесійні cookie, просто перенаправляючи користувачів на скомпрометований субдомен, ставлячи під загрозу дані та конфіденційність користувачів.
CORS Bypass
Можливо, що кожен субдомен має доступ до CORS ресурсів з основного домену або інших субдоменів. Це може бути використано зловмисником для доступу до чутливої інформації, зловживаючи CORS запитами.
CSRF - Same-Site Cookies bypass
Можливо, що субдомену дозволено надсилати cookie на домен або інші субдомени, що було заборонено атрибутом Same-Site
cookie. Однак, зверніть увагу, що токени анти-CSRF все ще запобігатимуть цій атаці, якщо вони правильно реалізовані.
OAuth tokens redirect
Можливо, що скомпрометований субдомен дозволено використовувати в URL redirect_uri
OAuth потоку. Це може бути використано зловмисником для викрадення токена OAuth.
CSP Bypass
Можливо, що скомпрометований субдомен (або навіть кожен субдомен) дозволено використовувати, наприклад, script-src
CSP. Це може бути використано зловмисником для впровадження шкідливих скриптів і зловживання потенційними XSS вразливостями.
Emails and Subdomain Takeover
Ще один аспект захоплення субдомену стосується електронних послуг. Зловмисники можуть маніпулювати MX записями, щоб отримувати або надсилати електронні листи з легітимного субдомену, підвищуючи ефективність фішингових атак.
Higher Order Risks
Подальші ризики включають захоплення NS записів. Якщо зловмисник отримує контроль над одним NS записом домену, він може потенційно направити частину трафіку на сервер під своїм контролем. Цей ризик посилюється, якщо зловмисник встановлює високий TTL (Time to Live) для DNS записів, подовжуючи тривалість атаки.
CNAME Record Vulnerability
Зловмисники можуть використовувати незайняті CNAME записи, які вказують на зовнішні сервіси, які більше не використовуються або були виведені з експлуатації. Це дозволяє їм створити сторінку під довіреним доменом, що ще більше полегшує фішинг або розповсюдження шкідливого ПЗ.
Mitigation Strategies
Стратегії пом'якшення включають:
- Видалення вразливих DNS записів - Це ефективно, якщо субдомен більше не потрібен.
- Придбання доменного імені - Реєстрація ресурсу у відповідного постачальника хмарних послуг або повторна покупка простроченого домену.
- Регулярний моніторинг на вразливості - Інструменти, такі як aquatone, можуть допомогти виявити вразливі домени. Організації також повинні переглянути свої процеси управління інфраструктурою, забезпечуючи, щоб створення DNS записів було останнім кроком у створенні ресурсу та першим кроком у знищенні ресурсу.
Для постачальників хмарних послуг перевірка власності домену є критично важливою для запобігання захопленням субдоменів. Деякі, такі як GitLab, визнали цю проблему та впровадили механізми перевірки доменів.
References
- https://0xpatrik.com/subdomain-takeover/
- https://www.stratussecurity.com/post/subdomain-takeover-guide
- https://www.hackerone.com/blog/guide-subdomain-takeovers-20
tip
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Підтримайте HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.