.. | ||
github-leaked-secrets.md | ||
README.md | ||
wide-source-code-search.md |
Metodologia zewnętrznego rozpoznania
Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!
Inne sposoby wsparcia HackTricks:
- Jeśli chcesz zobaczyć swoją firmę reklamowaną w HackTricks lub pobrać HackTricks w formacie PDF, sprawdź PLANY SUBSKRYPCYJNE!
- Zdobądź oficjalne gadżety PEASS & HackTricks
- Odkryj Rodzinę PEASS, naszą kolekcję ekskluzywnych NFT
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do HackTricks i HackTricks Cloud na GitHubie.
Jeśli interesuje Cię kariera hakerska i hakowanie niemożliwego - rekrutujemy! (wymagana biegła znajomość języka polskiego, zarówno pisanego, jak i mówionego).
{% embed url="https://www.stmcyber.com/careers" %}
Odkrywanie zasobów
Powiedziano Ci, że wszystko należące do pewnej firmy znajduje się w zakresie, i chcesz dowiedzieć się, co ta firma faktycznie posiada.
Celem tej fazy jest uzyskanie wszystkich firm należących do głównej firmy, a następnie wszystkich zasobów tych firm. Aby to osiągnąć, będziemy:
- Znaleźć przejęcia głównej firmy, co pozwoli nam poznać firmy wchodzące w zakres.
- Znaleźć numer ASN (jeśli istnieje) każdej firmy, co pozwoli nam poznać zakresy IP posiadane przez każdą firmę.
- Użyć odwróconego wyszukiwania whois, aby szukać innych wpisów (nazwy organizacji, domeny...) związanych z pierwszym (można to zrobić rekurencyjnie).
- Użyć innych technik, takich jak filtry shodan
org
issl
, aby szukać innych zasobów (szczególnie trik zssl
można wykonać rekurencyjnie).
Przejęcia
Po pierwsze, musimy dowiedzieć się, które inne firmy należą do głównej firmy.
Jedną z opcji jest odwiedzenie https://www.crunchbase.com/, wyszukanie głównej firmy, a następnie kliknięcie w "przejęcia". Tam zobaczysz inne firmy przejęte przez główną.
Inną opcją jest odwiedzenie strony Wikipedii głównej firmy i wyszukanie przejęć.
Ok, w tym momencie powinieneś znać wszystkie firmy wchodzące w zakres. Spróbujmy teraz dowiedzieć się, jak znaleźć ich zasoby.
ASNs
Numer autonomicznego systemu (ASN) to unikalny numer przypisany autonomicznemu systemowi (AS) przez Internet Assigned Numbers Authority (IANA).
AS składa się z bloków adresów IP, które mają zdefiniowaną politykę dostępu do sieci zewnętrznych i są administrowane przez jedną organizację, ale mogą składać się z kilku operatorów.
Interesujące jest dowiedzenie się, czy firma ma przypisany jakiś ASN, aby znaleźć jej zakresy IP. Warto przeprowadzić test podatności na wszystkich hostach w zakresie i szukać domen w tych IP.
Możesz szukać po nazwie firmy, po IP lub po domenie na stronie https://bgp.he.net/.
W zależności od regionu firmy te linki mogą być przydatne do zebrania więcej danych: AFRINIC (Afryka), Arin(Ameryka Północna), APNIC (Azja), LACNIC (Ameryka Łacińska), RIPE NCC (Europa). W każdym razie, prawdopodobnie wszystkie przydatne informacje (zakresy IP i Whois) znajdują się już na pierwszym linku.
#You can try "automate" this with amass, but it's not very recommended
amass intel -org tesla
amass intel -asn 8911,50313,394161
Również, BBOT's automatycznie agreguje i podsumowuje ASNs na końcu skanowania.
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żesz znaleźć zakresy IP organizacji również korzystając z http://asnlookup.com/ (ma darmowe API).
Możesz znaleźć IP i ASN domeny korzystając z http://ipv4info.com/.
Wyszukiwanie podatności
W tym momencie znamy wszystkie zasoby w zakresie, więc jeśli masz zgodę, możesz uruchomić niektóre skanery podatności (Nessus, OpenVAS) na wszystkich hostach.
Możesz także uruchomić niektóre skanowania portów lub skorzystać z usług takich jak shodan aby znaleźć otwarte porty i w zależności od tego, co znajdziesz, powinieneś sprawdzić w tej książce, jak testować penetracyjnie kilka możliwych usług działających.
Warto również wspomnieć, że możesz przygotować listy domyślnych nazw użytkowników i haseł i spróbować ataków siłowych na usługi za pomocą https://github.com/x90skysn3k/brutespray.
Domeny
Znamy wszystkie firmy w zakresie i ich zasoby, czas znaleźć domeny w zakresie.
Proszę zauważyć, że w proponowanych technikach można również znaleźć subdomeny i ta informacja nie powinna być lekceważona.
Po pierwsze, powinieneś szukać głównej domeny(ów) każdej firmy. Na przykład, dla Tesla Inc. będzie to tesla.com.
Odwrócone DNS
Po znalezieniu wszystkich zakresów IP domen, możesz spróbować wykonać odwrócone wyszukiwanie DNS na tych IP, aby znaleźć więcej domen w zakresie. Spróbuj użyć serwera DNS ofiary lub znanego serwera DNS (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
Aby to działało, administrator musi ręcznie włączyć PTR.
Możesz także skorzystać z narzędzia online do uzyskania tych informacji: http://ptrarchive.com/
Reverse Whois (pętla)
Wewnątrz whois możesz znaleźć wiele interesujących informacji, takich jak nazwa organizacji, adres, maile, numery telefonów... Ale co jeszcze bardziej interesujące, to że możesz znaleźć więcej zasobów związanych z firmą, jeśli wykonasz odwrotne wyszukiwanie whois po dowolnym z tych pól (na przykład inne rejestry whois, gdzie pojawi się ten sam e-mail).
Możesz skorzystać z narzędzi online, takich jak:
- https://viewdns.info/reversewhois/ - Darmowe
- https://domaineye.com/reverse-whois - Darmowe
- https://www.reversewhois.io/ - Darmowe
- https://www.whoxy.com/ - Darmowe w sieci, płatne API.
- http://reversewhois.domaintools.com/ - Płatne
- https://drs.whoisxmlapi.com/reverse-whois-search - Płatne (tylko 100 darmowych wyszukiwań)
- https://www.domainiq.com/ - Płatne
Możesz zautomatyzować to zadanie, korzystając z DomLink (wymaga klucza API whoxy).
Możesz także wykonać automatyczne odkrywanie odwrotnego whois za pomocą amass: amass intel -d tesla.com -whois
Zauważ, że tę technikę można wykorzystać do odkrywania kolejnych nazw domen za każdym razem, gdy znajdziesz nową domenę.
Śledzenie
Jeśli znajdziesz ten sam identyfikator tego samego śledzenia na 2 różnych stronach, możesz przypuszczać, że obie strony są zarządzane przez ten sam zespół.
Na przykład, jeśli zobaczysz ten sam identyfikator Google Analytics lub ten sam identyfikator Adsense na kilku stronach.
Istnieją strony i narzędzia, które pozwalają wyszukiwać po tych śledzaczach i nie tylko:
Favicon
Czy wiedziałeś, że możemy znaleźć powiązane domeny i subdomeny naszego celu, szukając tego samego skrótu ikony favicon? Dokładnie to robi narzędzie favihash.py stworzone przez @m4ll0k2. Oto jak go użyć:
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
Po prostu mówiąc, favihash pozwoli nam odkryć domeny, które mają ten sam hasz ikony favicon co nasz cel.
Co więcej, możesz również wyszukiwać technologie za pomocą hasza favicon, jak wyjaśniono w tym wpisie na blogu. Oznacza to, że jeśli znasz hasz faviconu podatnej wersji technologii internetowej, możesz wyszukać go w shodan i znaleźć więcej podatnych miejsc:
shodan search org:"Target" http.favicon.hash:116323821 --fields ip_str,port --separator " " | awk '{print $1":"$2}'
To jest sposób obliczenia hasz ikony strony internetowej:
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
Prawo autorskie / Unikalny ciąg znaków
Wyszukaj na stronach internetowych ciągi znaków, które mogą być udostępniane na różnych stronach w tej samej organizacji. Ciąg znaków praw autorskich mógłby być dobrym przykładem. Następnie wyszukaj ten ciąg znaków w Google, w innych przeglądarkach lub nawet w shodan: shodan search http.html:"Ciąg znaków praw autorskich"
Czas CRT
To powszechne mieć zadanie cron, takie jak
# /etc/crontab
37 13 */10 * * certbot renew --post-hook "systemctl reload nginx"
Metoda odnawiania certyfikatów domenowych
Aby odnowić wszystkie certyfikaty domenowe na serwerze. Oznacza to, że nawet jeśli CA używane do tego nie ustawia czasu generowania w Czasie ważności, jest możliwe znalezienie domen należących do tej samej firmy w dziennikach transparentności certyfikatów.
Sprawdź ten artykuł, aby uzyskać więcej informacji.
Informacje DMARC dotyczące poczty
Możesz skorzystać z witryny takiej jak https://dmarc.live/info/google.com lub narzędzia takiego jak https://github.com/Tedixx/dmarc-subdomains, aby znaleźć domeny i subdomeny, które dzielą te same informacje DMARC.
Pasywne przejęcie
Wygląda na to, że ludzie często przypisują subdomeny do adresów IP należących do dostawców chmurowych i w pewnym momencie tracą ten adres IP, ale zapominają o usunięciu rekordu DNS. Dlatego po prostu uruchamiając maszynę wirtualną w chmurze (np. Digital Ocean) faktycznie przejmiesz niektóre subdomeny.
Ten post wyjaśnia historię na ten temat i proponuje skrypt, który uruchamia maszynę wirtualną w DigitalOcean, pobiera adres IPv4 nowej maszyny, a następnie szuka w Virustotal rekordów subdomen wskazujących na nią.
Inne sposoby
Zauważ, że możesz wykorzystać tę technikę, aby odkrywać więcej nazw domen za każdym razem, gdy znajdziesz nową domenę.
Shodan
Ponieważ już znasz nazwę organizacji posiadającej przestrzeń IP. Możesz wyszukać te dane w Shodan używając: org:"Tesla, Inc."
Sprawdź znalezione hosty pod kątem nowych, nieoczekiwanych domen w certyfikacie TLS.
Możesz uzyskać dostęp do certyfikatu TLS głównej strony internetowej, uzyskać nazwę organizacji, a następnie wyszukać tę nazwę w certyfikatach TLS wszystkich znanych stron internetowych w Shodan z filtrem: ssl:"Tesla Motors"
lub skorzystać z narzędzia takiego jak sslsearch.
Assetfinder
Assetfinder to narzędzie, które szuka powiązanych domen z główną domeną i ich subdomen, naprawdę niesamowite.
Wyszukiwanie podatności
Sprawdź, czy istnieje przejęcie domeny. Być może jakaś firma używa pewnej domeny, ale utrata własności. Po prostu zarejestruj ją (jeśli jest wystarczająco tania) i daj znać firmie.
Jeśli znajdziesz jakąkolwiek domenę z innym adresem IP niż te, które już znalazłeś w odkrywaniu zasobów, powinieneś przeprowadzić podstawowe skanowanie podatności (korzystając z Nessusa lub OpenVAS) oraz skan portów za pomocą nmap/masscan/shodan. W zależności od tego, jakie usługi są uruchomione, możesz znaleźć w tej książce kilka sztuczek do "atakowania" ich.
Zauważ, że czasami domena jest hostowana wewnątrz adresu IP, który nie jest kontrolowany przez klienta, więc nie jest to w zakresie, bądź ostrożny.
Wskazówka dotycząca bug bounty: Zarejestruj się na platformie Intigriti, premium platformie bug bounty stworzonej przez hakerów, dla hakerów! Dołącz do nas na https://go.intigriti.com/hacktricks już dziś i zacznij zarabiać nagrody aż do $100,000!
{% embed url="https://go.intigriti.com/hacktricks" %}
Subdomeny
Znamy wszystkie firmy w zakresie, wszystkie zasoby każdej firmy i wszystkie domeny związane z firmami.
Nadszedł czas, aby znaleźć wszystkie możliwe subdomeny każdej znalezionej domeny.
{% hint style="success" %} Zauważ, że niektóre z narzędzi i technik do znajdowania domen mogą również pomóc w znalezieniu subdomen! {% endhint %}
DNS
Spróbujmy uzyskać subdomeny z rekordów DNS. Powinniśmy również spróbować Transferu Strefy (jeśli jest podatny, powinieneś to zgłosić).
dnsrecon -a -d tesla.com
OSINT
Najszybszym sposobem na uzyskanie dużej liczby subdomen jest wyszukiwanie w zewnętrznych źródłach. Najczęściej używane narzędzia to:
# 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"
Istnieją inne interesujące narzędzia/API, które mogą być przydatne do znalezienia subdomen, takie jak:
- Crobat: Korzysta z interfejsu API https://sonar.omnisint.io do uzyskiwania subdomen
# 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 darmowe 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: pobiera znane adresy URL z AlienVault's Open Threat Exchange, Wayback Machine i Common Crawl dla dowolnej domeny.
# Get subdomains from GAUs found URLs
gau --subs tesla.com | cut -d "/" -f 3 | sort -u
- SubDomainizer & subscraper: Przeszukują internet w poszukiwaniu plików JS i wydobywają z nich subdomeny.
# 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 udostępnia darmowe API do wyszukiwania subdomen oraz historii adresów IP
- chaos.projectdiscovery.io
Ten projekt oferuje darmowo wszystkie subdomeny związane z programami bug bounty. Możesz uzyskać dostęp do tych danych również za pomocą chaospy lub uzyskać dostęp do zakresu używanego przez ten projekt https://github.com/projectdiscovery/chaos-public-program-list
Możesz znaleźć porównanie wielu z tych narzędzi tutaj: https://blog.blacklanternsecurity.com/p/subdomain-enumeration-tool-face-off
Atak brutalnej siły DNS
Spróbujmy znaleźć nowe subdomeny za pomocą ataku brutalnej siły na serwery DNS, używając możliwych nazw subdomen.
Do tego działania będziesz potrzebować kilku popularnych list słów dla subdomen, takich jak:
- 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
A także adresy IP dobrych resolverów DNS. Aby wygenerować listę zaufanych resolverów DNS, możesz pobrać resolverów z https://public-dns.info/nameservers-all.txt i użyć dnsvalidator do ich filtrowania. Lub możesz użyć: https://raw.githubusercontent.com/trickest/resolvers/main/resolvers-trusted.txt
Najbardziej polecane narzędzia do ataku brutalnej siły DNS to:
- massdns: To było pierwsze narzędzie, które przeprowadziło skuteczny atak brutalnej siły DNS. Jest bardzo szybkie, ale podatne na fałszywe wyniki dodatnie.
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: Myślę, że ten używa tylko 1 resolver'a
gobuster dns -d mysite.com -t 50 -w subdomains.txt
- shuffledns jest opakowaniem wokół
massdns
, napisanym w języku go, które pozwala na wyliczenie prawidłowych subdomen za pomocą aktywnego brutalnego ataku, a także rozwiązywanie subdomen z obsługą symboli wieloznacznych i łatwym wsparciem wejścia-wyjścia.
shuffledns -d example.com -list example-subdomains.txt -r resolvers.txt
- puredns: Wykorzystuje również
massdns
.
puredns bruteforce all.txt domain.com
- aiodnsbrute używa asyncio do asynchronicznego brutalnego testowania nazw domen.
aiodnsbrute -r resolvers -w wordlist.txt -vv -t 1024 domain.com
Druga runda brutalnej siły DNS
Po znalezieniu subdomen przy użyciu otwartych źródeł i brutalnej siły, można wygenerować zmiany znalezionych subdomen, aby spróbować znaleźć jeszcze więcej. Kilka narzędzi jest przydatnych do tego celu:
- dnsgen: Dla podanych domen i subdomen generuje permutacje.
cat subdomains.txt | dnsgen -
- goaltdns: Dla podanych domen i subdomen generuje permutacje.
- Możesz pobrać listę permutacji wordlist dla goaltdns tutaj.
goaltdns -l subdomains.txt -w /tmp/words-permutations.txt -o /tmp/final-words-s3.txt
- gotator: Dla podanych domen i subdomen generuje permutacje. Jeśli nie zostanie wskazany plik permutacji, gotator użyje własnego.
gotator -sub subdomains.txt -silent [-perm /tmp/words-permutations.txt]
- altdns: Oprócz generowania permutacji subdomen, może również próbować je rozwiązać (ale lepiej jest użyć wcześniej skomentowanych narzędzi).
- Możesz pobrać listę permutacji słów dla altdns tutaj.
altdns -i subdomains.txt -w /tmp/words-permutations.txt -o /tmp/asd3
- dmut: Kolejne narzędzie do wykonywania permutacji, mutacji i zmian poddomen. To narzędzie będzie próbować siłowo wynik (nie obsługuje dzikich kart DNS).
- Możesz pobrać listę słów permutacji dmut tutaj.
cat subdomains.txt | dmut -d /tmp/words-permutations.txt -w 100 \
--dns-errorLimit 10 --use-pb --verbose -s /tmp/resolvers-trusted.txt
- alterx: Na podstawie domeny generuje nowe potencjalne nazwy subdomen na podstawie określonych wzorców, aby odkryć więcej subdomen.
Inteligentna generacja permutacji
- regulator: Aby uzyskać więcej informacji, przeczytaj ten post, ale w skrócie pobierze główne części z odkrytych subdomen i połączy je, aby znaleźć więcej subdomen.
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 to fuzzer siły brutalnej subdomen połączony z niezwykle prostym, ale skutecznym algorytmem prowadzonym przez odpowiedź DNS. Wykorzystuje dostarczony zestaw danych wejściowych, takich jak dostosowana lista słów lub historyczne rekordy DNS/TLS, aby dokładnie syntetyzować więcej odpowiadających im nazw domen i rozwijać je jeszcze bardziej w pętli na podstawie informacji zebranych podczas skanowania DNS.
echo www | subzuf facebook.com
Workflow Odkrywania Subdomen
Sprawdź ten wpis na blogu, który napisałem na temat automatyzacji odkrywania subdomen z domeny przy użyciu najtrudniejszych workflowów, dzięki czemu nie muszę ręcznie uruchamiać wielu narzędzi na swoim komputerze:
{% embed url="https://trickest.com/blog/full-subdomain-discovery-using-workflow/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/blog/full-subdomain-brute-force-discovery-using-workflow/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
VHosts / Hosty Wirtualne
Jeśli znalazłeś adres IP zawierający jedną lub kilka stron internetowych należących do subdomen, możesz spróbować znaleźć inne subdomeny z witrynami na tym IP, szukając w źródłach OSINT domen na danym IP lub próbując siłowo nazwy domen VHost na tym IP.
OSINT
Możesz znaleźć niektóre Hosty Wirtualne w IP za pomocą HostHunter lub innych interfejsów API.
Atak Siłowy
Jeśli podejrzewasz, że pewna subdomena może być ukryta na serwerze sieciowym, możesz spróbować ją siłowo odszukać:
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" %} Z tą techniką możesz nawet uzyskać dostęp do wewnętrznych/ukrytych punktów końcowych. {% endhint %}
CORS Brute Force
Czasami znajdziesz strony, które zwracają nagłówek Access-Control-Allow-Origin tylko wtedy, gdy prawidłowa domena/poddomena jest ustawiona w nagłówku Origin. W tych scenariuszach możesz wykorzystać to zachowanie do odkrywania nowych 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
Atak siłowy na kubełki
Podczas poszukiwania poddomen zwróć uwagę, czy nie wskazują one na jakikolwiek rodzaj kubełka, a w takim przypadku sprawdź uprawnienia.
Ponadto, w tym momencie będąc już zaznajomionym ze wszystkimi domenami w zakresie, spróbuj przeprowadzić atak siłowy na możliwe nazwy kubełków i sprawdź uprawnienia.
Monitorowanie
Możesz monitorować tworzenie się nowych poddomen domeny, monitorując logi Transparentności Certyfikatów sublert .
Poszukiwanie podatności
Sprawdź możliwe przejęcia poddomen.
Jeśli poddomena wskazuje na jakiś kubełek S3, sprawdź uprawnienia.
Jeśli znajdziesz jakąkolwiek poddomenę z innym adresem IP niż te, które już znalazłeś podczas odkrywania zasobów, powinieneś przeprowadzić podstawowe skanowanie podatności (używając Nessusa lub OpenVAS) oraz skan portów przy użyciu nmap/masscan/shodan. W zależności od tego, jakie usługi są uruchomione, możesz znaleźć w tej książce kilka sztuczek do ich "atakowania".
Zauważ, że czasami poddomena jest hostowana wewnątrz adresu IP, który nie jest kontrolowany przez klienta, więc nie jest w zakresie, bądź ostrożny.
Adresy IP
W początkowych krokach możesz znaleźć pewne zakresy IP, domeny i poddomeny.
Nadszedł czas, aby zbierać wszystkie adresy IP z tych zakresów oraz dla domen/poddomen (zapytania DNS).
Korzystając z usług poniższych darmowych interfejsów API, możesz również znaleźć poprzednie adresy IP używane przez domeny i poddomeny. Te adresy IP mogą nadal należeć do klienta (i mogą pozwolić Ci na znalezienie obejść CloudFlare)
Możesz również sprawdzić domeny wskazujące na określony adres IP za pomocą narzędzia hakip2host
Poszukiwanie podatności
Skanuj porty wszystkich adresów IP, które nie należą do CDN (ponieważ prawdopodobnie nie znajdziesz tam nic interesującego). W odkrytych uruchomionych usługach możesz znaleźć podatności.
Znajdź przewodnik tutaj o tym, jak skanować hosty.
Polowanie na serwery WWW
Znaleźliśmy wszystkie firmy i ich zasoby, znamy zakresy IP, domeny i poddomeny w zakresie. Czas poszukać serwerów WWW.
W poprzednich krokach prawdopodobnie już przeprowadziłeś pewne rozpoznanie odkrytych adresów IP i domen, więc możesz już znaleźć wszystkie możliwe serwery WWW. Jeśli jednak nie, teraz zobaczymy kilka szybkich sztuczek do wyszukiwania serwerów WWW w zakresie.
Należy zauważyć, że będzie to zorientowane na odkrywanie aplikacji internetowych, dlatego powinieneś również przeprowadzić skanowanie podatności i portów również (jeśli zezwala na to zakres).
Szybka metoda odkrywania otwartych portów związanych z serwerami WWW za pomocą masscan można znaleźć tutaj.
Innym przyjaznym narzędziem do poszukiwania serwerów WWW jest httprobe, fprobe i httpx. Wystarczy przekazać listę domen, a narzędzie spróbuje połączyć się z portem 80 (http) i 443 (https). Dodatkowo można wskazać próbę połączenia z innymi portami:
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
Zrzuty ekranu
Teraz, gdy odkryłeś wszystkie serwery sieciowe obecne w zakresie (wśród adresów IP firmy oraz wszystkich domen i poddomen), prawdopodobnie nie wiesz, od czego zacząć. Dlatego zróbmy to prosto i zacznijmy od zrobienia zrzutów ekranu wszystkich z nich. Już tylko spojrzenie na stronę główną może ujawnić dziwne punkty końcowe, które są bardziej podatne na zagrożenia.
Aby wykonać proponowany pomysł, możesz użyć EyeWitness, HttpScreenshot, Aquatone, Shutter lub webscreenshot.
Ponadto, możesz użyć eyeballer, aby przejrzeć wszystkie zrzuty ekranu i powiedzieć Ci, co najprawdopodobniej zawiera podatności, a co nie.
Zasoby w Chmurze Publicznej
Aby znaleźć potencjalne zasoby w chmurze należące do firmy, powinieneś zaczynać od listy słów kluczowych identyfikujących tę firmę. Na przykład, dla firmy kryptowalutowej możesz użyć słów takich jak: "crypto", "wallet", "dao", "<nazwa_domeny>", <"nazwy_poddomen">
.
Będziesz także potrzebował list słów często używanych w kubełkach:
- 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
Następnie, z tymi słowami powinieneś generować permutacje (sprawdź Drugą Rundę Ataku Brute-Force DNS po więcej informacji).
Z uzyskanych list słów możesz użyć narzędzi takich jak cloud_enum, CloudScraper, cloudlist lub S3Scanner.
Pamiętaj, że szukając Zasobów w Chmurze powinieneś szukać czegoś więcej niż tylko kubełków w AWS.
Szukanie podatności
Jeśli znajdziesz rzeczy takie jak otwarte kubełki lub funkcje chmurowe wystawione, powinieneś uzyskać do nich dostęp i spróbować zobaczyć, co oferują i czy można je nadużyć.
Emaile
Dzięki domenom i poddomenom w zakresie masz praktycznie wszystko, czego potrzebujesz do rozpoczęcia poszukiwań adresów e-mail. Oto API i narzędzia, które najlepiej sprawdziły się dla mnie w poszukiwaniu adresów e-mail firmy:
- theHarvester - z użyciem API
- API https://hunter.io/ (wersja darmowa)
- API https://app.snov.io/ (wersja darmowa)
- API https://minelead.io/ (wersja darmowa)
Szukanie podatności
Emaile przydadzą się później do brute-force'owania logowań na stronach internetowych i usługach uwierzytelniania (takich jak SSH). Są również potrzebne do phishingu. Ponadto te API dostarczą Ci jeszcze więcej informacji o osobie za adresem e-mail, co jest przydatne dla kampanii phishingowej.
Wycieki Danych Logowania
Dzięki domenom, poddomenom i emailom możesz zacząć szukać wycieków danych logowania z przeszłości należących do tych emaili:
Szukanie podatności
Jeśli znajdziesz ważne wycieki danych logowania, to bardzo łatwe zwycięstwo.
Wycieki Sekretów
Wycieki danych logowania są związane z atakami na firmy, w których wyciekły i zostały sprzedane poufne informacje. Jednak firmy mogą być dotknięte również przez inne wycieki, których informacje nie znajdują się w tych bazach danych:
Wycieki z Githuba
Dane logowania i API mogą wyciec z publicznych repozytoriów firmy lub użytkowników pracujących w tej firmie na Githubie.
Możesz użyć narzędzia Leakos, aby pobrać wszystkie publiczne repozytoria organizacji i jej deweloperów i automatycznie uruchomić gitleaks na nich.
Leakos może być również używany do uruchomienia gitleaks na wszystkich tekstach dostarczonych URL-ów przekazanych do niego, ponieważ czasami strony internetowe również zawierają sekrety.
Dorki Githuba
Sprawdź także tę stronę w poszukiwaniu potencjalnych dorków Githuba, których również możesz szukać w atakowanej organizacji:
{% content-ref url="github-leaked-secrets.md" %} github-leaked-secrets.md {% endcontent-ref %}
Wycieki wklejek
Czasami atakujący lub po prostu pracownicy publikują treści firmy na stronach do wklejania. Mogą one zawierać informacje poufne lub nie, ale warto je przeszukać.
Możesz użyć narzędzia Pastos, aby jednocześnie przeszukać ponad 80 stron do wklejania.
Dorki Google
Stare, ale złote dorki Google zawsze są przydatne do znalezienia ujawnionych informacji, które tam nie powinny być. Jedynym problemem jest to, że baza danych google-hacking zawiera kilka tysięcy możliwych zapytań, których nie można uruchomić ręcznie. Dlatego możesz wybrać swoje ulubione 10 lub skorzystać z narzędzia takiego jak Gorks do ich uruchomienia wszystkich.
Zauważ, że narzędzia, które oczekują uruchomienia całej bazy danych za pomocą zwykłej przeglądarki Google, nigdy się nie zakończą, ponieważ Google bardzo szybko Cię zablokuje.
Szukanie podatności
Jeśli znajdziesz ważne wycieki danych logowania lub tokenów API, to bardzo łatwe zwycięstwo.
Publiczne Podatności Kodu
Jeśli odkryłeś, że firma ma kod open-source, możesz go analizować i szukać na nim podatności.
W zależności od języka są różne narzędzia, których możesz użyć:
{% content-ref url="../../network-services-pentesting/pentesting-web/code-review-tools.md" %} code-review-tools.md {% endcontent-ref %}
Istnieją również bezpłatne usługi, które pozwalają skanować publiczne repozytoria, takie jak:
Metodologia testowania aplikacji internetowych
Większość podatności znajdowanych przez łowców błędów znajduje się w aplikacjach internetowych, dlatego chciałbym teraz omówić metodologię testowania aplikacji internetowych, którą można znaleźć tutaj.
Chciałbym również wspomnieć o sekcji Otwarte narzędzia skanujące automatycznie strony internetowe, ponieważ, chociaż nie powinieneś oczekiwać, że znajdą one bardzo wrażliwe podatności, są przydatne do implementacji w przepływach pracy w celu uzyskania początkowych informacji o stronie internetowej.
Podsumowanie
Gratulacje! W tym momencie już przeprowadziłeś wszystkie podstawowe etapy wyliczania. Tak, są to podstawowe etapy, ponieważ można wykonać znacznie więcej etapów wyliczania (zobaczymy więcej sztuczek później).
Więc już:
- Znalazłeś wszystkie firmy w zakresie
- Znalazłeś wszystkie zasoby należące do firm (i przeprowadziłeś skanowanie podatności, jeśli jest w zakresie)
- Znalazłeś wszystkie domeny należące do firm
- Znalazłeś wszystkie poddomeny domen (jakiekolwiek przejęcie poddomeny?)
- Znalazłeś wszystkie adresy IP (z i bez CDN) w zakresie.
- Znalazłeś wszystkie serwery internetowe i wykonałeś zrzut ekranu z nich (czy coś dziwnego warte głębszego zbadania?)
- Znalazłeś wszystkie potencjalne zasoby w chmurze publicznej należące do firmy.
- Emaile, wycieki poświadczeń i wycieki tajemnic, które mogą dać ci duże zwycięstwo bardzo łatwo.
- Testowanie penetracyjne wszystkich stron internetowych, które znalazłeś
Pełne narzędzia automatyczne do wywiadu
Istnieje wiele narzędzi, które wykonają część proponowanych działań w określonym zakresie.
- https://github.com/yogeshojha/rengine
- https://github.com/j3ssie/Osmedeus
- https://github.com/six2dez/reconftw
- https://github.com/hackerspider1/EchoPwn - Trochę przestarzałe i nieaktualizowane
Referencje
- Wszystkie darmowe kursy od @Jhaddix takie jak Metodologia Łowcy Błędów v4.0 - Edycja Wywiadowcza
Jeśli interesuje Cię kariera w dziedzinie hakowania i hakowanie niemożliwych do zhakowania - rekrutujemy! (wymagana biegła znajomość języka polskiego w mowie i piśmie).
{% embed url="https://www.stmcyber.com/careers" %}
Dowiedz się, jak hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!
Inne sposoby wsparcia HackTricks:
- Jeśli chcesz zobaczyć swoją firmę reklamowaną w HackTricks lub pobrać HackTricks w formacie PDF, sprawdź PLANY SUBSKRYPCYJNE!
- Zdobądź oficjalne gadżety PEASS & HackTricks
- Odkryj Rodzinę PEASS, naszą kolekcję ekskluzywnych NFT
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do HackTricks i HackTricks Cloud github repos.