.. | ||
github-leaked-secrets.md | ||
README.md | ||
wide-source-code-search.md |
Metodologia di Ricognizione Esterna
Impara l'hacking AWS da zero a eroe con htARTE (HackTricks AWS Red Team Expert)!
Altri modi per supportare HackTricks:
- Se vuoi vedere la tua azienda pubblicizzata su HackTricks o scaricare HackTricks in PDF Controlla i PIANI DI ABBONAMENTO!
- Ottieni il merchandising ufficiale di PEASS & HackTricks
- Scopri La Famiglia PEASS, la nostra collezione di NFT esclusivi
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi i tuoi trucchi di hacking inviando PR a HackTricks e HackTricks Cloud repos di github.
Se sei interessato a una carriera nell'hacking e ad hackerare l'impossibile - stiamo assumendo! (richiesta competenza scritta e parlata in polacco).
{% embed url="https://www.stmcyber.com/careers" %}
Scoperta degli Asset
Ti è stato detto che tutto ciò che appartiene a un'azienda è nel perimetro, e vuoi capire cosa possiede effettivamente questa azienda.
L'obiettivo di questa fase è ottenere tutte le aziende di proprietà dell'azienda principale e quindi tutti gli asset di queste aziende. Per farlo, faremo quanto segue:
- Trovare le acquisizioni dell'azienda principale, questo ci darà le aziende nel perimetro.
- Trovare l'ASN (se presente) di ogni azienda, questo ci darà gli intervalli IP di proprietà di ciascuna azienda.
- Utilizzare ricerche whois inverse per cercare altre voci (nomi di organizzazioni, domini...) correlati al primo (questo può essere fatto in modo ricorsivo).
- Utilizzare altre tecniche come i filtri shodan
org
essl
per cercare altri asset (il truccossl
può essere fatto in modo ricorsivo).
Acquisizioni
Innanzitutto, dobbiamo sapere quali altre aziende sono di proprietà dell'azienda principale.
Un'opzione è visitare https://www.crunchbase.com/, cercare l'azienda principale, e cliccare su "acquisizioni". Lì vedrai altre aziende acquisite dalla principale.
Un'altra opzione è visitare la pagina Wikipedia dell'azienda principale e cercare acquisizioni.
Ok, a questo punto dovresti conoscere tutte le aziende nel perimetro. Scopriamo come trovare i loro asset.
ASN
Un numero di sistema autonomo (ASN) è un numero univoco assegnato a un sistema autonomo (AS) dall'Internet Assigned Numbers Authority (IANA).
Un AS consiste in blocchi di indirizzi IP che hanno una politica definita per l'accesso alle reti esterne e sono amministrati da un'unica organizzazione ma possono essere composti da diversi operatori.
È interessante scoprire se l'azienda ha assegnato un qualsiasi ASN per trovare i suoi intervalli IP. Sarà interessante eseguire un test di vulnerabilità contro tutti gli host all'interno del perimetro e cercare domini all'interno di questi IP.
Puoi cercare per nome dell'azienda, per IP o per dominio in https://bgp.he.net/.
A seconda della regione dell'azienda questi link potrebbero essere utili per raccogliere più dati: AFRINIC (Africa), Arin(America del Nord), APNIC (Asia), LACNIC (America Latina), RIPE NCC (Europa). Comunque, probabilmente tutte le informazioni utili (intervalli IP e Whois) appaiono già nel primo link.
#You can try "automate" this with amass, but it's not very recommended
amass intel -org tesla
amass intel -asn 8911,50313,394161
Inoltre, l'enumerazione dei sottodomini di BBOT aggrega automaticamente e riassume gli ASN alla fine della scansione.
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: +----------+---------------------+--------------+----------------+----------------------------+-----------+
Puoi trovare gli intervalli di IP di un'organizzazione anche utilizzando http://asnlookup.com/ (ha un'API gratuita).
Puoi trovare l'IP e l'ASN di un dominio utilizzando http://ipv4info.com/.
Ricerca di vulnerabilità
A questo punto conosciamo tutte le risorse all'interno del perimetro, quindi se ti è consentito potresti avviare uno scanner di vulnerabilità (Nessus, OpenVAS) su tutti gli host.
Inoltre, potresti avviare alcuni scansione delle porte o utilizzare servizi come shodan per trovare porte aperte e in base a ciò che trovi dovresti consultare questo libro su come testare la penetrazione di diversi servizi possibili.
Inoltre, potrebbe essere utile menzionare che puoi anche preparare alcuni elenchi di nomi utente predefiniti e password e provare a forzare i servizi con https://github.com/x90skysn3k/brutespray.
Domini
Conosciamo tutte le aziende all'interno del perimetro e le loro risorse, è ora di trovare i domini all'interno del perimetro.
Per favore, nota che nelle tecniche proposte di seguito puoi trovare anche sottodomini e quelle informazioni non dovrebbero essere sottovalutate.
Innanzitutto dovresti cercare il(i) dominio(i) principale di ciascuna azienda. Ad esempio, per Tesla Inc. sarà tesla.com.
DNS inverso
Una volta trovati tutti gli intervalli di IP dei domini, potresti provare a eseguire ricerche DNS inverse su quegli IP per trovare più domini all'interno del perimetro. Prova a utilizzare alcuni server DNS della vittima o alcuni server DNS ben noti (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
Per far funzionare questo, l'amministratore deve abilitare manualmente il PTR.
Puoi anche utilizzare uno strumento online per queste informazioni: http://ptrarchive.com/
Ricerca Whois inversa (loop)
All'interno di un whois puoi trovare molte informazioni interessanti come il nome dell'organizzazione, l'indirizzo, gli indirizzi email, i numeri di telefono... Ma ciò che è ancora più interessante è che puoi trovare altri asset correlati all'azienda se esegui ricerche whois inverse tramite uno qualsiasi di questi campi (ad esempio altri registri whois in cui compare lo stesso indirizzo email).
Puoi utilizzare strumenti online come:
- https://viewdns.info/reversewhois/ - Gratuito
- https://domaineye.com/reverse-whois - Gratuito
- https://www.reversewhois.io/ - Gratuito
- https://www.whoxy.com/ - Sito web gratuito, API a pagamento.
- http://reversewhois.domaintools.com/ - A pagamento
- https://drs.whoisxmlapi.com/reverse-whois-search - A pagamento (solo 100 ricerche gratuite)
- https://www.domainiq.com/ - A pagamento
Puoi automatizzare questo compito utilizzando DomLink (richiede una chiave API whoxy).
Puoi anche eseguire una scoperta automatica inversa whois con amass: amass intel -d tesla.com -whois
Nota che puoi utilizzare questa tecnica per scoprire più nomi di dominio ogni volta che trovi un nuovo dominio.
Tracker
Se trovi lo stesso ID dello stesso tracker in 2 pagine diverse, puoi supporre che entrambe le pagine siano gestite dallo stesso team.
Ad esempio, se vedi lo stesso ID di Google Analytics o lo stesso ID di Adsense su diverse pagine.
Ci sono alcune pagine e strumenti che ti permettono di cercare tramite questi tracker e altro ancora:
Favicon
Sapevi che possiamo trovare domini correlati e sottodomini al nostro obiettivo cercando lo stesso hash dell'icona favicon? Questo è esattamente ciò che fa lo strumento favihash.py creato da @m4ll0k2. Ecco come usarlo:
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
In poche parole, favihash ci permetterà di scoprire i domini che hanno lo stesso hash dell'icona favicon del nostro obiettivo.
Inoltre, è possibile cercare tecnologie utilizzando l'hash del favicon come spiegato in questo post sul blog. Ciò significa che se conosci l'hash del favicon di una versione vulnerabile di una tecnologia web, puoi cercare se è presente in shodan e trovare più luoghi vulnerabili:
shodan search org:"Target" http.favicon.hash:116323821 --fields ip_str,port --separator " " | awk '{print $1":"$2}'
Ecco come puoi calcolare l'hash della favicon di un sito web:
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
Diritti d'autore / Stringa univoca
Cerca all'interno delle pagine web stringhe che potrebbero essere condivise tra diversi siti web nella stessa organizzazione. La stringa di copyright potrebbe essere un buon esempio. Successivamente cerca quella stringa su Google, su altri browser o addirittura su Shodan: shodan search http.html:"Stringa di copyright"
Ora del CRT
È comune avere un lavoro pianificato come
# /etc/crontab
37 13 */10 * * certbot renew --post-hook "systemctl reload nginx"
Metodologia di ricognizione esterna
Per rinnovare tutti i certificati di dominio sul server. Ciò significa che anche se l'AC utilizzato per questo non imposta l'ora in cui è stato generato nel tempo di Validità, è possibile trovare domini appartenenti alla stessa azienda nei log di trasparenza del certificato.
Consulta questo articolo per ulteriori informazioni.
Informazioni DMARC sulla posta
Puoi utilizzare un sito web come https://dmarc.live/info/google.com o uno strumento come https://github.com/Tedixx/dmarc-subdomains per trovare domini e sottodomini che condividono le stesse informazioni DMARC.
Assunzione passiva
Apparentemente è comune che le persone assegnino sottodomini a IP che appartengono a fornitori di servizi cloud e a un certo punto perdano quell'indirizzo IP ma dimentichino di rimuovere il record DNS. Pertanto, semplicemente creando una VM in un cloud (come Digital Ocean) in realtà assumerai il controllo di alcuni sottodomini.
Questo post spiega una storia a riguardo e propone uno script che crea una VM in DigitalOcean, ottiene l'IPv4 della nuova macchina e cerca in Virustotal i record dei sottodomini che vi puntano.
Altri metodi
Nota che puoi utilizzare questa tecnica per scoprire più nomi di dominio ogni volta che ne trovi uno nuovo.
Shodan
Poiché conosci già il nome dell'organizzazione proprietaria dello spazio IP, puoi cercare quei dati in Shodan usando: org:"Tesla, Inc."
Controlla gli host trovati per nuovi domini inaspettati nel certificato TLS.
Potresti accedere al certificato TLS della pagina web principale, ottenere il nome dell'organizzazione e quindi cercare quel nome all'interno dei certificati TLS di tutte le pagine web conosciute da Shodan con il filtro: ssl:"Tesla Motors"
o utilizzare uno strumento come sslsearch.
Assetfinder
Assetfinder è uno strumento che cerca domini correlati a un dominio principale e i loro sottodomini, davvero sorprendente.
Ricerca di vulnerabilità
Controlla se c'è qualche acquisizione di dominio. Forse qualche azienda sta utilizzando un dominio ma ha perso la proprietà. Registrati semplicemente (se abbastanza economico) e informa l'azienda.
Se trovi un dominio con un IP diverso da quelli già trovati nella scoperta degli asset, dovresti eseguire una scansione di vulnerabilità di base (usando Nessus o OpenVAS) e una scansione delle porte con nmap/masscan/shodan. A seconda dei servizi in esecuzione, puoi trovare in questo libro alcuni trucchi per "attaccarli".
Nota che a volte il dominio è ospitato all'interno di un IP che non è controllato dal cliente, quindi non è nell'ambito, fai attenzione.
Suggerimento per bug bounty: iscriviti a Intigriti, una piattaforma premium di bug bounty creata da hacker, per hacker! Unisciti a noi su https://go.intigriti.com/hacktricks oggi e inizia a guadagnare taglie fino a $100,000!
{% embed url="https://go.intigriti.com/hacktricks" %}
Sottodomini
Conosciamo tutte le aziende all'interno dell'ambito, tutti gli asset di ciascuna azienda e tutti i domini correlati alle aziende.
È ora di trovare tutti i possibili sottodomini di ciascun dominio trovato.
{% hint style="success" %} Nota che alcuni degli strumenti e delle tecniche per trovare domini possono aiutare anche a trovare sottodomini! {% endhint %}
DNS
Proviamo a ottenere sottodomini dai record DNS. Dovremmo anche provare per Trasferimento di zona (Se vulnerabile, dovresti segnalarlo).
dnsrecon -a -d tesla.com
OSINT
Il modo più veloce per ottenere molti sottodomini è cercare in fonti esterne. Gli strumenti più utilizzati sono i seguenti (per ottenere risultati migliori configurare le chiavi API):
# 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"
Ci sono altri strumenti/API interessanti che, anche se non specializzati direttamente nel trovare sottodomini, potrebbero essere utili per trovarli, come:
- Crobat: Utilizza l'API https://sonar.omnisint.io per ottenere sottodomini
# 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 API gratuito
# 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: recupera gli URL conosciuti dall'Open Threat Exchange di AlienVault, dal Wayback Machine e dal Common Crawl per un determinato dominio.
# Get subdomains from GAUs found URLs
gau --subs tesla.com | cut -d "/" -f 3 | sort -u
- SubDomainizer & subscraper: Effettuano lo scraping del web alla ricerca di file JS ed estraggono i sottodomini da essi.
# 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 ha un'API gratuita per cercare sottodomini e la storia degli IP
- chaos.projectdiscovery.io
Questo progetto offre gratuitamente tutti i sottodomini relativi ai programmi di bug bounty. Puoi accedere a questi dati anche utilizzando chaospy o accedere allo scope utilizzato da questo progetto https://github.com/projectdiscovery/chaos-public-program-list
Puoi trovare un confronto di molti di questi strumenti qui: https://blog.blacklanternsecurity.com/p/subdomain-enumeration-tool-face-off
DNS Brute force
Proviamo a trovare nuovi sottodomini forzando i server DNS utilizzando possibili nomi di sottodomini.
Per questa azione avrai bisogno di alcune liste di parole comuni per i sottodomini come:
- 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
E anche gli IP dei buoni risolutori DNS. Per generare una lista di risolutori DNS affidabili puoi scaricare i risolutori da https://public-dns.info/nameservers-all.txt e utilizzare dnsvalidator per filtrarli. Oppure potresti utilizzare: https://raw.githubusercontent.com/trickest/resolvers/main/resolvers-trusted.txt
Gli strumenti più raccomandati per il DNS brute-force sono:
- massdns: Questo è stato il primo strumento che ha eseguito un efficace DNS brute-force. È molto veloce ma è soggetto a falsi positivi.
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: Questo penso che utilizzi solo 1 risolutore
gobuster dns -d mysite.com -t 50 -w subdomains.txt
- shuffledns è un wrapper attorno a
massdns
, scritto in go, che ti permette di enumerare sottodomini validi utilizzando la forza bruta attiva, oltre a risolvere sottodomini con gestione dei wildcard e supporto facile input-output.
shuffledns -d example.com -list example-subdomains.txt -r resolvers.txt
- puredns: Utilizza anche
massdns
.
puredns bruteforce all.txt domain.com
- aiodnsbrute utilizza asyncio per forzare in modo asincrono i nomi di dominio.
aiodnsbrute -r resolvers -w wordlist.txt -vv -t 1024 domain.com
Secondo Round di Brute-Force DNS
Dopo aver trovato sottodomini utilizzando fonti aperte e brute-forcing, potresti generare delle alterazioni dei sottodomini trovati per cercarne ancora di più. Diversi strumenti sono utili a questo scopo:
- dnsgen: Dato il dominio e i sottodomini, genera permutazioni.
cat subdomains.txt | dnsgen -
- goaltdns: Dato i domini e sottodomini generare permutazioni.
- È possibile ottenere la lista di permutazioni di goaltdns wordlist qui.
goaltdns -l subdomains.txt -w /tmp/words-permutations.txt -o /tmp/final-words-s3.txt
- gotator: Dato i domini e sottodomini, genera permutazioni. Se non viene indicato un file di permutazioni, gotator utilizzerà il proprio.
gotator -sub subdomains.txt -silent [-perm /tmp/words-permutations.txt]
- altdns: Oltre a generare le permutazioni dei sottodomini, può anche provare a risolverli (ma è meglio utilizzare gli strumenti precedentemente commentati).
- È possibile ottenere la lista di parole per le permutazioni di altdns qui (https://github.com/infosec-au/altdns/blob/master/words.txt).
altdns -i subdomains.txt -w /tmp/words-permutations.txt -o /tmp/asd3
- dmut: Un altro strumento per eseguire permutazioni, mutazioni e alterazioni dei sottodomini. Questo strumento forzerà il risultato (non supporta il wild card dns).
- È possibile ottenere la lista di parole per le permutazioni di dmut qui.
cat subdomains.txt | dmut -d /tmp/words-permutations.txt -w 100 \
--dns-errorLimit 10 --use-pb --verbose -s /tmp/resolvers-trusted.txt
- alterx: Basato su un dominio, genera nuovi potenziali nomi di sottodomini basati su pattern indicati per cercare di scoprire più sottodomini.
Generazione intelligente di permutazioni
- regulator: Per ulteriori informazioni leggi questo post ma fondamentalmente otterrà le parti principali dai sottodomini scoperti e le mescolerà per trovare più sottodomini.
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 è un fuzzer di forza bruta per subdomini abbinato a un algoritmo immensamente semplice ma efficace guidato dalle risposte DNS. Utilizza un insieme fornito di dati di input, come un elenco di parole personalizzato o record storici DNS/TLS, per sintetizzare accuratamente più nomi di dominio corrispondenti ed espanderli ulteriormente in un ciclo basato sulle informazioni raccolte durante la scansione DNS.
echo www | subzuf facebook.com
Flusso di scoperta dei sottodomini
Controlla questo post sul blog che ho scritto su come automatizzare la scoperta dei sottodomini da un dominio utilizzando i workflow di Trickest in modo da non dover avviare manualmente una serie di strumenti sul mio computer:
{% 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 / Virtual Hosts
Se hai trovato un indirizzo IP contenente una o più pagine web appartenenti a sottodomini, potresti provare a trovare altri sottodomini con siti web in quell'IP cercando in fonti OSINT per domini in un IP o forzando i nomi di dominio VHost in quell'IP.
OSINT
Puoi trovare alcuni VHost in IP utilizzando HostHunter o altri API.
Forza Bruta
Se sospetti che alcuni sottodomini possano essere nascosti in un server web, potresti provare a forzarli:
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" %} Con questa tecnica potresti persino essere in grado di accedere a endpoint interni/nascosti. {% endhint %}
Forza Bruta CORS
A volte troverai pagine che restituiscono solo l'intestazione Access-Control-Allow-Origin quando viene impostato un dominio/sottodominio valido nell'intestazione Origin. In questi scenari, puoi abusare di questo comportamento per scoprire nuovi sottodomini.
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
Forza bruta sui Bucket
Mentre cerchi sottodomini, fai attenzione se sta puntando a qualche tipo di bucket, e in tal caso controlla le autorizzazioni.
Inoltre, a questo punto saprai tutti i domini all'interno del perimetro, prova a forzare possibili nomi di bucket e controllare le autorizzazioni.
Monitoraggio
Puoi monitorare se vengono creati nuovi sottodomini di un dominio monitorando i log di Certificate Transparency sublert fa.
Ricerca di vulnerabilità
Controlla possibili takeover di sottodomini.
Se il sottodominio punta a un bucket S3, controlla le autorizzazioni.
Se trovi un sottodominio con un IP diverso da quelli che hai già trovato nella scoperta degli asset, dovresti eseguire una scansione di vulnerabilità di base (usando Nessus o OpenVAS) e una scansione delle porte con nmap/masscan/shodan. A seconda dei servizi in esecuzione, puoi trovare in questo libro alcuni trucchi per "attaccarli".
Nota che a volte il sottodominio è ospitato all'interno di un IP che non è controllato dal cliente, quindi non è nella scopo, fai attenzione.
IP
Nei passaggi iniziali potresti aver trovato alcuni range di IP, domini e sottodomini.
È ora di raccogliere tutti gli IP da quei range e per i domini/sottodomini (query DNS).
Utilizzando servizi delle seguenti API gratuite puoi trovare anche IP precedenti utilizzati da domini e sottodomini. Questi IP potrebbero ancora essere di proprietà del cliente (e potrebbero consentirti di trovare bypass di CloudFlare)
Puoi anche controllare i domini che puntano a un indirizzo IP specifico utilizzando lo strumento hakip2host
Ricerca di vulnerabilità
Scansiona tutte le porte degli IP che non appartengono a CDN (poiché molto probabilmente non troverai nulla di interessante lì). Nei servizi in esecuzione scoperti potresti essere in grado di trovare vulnerabilità.
Trova una guida su come scansionare gli host.
Caccia ai server Web
Abbiamo trovato tutte le aziende e i loro asset e conosciamo i range di IP, i domini e i sottodomini all'interno del perimetro. È ora di cercare i server web.
Nei passaggi precedenti probabilmente hai già eseguito un po' di ricognizione degli IP e dei domini scoperti, quindi potresti già aver trovato tutti i possibili server web. Tuttavia, se non lo hai fatto, ora vedremo alcuni trucchi veloci per cercare server web all'interno del perimetro.
Si noti che questo sarà orientato alla scoperta delle app web, quindi dovresti eseguire la scansione di vulnerabilità e delle porte anche (se consentito dal perimetro).
Un metodo veloce per scoprire le porte aperte relative ai server web utilizzando masscan può essere trovato qui.
Un altro strumento utile per cercare server web è httprobe, fprobe e httpx. Basta passare un elenco di domini e cercherà di connettersi alla porta 80 (http) e 443 (https). Inoltre, puoi indicare di provare altre porte:
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
Screenshot
Ora che hai scoperto tutti i server web presenti nel perimetro (tra gli IP dell'azienda e tutti i domini e sottodomini) probabilmente non sai da dove iniziare. Quindi, semplifichiamoci e iniziamo semplicemente facendo degli screenshot di tutti loro. Già dando un'occhiata alla pagina principale puoi trovare endpoint strani che sono più suscettibili di essere vulnerabili.
Per eseguire l'idea proposta puoi utilizzare EyeWitness, HttpScreenshot, Aquatone, Shutter, Gowitness o webscreenshot.
Inoltre, potresti poi utilizzare eyeballer per esaminare tutti gli screenshot e dirti cosa è probabile che contenga vulnerabilità, e cosa no.
Risorse Cloud Pubbliche
Per trovare potenziali risorse cloud appartenenti a un'azienda dovresti iniziare con un elenco di parole chiave che identificano quell'azienda. Ad esempio, per una crypto company potresti utilizzare parole come: "crypto", "wallet", "dao", "<nome_dominio>", <"nomi_sottodomini">
.
Avrai anche bisogno di liste di parole comuni utilizzate nei bucket:
- 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
Quindi, con quelle parole dovresti generare permutazioni (controlla il Secondo Round di Brute-Force DNS per ulteriori informazioni).
Con le liste di parole risultanti potresti utilizzare strumenti come cloud_enum, CloudScraper, cloudlist o S3Scanner.
Ricorda che quando cerchi Risorse Cloud dovresti cercare più che solo bucket in AWS.
Ricerca di vulnerabilità
Se trovi cose come bucket aperti o funzioni cloud esposte dovresti accedervi e cercare di capire cosa ti offrono e se puoi abusarne.
Con i domini e i sottodomini all'interno del perimetro hai praticamente tutto ciò di cui hai bisogno per iniziare a cercare email. Questi sono gli API e gli strumenti che hanno funzionato meglio per me per trovare le email di un'azienda:
- theHarvester - con API
- API di https://hunter.io/ (versione gratuita)
- API di https://app.snov.io/ (versione gratuita)
- API di https://minelead.io/ (versione gratuita)
Ricerca di vulnerabilità
Le email saranno utili in seguito per forzare l'accesso ai login web e ai servizi di autenticazione (come SSH). Inoltre, sono necessarie per i phishing. Inoltre, questi API ti daranno ancora più informazioni sulla persona dietro l'email, che è utile per la campagna di phishing.
Fughe di Credenziali
Con i domini, i sottodomini e le email puoi iniziare a cercare credenziali trapelate in passato appartenenti a quelle email:
Ricerca di vulnerabilità
Se trovi credenziali trapelate valide, questa è una vittoria molto facile.
Fughe di Segreti
Le fughe di credenziali sono correlate a hack di aziende in cui è stata trapelata e venduta informazione sensibile. Tuttavia, le aziende potrebbero essere colpite da altre fughe le cui informazioni non sono in quei database:
Fughe su Github
Credenziali e API potrebbero essere trapelati nei repository pubblici dell'azienda o degli utenti che lavorano per quella azienda di github.
Puoi utilizzare lo strumento Leakos per scaricare tutti i repo pubblici di un'organizzazione e dei suoi sviluppatori ed eseguire gitleaks su di essi automaticamente.
Leakos può anche essere utilizzato per eseguire gitleaks su tutti i testi forniti URL passati ad esso poiché a volte le pagine web contengono anche segreti.
Dork su Github
Controlla anche questa pagina per potenziali dork su github che potresti cercare anche nell'organizzazione che stai attaccando:
{% content-ref url="github-leaked-secrets.md" %} github-leaked-secrets.md {% endcontent-ref %}
Fughe su Paste
A volte gli attaccanti o semplicemente i lavoratori pubblicheranno contenuti aziendali in un sito di paste. Questo potrebbe o potrebbe non contenere informazioni sensibili, ma è molto interessante cercarlo.
Puoi utilizzare lo strumento Pastos per cercare contemporaneamente in più di 80 siti di paste.
Dork di Google
I vecchi ma d'oro dork di Google sono sempre utili per trovare informazioni esposte che non dovrebbero esserci. L'unico problema è che il google-hacking-database contiene diverse migliaia di query possibili che non puoi eseguire manualmente. Quindi, puoi prendere i tuoi preferiti 10 o potresti utilizzare uno strumento come Gorks per eseguirli tutti.
Nota che gli strumenti che si aspettano di eseguire l'intero database utilizzando il normale browser di Google non finiranno mai poiché Google ti bloccherà molto molto presto.
Ricerca di vulnerabilità
Se trovi credenziali trapelate valide o token API, questa è una vittoria molto facile.
Vulnerabilità del Codice Pubblico
Se hai scoperto che l'azienda ha del codice open-source puoi analizzarlo e cercare vulnerabilità al suo interno.
A seconda del linguaggio ci sono diversi strumenti che puoi utilizzare:
{% content-ref url="../../network-services-pentesting/pentesting-web/code-review-tools.md" %} code-review-tools.md {% endcontent-ref %}
Ci sono anche servizi gratuiti che ti consentono di scansionare i repository pubblici, come:
Metodologia di Pentesting Web
La maggior parte delle vulnerabilità trovate dai cacciatori di bug risiede all'interno delle applicazioni web, quindi a questo punto vorrei parlare di una metodologia di test delle applicazioni web, e puoi trovare queste informazioni qui.
Vorrei anche fare una menzione speciale alla sezione Strumenti open source di scannerizzazione automatica web, poiché, se non ci si deve aspettare che trovino vulnerabilità molto sensibili, sono utili per implementarle nei workflow per avere alcune informazioni web iniziali.
Riepilogo
Congratulazioni! A questo punto hai già eseguito tutta l'enumerazione di base. Sì, è di base perché si possono fare molte altre enumerazioni (vedremo più trucchi in seguito).
Quindi hai già:
- Trovato tutte le aziende all'interno del perimetro
- Trovato tutti gli asset appartenenti alle aziende (e eseguito una scansione delle vulnerabilità se nel perimetro)
- Trovato tutti i domini appartenenti alle aziende
- Trovato tutti i sottodomini dei domini (possibile takeover di sottodomini?)
- Trovato tutti gli IP (da e non da CDN) all'interno del perimetro.
- Trovato tutti i server web e ne hai preso uno screenshot (qualcosa di strano che merita un'analisi più approfondita?)
- Trovato tutti i potenziali asset pubblici cloud appartenenti all'azienda.
- Email, leak di credenziali, e leak di segreti che potrebbero portarti a una grande vittoria molto facilmente.
- Pentesting di tutti i siti web trovati
Strumenti Automatici di Ricognizione Completa
Ci sono diversi strumenti là fuori che eseguiranno parte delle azioni proposte contro un determinato perimetro.
- https://github.com/yogeshojha/rengine
- https://github.com/j3ssie/Osmedeus
- https://github.com/six2dez/reconftw
- https://github.com/hackerspider1/EchoPwn - Un po' datato e non aggiornato
Riferimenti
- Tutti i corsi gratuiti di @Jhaddix come The Bug Hunter's Methodology v4.0 - Recon Edition
Se sei interessato a una carriera nell'hacking e a hackerare l'inviolabile - stiamo assumendo! (richiesta competenza polacca scritta e parlata).
{% embed url="https://www.stmcyber.com/careers" %}
Impara l'hacking di AWS da zero a eroe con htARTE (HackTricks AWS Red Team Expert)!
Altri modi per supportare HackTricks:
- Se vuoi vedere la tua azienda pubblicizzata in HackTricks o scaricare HackTricks in PDF Controlla i PIANI DI ABBONAMENTO!
- Ottieni il merchandising ufficiale PEASS & HackTricks
- Scopri The PEASS Family, la nostra collezione di esclusivi NFT
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi i tuoi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud github repos.