External Recon Methodology
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
If you are interested in hacking career and hack the unhackable - we are hiring! (вимагається вільне володіння польською мовою в письмовій та усній формі).
Отже, вам сказали, що все, що належить якійсь компанії, знаходиться в межах сфери, і ви хочете з'ясувати, що насправді належить цій компанії.
Мета цього етапу - отримати всі компанії, що належать основній компанії, а потім всі активи цих компаній. Для цього ми будемо:
Знайти придбання основної компанії, це дасть нам компанії в межах сфери.
Знайти ASN (якщо є) кожної компанії, це дасть нам діапазони IP, що належать кожній компанії.
Використати зворотні whois запити для пошуку інших записів (назви організацій, домени...) пов'язаних з першим (це можна зробити рекурсивно).
Використати інші техніки, такі як shodan org
та ssl
фільтри для пошуку інших активів (трик ssl
можна зробити рекурсивно).
По-перше, нам потрібно знати, які інші компанії належать основній компанії. Один з варіантів - відвідати https://www.crunchbase.com/, пошукати основну компанію і натиснути на "придбання". Там ви побачите інші компанії, придбані основною. Інший варіант - відвідати сторінку Вікіпедії основної компанії і знайти придбання.
Добре, на цьому етапі ви повинні знати всі компанії в межах сфери. Давайте з'ясуємо, як знайти їх активи.
Номер автономної системи (ASN) - це унікальний номер, присвоєний автономній системі (AS) Управлінням Інтернету (IANA). AS складається з блоків IP-адрес, які мають чітко визначену політику доступу до зовнішніх мереж і адмініструються однією організацією, але можуть складатися з кількох операторів.
Цікаво дізнатися, чи компанія має призначений ASN, щоб знайти її діапазони IP. Було б цікаво провести тест на вразливість проти всіх хостів в межах сфери і шукати домени в цих IP. Ви можете шукати за назвою компанії, за IP або за доменом на https://bgp.he.net/. Залежно від регіону компанії, ці посилання можуть бути корисними для збору додаткових даних: AFRINIC (Африка), Arin(Північна Америка), APNIC (Азія), LACNIC (Латинська Америка), RIPE NCC (Європа). В будь-якому випадку, ймовірно, вся корисна інформація (діапазони IP та Whois) вже з'являється за першим посиланням.
Також, BBOT's підрахунок піддоменів автоматично агрегує та підсумовує ASN в кінці сканування.
Ви можете знайти IP-діапазони організації також за допомогою http://asnlookup.com/ (він має безкоштовний API). Ви можете знайти IP та ASN домену, використовуючи http://ipv4info.com/.
На цьому етапі ми знаємо всі активи в межах обсягу, тому, якщо вам дозволено, ви можете запустити деякі сканери вразливостей (Nessus, OpenVAS) на всіх хостах. Також ви можете запустити деякі сканування портів або використовувати сервіси, такі як shodan для знаходження відкритих портів і в залежності від того, що ви знайдете, вам слід ознайомитися з цією книгою, щоб дізнатися, як провести пентест кількох можливих сервісів. Також варто згадати, що ви можете підготувати деякі списки стандартних імен користувачів та паролів і спробувати брутфорсити сервіси за допомогою https://github.com/x90skysn3k/brutespray.
Ми знаємо всі компанії в межах обсягу та їх активи, час знайти домени в межах обсягу.
Зверніть увагу, що в наступних запропонованих техніках ви також можете знайти піддомени, і цю інформацію не слід недооцінювати.
Перш за все, вам слід шукати основний домен(и) кожної компанії. Наприклад, для Tesla Inc. це буде tesla.com.
Оскільки ви знайшли всі IP-діапазони доменів, ви можете спробувати виконати зворотні DNS-запити на цих IP, щоб знайти більше доменів в межах обсягу. Спробуйте використовувати деякий DNS-сервер жертви або деякий відомий DNS-сервер (1.1.1.1, 8.8.8.8)
Для цього, адміністратор повинен вручну увімкнути PTR. Ви також можете використовувати онлайн-інструмент для цієї інформації: http://ptrarchive.com/
Всередині whois ви можете знайти багато цікавої інформації, такої як назва організації, адреса, електронні листи, номери телефонів... Але що ще цікавіше, так це те, що ви можете знайти більше активів, пов'язаних з компанією, якщо ви виконаєте зворотні whois запити за будь-яким з цих полів (наприклад, інші реєстрації whois, де з'являється той же електронний лист). Ви можете використовувати онлайн-інструменти, такі як:
https://viewdns.info/reversewhois/ - Безкоштовно
https://domaineye.com/reverse-whois - Безкоштовно
https://www.reversewhois.io/ - Безкоштовно
https://www.whoxy.com/ - Безкоштовно веб, не безкоштовний API.
http://reversewhois.domaintools.com/ - Не безкоштовно
https://drs.whoisxmlapi.com/reverse-whois-search - Не безкоштовно (тільки 100 безкоштовних запитів)
https://www.domainiq.com/ - Не безкоштовно
Ви можете автоматизувати це завдання, використовуючи DomLink (потрібен ключ API whoxy).
Ви також можете виконати деяке автоматичне виявлення зворотного whois за допомогою amass: amass intel -d tesla.com -whois
Зверніть увагу, що ви можете використовувати цю техніку, щоб виявити більше доменних імен щоразу, коли ви знаходите новий домен.
Якщо ви знайдете той же ID того ж трекера на 2 різних сторінках, ви можете припустити, що обидві сторінки управляються однією командою. Наприклад, якщо ви бачите той же ID Google Analytics або той же ID Adsense на кількох сторінках.
Є кілька сторінок і інструментів, які дозволяють вам шукати за цими трекерами та іншими:
Чи знали ви, що ми можемо знайти пов'язані домени та піддомени нашої цілі, шукаючи той же хеш значка favicon? Це саме те, що робить інструмент favihash.py, створений @m4ll0k2. Ось як його використовувати:
Простими словами, favihash дозволить нам виявити домени, які мають однаковий хеш значка фавікону з нашим об'єктом.
Більше того, ви також можете шукати технології, використовуючи хеш фавікону, як пояснено в цьому блозі. Це означає, що якщо ви знаєте хеш значка фавікону вразливої версії веб-технології, ви можете шукати в shodan і знайти більше вразливих місць:
Це спосіб, як ви можете обчислити хеш фавікону веб-сайту:
Шукайте на веб-сторінках рядки, які можуть бути спільними для різних веб-сайтів в одній організації. Авторське право може бути хорошим прикладом. Потім шукайте цей рядок у google, в інших браузерах або навіть у shodan: shodan search http.html:"Copyright string"
Зазвичай є завдання cron, таке як
to renew the all the domain certificates on the server. This means that even if the CA used for this doesn't set the time it was generated in the Validity time, it's possible to find domains belonging to the same company in the certificate transparency logs. Check out this writeup for more information.
You can use a web such as https://dmarc.live/info/google.com or a tool such as https://github.com/Tedixx/dmarc-subdomains to find domains and subdomain sharing the same dmarc information.
Apparently is common for people to assign subdomains to IPs that belongs to cloud providers and at some point lose that IP address but forget about removing the DNS record. Therefore, just spawning a VM in a cloud (like Digital Ocean) you will be actually taking over some subdomains(s).
This post explains a store about it and propose a script that spawns a VM in DigitalOcean, gets the IPv4 of the new machine, and searches in Virustotal for subdomain records pointing to it.
Note that you can use this technique to discover more domain names every time you find a new domain.
Shodan
As you already know the name of the organisation owning the IP space. You can search by that data in shodan using: org:"Tesla, Inc."
Check the found hosts for new unexpected domains in the TLS certificate.
You could access the TLS certificate of the main web page, obtain the Organisation name and then search for that name inside the TLS certificates of all the web pages known by shodan with the filter : ssl:"Tesla Motors"
or use a tool like sslsearch.
Assetfinder
Assetfinder is a tool that look for domains related with a main domain and subdomains of them, pretty amazing.
Check for some domain takeover. Maybe some company is using some a domain but they lost the ownership. Just register it (if cheap enough) and let know the company.
If you find any domain with an IP different from the ones you already found in the assets discovery, you should perform a basic vulnerability scan (using Nessus or OpenVAS) and some port scan with nmap/masscan/shodan. Depending on which services are running you can find in this book some tricks to "attack" them. Зверніть увагу, що іноді домен розміщений на IP, який не контролюється клієнтом, тому це не в межах обсягу, будьте обережні.
We know all the companies inside the scope, all the assets of each company and all the domains related to the companies.
It's time to find all the possible subdomains of each found domain.
Note that some of the tools and techniques to find domains can also help to find subdomains!
Let's try to get subdomains from the DNS records. We should also try for Zone Transfer (If vulnerable, you should report it).
Найшвидший спосіб отримати багато піддоменів - це пошук у зовнішніх джерелах. Найбільш використовувані інструменти такі (для кращих результатів налаштуйте API ключі):
Є інші цікаві інструменти/API, які, навіть якщо не спеціалізуються безпосередньо на знаходженні піддоменів, можуть бути корисними для їх знаходження, такі як:
Crobat: Використовує API https://sonar.omnisint.io для отримання піддоменів
RapidDNS безкоштовне API
gau: отримує відомі URL-адреси з Open Threat Exchange AlienVault, Wayback Machine та Common Crawl для будь-якого заданого домену.
SubDomainizer & subscraper: Вони сканують веб, шукаючи JS файли та витягують піддомени звідти.
securitytrails.com має безкоштовне API для пошуку піддоменів та історії IP
Цей проект пропонує безкоштовно всі піддомени, пов'язані з програмами bug-bounty. Ви також можете отримати доступ до цих даних, використовуючи chaospy або навіть отримати доступ до обсягу, використаного цим проектом https://github.com/projectdiscovery/chaos-public-program-list
Ви можете знайти порівняння багатьох з цих інструментів тут: https://blog.blacklanternsecurity.com/p/subdomain-enumeration-tool-face-off
Спробуємо знайти нові піддомени, брутфорсуючи DNS-сервери, використовуючи можливі імена піддоменів.
Для цієї дії вам знадобляться деякі загальні списки слів піддоменів, такі як:
А також IP-адреси хороших DNS-резолверів. Щоб згенерувати список надійних DNS-резолверів, ви можете завантажити резолвери з https://public-dns.info/nameservers-all.txt і використовувати dnsvalidator для їх фільтрації. Або ви можете використовувати: https://raw.githubusercontent.com/trickest/resolvers/main/resolvers-trusted.txt
Найбільш рекомендовані інструменти для брутфорсу DNS:
massdns: Це був перший інструмент, який виконував ефективний брутфорс DNS. Він дуже швидкий, однак схильний до хибнопозитивних результатів.
gobuster: Я думаю, що цей інструмент використовує лише 1 резолвер
shuffledns є обгорткою навколо massdns
, написаною на go, яка дозволяє вам перераховувати дійсні піддомени, використовуючи активний брутфорс, а також вирішувати піддомени з обробкою підстановочних знаків та простим підтримкою вводу-виводу.
puredns: Він також використовує massdns
.
aiodnsbrute використовує asyncio для асинхронного брутфорсу доменних імен.
Після того, як ви знайшли піддомени, використовуючи відкриті джерела та брутфорс, ви можете згенерувати варіації знайдених піддоменів, щоб спробувати знайти ще більше. Для цієї мети корисні кілька інструментів:
dnsgen: Задані домени та піддомени генерують перестановки.
goaltdns: Задані домени та піддомени генерують перестановки.
Ви можете отримати перестановки goaltdns wordlist тут.
gotator: Дано домени та піддомени, генерує перестановки. Якщо файл перестановок не вказано, gotator використає свій власний.
altdns: Окрім генерації пермутацій піддоменів, він також може спробувати їх розв'язати (але краще використовувати попередньо згадані інструменти).
Ви можете отримати пермутації altdns wordlist тут.
dmut: Ще один інструмент для виконання перестановок, мутацій та змін піддоменів. Цей інструмент буде брутфорсити результат (він не підтримує dns wild card).
Ви можете отримати список слів для перестановок dmut тут.
alterx: На основі домену він генерує нові потенційні імена піддоменів на основі вказаних шаблонів, щоб спробувати виявити більше піддоменів.
subzuf: subzuf — це фуззер для брутфорсу піддоменів, поєднаний з надзвичайно простим, але ефективним алгоритмом, що керується відповідями DNS. Він використовує наданий набір вхідних даних, таких як спеціально підібраний список слів або історичні записи DNS/TLS, щоб точно синтезувати більше відповідних доменних імен і розширювати їх ще більше в циклі на основі інформації, зібраної під час сканування DNS.
Перегляньте цей блог-пост, який я написав про те, як автоматизувати виявлення піддоменів з домену, використовуючи Trickest workflows, щоб мені не потрібно було вручну запускати купу інструментів на моєму комп'ютері:
Якщо ви знайшли IP-адресу, що містить одну або кілька веб-сторінок, що належать піддоменам, ви можете спробувати знайти інші піддомени з веб-сайтами на цій IP-адресі, шукаючи в OSINT джерелах домени на IP або брутфорсити доменні імена VHost на цій IP.
Ви можете знайти деякі VHosts на IP-адресах, використовуючи HostHunter або інші API.
Брутфорс
Якщо ви підозрюєте, що деякий піддомен може бути прихований на веб-сервері, ви можете спробувати його брутфорсити:
Ця техніка може дозволити вам отримати доступ до внутрішніх/прихованих кінцевих точок.
Іноді ви знайдете сторінки, які повертають заголовок Access-Control-Allow-Origin лише тоді, коли в заголовку Origin встановлено дійсний домен/піддомен. У цих сценаріях ви можете зловживати цією поведінкою, щоб виявити нові піддомени.
Під час пошуку субдоменів звертайте увагу, чи вказують вони на будь-який тип бакету, і в такому випадку перевірте дозволи. Також, оскільки на цьому етапі ви будете знати всі домени в межах обсягу, спробуйте зламати можливі імена бакетів і перевірити дозволи.
Ви можете моніторити, якщо нові субдомени домену створюються, моніторячи журнали прозорості сертифікатів, що робить sublert.
Перевірте на можливі взяття субдоменів під контроль. Якщо субдомен вказує на якийсь S3 бакет, перевірте дозволи.
Якщо ви знайдете будь-який субдомен з IP, відмінним від тих, що ви вже знайшли під час виявлення активів, вам слід виконати базове сканування вразливостей (використовуючи Nessus або OpenVAS) і деяке сканування портів з nmap/masscan/shodan. Залежно від того, які сервіси працюють, ви можете знайти в цьому посібнику деякі трюки для "атаки" на них. Зверніть увагу, що іноді субдомен розміщений на IP, який не контролюється клієнтом, тому він не входить в обсяг, будьте обережні.
На початкових етапах ви могли знайти деякі діапазони IP, домени та субдомени. Час зібрати всі IP з цих діапазонів та для доменів/субдоменів (DNS запити).
Використовуючи сервіси з наступних безкоштовних API, ви також можете знайти попередні IP, які використовувалися доменами та субдоменами. Ці IP можуть все ще належати клієнту (і можуть дозволити вам знайти обхідні шляхи CloudFlare)
Ви також можете перевірити домени, що вказують на конкретну IP-адресу, використовуючи інструмент hakip2host
Скануйте порти всіх IP, які не належать CDN (оскільки ви, ймовірно, не знайдете нічого цікавого там). У виявлених запущених сервісах ви можете знайти вразливості.
Знайдіть посібник про те, як сканувати хости.
Ми знайшли всі компанії та їх активи, і ми знаємо діапазони IP, домени та субдомени в межах обсягу. Час шукати веб-сервери.
На попередніх етапах ви, ймовірно, вже виконали деяке розвідку виявлених IP та доменів, тому ви могли вже знайти всі можливі веб-сервери. Однак, якщо ви цього не зробили, ми зараз розглянемо деякі швидкі трюки для пошуку веб-серверів в межах обсягу.
Зверніть увагу, що це буде орієнтовано на виявлення веб-додатків, тому вам слід виконати сканування вразливостей та сканування портів також (якщо дозволено обсягом).
Швидкий метод для виявлення відкритих портів, пов'язаних з веб серверами, використовуючи masscan можна знайти тут. Ще один зручний інструмент для пошуку веб-серверів - це httprobe, fprobe та httpx. Ви просто передаєте список доменів, і він спробує підключитися до порту 80 (http) та 443 (https). Додатково, ви можете вказати спробувати інші порти:
Тепер, коли ви виявили всі веб-сервери, що входять до сфери (серед IP-адрес компанії та всіх доменів і піддоменів), ви, напевно, не знаєте, з чого почати. Тож давайте спростимо і просто почнемо з того, щоб зробити скриншоти всіх з них. Просто подивившись на головну сторінку, ви можете знайти незвичайні кінцеві точки, які більш схильні до того, щоб бути вразливими.
Для реалізації запропонованої ідеї ви можете використовувати EyeWitness, HttpScreenshot, Aquatone, Shutter, Gowitness або webscreenshot.
Більше того, ви можете використовувати eyeballer, щоб переглянути всі скриншоти і дізнатися, що, ймовірно, міститиме вразливості, а що ні.
Щоб знайти потенційні хмарні активи, що належать компанії, вам слід почати з переліку ключових слів, які ідентифікують цю компанію. Наприклад, для криптокомпанії ви можете використовувати такі слова: "crypto", "wallet", "dao", "<domain_name>", <"subdomain_names">
.
Вам також знадобляться словники поширених слів, що використовуються в бакетах:
Потім, з цими словами, ви повинні згенерувати пермутації (перегляньте Другий раунд DNS Brute-Force для отримання додаткової інформації).
З отриманими словниками ви можете використовувати такі інструменти, як cloud_enum, CloudScraper, cloudlist або S3Scanner.
Пам'ятайте, що, шукаючи хмарні активи, вам слід шукати більше, ніж просто бакети в AWS.
Якщо ви знайдете такі речі, як відкриті бакети або хмарні функції, вам слід доступитися до них і спробувати подивитися, що вони вам пропонують і чи можете ви їх зловживати.
З доменами та піддоменами в межах сфери у вас, по суті, є все, що вам потрібно для початку пошуку електронних листів. Ось API та інструменти, які найкраще працювали для мене для знаходження електронних листів компанії:
theHarvester - з API
API https://hunter.io/ (безкоштовна версія)
API https://app.snov.io/ (безкоштовна версія)
API https://minelead.io/ (безкоштовна версія)
Електронні листи знадобляться пізніше для брутфорсу веб-логінів та авторизаційних сервісів (таких як SSH). Крім того, вони потрібні для фішингу. Більше того, ці API нададуть вам ще більше інформації про особу, що стоїть за електронною поштою, що корисно для фішингової кампанії.
З доменами, піддоменами та електронними листами ви можете почати шукати облікові дані, які були витікали в минулому і належать цим електронним листам:
Якщо ви знайдете дійсні витіклі облікові дані, це дуже легка перемога.
Витоки облікових даних пов'язані з злом компаній, де конфіденційна інформація була витікала та продавалася. Однак компанії можуть бути піддані впливу інших витоків, інформація про які не міститься в цих базах даних:
Облікові дані та API можуть бути витікали в публічних репозиторіях компанії або користувачів, які працюють на цю компанію в GitHub. Ви можете використовувати інструмент Leakos, щоб завантажити всі публічні репозиторії організації та її розробників і автоматично запустити gitleaks на них.
Leakos також можна використовувати для запуску gitleaks проти всього тексту, наданого URL-адресами, оскільки іноді веб-сторінки також містять секрети.
Перевірте також цю сторінку на предмет потенційних github dorks, які ви також могли б шукати в організації, яку ви атакуєте:
Github Dorks & LeaksІноді зловмисники або просто працівники публікують вміст компанії на сайті паст. Це може або не може містити конфіденційну інформацію, але це дуже цікаво шукати. Ви можете використовувати інструмент Pastos, щоб шукати більш ніж на 80 сайтах паст одночасно.
Старі, але золоті dorks Google завжди корисні для знаходження викритої інформації, якої там не повинно бути. Єдина проблема в тому, що google-hacking-database містить кілька тисяч можливих запитів, які ви не можете виконати вручну. Тож ви можете взяти свої улюблені 10 або ви можете використовувати інструмент, такий як Gorks, щоб запустити їх усі.
Зверніть увагу, що інструменти, які очікують запустити всю базу даних, використовуючи звичайний браузер Google, ніколи не закінчаться, оскільки Google заблокує вас дуже-дуже швидко.
Якщо ви знайдете дійсні витіклі облікові дані або токени API, це дуже легка перемога.
Якщо ви виявили, що компанія має відкритий код, ви можете проаналізувати його та шукати вразливості в ньому.
Залежно від мови існують різні інструменти, які ви можете використовувати:
Source code Review / SAST ToolsІснують також безкоштовні сервіси, які дозволяють вам сканувати публічні репозиторії, такі як:
Більшість вразливостей, виявлених мисливцями за помилками, знаходяться всередині веб-додатків, тому на цьому етапі я хотів би поговорити про методологію тестування веб-додатків, і ви можете знайти цю інформацію тут.
Я також хочу зробити особливе посилання на розділ Автоматизовані сканери веб-відкритого коду, оскільки, якщо ви не повинні очікувати, що вони знайдуть вам дуже чутливі вразливості, вони стануть у нагоді для реалізації їх у робочих процесах, щоб отримати деяку початкову веб-інформацію.
Вітаємо! На цьому етапі ви вже виконали всі основні перерахування. Так, це базове, оскільки можна виконати ще багато перерахувань (пізніше побачимо більше трюків).
Отже, ви вже:
Знайшли всі компанії в межах сфери
Знайшли всі активи, що належать компаніям (і виконали деяке сканування вразливостей, якщо це в межах сфери)
Знайшли всі домени, що належать компаніям
Знайшли всі піддомени доменів (чи є якісь піддоменні захоплення?)
Знайшли всі IP-адреси (з і не з CDN) в межах сфери.
Знайшли всі веб-сервери та зробили скриншот з них (чи є щось незвичайне, що варто більш детального розгляду?)
Знайшли всі потенційні публічні хмарні активи, що належать компанії.
Електронні листи, витоки облікових даних та витоки секретів, які можуть дати вам велику перемогу дуже легко.
Пентестинг всіх веб-сайтів, які ви знайшли
Існує кілька інструментів, які виконуватимуть частину запропонованих дій проти заданої сфери.
https://github.com/hackerspider1/EchoPwn - Трохи старий і не оновлюється
Всі безкоштовні курси @Jhaddix, такі як Методологія мисливця за помилками v4.0 - Розділ розвідки
Якщо ви зацікавлені в кар'єрі в хакерстві та зломі незламного - ми наймаємо! (вимагається вільне володіння польською мовою в письмовій та усній формі).
Bug bounty tip: sign up for Intigriti, a premium bug bounty platform created by hackers, for hackers! Join us at https://go.intigriti.com/hacktricks today, and start earning bounties up to $100,000!
Вчіться та практикуйте хакерство AWS:HackTricks Training AWS Red Team Expert (ARTE) Вчіться та практикуйте хакерство GCP: HackTricks Training GCP Red Team Expert (GRTE)