Як ви гадаєте, як можна зібрати піддомени сайту? Багато хто відповість: усе просто — брутиш їх, закидаєш у subfinder і отримуєш результат. Але, правду кажучи, такий результат буде досить посереднім. У цій статті я хочу навчити вас, як правильно збирати піддомени з максимальною ефективністю.
Увага
Ця стаття не містить закликів до порушення законодавства. Автор не несе відповідальності за можливі дії третіх осіб, вчинені на основі прочитаного.
Навіщо збирати піддомени?
Питання насправді риторичне. Більше піддоменів — більше можливостей:
- Subdomain Takeover: Збільшується шанс знайти вразливість захоплення піддомену. Для любителів фішингу та спаму така знахідка — на вагу золота.
- Більше вразливостей: При детальній розвідці є шанс знайти якийсь забутий, старий субдомен з потенційними проблемами безпеки.
- Прихований функціонал: На піддоменах часто розміщують корпоративні панелі адміністрування. Розробники думають, що так їх ніхто не знайде, але вони дуже помиляються.
Найефективніші методи пошуку
Дозвольте показати вам найцікавіші методи збору, якими я завжди користуюся.
1. Брутфорс (Brute Force)
Для якісного брутфорсу я буду використовувати найкращий, на мою думку, фаззер FFUF та потужний словник від Assetnote. Покопавшись у `--help`, я зміг зібрати таку команду:
bashffuf -u https://vapan.org -w словник.txt -H "Host: FUZZ.vapan.org" -mc 200,302,403,500 -o ffuf_result.json -t 280 -timeout 25 -ignore-body -http2 -rate 40Словник я взяв звідси: https://wordlists-cdn.assetnote.io/data/manual/2m-subdomains.txt. Запускаємо і нехай FFUF працює у фоні, а ми продовжимо збір.

2. Скрипт Subdomz

Subdomz — це свого роду скрипт-рятівник, найкращий у своєму класі. Він використовує великий список інструментів та виконує сканування за їхньою допомогою. Після завершення сканування, скрипт перевіряє знайдені піддомени через httpx та очищає від дублікатів. Дуже зручно.
3. Пошук за Favicon
Favicon — це іконка сторінки. Особливість цієї дрібної іконки в тому, що вона має унікальне числове значення хешу. Завдяки цьому ми можемо знайти сайти, які використовують такий самий favicon.

Давайте отримаємо цифровий хеш vapan.org і проведемо розвідку за ним. Шлях до favicon майже завжди лежить у корені сайту (`сайт/favicon.ico`).
pythonpython3 -c "import mmh3,requests,codecs,sys; print(mmh3.hash(codecs.encode(requests.get(sys.argv[1]).content, 'base64')))" "https://vapan.org/favicon.ico"
Тепер для розвідки нам знадобляться пошукові системи, такі як Shodan та Zoomeye. Якщо у двох сайтів однакова іконка, значить, вони якось пов'язані. Якщо у `blog.site.com` favicon має хеш -1000000000, то у `admin.blog.site.com` з великою ймовірністю буде такий самий.
Пошуковий запит для Shodan: `http.favicon.hash:<числове_значення>`

Тут описано лише 3 способи з десятків інших. Якщо ця стаття сподобається, надалі я випущу більш детальну.




