External Recon Methodology
Last updated
Last updated
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Ako ste zainteresovani za hakersku karijeru i da hakujete ono što se ne može hakovati - zapošljavamo! (potrebno je tečno pisano i govorno poljski).
Tako su vam rekli da je sve što pripada nekoj kompaniji unutar opsega, i želite da saznate šta ta kompanija zapravo poseduje.
Cilj ove faze je da se dobiju sve kompanije koje poseduje glavna kompanija i zatim sve imovine tih kompanija. Da bismo to postigli, uradićemo sledeće:
Pronaći akvizicije glavne kompanije, to će nam dati kompanije unutar opsega.
Pronaći ASN (ako postoji) svake kompanije, to će nam dati IP opsege koje poseduje svaka kompanija.
Koristiti obrnute whois pretrage da tražimo druge unose (imena organizacija, domene...) povezane sa prvim (ovo se može raditi rekurzivno).
Koristiti druge tehnike kao što su shodan org
i ssl
filteri da tražimo druge imovine (trik sa ssl
se može raditi rekurzivno).
Prvo, treba da znamo koje druge kompanije poseduje glavna kompanija. Jedna opcija je da posetite https://www.crunchbase.com/, pretražite glavnu kompaniju, i kliknite na "akvizicije". Tamo ćete videti druge kompanije koje je glavna kompanija akvizirala. Druga opcija je da posetite Wikipedia stranicu glavne kompanije i potražite akvizicije.
U redu, u ovom trenutku trebali biste znati sve kompanije unutar opsega. Hajde da saznamo kako da pronađemo njihovu imovinu.
Broj autonomnog sistema (ASN) je jedinstveni broj dodeljen autonomnom sistemu (AS) od strane Internet Assigned Numbers Authority (IANA). AS se sastoji od blokova IP adresa koje imaju jasno definisanu politiku za pristup spoljnim mrežama i kojima upravlja jedna organizacija, ali se mogu sastojati od više operatera.
Zanimljivo je saznati da li je kompanija dodelila neki ASN da bi pronašla svoje IP opsege. Bilo bi zanimljivo izvršiti test ranjivosti protiv svih hostova unutar opsega i tražiti domene unutar ovih IP adresa. Možete pretraživati po imenu kompanije, po IP-u ili po domenu na https://bgp.he.net/. U zavisnosti od regiona kompanije, ovi linkovi bi mogli biti korisni za prikupljanje dodatnih podataka: AFRINIC (Afrika), Arin(Severna Amerika), APNIC (Azija), LACNIC (Latinska Amerika), RIPE NCC (Evropa). U svakom slučaju, verovatno su sve korisne informacije (IP opsezi i Whois) već prikazane u prvom linku.
Takođe, BBOT's enumeracija poddomena automatski agregira i sumira ASN-ove na kraju skeniranja.
Možete pronaći IP opsege organizacije takođe koristeći http://asnlookup.com/ (ima besplatan API). Možete pronaći IP i ASN domena koristeći http://ipv4info.com/.
U ovom trenutku znamo sve resurse unutar opsega, tako da, ako vam je dozvoljeno, možete pokrenuti neki skener ranjivosti (Nessus, OpenVAS) na svim hostovima. Takođe, možete pokrenuti neke port skenove ili koristiti usluge kao što je shodan da pronađete otvorene portove i u zavisnosti od onoga što pronađete, trebali biste pogledati u ovu knjigu kako da pentestujete nekoliko mogućih usluga koje rade. Takođe, vredi napomenuti da možete pripremiti neke liste podrazumevanih korisničkih imena i lozinki i pokušati da bruteforce-ujete usluge sa https://github.com/x90skysn3k/brutespray.
Znamo sve kompanije unutar opsega i njihove resurse, vreme je da pronađemo domene unutar opsega.
Molimo vas da napomenete da u sledećim predloženim tehnikama možete takođe pronaći poddomene i da te informacije ne bi trebale biti potcenjene.
Prvo što treba da uradite je da potražite glavnu domenu(e) svake kompanije. Na primer, za Tesla Inc. to će biti tesla.com.
Pošto ste pronašli sve IP opsege domena, možete pokušati da izvršite obrnute dns upite na tim IP-ovima da pronađete više domena unutar opsega. Pokušajte da koristite neki DNS server žrtve ili neki poznati DNS server (1.1.1.1, 8.8.8.8)
Za ovo da bi radilo, administrator mora ručno da omogući PTR. Takođe možete koristiti online alat za ove informacije: http://ptrarchive.com/
Unutar whois možete pronaći mnogo zanimljivih informacija kao što su ime organizacije, adresa, emailovi, brojevi telefona... Ali ono što je još zanimljivije je da možete pronaći više sredstava povezanih sa kompanijom ako izvršite obrnute whois pretrage po bilo kojem od tih polja (na primer, druge whois registre gde se isti email pojavljuje). Možete koristiti online alate kao što su:
https://viewdns.info/reversewhois/ - Besplatno
https://domaineye.com/reverse-whois - Besplatno
https://www.reversewhois.io/ - Besplatno
https://www.whoxy.com/ - Besplatno web, nije besplatan API.
http://reversewhois.domaintools.com/ - Nije besplatno
https://drs.whoisxmlapi.com/reverse-whois-search - Nije besplatno (samo 100 besplatnih pretraga)
https://www.domainiq.com/ - Nije besplatno
Možete automatizovati ovaj zadatak koristeći DomLink (zahteva whoxy API ključ).
Takođe možete izvršiti neku automatsku obrnutu whois otkrivanje sa amass: amass intel -d tesla.com -whois
Imajte na umu da možete koristiti ovu tehniku da otkrijete više imena domena svaki put kada pronađete novu domenu.
Ako pronađete isti ID istog trackera na 2 različite stranice, možete pretpostaviti da su obe stranice upravlja iste ekipe. Na primer, ako vidite isti Google Analytics ID ili isti Adsense ID na nekoliko stranica.
Postoje neke stranice i alati koji vam omogućavaju da pretražujete po ovim trackerima i još:
Da li ste znali da možemo pronaći povezane domene i poddomene našeg cilja tražeći isti hash favicon ikone? Ovo je upravo ono što alat favihash.py koji je napravio @m4ll0k2 radi. Evo kako ga koristiti:
Jednostavno rečeno, favihash će nam omogućiti da otkrijemo domene koje imaju isti favicon ikonu hash kao naš cilj.
Štaviše, možete takođe pretraživati tehnologije koristeći favicon hash kao što je objašnjeno u ovom blog postu. To znači da ako znate hash favicon-a ranjive verzije web tehnologije možete pretraživati u shodan-u i pronaći više ranjivih mesta:
Ovo je kako možete izračunati favicon hash veba:
Pretražujte unutar web stranica nizove koji se mogu deliti između različitih webova u istoj organizaciji. Copyright string može biti dobar primer. Zatim pretražujte taj niz u google-u, u drugim pregledačima ili čak u shodan-u: shodan search http.html:"Copyright string"
Uobičajeno je imati cron job kao
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. Note that sometimes the domain is hosted inside an IP that is not controlled by the client, so it's not in the scope, be careful.
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).
Najbrži način da se dobiju mnogi poddomeni je pretraga u spoljnim izvorima. Najčešće korišćeni alati su sledeći (za bolje rezultate konfigurišite API ključeve):
Postoje drugi zanimljivi alati/API koji, iako nisu direktno specijalizovani za pronalaženje poddomena, mogu biti korisni za pronalaženje poddomena, kao što su:
Crobat: Koristi API https://sonar.omnisint.io za dobijanje poddomena
RapidDNS besplatan API
gau: preuzima poznate URL-ove iz AlienVault-ove Open Threat Exchange, Wayback Machine i Common Crawl za bilo koju datu domenu.
SubDomainizer & subscraper: Oni pretražuju web u potrazi za JS datotekama i izvode poddomene iz njih.
securitytrails.com ima besplatan API za pretragu subdomena i istorije IP adresa
Ovaj projekat nudi besplatno sve subdomene povezane sa bug-bounty programima. Ove podatke možete pristupiti i koristeći chaospy ili čak pristupiti opsegu koji koristi ovaj projekat https://github.com/projectdiscovery/chaos-public-program-list
Možete pronaći uporedbu mnogih od ovih alata ovde: https://blog.blacklanternsecurity.com/p/subdomain-enumeration-tool-face-off
Pokušajmo da pronađemo nove subdomene brute-forcing DNS servere koristeći moguće nazive subdomena.
Za ovu akciju biće vam potrebne neke uobičajene liste reči za subdomene kao što su:
Takođe i IP adrese dobrih DNS resolvera. Da biste generisali listu pouzdanih DNS resolvera, možete preuzeti resolvere sa https://public-dns.info/nameservers-all.txt i koristiti dnsvalidator da ih filtrirate. Ili možete koristiti: https://raw.githubusercontent.com/trickest/resolvers/main/resolvers-trusted.txt
Najpreporučivaniji alati za DNS brute-force su:
massdns: Ovo je bio prvi alat koji je efikasno izveo DNS brute-force. Veoma je brz, međutim sklon je lažnim pozitivnim rezultatima.
gobuster: Mislim da koristi samo 1 resolver
shuffledns je omotač oko massdns
, napisan u go, koji vam omogućava da enumerišete validne poddomene koristeći aktivni bruteforce, kao i da rešavate poddomene sa obradom wildcard-a i jednostavnom podrškom za ulaz-izlaz.
puredns: Takođe koristi massdns
.
aiodnsbrute koristi asyncio za asinkrono brute force-ovanje imena domena.
Nakon što ste pronašli poddomene koristeći otvorene izvore i brute-forcing, možete generisati varijacije pronađenih poddomena kako biste pokušali da pronađete još više. Nekoliko alata je korisno za ovu svrhu:
dnsgen: Dajući domene i poddomene generiše permutacije.
goaltdns: Dati domene i poddomene generišite permutacije.
Možete dobiti goaltdns permutacije wordlist u ovde.
gotator: Dati domeni i subdomeni generišu permutacije. Ako nije naznačen fajl sa permutacijama, gotator će koristiti svoj.
altdns: Osim generisanja permutacija poddomena, može pokušati i da ih reši (ali je bolje koristiti prethodno pomenute alate).
Možete dobiti altdns permutacije wordlist u ovde.
dmut: Još jedan alat za izvođenje permutacija, mutacija i izmena poddomena. Ovaj alat će izvršiti brute force na rezultat (ne podržava dns wild card).
Možete dobiti dmut permutacije rečnik ovde.
alterx: Na osnovu domena, generiše nova potencijalna imena poddomena na osnovu naznačenih obrazaca kako bi pokušao da otkrije više poddomena.
subzuf: subzuf je fuzzer za brute-force subdomena uparen sa izuzetno jednostavnom, ali efikasnom DNS odgovorom vođenom algoritmom. Koristi pruženi skup ulaznih podataka, kao što su prilagođena lista reči ili istorijski DNS/TLS zapisi, da precizno sintetiše više odgovarajućih imena domena i dodatno ih proširuje u petlji na osnovu informacija prikupljenih tokom DNS skeniranja.
Pogledajte ovaj blog post koji sam napisao o tome kako da automatizujem otkrivanje poddomena sa domena koristeći Trickest workflows tako da ne moram ručno da pokrećem gomilu alata na svom računaru:
Ako ste pronašli IP adresu koja sadrži jednu ili više web stranica koje pripadaju poddomenima, možete pokušati da pronađete druge poddomene sa web stranicama na toj IP adresi tražeći u OSINT izvorima za domene na IP-u ili brute-forcing VHost imena domena na toj IP adresi.
Možete pronaći neke VHosts na IP-ovima koristeći HostHunter ili druge API-je.
Brute Force
Ako sumnjate da neki poddomen može biti skriven na web serveru, možete pokušati da ga brute-forcujete:
Ovom tehnikom možda ćete moći da pristupite internim/sakrivenim krajnjim tačkama.
Ponekad ćete naići na stranice koje vraćaju samo zaglavlje Access-Control-Allow-Origin kada je validna domena/poddomena postavljena u Origin zaglavlju. U ovim scenarijima, možete iskoristiti ovo ponašanje da otkrijete nove poddomenе.
Dok tražite subdomene, obratite pažnju da li se upučuju na neku vrstu buckets, i u tom slučaju proverite dozvole. Takođe, pošto ćete u ovom trenutku znati sve domene unutar opsega, pokušajte da brute force-ujete moguće nazive buckets i proverite dozvole.
Možete pratiti da li su nove subdomene domena kreirane praćenjem Certificate Transparency logova sublert .
Proverite moguće subdomain takeover. Ako subdomena upućuje na neki S3 bucket, proverite dozvole.
Ako pronađete neku subdomenu sa IP-om koji se razlikuje od onih koje ste već pronašli u otkrivanju resursa, trebali biste izvršiti osnovno skeniranje ranjivosti (koristeći Nessus ili OpenVAS) i neko port skeniranje sa nmap/masscan/shodan. U zavisnosti od usluga koje se pokreću, možete pronaći u ovoj knjizi neke trikove za "napad" na njih. Napomena: ponekad je subdomena hostovana unutar IP-a koji nije pod kontrolom klijenta, tako da nije u opsegu, budite oprezni.
U početnim koracima možda ste pronašli neke IP opsege, domene i subdomene. Vreme je da prikupite sve IP adrese iz tih opsega i za domene/subdomene (DNS upiti).
Koristeći usluge iz sledećih besplatnih API-ja, takođe možete pronaći prethodne IP adrese korišćene od strane domena i subdomena. Ove IP adrese možda još uvek pripadaju klijentu (i mogu vam omogućiti da pronađete CloudFlare bypass)
Takođe možete proveriti za domene koje upućuju na određenu IP adresu koristeći alat hakip2host
Port skenirajte sve IP adrese koje ne pripadaju CDN-ima (jer verovatno nećete pronaći ništa zanimljivo tamo). U otkrivenim uslugama možda ćete moći da pronađete ranjivosti.
Pronađite vodič o tome kako skenirati hostove.
Pronašli smo sve kompanije i njihove resurse i znamo IP opsege, domene i subdomene unutar opsega. Vreme je da tražimo web servere.
U prethodnim koracima verovatno ste već izvršili neku recon za IP adrese i domene koje ste otkrili, tako da ste možda već pronašli sve moguće web servere. Međutim, ako niste, sada ćemo videti neke brze trikove za pretragu web servera unutar opsega.
Molimo vas, imajte na umu da će ovo biti orijentisano na otkrivanje web aplikacija, tako da biste trebali izvršiti skeniranje ranjivosti i port skeniranje takođe (ako je dozvoljeno od strane opsega).
Brza metoda za otkrivanje otvorenih portova povezanih sa web serverima koristeći masscan može se pronaći ovde. Još jedan prijateljski alat za pretragu web servera je httprobe, fprobe i httpx. Samo prosledite listu domena i pokušaće da se poveže na port 80 (http) i 443 (https). Pored toga, možete naznačiti da pokuša i druge portove:
Sada kada ste otkrili sve web servere prisutne u opsegu (među IP-ovima kompanije i svim domenima i poddomenama) verovatno ne znate odakle da počnete. Dakle, hajde da to pojednostavimo i počnemo tako što ćemo praviti snimke ekrana svih njih. Samo gledajući glavnu stranicu možete pronaći čudne krajnje tačke koje su više podložne da budu ranjive.
Da biste sproveli predloženu ideju, možete koristiti EyeWitness, HttpScreenshot, Aquatone, Shutter, Gowitness ili webscreenshot.
Pored toga, možete koristiti eyeballer da pregledate sve snimke ekrana i kažete vam šta verovatno sadrži ranjivosti, a šta ne.
Da biste pronašli potencijalne cloud resurse koji pripadaju kompaniji, trebali biste početi sa listom ključnih reči koje identifikuju tu kompaniju. Na primer, za kripto kompaniju možete koristiti reči kao što su: "crypto", "wallet", "dao", "<domain_name>", <"subdomain_names">
.
Takođe će vam biti potrebne liste reči uobičajenih reči korišćenih u kanticama:
Zatim, sa tim rečima trebali biste generisati permutacije (pogledajte Drugu rundu DNS Brute-Force za više informacija).
Sa dobijenim listama reči možete koristiti alate kao što su cloud_enum, CloudScraper, cloudlist ili S3Scanner.
Zapamtite da kada tražite Cloud Resurse, trebali biste tražiti više od samo kanti u AWS-u.
Ako pronađete stvari kao što su otvorene kante ili izložene cloud funkcije, trebali biste pristupiti njima i pokušati da vidite šta vam nude i da li ih možete zloupotrebiti.
Sa domenima i poddomenama unutar opsega, u suštini imate sve što vam treba da počnete da tražite emailove. Ovo su API-ji i alati koji su mi najbolje radili za pronalaženje emailova kompanije:
theHarvester - sa API-ima
API https://hunter.io/ (besplatna verzija)
API https://app.snov.io/ (besplatna verzija)
API https://minelead.io/ (besplatna verzija)
Emailovi će biti korisni kasnije za brute-force web prijave i auth servise (kao što je SSH). Takođe, potrebni su za phishing. Pored toga, ovi API-ji će vam dati još više informacija o osobi iza emaila, što je korisno za phishing kampanju.
Sa domenima, poddomenama i emailovima možete početi da tražite akreditive koji su procurili u prošlosti i koji pripadaju tim emailovima:
Ako pronađete validne procurene akreditive, ovo je vrlo lakša pobeda.
Curenje akreditiva je povezano sa hakovanjem kompanija gde je osetljiva informacija procurila i prodana. Međutim, kompanije mogu biti pogođene zbog drugih curenja čije informacije nisu u tim bazama podataka:
Akreditivi i API-ji mogu biti procureni u javnim repozitorijumima kompanije ili korisnika koji rade za tu github kompaniju. Možete koristiti alat Leakos da preuzmete sve javne repozitorijume jedne organizacije i njenih razvijača i automatski pokrenete gitleaks nad njima.
Leakos se takođe može koristiti za pokretanje gitleaks protiv svih tekstualnih URL-ova koji su mu prosleđeni, jer ponekad web stranice takođe sadrže tajne.
Proverite takođe ovu stranicu za potencijalne github dorks koje takođe možete pretraživati u organizaciji koju napadate:
Github Dorks & LeaksPonekad napadači ili samo radnici će objaviti sadržaj kompanije na paste sajtu. Ovo može ili ne mora sadržati osetljive informacije, ali je veoma zanimljivo tražiti to. Možete koristiti alat Pastos da pretražujete na više od 80 paste sajtova u isto vreme.
Stari, ali zlatni google dorks su uvek korisni za pronalaženje izloženih informacija koje ne bi trebale biti tu. Jedini problem je što google-hacking-database sadrži nekoliko hiljada mogućih upita koje ne možete ručno pokrenuti. Dakle, možete uzeti svojih omiljenih 10 ili možete koristiti alat kao što je Gorks da ih sve pokrenete.
Napomena da alati koji očekuju da pokrenu celu bazu koristeći regularni Google pretraživač nikada neće završiti jer će vas google vrlo brzo blokirati.
Ako pronađete validne procurene akreditive ili API tokene, ovo je vrlo laka pobeda.
Ako ste otkrili da kompanija ima open-source kod, možete ga analizirati i tražiti ranjivosti u njemu.
U zavisnosti od jezika, postoje različiti alati koje možete koristiti:
Source code Review / SAST ToolsTakođe postoje besplatne usluge koje vam omogućavaju da skenirate javne repozitorijume, kao što su:
Većina ranjivosti koje pronalaze lovci na greške se nalazi unutar web aplikacija, tako da bih u ovom trenutku želeo da govorim o metodologiji testiranja web aplikacija, a možete pronaći ove informacije ovde.
Takođe želim da posebno pomenem sekciju Web Automatski Skenere open source alati, jer, iako ne biste trebali očekivati da pronađu veoma osetljive ranjivosti, oni su korisni za implementaciju u tokove rada kako biste imali neke inicijalne web informacije.
Čestitamo! U ovom trenutku ste već izvršili sve osnovne enumeracije. Da, to je osnovno jer se može uraditi mnogo više enumeracija (videćemo više trikova kasnije).
Dakle, već ste:
Pronašli sve kompanije unutar opsega
Pronašli sve resurse koji pripadaju kompanijama (i izvršili neku skeniranje ranjivosti ako je u opsegu)
Pronašli sve domenе koji pripadaju kompanijama
Pronašli sve poddomenе domena (ima li preuzimanja poddomena?)
Pronašli sve IP-ove (iz i ne iz CDN-a) unutar opsega.
Pronašli sve web servere i napravili screenshot njih (ima li nešto čudno što vredi dubljeg pregleda?)
Pronašli sve potencijalne javne cloud resurse koji pripadaju kompaniji.
Emailovi, curenje akreditiva, i curenje tajni koji bi vam mogli doneti veliku pobedu vrlo lako.
Pentesting svih web stranica koje ste pronašli
Postoji nekoliko alata koji će izvršiti deo predloženih akcija protiv datog opsega.
https://github.com/hackerspider1/EchoPwn - Malo star i nije ažuriran
Svi besplatni kursevi @Jhaddix kao što je Metodologija lovca na greške v4.0 - Recon izdanje
Ako ste zainteresovani za karijeru u hakovanju i hakovanje nehakovanog - zapošljavamo! (potrebno je tečno pisanje i govorenje poljskog).
Bug bounty tip: prijavite se za Intigriti, premium bug bounty platformu koju su kreirali hakeri, za hakere! Pridružite nam se na https://go.intigriti.com/hacktricks danas, i počnite da zarađujete nagrade do $100,000!
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)