Metodologija spoljnog rekona
Reading time: 28 minutes
tip
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)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
Otkrića imovine
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
issl
filteri da tražimo druge imovine (trik sassl
se može raditi rekurzivno).
Akvizicije
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.
ASNovi
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.
#You can try "automate" this with amass, but it's not very recommended
amass intel -org tesla
amass intel -asn 8911,50313,394161
Takođe, BBOT's enumeracija poddomena automatski agregira i sumira ASN-ove na kraju skeniranja.
bbot -t tesla.com -f subdomain-enum
...
[INFO] bbot.modules.asn: +----------+---------------------+--------------+----------------+----------------------------+-----------+
[INFO] bbot.modules.asn: | AS394161 | 8.244.131.0/24 | 5 | TESLA | Tesla Motors, Inc. | US |
[INFO] bbot.modules.asn: +----------+---------------------+--------------+----------------+----------------------------+-----------+
[INFO] bbot.modules.asn: | AS16509 | 54.148.0.0/15 | 4 | AMAZON-02 | Amazon.com, Inc. | US |
[INFO] bbot.modules.asn: +----------+---------------------+--------------+----------------+----------------------------+-----------+
[INFO] bbot.modules.asn: | AS394161 | 8.45.124.0/24 | 3 | TESLA | Tesla Motors, Inc. | US |
[INFO] bbot.modules.asn: +----------+---------------------+--------------+----------------+----------------------------+-----------+
[INFO] bbot.modules.asn: | AS3356 | 8.32.0.0/12 | 1 | LEVEL3 | Level 3 Parent, LLC | US |
[INFO] bbot.modules.asn: +----------+---------------------+--------------+----------------+----------------------------+-----------+
[INFO] bbot.modules.asn: | AS3356 | 8.0.0.0/9 | 1 | LEVEL3 | Level 3 Parent, LLC | US |
[INFO] bbot.modules.asn: +----------+---------------------+--------------+----------------+----------------------------+-----------+
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/.
Traženje ranjivosti
U ovom trenutku znamo sve resurse unutar opsega, tako da, ako imate dozvolu, 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 se izvode.
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.
Domeni
Znamo sve kompanije unutar opsega i njihove resurse, vreme je da pronađemo domene unutar opsega.
Molimo vas, imajte na umu 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.
Obrnuti DNS
Pošto ste pronašli sve IP opsege domena, možete pokušati da izvršite obrnute dns pretrage na tim IP-ovima kako biste pronašli 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)
dnsrecon -r <DNS Range> -n <IP_DNS> #DNS reverse of all of the addresses
dnsrecon -d facebook.com -r 157.240.221.35/24 #Using facebooks dns
dnsrecon -r 157.240.221.35/24 -n 1.1.1.1 #Using cloudflares dns
dnsrecon -r 157.240.221.35/24 -n 8.8.8.8 #Using google dns
Da bi ovo funkcionisalo, administrator mora ručno da omogući PTR.
Takođe možete koristiti online alat za ove informacije: http://ptrarchive.com/
Obrnuti Whois (loop)
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 besplatno 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 novi domen.
Trackers
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š:
Favicon
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:
cat my_targets.txt | xargs -I %% bash -c 'echo "http://%%/favicon.ico"' > targets.txt
python3 favihash.py -f https://target/favicon.ico -t targets.txt -s
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:
shodan search org:"Target" http.favicon.hash:116323821 --fields ip_str,port --separator " " | awk '{print $1":"$2}'
Ovako možete izračunati favicon hash veba:
import mmh3
import requests
import codecs
def fav_hash(url):
response = requests.get(url)
favicon = codecs.encode(response.content,"base64")
fhash = mmh3.hash(favicon)
print(f"{url} : {fhash}")
return fhash
Copyright / Uniq string
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"
CRT Time
Uobičajeno je imati cron job kao
# /etc/crontab
37 13 */10 * * certbot renew --post-hook "systemctl reload nginx"
da obnovite sve sertifikate domena na serveru. To znači da čak i ako CA koja se koristi za ovo ne postavi vreme kada je generisan u vremenu važenja, moguće je pronaći domene koje pripadaju istoj kompaniji u logovima transparentnosti sertifikata.
Pogledajte ovaj izveštaj za više informacija.
Mail DMARC informacije
Možete koristiti veb sajt kao što je https://dmarc.live/info/google.com ili alat kao što je https://github.com/Tedixx/dmarc-subdomains da pronađete domene i poddomene koje dele iste dmarc informacije.
Pasivno preuzimanje
Očigledno je uobičajeno da ljudi dodeljuju poddomene IP adresama koje pripadaju provajderima u oblaku i u nekom trenutku izgube tu IP adresu, ali zaborave da uklone DNS zapis. Stoga, samo pokretanjem VM u oblaku (kao što je Digital Ocean) zapravo ćete preuzeti neke poddomene.
Ova objava objašnjava priču o tome i predlaže skriptu koja pokreće VM u DigitalOcean, dobija IPv4 nove mašine i pretražuje u Virustotal-u za zapise poddomena koji upućuju na nju.
Ostali načini
Napomena da možete koristiti ovu tehniku da otkrijete više imena domena svaki put kada pronađete novu domenu.
Shodan
Kao što već znate ime organizacije koja poseduje IP prostor. Možete pretraživati po tim podacima u shodanu koristeći: org:"Tesla, Inc."
Proverite pronađene hostove za nove neočekivane domene u TLS sertifikatu.
Možete pristupiti TLS sertifikatu glavne veb stranice, dobiti ime organizacije i zatim pretraživati to ime unutar TLS sertifikata svih veb stranica poznatih po shodanu sa filtrima: ssl:"Tesla Motors"
ili koristiti alat kao što je sslsearch.
Assetfinder
Assetfinder je alat koji traži domene povezane sa glavnom domenom i poddomenama njih, prilično neverovatno.
Traženje ranjivosti
Proverite za neki preuzimanje domena. Možda neka kompanija koristi neku domenu ali su izgubili vlasništvo. Samo je registrujte (ako je dovoljno jeftina) i obavestite kompaniju.
Ako pronađete neku domenu sa IP-jem koji se razlikuje od onih koje ste već pronašli u otkrivanju sredstava, trebali biste izvršiti osnovno skeniranje ranjivosti (koristeći Nessus ili OpenVAS) i neko skeniranje portova sa nmap/masscan/shodan. U zavisnosti od toga koji servisi rade, možete pronaći u ovoj knjizi neke trikove za "napad" na njih.
Napomena da ponekad domena je hostovana unutar IP-a koji nije pod kontrolom klijenta, tako da nije u opsegu, budite oprezni.
Poddomene
Znamo sve kompanije unutar opsega, sve resurse svake kompanije i sve domene povezane sa kompanijama.
Vreme je da pronađemo sve moguće poddomene svake pronađene domene.
tip
Napomena da neki od alata i tehnika za pronalaženje domena mogu takođe pomoći u pronalaženju poddomena
DNS
Pokušajmo da dobijemo poddomene iz DNS zapisa. Takođe bismo trebali pokušati za Zone Transfer (Ako je ranjiv, trebali biste to prijaviti).
dnsrecon -a -d tesla.com
OSINT
Najbrži način da se dobiju mnogi poddomeni je pretraga u spoljnim izvorima. Najčešće korišćeni tools su sledeći (za bolje rezultate konfigurišite API ključeve):
# subdomains
bbot -t tesla.com -f subdomain-enum
# subdomains (passive only)
bbot -t tesla.com -f subdomain-enum -rf passive
# subdomains + port scan + web screenshots
bbot -t tesla.com -f subdomain-enum -m naabu gowitness -n my_scan -o .
amass enum [-active] [-ip] -d tesla.com
amass enum -d tesla.com | grep tesla.com # To just list subdomains
# Subfinder, use -silent to only have subdomains in the output
./subfinder-linux-amd64 -d tesla.com [-silent]
# findomain, use -silent to only have subdomains in the output
./findomain-linux -t tesla.com [--quiet]
python3 oneforall.py --target tesla.com [--dns False] [--req False] [--brute False] run
assetfinder --subs-only <domain>
# It requires that you create a sudomy.api file with API keys
sudomy -d tesla.com
vita -d tesla.com
theHarvester -d tesla.com -b "anubis, baidu, bing, binaryedge, bingapi, bufferoverun, censys, certspotter, crtsh, dnsdumpster, duckduckgo, fullhunt, github-code, google, hackertarget, hunter, intelx, linkedin, linkedin_links, n45ht, omnisint, otx, pentesttools, projectdiscovery, qwant, rapiddns, rocketreach, securityTrails, spyse, sublist3r, threatcrowd, threatminer, trello, twitter, urlscan, virustotal, yahoo, zoomeye"
Postoje drugi zanimljivi alati/API-ji 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
# Get list of subdomains in output from the API
## This is the API the crobat tool will use
curl https://sonar.omnisint.io/subdomains/tesla.com | jq -r ".[]"
curl https://jldc.me/anubis/subdomains/tesla.com | jq -r ".[]"
- RapidDNS besplatni API
# Get Domains from rapiddns free API
rapiddns(){
curl -s "https://rapiddns.io/subdomain/$1?full=1" \
| grep -oE "[\.a-zA-Z0-9-]+\.$1" \
| sort -u
}
rapiddns tesla.com
# Get Domains from crt free API
crt(){
curl -s "https://crt.sh/?q=%25.$1" \
| grep -oE "[\.a-zA-Z0-9-]+\.$1" \
| sort -u
}
crt tesla.com
- gau: preuzima poznate URL adrese iz AlienVault-ovog Open Threat Exchange, Wayback Machine-a i Common Crawl-a za bilo koju datu domenu.
# Get subdomains from GAUs found URLs
gau --subs tesla.com | cut -d "/" -f 3 | sort -u
- SubDomainizer & subscraper: Oni pretražuju web u potrazi za JS datotekama i izvode poddomene iz njih.
# Get only subdomains from SubDomainizer
python3 SubDomainizer.py -u https://tesla.com | grep tesla.com
# Get only subdomains from subscraper, this already perform recursion over the found results
python subscraper.py -u tesla.com | grep tesla.com | cut -d " " -f
# Get info about the domain
shodan domain <domain>
# Get other pages with links to subdomains
shodan search "http.html:help.domain.com"
export CENSYS_API_ID=...
export CENSYS_API_SECRET=...
python3 censys-subdomain-finder.py tesla.com
python3 DomainTrail.py -d example.com
- securitytrails.com ima besplatan API za pretragu poddomena i istoriju IP adresa
- chaos.projectdiscovery.io
Ovaj projekat nudi besplatno sve poddomene 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
DNS Brute force
Pokušajmo da pronađemo nove poddomenе brute-forcing DNS servere koristeći moguće nazive poddomena.
Za ovu akciju biće vam potrebne neke uobičajene liste reči poddomena kao što su:
- https://gist.github.com/jhaddix/86a06c5dc309d08580a018c66354a056
- https://wordlists-cdn.assetnote.io/data/manual/best-dns-wordlist.txt
- https://localdomain.pw/subdomain-bruteforce-list/all.txt.zip
- https://github.com/pentester-io/commonspeak
- https://github.com/danielmiessler/SecLists/tree/master/Discovery/DNS
Takođe, 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 izvršavao DNS brute-force. Veoma je brz, međutim sklon je lažnim pozitivnim rezultatima.
sed 's/$/.domain.com/' subdomains.txt > bf-subdomains.txt
./massdns -r resolvers.txt -w /tmp/results.txt bf-subdomains.txt
grep -E "tesla.com. [0-9]+ IN A .+" /tmp/results.txt
- gobuster: Mislim da koristi samo 1 resolver
gobuster dns -d mysite.com -t 50 -w subdomains.txt
- 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.
shuffledns -d example.com -list example-subdomains.txt -r resolvers.txt
- puredns: Takođe koristi
massdns
.
puredns bruteforce all.txt domain.com
- aiodnsbrute koristi asyncio za asinkrono brute force napad na imena domena.
aiodnsbrute -r resolvers -w wordlist.txt -vv -t 1024 domain.com
Druga runda DNS brute-force
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.
cat subdomains.txt | dnsgen -
- goaltdns: Dati domeni i subdomeni generišite permutacije.
- Možete dobiti goaltdns permutacije wordlist ovde here.
goaltdns -l subdomains.txt -w /tmp/words-permutations.txt -o /tmp/final-words-s3.txt
- gotator: Dati domene i poddomene generiše permutacije. Ako nije naznačen fajl sa permutacijama, gotator će koristiti svoj.
gotator -sub subdomains.txt -silent [-perm /tmp/words-permutations.txt]
- altdns: Osim generisanja permutacija poddomena, može pokušati da ih reši (ali je bolje koristiti prethodno pomenute alate).
- Možete dobiti altdns permutacije wordlist u ovde.
altdns -i subdomains.txt -w /tmp/words-permutations.txt -o /tmp/asd3
- 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.
cat subdomains.txt | dmut -d /tmp/words-permutations.txt -w 100 \
--dns-errorLimit 10 --use-pb --verbose -s /tmp/resolvers-trusted.txt
- alterx: Na osnovu domena, generiše nova potencijalna imena poddomena na osnovu naznačenih obrazaca kako bi pokušao da otkrije više poddomena.
Pametna generacija permutacija
- regulator: Za više informacija pročitajte ovaj post, ali će u suštini uzeti glavne delove iz otkrivenih poddomena i mešati ih kako bi pronašao više poddomena.
python3 main.py adobe.com adobe adobe.rules
make_brute_list.sh adobe.rules adobe.brute
puredns resolve adobe.brute --write adobe.valid
- subzuf: subzuf je fuzzer za brute-force subdomena uparen sa izuzetno jednostavnim, ali efikasnim algoritmom vođenim DNS odgovorima. 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.
echo www | subzuf facebook.com
Workflow za Otkriće Poddomena
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:
https://trickest.com/blog/full-subdomain-discovery-using-workflow/
https://trickest.com/blog/full-subdomain-brute-force-discovery-using-workflow/
VHosts / Virtuelni Hostovi
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.
OSINT
Možete pronaći neke VHost-ove 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:
ffuf -c -w /path/to/wordlist -u http://victim.com -H "Host: FUZZ.victim.com"
gobuster vhost -u https://mysite.com -t 50 -w subdomains.txt
wfuzz -c -w /usr/share/wordlists/SecLists/Discovery/DNS/subdomains-top1million-20000.txt --hc 400,404,403 -H "Host: FUZZ.example.com" -u http://example.com -t 100
#From https://github.com/allyshka/vhostbrute
vhostbrute.py --url="example.com" --remoteip="10.1.1.15" --base="www.example.com" --vhosts="vhosts_full.list"
#https://github.com/codingo/VHostScan
VHostScan -t example.com
note
Ovom tehnikom možda ćete moći da pristupite internim/sakrivenim krajnjim tačkama.
CORS Brute Force
Ponekad ćete pronaći stranice koje vraćaju samo zaglavlje Access-Control-Allow-Origin kada je validna domena/subdomena postavljena u Origin zaglavlju. U ovim scenarijima, možete iskoristiti ovo ponašanje da otkrijete nove subdomene.
ffuf -w subdomains-top1million-5000.txt -u http://10.10.10.208 -H 'Origin: http://FUZZ.crossfit.htb' -mr "Access-Control-Allow-Origin" -ignore-body
Brute Force za Buckete
Dok tražite subdomene, obratite pažnju da li se upučuju na bilo koju vrstu bucketa, i u tom slučaju proverite dozvole.
Takođe, kako ćete u ovom trenutku znati sve domene unutar opsega, pokušajte da brute force-ujete moguće nazive bucketa i proverite dozvole.
Monitorisanje
Možete monitorisati da li su nove subdomene domena kreirane praćenjem Certificate Transparency logova sublert.
Traženje ranjivosti
Proverite moguće preuzimanje subdomena.
Ako subdomena upućuje na neki S3 bucket, proverite dozvole.
Ako pronađete bilo koju 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 skeniranje portova sa nmap/masscan/shodan. U zavisnosti od toga koji servisi rade, 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.
IP-ovi
U početnim koracima možda ste pronašli neke IP opsege, domene i subdomene.
Vreme je da prikupite sve IP-ove 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-ove korišćene od strane domena i subdomena. Ovi IP-ovi možda još uvek pripadaju klijentu (i mogu vam omogućiti da pronađete CloudFlare zaobilaženja)
Takođe možete proveriti za domene koje upućuju na određenu IP adresu koristeći alat hakip2host
Traženje ranjivosti
Skenirajte sve IP-ove koji ne pripadaju CDN-ima (jer verovatno nećete pronaći ništa zanimljivo tamo). U otkrivenim servisima možda ćete moći da pronađete ranjivosti.
Pronađite vodič o tome kako skenirati hostove.
Lov na web servere
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 analizu otkrivenih IP-ova i domena, 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 da napomenete da će ovo biti orijentisano na otkrivanje web aplikacija, tako da biste trebali izvršiti skeniranje ranjivosti i skeniranje portova 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šate druge portove:
cat /tmp/domains.txt | httprobe #Test all domains inside the file for port 80 and 443
cat /tmp/domains.txt | httprobe -p http:8080 -p https:8443 #Check port 80, 443 and 8080 and 8443
Screenshots
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. Zato, 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 screenshotove i da vam kaže šta verovatno sadrži ranjivosti, a šta ne.
Public Cloud Assets
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 bucket-ima:
- https://raw.githubusercontent.com/cujanovic/goaltdns/master/words.txt
- https://raw.githubusercontent.com/infosec-au/altdns/master/words.txt
- https://raw.githubusercontent.com/jordanpotti/AWSBucketDump/master/BucketNames.txt
Zatim, sa tim rečima trebali biste generisati permutacije (pogledajte Second Round 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 gledati više od samo bucket-a u AWS-u.
Looking for vulnerabilities
Ako pronađete stvari kao što su otvoreni bucket-i ili izložene cloud funkcije, trebali biste pristupiti njima i pokušati da vidite šta vam nude i da li ih možete zloupotrebiti.
Emails
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)
Looking for vulnerabilities
Emailovi će kasnije biti korisni 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.
Credential Leaks
Sa domenima, poddomenama i emailovima možete početi da tražite kredencijale koji su procurili u prošlosti i koji pripadaju tim emailovima:
Looking for vulnerabilities
Ako pronađete validne procurile kredencijale, ovo je vrlo lakša pobeda.
Secrets Leaks
Procureni kredencijali su povezani sa hakovanjima kompanija gde je osetljiva informacija procurila i prodana. Međutim, kompanije mogu biti pogođene i drugim procurenjima čije informacije nisu u tim bazama podataka:
Github Leaks
Kredencijali i API-ji mogu biti procurili 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 tekstova koji su URL-ovi prosleđeni njemu, jer ponekad web stranice takođe sadrže tajne.
Github Dorks
Proverite takođe ovu stranicu za potencijalne github dorks koje možete takođe pretraživati u organizaciji koju napadate:
Pastes Leaks
Ponekad 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.
Google Dorks
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.
Looking for vulnerabilities
Ako pronađete validne procurile kredencijale ili API tokene, ovo je vrlo laka pobeda.
Public Code Vulnerabilities
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 Tools
Takođe postoje besplatne usluge koje vam omogućavaju da skenirate javne repozitorijume, kao što su:
Pentesting Web Methodology
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 Automated Scanners open source tools, jer, iako ne biste trebali očekivati da će pronaći veoma osetljive ranjivosti, oni su korisni za implementaciju u tokove rada kako biste imali neke inicijalne web informacije.
Recapitulation
Čestitamo! U ovom trenutku ste već izvršili sve osnovne enumeracije. Da, to je osnovno jer se može uraditi još 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, procureni kredencijali, i procurene tajne koje bi vam mogle doneti veliku pobedu vrlo lako.
- Pentesting svih web stranica koje ste pronašli
Full Recon Automatic Tools
Postoji nekoliko alata koji će izvršiti deo predloženih akcija protiv datog opsega.
- https://github.com/yogeshojha/rengine
- https://github.com/j3ssie/Osmedeus
- https://github.com/six2dez/reconftw
- https://github.com/hackerspider1/EchoPwn - Malo star i nije ažuriran
References
- Svi besplatni kursevi @Jhaddix kao što je The Bug Hunter's Methodology v4.0 - Recon Edition
tip
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)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.