.. | ||
github-leaked-secrets.md | ||
README.md | ||
wide-source-code-search.md |
Metodologija Eksterne Recon
{% hint style="success" %}
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ška 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.
Ako ste zainteresovani za hakersku karijeru i da hakujete ono što se ne može hakovati - zapošljavamo! (potrebno je tečno pisanje i govorenje poljskog).
{% embed url="https://www.stmcyber.com/careers" %}
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.
ASN-ovi
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 koji 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 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 ovoj knjizi 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.
Domeni
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.
Obrnuti DNS
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)
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
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/
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 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 pretragu sa amass: amass intel -d tesla.com -whois
Napomena 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}'
Ovo je kako 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"
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.
Mail DMARC 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 domeni i poddomeni koji dele iste dmarc informacije.
Passive Takeover
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.
Other ways
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 domeni povezani sa glavnim domenom i poddomenima njih, prilično neverovatno.
Looking for vulnerabilities
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.
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!
{% embed url="https://go.intigriti.com/hacktricks" %}
Subdomains
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.
{% hint style="success" %} Note that some of the tools and techniques to find domains can also help to find subdomains! {% endhint %}
DNS
Let's try to get poddomeni from the DNS records. We should also try for Zone Transfer (If vulnerable, you should report it).
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 alati 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 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 besplatan 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-ove 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 subdomena i istoriju IP adresa
- chaos.projectdiscovery.io
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
DNS Brute force
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:
- 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
I 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čiviji 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.
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 važeće 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-ovanje 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 domene i poddomene generišite permutacije.
- Možete dobiti goaltdns permutacije wordlist ovde.
goaltdns -l subdomains.txt -w /tmp/words-permutations.txt -o /tmp/final-words-s3.txt
- gotator: Dati domeni i poddomeni generišu 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 i 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.
Generisanje pametnih permutacija
- regulator: Za više informacija pročitajte ovaj post, ali će u osnovi 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 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.
echo www | subzuf facebook.com
Workflow za otkrivanje 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:
{% embed url="https://trickest.com/blog/full-subdomain-discovery-using-workflow/" %}
{% embed url="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 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:
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
{% hint style="info" %} Ovom tehnikom možda ćete moći da pristupite internim/skrivenim krajnjim tačkama. {% endhint %}
CORS Brute Force
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е.
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
Buckets Brute Force
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.
Monitorizacija
Možete pratiti 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 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 skeniranje portova 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.
IPs
U početnim koracima možda ste pronašli neke IP opsege, domene i subdomene.
Sada je vreme 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 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 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.
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 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 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ša i 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. Dakle, pojednostavimo to i počnimo 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 kažete vam š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 kanticama:
- 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 tražiti više od samo kanti u AWS-u.
Looking for vulnerabilities
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.
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 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.
Credential Leaks
Sa domenima, poddomenama i emailovima možete početi da tražite kredencijale koji su procurili u prošlosti i pripadaju tim emailovima:
Looking for vulnerabilities
Ako pronađete validne procurile kredencijale, ovo je vrlo lako postignuće.
Secrets Leaks
Procureni kredencijali su povezani sa hakovanjima kompanija gde je osetljive informacije procurile i prodane. Međutim, kompanije mogu biti pogođene i drugim curenjima čije informacije nisu u tim bazama podataka:
Github Leaks
Kredencijali 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 teksta koji su URL-ovi prosleđeni njemu, jer ponekad web stranice takođe sadrže tajne.
Github Dorks
Proverite i ovu stranicu za potencijalne github dorks koje takođe možete pretraživati u organizaciji koju napadate:
{% content-ref url="github-leaked-secrets.md" %} github-leaked-secrets.md {% endcontent-ref %}
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 lako postignuće.
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:
{% content-ref url="../../network-services-pentesting/pentesting-web/code-review-tools.md" %} code-review-tools.md {% endcontent-ref %}
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 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е koje 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 kredencijala i curenje tajni koji bi vam mogli 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
Ako ste zainteresovani za karijeru u hakovanju i hakovanje nehakovivog - zapošljavamo! (potrebno je tečno pisanje i govorenje poljskog).
{% embed url="https://www.stmcyber.com/careers" %}
{% hint style="success" %}
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ška 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.