External Recon Methodology
Reading time: 29 minutes
tip
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.
Vermögensentdeckungen
Ihnen wurde gesagt, dass alles, was zu einem Unternehmen gehört, im Geltungsbereich liegt, und Sie möchten herausfinden, was dieses Unternehmen tatsächlich besitzt.
Das Ziel dieser Phase ist es, alle Unternehmen, die im Besitz des Hauptunternehmens sind, und dann alle Vermögenswerte dieser Unternehmen zu ermitteln. Dazu werden wir:
- Die Übernahmen des Hauptunternehmens finden, dies wird uns die Unternehmen im Geltungsbereich geben.
- Die ASN (falls vorhanden) jedes Unternehmens finden, dies wird uns die IP-Bereiche geben, die jedem Unternehmen gehören.
- Rückwärtige Whois-Abfragen verwenden, um nach anderen Einträgen (Organisationsnamen, Domains...) zu suchen, die mit dem ersten verbunden sind (dies kann rekursiv erfolgen).
- Andere Techniken wie Shodan
org
undssl
Filter verwenden, um nach anderen Vermögenswerten zu suchen (derssl
Trick kann rekursiv durchgeführt werden).
Übernahmen
Zunächst müssen wir wissen, welche anderen Unternehmen im Besitz des Hauptunternehmens sind.
Eine Möglichkeit besteht darin, https://www.crunchbase.com/ zu besuchen, nach dem Hauptunternehmen zu suchen und auf "Übernahmen" zu klicken. Dort sehen Sie andere Unternehmen, die von dem Hauptunternehmen übernommen wurden.
Eine andere Möglichkeit besteht darin, die Wikipedia-Seite des Hauptunternehmens zu besuchen und nach Übernahmen zu suchen.
Ok, an diesem Punkt sollten Sie alle Unternehmen im Geltungsbereich kennen. Lassen Sie uns herausfinden, wie wir ihre Vermögenswerte finden können.
ASNs
Eine autonome Systemnummer (ASN) ist eine eindeutige Nummer, die einem autonomen System (AS) von der Internet Assigned Numbers Authority (IANA) zugewiesen wird.
Ein AS besteht aus Blöcken von IP-Adressen, die eine eindeutig definierte Richtlinie für den Zugriff auf externe Netzwerke haben und von einer einzigen Organisation verwaltet werden, aber aus mehreren Betreibern bestehen können.
Es ist interessant herauszufinden, ob das Unternehmen eine ASN zugewiesen hat, um seine IP-Bereiche zu finden. Es wäre interessant, einen Sicherheitstest gegen alle Hosts im Geltungsbereich durchzuführen und nach Domains innerhalb dieser IPs zu suchen.
Sie können nach dem Namen des Unternehmens, nach IP oder nach Domain in https://bgp.he.net/.
Je nach Region des Unternehmens könnten diese Links nützlich sein, um weitere Daten zu sammeln: AFRINIC (Afrika), Arin(Nordamerika), APNIC (Asien), LACNIC (Lateinamerika), RIPE NCC (Europa). Jedenfalls erscheinen wahrscheinlich alle nützlichen Informationen (IP-Bereiche und Whois) bereits im ersten Link.
#You can try "automate" this with amass, but it's not very recommended
amass intel -org tesla
amass intel -asn 8911,50313,394161
Außerdem aggregiert und fasst die Subdomain-Enumeration von BBOT's die ASNs am Ende des Scans automatisch zusammen.
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: +----------+---------------------+--------------+----------------+----------------------------+-----------+
Sie können die IP-Bereiche einer Organisation auch mit http://asnlookup.com/ finden (es hat eine kostenlose API).
Sie können die IP und ASN einer Domain mit http://ipv4info.com/ finden.
Auf der Suche nach Schwachstellen
An diesem Punkt kennen wir alle Vermögenswerte im Geltungsbereich, also könnten Sie, wenn Sie dazu berechtigt sind, einige Schwachstellenscanner (Nessus, OpenVAS) über alle Hosts starten.
Außerdem könnten Sie einige Port-Scans starten oder Dienste wie shodan verwenden, um offene Ports zu finden, und je nachdem, was Sie finden, sollten Sie in diesem Buch nachsehen, wie man mehrere mögliche Dienste testet.
Es könnte auch erwähnenswert sein, dass Sie auch einige Standardbenutzernamen und Passwortlisten vorbereiten und versuchen können, Dienste mit https://github.com/x90skysn3k/brutespray zu bruteforcen.
Domains
Wir kennen alle Unternehmen im Geltungsbereich und deren Vermögenswerte, es ist Zeit, die Domains im Geltungsbereich zu finden.
Bitte beachten Sie, dass Sie mit den folgenden vorgeschlagenen Techniken auch Subdomains finden können und diese Informationen nicht unterschätzt werden sollten.
Zunächst sollten Sie nach der Hauptdomain(s) jedes Unternehmens suchen. Zum Beispiel wird für Tesla Inc. die Domain tesla.com sein.
Reverse DNS
Da Sie alle IP-Bereiche der Domains gefunden haben, könnten Sie versuchen, Reverse-DNS-Abfragen auf diesen IPs durchzuführen, um weitere Domains im Geltungsbereich zu finden. Versuchen Sie, einen DNS-Server des Opfers oder einen bekannten DNS-Server (1.1.1.1, 8.8.8.8) zu verwenden.
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
Damit dies funktioniert, muss der Administrator manuell den PTR aktivieren.
Sie können auch ein Online-Tool für diese Informationen verwenden: http://ptrarchive.com/
Reverse Whois (loop)
Innerhalb eines whois finden Sie viele interessante Informationen wie Organisationsname, Adresse, E-Mails, Telefonnummern... Aber was noch interessanter ist, ist, dass Sie weitere Vermögenswerte, die mit dem Unternehmen verbunden sind, finden können, wenn Sie Reverse-Whois-Abfragen nach einem dieser Felder durchführen (zum Beispiel andere Whois-Registrierungen, bei denen dieselbe E-Mail erscheint).
Sie können Online-Tools wie verwenden:
- https://viewdns.info/reversewhois/ - Kostenlos
- https://domaineye.com/reverse-whois - Kostenlos
- https://www.reversewhois.io/ - Kostenlos
- https://www.whoxy.com/ - Kostenlos web, nicht kostenloses API.
- http://reversewhois.domaintools.com/ - Nicht kostenlos
- https://drs.whoisxmlapi.com/reverse-whois-search - Nicht kostenlos (nur 100 kostenlose Suchen)
- https://www.domainiq.com/ - Nicht kostenlos
Sie können diese Aufgabe automatisieren, indem Sie DomLink verwenden (benötigt einen Whoxy-API-Schlüssel).
Sie können auch einige automatische Reverse-Whois-Entdeckungen mit amass durchführen: amass intel -d tesla.com -whois
Beachten Sie, dass Sie diese Technik verwenden können, um jedes Mal weitere Domainnamen zu entdecken, wenn Sie eine neue Domain finden.
Trackers
Wenn Sie die gleiche ID des gleichen Trackers auf 2 verschiedenen Seiten finden, können Sie annehmen, dass beide Seiten von dem gleichen Team verwaltet werden.
Zum Beispiel, wenn Sie dieselbe Google Analytics-ID oder dieselbe Adsense-ID auf mehreren Seiten sehen.
Es gibt einige Seiten und Tools, die es Ihnen ermöglichen, nach diesen Trackern und mehr zu suchen:
Favicon
Wussten Sie, dass wir verwandte Domains und Subdomains zu unserem Ziel finden können, indem wir nach dem gleichen Favicon-Icon-Hash suchen? Genau das macht das Tool favihash.py, das von @m4ll0k2 erstellt wurde. So verwenden Sie es:
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
Einfach gesagt, favihash ermöglicht es uns, Domains zu entdecken, die denselben Favicon-Icon-Hash wie unser Ziel haben.
Darüber hinaus kannst du auch Technologien mithilfe des Favicon-Hashes suchen, wie in diesem Blogbeitrag erklärt. Das bedeutet, dass du, wenn du den Hash des Favicon einer verwundbaren Version einer Webtechnologie kennst, in Shodan suchen und weitere verwundbare Orte finden kannst:
shodan search org:"Target" http.favicon.hash:116323821 --fields ip_str,port --separator " " | awk '{print $1":"$2}'
So können Sie den Favicon-Hash einer Website berechnen:
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
Suchen Sie auf den Webseiten Strings, die in verschiedenen Webseiten derselben Organisation geteilt werden könnten. Der Copyright-String könnte ein gutes Beispiel sein. Suchen Sie dann nach diesem String in Google, in anderen Browsern oder sogar in Shodan: shodan search http.html:"Copyright string"
CRT Time
Es ist üblich, einen Cron-Job zu haben, wie
# /etc/crontab
37 13 */10 * * certbot renew --post-hook "systemctl reload nginx"
um alle Domainzertifikate auf dem Server zu erneuern. Das bedeutet, dass selbst wenn die CA, die dafür verwendet wird, die Zeit, zu der es generiert wurde, nicht in der Gültigkeitszeit festlegt, es möglich ist, Domains zu finden, die zur gleichen Firma in den Zertifikatstransparenzprotokollen gehören.
Siehe diesen Artikel für weitere Informationen.
Mail DMARC Informationen
Sie können eine Webseite wie https://dmarc.live/info/google.com oder ein Tool wie https://github.com/Tedixx/dmarc-subdomains verwenden, um Domains und Subdomains zu finden, die die gleichen DMARC-Informationen teilen.
Passive Übernahme
Es ist anscheinend üblich, dass Menschen Subdomains IPs zuweisen, die zu Cloud-Anbietern gehören, und irgendwann diese IP-Adresse verlieren, aber vergessen, den DNS-Eintrag zu entfernen. Daher werden Sie durch das Erstellen einer VM in einer Cloud (wie Digital Ocean) tatsächlich einige Subdomains übernehmen.
Dieser Beitrag erklärt eine Geschichte darüber und schlägt ein Skript vor, das eine VM in DigitalOcean erstellt, die IPv4 der neuen Maschine erhält und in Virustotal nach Subdomain-Einträgen sucht, die darauf verweisen.
Andere Möglichkeiten
Beachten Sie, dass Sie diese Technik verwenden können, um jedes Mal mehr Domainnamen zu entdecken, wenn Sie eine neue Domain finden.
Shodan
Wie Sie bereits wissen, gehört der Name der Organisation, die den IP-Bereich besitzt. Sie können nach diesen Daten in Shodan suchen mit: org:"Tesla, Inc."
Überprüfen Sie die gefundenen Hosts auf neue unerwartete Domains im TLS-Zertifikat.
Sie könnten das TLS-Zertifikat der Hauptwebseite abrufen, den Namen der Organisation erhalten und dann nach diesem Namen in den TLS-Zertifikaten aller Webseiten suchen, die von Shodan bekannt sind, mit dem Filter: ssl:"Tesla Motors"
oder ein Tool wie sslsearch verwenden.
Assetfinder
Assetfinder ist ein Tool, das nach Domains sucht, die mit einer Hauptdomain und deren Subdomains verbunden sind, ziemlich erstaunlich.
Nach Schwachstellen suchen
Überprüfen Sie einige Domainübernahmen. Vielleicht verwendet ein Unternehmen eine Domain, hat aber die Eigentümerschaft verloren. Registrieren Sie sie einfach (wenn sie günstig genug ist) und informieren Sie das Unternehmen.
Wenn Sie eine Domain mit einer anderen IP als den bereits in der Asset-Entdeckung gefundenen finden, sollten Sie einen einfachen Schwachscann (mit Nessus oder OpenVAS) und einen Portscan mit nmap/masscan/shodan durchführen. Je nachdem, welche Dienste ausgeführt werden, können Sie in diesem Buch einige Tricks finden, um sie zu "angreifen".
&#xNAN;Note, dass manchmal die Domain innerhalb einer IP gehostet wird, die nicht vom Kunden kontrolliert wird, sodass sie nicht im Geltungsbereich liegt, seien Sie vorsichtig.
Subdomains
Wir kennen alle Unternehmen im Geltungsbereich, alle Vermögenswerte jedes Unternehmens und alle Domains, die mit den Unternehmen verbunden sind.
Es ist Zeit, alle möglichen Subdomains jeder gefundenen Domain zu finden.
tip
Beachten Sie, dass einige der Tools und Techniken zur Auffindung von Domains auch helfen können, Subdomains zu finden.
DNS
Lassen Sie uns versuchen, Subdomains aus den DNS-Einträgen zu erhalten. Wir sollten auch nach Zonenübertragungen suchen (wenn anfällig, sollten Sie dies melden).
dnsrecon -a -d tesla.com
OSINT
Der schnellste Weg, um viele Subdomains zu erhalten, ist die Suche in externen Quellen. Die am häufigsten verwendeten Tools sind die folgenden (für bessere Ergebnisse API-Schlüssel konfigurieren):
# 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"
Es gibt andere interessante Tools/APIs, die, auch wenn sie nicht direkt auf das Finden von Subdomains spezialisiert sind, nützlich sein könnten, um Subdomains zu finden, wie:
- Crobat: Verwendet die API https://sonar.omnisint.io, um Subdomains zu erhalten.
# 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 kostenlose 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: ruft bekannte URLs von AlienVaults Open Threat Exchange, der Wayback Machine und Common Crawl für eine gegebene Domain ab.
# Get subdomains from GAUs found URLs
gau --subs tesla.com | cut -d "/" -f 3 | sort -u
- SubDomainizer & subscraper: Sie durchsuchen das Web nach JS-Dateien und extrahieren von dort Subdomains.
# 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 hat eine kostenlose API, um nach Subdomains und IP-Historie zu suchen.
- chaos.projectdiscovery.io
Dieses Projekt bietet kostenlos alle Subdomains, die mit Bug-Bounty-Programmen verbunden sind. Sie können auf diese Daten auch mit chaospy zugreifen oder sogar auf den Umfang zugreifen, der von diesem Projekt verwendet wird https://github.com/projectdiscovery/chaos-public-program-list.
Sie finden einen Vergleich vieler dieser Tools hier: https://blog.blacklanternsecurity.com/p/subdomain-enumeration-tool-face-off.
DNS Brute Force
Lassen Sie uns versuchen, neue Subdomains durch Brute-Forcing von DNS-Servern mit möglichen Subdomain-Namen zu finden.
Für diese Aktion benötigen Sie einige gemeinsame Subdomain-Wortlisten wie:
- 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
Und auch IPs von guten DNS-Resolvern. Um eine Liste vertrauenswürdiger DNS-Resolver zu erstellen, können Sie die Resolver von https://public-dns.info/nameservers-all.txt herunterladen und dnsvalidator verwenden, um sie zu filtern. Oder Sie könnten verwenden: https://raw.githubusercontent.com/trickest/resolvers/main/resolvers-trusted.txt.
Die am meisten empfohlenen Tools für DNS-Brute-Force sind:
- massdns: Dies war das erste Tool, das ein effektives DNS-Brute-Force durchführte. Es ist sehr schnell, jedoch anfällig für falsche Positivmeldungen.
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: Ich denke, dass dieser nur 1 Resolver verwendet.
gobuster dns -d mysite.com -t 50 -w subdomains.txt
- shuffledns ist ein Wrapper um
massdns
, geschrieben in Go, der es Ihnen ermöglicht, gültige Subdomains mit aktivem Bruteforce zu enumerieren sowie Subdomains mit Wildcard-Verarbeitung und einfacher Eingabe-Ausgabe-Unterstützung aufzulösen.
shuffledns -d example.com -list example-subdomains.txt -r resolvers.txt
- puredns: Es verwendet ebenfalls
massdns
.
puredns bruteforce all.txt domain.com
- aiodnsbrute verwendet asyncio, um Domänennamen asynchron zu brute-forcen.
aiodnsbrute -r resolvers -w wordlist.txt -vv -t 1024 domain.com
Zweite DNS Brute-Force Runde
Nachdem Sie Subdomains mit offenen Quellen und Brute-Forcing gefunden haben, können Sie Variationen der gefundenen Subdomains generieren, um noch mehr zu finden. Mehrere Tools sind dafür nützlich:
- dnsgen: Gegebene Domains und Subdomains generieren Permutationen.
cat subdomains.txt | dnsgen -
- goaltdns: Gegebene Domains und Subdomains Permutationen generieren.
- Sie können die wordlist von goaltdns hier erhalten: hier.
goaltdns -l subdomains.txt -w /tmp/words-permutations.txt -o /tmp/final-words-s3.txt
- gotator: Gegebenen Domains und Subdomains Permutationen generieren. Wenn keine Permutationsdatei angegeben ist, verwendet gotator seine eigene.
gotator -sub subdomains.txt -silent [-perm /tmp/words-permutations.txt]
- altdns: Neben der Generierung von Subdomain-Permutationen kann es auch versuchen, diese aufzulösen (aber es ist besser, die zuvor kommentierten Tools zu verwenden).
- Sie können die altdns-Permutationen Wortliste in hier erhalten.
altdns -i subdomains.txt -w /tmp/words-permutations.txt -o /tmp/asd3
- dmut: Ein weiteres Tool zur Durchführung von Permutationen, Mutationen und Änderungen von Subdomains. Dieses Tool wird das Ergebnis brute-forcen (es unterstützt keine DNS-Wildcards).
- Sie können die dmut-Permutationen-Wortliste hier erhalten.
cat subdomains.txt | dmut -d /tmp/words-permutations.txt -w 100 \
--dns-errorLimit 10 --use-pb --verbose -s /tmp/resolvers-trusted.txt
- alterx: Basierend auf einer Domain generiert es neue potenzielle Subdomänennamen basierend auf angegebenen Mustern, um weitere Subdomänen zu entdecken.
Intelligente Permutationsgenerierung
- regulator: Für weitere Informationen lesen Sie diesen Beitrag, aber es wird im Grunde die Hauptteile von den entdeckten Subdomänen extrahieren und sie mischen, um weitere Subdomänen zu finden.
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 ist ein Subdomain-Brute-Force-Fuzzer, der mit einem äußerst einfachen, aber effektiven DNS-Antwort-gesteuerten Algorithmus gekoppelt ist. Es nutzt einen bereitgestellten Satz von Eingabedaten, wie eine maßgeschneiderte Wortliste oder historische DNS/TLS-Aufzeichnungen, um genauere entsprechende Domainnamen zu synthetisieren und diese in einer Schleife basierend auf den während des DNS-Scans gesammelten Informationen weiter zu erweitern.
echo www | subzuf facebook.com
Subdomain Discovery Workflow
Überprüfen Sie diesen Blogbeitrag, den ich über die Automatisierung der Subdomain-Entdeckung von einer Domain mit Trickest-Workflows geschrieben habe, damit ich nicht manuell eine Reihe von Tools auf meinem Computer starten muss:
https://trickest.com/blog/full-subdomain-discovery-using-workflow/
https://trickest.com/blog/full-subdomain-brute-force-discovery-using-workflow/
VHosts / Virtuelle Hosts
Wenn Sie eine IP-Adresse gefunden haben, die eine oder mehrere Webseiten von Subdomains enthält, könnten Sie versuchen, andere Subdomains mit Webseiten in dieser IP zu finden, indem Sie in OSINT-Quellen nach Domains in einer IP suchen oder VHost-Domainnamen in dieser IP brute-forcen.
OSINT
Sie können einige VHosts in IPs finden, indem Sie HostHunter oder andere APIs verwenden.
Brute Force
Wenn Sie vermuten, dass eine Subdomain auf einem Webserver verborgen sein könnte, könnten Sie versuchen, sie brute zu forcen:
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
Mit dieser Technik können Sie möglicherweise sogar auf interne/verborgene Endpunkte zugreifen.
CORS Brute Force
Manchmal finden Sie Seiten, die nur den Header Access-Control-Allow-Origin zurückgeben, wenn eine gültige Domain/Subdomain im Origin Header gesetzt ist. In diesen Szenarien können Sie dieses Verhalten ausnutzen, um neue Subdomains zu entdecken.
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
Während Sie nach Subdomains suchen, achten Sie darauf, ob sie auf irgendeine Art von Bucket zeigen, und in diesem Fall überprüfen Sie die Berechtigungen.
Außerdem, da Sie zu diesem Zeitpunkt alle Domains im Geltungsbereich kennen, versuchen Sie, mögliche Bucket-Namen zu brute-forcen und die Berechtigungen zu überprüfen.
Monitorisierung
Sie können überwachen, ob neue Subdomains einer Domain erstellt werden, indem Sie die Certificate Transparency Logs überwachen, was sublert tut.
Suche nach Schwachstellen
Überprüfen Sie auf mögliche Subdomain-Übernahmen.
Wenn die Subdomain auf einen S3-Bucket zeigt, überprüfen Sie die Berechtigungen.
Wenn Sie eine Subdomain mit einer anderen IP als den bereits in der Asset-Entdeckung gefundenen finden, sollten Sie einen grundlegenden Schwachstellenscan (mit Nessus oder OpenVAS) und einen Portscan mit nmap/masscan/shodan durchführen. Je nachdem, welche Dienste ausgeführt werden, können Sie in diesem Buch einige Tricks finden, um sie zu "angreifen".
&#xNAN;Note, dass die Subdomain manchmal auf einer IP gehostet wird, die nicht vom Kunden kontrolliert wird, sodass sie nicht im Geltungsbereich liegt. Seien Sie vorsichtig.
IPs
In den ersten Schritten haben Sie möglicherweise einige IP-Bereiche, Domains und Subdomains gefunden.
Es ist Zeit, alle IPs aus diesen Bereichen zu sammeln und für die Domains/Subdomains (DNS-Abfragen).
Mit Diensten aus den folgenden kostenlosen APIs können Sie auch frühere IPs finden, die von Domains und Subdomains verwendet wurden. Diese IPs könnten immer noch dem Kunden gehören (und könnten Ihnen helfen, CloudFlare-Bypässe zu finden).
Sie können auch nach Domains suchen, die auf eine bestimmte IP-Adresse zeigen, indem Sie das Tool hakip2host verwenden.
Suche nach Schwachstellen
Portscannen Sie alle IPs, die nicht zu CDNs gehören (da Sie dort höchstwahrscheinlich nichts Interessantes finden werden). In den entdeckten laufenden Diensten könnten Sie Schwachstellen finden.
Finden Sie einen Leitfaden zum Scannen von Hosts.
Webserver-Jagd
Wir haben alle Unternehmen und deren Vermögenswerte gefunden und kennen IP-Bereiche, Domains und Subdomains im Geltungsbereich. Es ist Zeit, nach Webservern zu suchen.
In den vorherigen Schritten haben Sie wahrscheinlich bereits einige Recon der entdeckten IPs und Domains durchgeführt, sodass Sie bereits alle möglichen Webserver gefunden haben. Wenn nicht, werden wir jetzt einige schnelle Tricks zur Suche nach Webservern im Geltungsbereich sehen.
Bitte beachten Sie, dass dies auf die Entdeckung von Webanwendungen ausgerichtet sein wird, sodass Sie auch den Schwachstellenscan und Portscan durchführen sollten (wenn im Geltungsbereich erlaubt).
Eine schnelle Methode, um offene Ports im Zusammenhang mit Web-Servern zu entdecken, ist masscan hier zu finden.
Ein weiteres benutzerfreundliches Tool zur Suche nach Webservern ist httprobe, fprobe und httpx. Sie geben einfach eine Liste von Domains ein, und es wird versucht, eine Verbindung zu Port 80 (http) und 443 (https) herzustellen. Zusätzlich können Sie angeben, dass andere Ports ausprobiert werden sollen:
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
Jetzt, da Sie alle Webserver im Geltungsbereich (unter den IPs des Unternehmens und allen Domains und Subdomains) entdeckt haben, wissen Sie wahrscheinlich nicht, wo Sie anfangen sollen. Lassen Sie uns das einfach machen und beginnen Sie einfach damit, Screenshots von allen zu machen. Nur durch einen Blick auf die Hauptseite können Sie seltsame Endpunkte finden, die eher anfällig für Schwachstellen sind.
Um die vorgeschlagene Idee umzusetzen, können Sie EyeWitness, HttpScreenshot, Aquatone, Shutter, Gowitness oder webscreenshot.
Darüber hinaus könnten Sie dann eyeballer verwenden, um alle Screenshots zu durchsuchen und Ihnen zu sagen, was wahrscheinlich Schwachstellen enthält und was nicht.
Öffentliche Cloud-Ressourcen
Um potenzielle Cloud-Ressourcen eines Unternehmens zu finden, sollten Sie mit einer Liste von Schlüsselwörtern beginnen, die dieses Unternehmen identifizieren. Zum Beispiel, für ein Krypto-Unternehmen könnten Sie Wörter wie: "crypto", "wallet", "dao", "<domain_name>", <"subdomain_names">
verwenden.
Sie benötigen auch Wortlisten von häufig verwendeten Wörtern in Buckets:
- 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
Dann sollten Sie mit diesen Wörtern Permutationen generieren (siehe Second Round DNS Brute-Force für weitere Informationen).
Mit den resultierenden Wortlisten könnten Sie Tools wie cloud_enum, CloudScraper, cloudlist oder S3Scanner.
Denken Sie daran, dass Sie bei der Suche nach Cloud-Ressourcen mehr als nur Buckets in AWS suchen sollten.
Auf der Suche nach Schwachstellen
Wenn Sie Dinge wie offene Buckets oder exponierte Cloud-Funktionen finden, sollten Sie auf sie zugreifen und versuchen zu sehen, was sie Ihnen bieten und ob Sie sie missbrauchen können.
E-Mails
Mit den Domains und Subdomains im Geltungsbereich haben Sie im Grunde alles, was Sie brauchen, um nach E-Mails zu suchen. Dies sind die APIs und Tools, die für mich am besten funktioniert haben, um E-Mails eines Unternehmens zu finden:
- theHarvester - mit APIs
- API von https://hunter.io/ (kostenlose Version)
- API von https://app.snov.io/ (kostenlose Version)
- API von https://minelead.io/ (kostenlose Version)
Auf der Suche nach Schwachstellen
E-Mails werden später nützlich sein, um Web-Logins und Authentifizierungsdienste (wie SSH) zu brute-forcen. Außerdem werden sie für Phishing benötigt. Darüber hinaus geben Ihnen diese APIs sogar noch mehr Informationen über die Person hinter der E-Mail, was für die Phishing-Kampagne nützlich ist.
Credential Leaks
Mit den Domains, Subdomains und E-Mails können Sie nach in der Vergangenheit geleakten Anmeldeinformationen suchen, die zu diesen E-Mails gehören:
Auf der Suche nach Schwachstellen
Wenn Sie gültige geleakte Anmeldeinformationen finden, ist das ein sehr einfacher Gewinn.
Secrets Leaks
Credential Leaks stehen im Zusammenhang mit Hacks von Unternehmen, bei denen sensible Informationen geleakt und verkauft wurden. Unternehmen könnten jedoch auch von anderen Leaks betroffen sein, deren Informationen nicht in diesen Datenbanken enthalten sind:
Github Leaks
Anmeldeinformationen und APIs könnten in den öffentlichen Repositories des Unternehmens oder der Benutzer, die für dieses Github-Unternehmen arbeiten, geleakt werden.
Sie können das Tool Leakos verwenden, um alle öffentlichen Repos einer Organisation und ihrer Entwickler herunterzuladen und automatisch gitleaks darüber auszuführen.
Leakos kann auch verwendet werden, um gitleaks gegen alle Text-URLs, die ihm übergeben werden, auszuführen, da manchmal Webseiten auch Geheimnisse enthalten.
Github Dorks
Überprüfen Sie auch diese Seite auf potenzielle Github Dorks, nach denen Sie in der Organisation, die Sie angreifen, suchen könnten:
Pastes Leaks
Manchmal veröffentlichen Angreifer oder einfach Mitarbeiter Unternehmensinhalte auf einer Paste-Seite. Dies könnte sensible Informationen enthalten oder auch nicht, aber es ist sehr interessant, danach zu suchen.
Sie können das Tool Pastos verwenden, um gleichzeitig in mehr als 80 Paste-Seiten zu suchen.
Google Dorks
Alte, aber bewährte Google Dorks sind immer nützlich, um exponierte Informationen zu finden, die dort nicht sein sollten. Das einzige Problem ist, dass die google-hacking-database mehrere tausend mögliche Abfragen enthält, die Sie nicht manuell ausführen können. Sie können also Ihre 10 Lieblingsabfragen auswählen oder ein Tool wie Gorks verwenden, um sie alle auszuführen.
Bedenken Sie, dass die Tools, die erwarten, die gesamte Datenbank mit dem regulären Google-Browser auszuführen, niemals enden werden, da Google Sie sehr schnell blockieren wird.
Auf der Suche nach Schwachstellen
Wenn Sie gültige geleakte Anmeldeinformationen oder API-Token finden, ist das ein sehr einfacher Gewinn.
Öffentliche Code-Schwachstellen
Wenn Sie festgestellt haben, dass das Unternehmen Open-Source-Code hat, können Sie ihn analysieren und nach Schwachstellen suchen.
Je nach Sprache gibt es verschiedene Tools, die Sie verwenden können:
Source code Review / SAST Tools
Es gibt auch kostenlose Dienste, die es Ihnen ermöglichen, öffentliche Repositories zu scannen, wie:
Pentesting Web Methodology
Die Mehrheit der Schwachstellen, die von Bug-Huntern gefunden werden, befindet sich in Webanwendungen, daher möchte ich an dieser Stelle über eine Testmethodik für Webanwendungen sprechen, und Sie können diese Informationen hier finden.
Ich möchte auch einen besonderen Hinweis auf den Abschnitt Web Automated Scanners open source tools geben, da, auch wenn Sie nicht erwarten sollten, dass sie sehr sensible Schwachstellen finden, sie nützlich sind, um sie in Workflows zu implementieren, um einige erste Webinformationen zu erhalten.
Rekapitulation
Herzlichen Glückwunsch! An diesem Punkt haben Sie bereits alle grundlegenden Enumeration durchgeführt. Ja, es ist grundlegend, weil viel mehr Enumeration durchgeführt werden kann (wir werden später mehr Tricks sehen).
Also haben Sie bereits:
- Alle Unternehmen im Geltungsbereich gefunden
- Alle Assets gefunden, die zu den Unternehmen gehören (und einige Schwachstellenscans durchgeführt, wenn im Geltungsbereich)
- Alle Domains gefunden, die zu den Unternehmen gehören
- Alle Subdomains der Domains gefunden (gibt es eine Subdomain-Übernahme?)
- Alle IPs (von und nicht von CDNs) im Geltungsbereich gefunden.
- Alle Webserver gefunden und einen Screenshot davon gemacht (gibt es etwas Seltsames, das einen genaueren Blick wert ist?)
- Alle potenziellen öffentlichen Cloud-Ressourcen gefunden, die zu dem Unternehmen gehören.
- E-Mails, Credential Leaks und Secret Leaks, die Ihnen einen großen Gewinn sehr einfach bringen könnten.
- Pentesting aller Webseiten, die Sie gefunden haben
Vollständige Recon Automatische Tools
Es gibt mehrere Tools, die Teile der vorgeschlagenen Aktionen gegen einen bestimmten Geltungsbereich durchführen.
- https://github.com/yogeshojha/rengine
- https://github.com/j3ssie/Osmedeus
- https://github.com/six2dez/reconftw
- https://github.com/hackerspider1/EchoPwn - Ein wenig alt und nicht aktualisiert
Referenzen
- Alle kostenlosen Kurse von @Jhaddix wie The Bug Hunter's Methodology v4.0 - Recon Edition
tip
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.