Dış Recon Metodolojisi
Reading time: 27 minutes
tip
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
Azure Hacking'i öğrenin ve pratik yapın:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- 💬 Discord grubuna veya telegram grubuna katılın ya da Twitter'da bizi takip edin 🐦 @hacktricks_live.**
- Hacking ipuçlarını paylaşmak için HackTricks ve HackTricks Cloud github reposuna PR gönderin.
Varlık keşifleri
Yani, bir şirkete ait her şeyin kapsamda olduğu söylendi ve bu şirketin aslında neye sahip olduğunu anlamak istiyorsunuz.
Bu aşamanın amacı, ana şirket tarafından sahip olunan tüm şirketleri ve ardından bu şirketlerin varlıklarını elde etmektir. Bunu yapmak için:
- Ana şirketin satın almalarını bulmak, bu bize kapsam içindeki şirketleri verecektir.
- Her şirketin ASN'sini (varsa) bulmak, bu bize her şirketin sahip olduğu IP aralıklarını verecektir.
- İlkine bağlı diğer girişleri (organizasyon isimleri, alan adları...) aramak için ters whois sorgulamaları kullanmak (bu yinelemeli olarak yapılabilir).
- Diğer varlıkları aramak için shodan
org
vessl
filtreleri gibi diğer teknikleri kullanmak (bussl
hilesi yinelemeli olarak yapılabilir).
Satın Almalar
Öncelikle, ana şirket tarafından sahip olunan diğer şirketlerin hangileri olduğunu bilmemiz gerekiyor.
Bir seçenek, https://www.crunchbase.com/ adresini ziyaret etmek, ana şirketi arama yapmak ve "satın almalar" sekmesine tıklamak. Orada ana şirket tarafından edinilen diğer şirketleri göreceksiniz.
Diğer bir seçenek, ana şirketin Wikipedia sayfasını ziyaret etmek ve satın almaları aramaktır.
Tamam, bu noktada kapsam içindeki tüm şirketleri bilmelisiniz. Şimdi varlıklarını nasıl bulacağımıza bakalım.
ASNs
Otonom sistem numarası (ASN), Internet Assigned Numbers Authority (IANA) tarafından bir otonom sisteme (AS) atanan benzersiz bir numaradır.
Bir AS, dış ağlara erişim için belirgin bir politikaya sahip olan ve tek bir organizasyon tarafından yönetilen IP adresleri blokları içerir, ancak birden fazla operatörden oluşabilir.
Şirketin herhangi bir ASN atayıp atamadığını bulmak ve IP aralıklarını öğrenmek ilginçtir. Kapsam içindeki tüm hostlar üzerinde bir zafiyet testi gerçekleştirmek ve bu IP'ler içinde alan adlarını aramak ilginç olacaktır.
Şirket adı, IP veya alan adı ile https://bgp.he.net/** adresinde arama yapabilirsiniz.
Şirketin bulunduğu bölgeye bağlı olarak bu bağlantılar daha fazla veri toplamak için faydalı olabilir: AFRINIC (Afrika), Arin(Kuzey Amerika), APNIC (Asya), LACNIC (Latin Amerika), RIPE NCC (Avrupa). Her neyse, muhtemelen tüm faydalı bilgiler (IP aralıkları ve Whois) zaten ilk bağlantıda görünmektedir.
#You can try "automate" this with amass, but it's not very recommended
amass intel -org tesla
amass intel -asn 8911,50313,394161
Ayrıca, BBOT'nin alt alan adlarını belirleme işlemi, taramanın sonunda ASN'leri otomatik olarak toplar ve özetler.
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: +----------+---------------------+--------------+----------------+----------------------------+-----------+
You can find the IP ranges of an organisation also using http://asnlookup.com/ (ücretsiz API'si var).
You can find the IP and ASN of a domain using http://ipv4info.com/.
Zafiyetleri Aramak
Bu noktada kapsam içindeki tüm varlıkları biliyoruz, bu yüzden izin verilirse tüm hostlar üzerinde bazı zafiyet tarayıcıları (Nessus, OpenVAS) başlatabilirsiniz.
Ayrıca, bazı port taramaları başlatabilir veya shodan gibi hizmetleri kullanarak açık portları bulabilirsiniz ve bulduklarınıza bağlı olarak bu kitapta çeşitli hizmetleri nasıl pentest edeceğinize bakmalısınız.
Ayrıca, bazı varsayılan kullanıcı adı ve şifre listeleri hazırlamanın da faydalı olabileceğini ve https://github.com/x90skysn3k/brutespray ile hizmetleri** brute force denemesi yapabileceğinizi belirtmek gerekir.
Alan Adları
Kapsam içindeki tüm şirketleri ve varlıklarını biliyoruz, şimdi kapsam içindeki alan adlarını bulma zamanı.
Lütfen, aşağıda önerilen tekniklerde alt alan adlarını da bulabileceğinizi ve bu bilginin küçümsenmemesi gerektiğini unutmayın.
Öncelikle her şirketin ana alan(lar)ını aramalısınız. Örneğin, Tesla Inc. için tesla.com olacaktır.
Ters DNS
Alan adlarının tüm IP aralıklarını bulduğunuzda, bu IP'ler üzerinde daha fazla alan bulmak için ters dns sorgulamaları yapmayı deneyebilirsiniz. Kurbanın bazı dns sunucularını veya bazı tanınmış dns sunucularını (1.1.1.1, 8.8.8.8) kullanmaya çalışın.
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
For this to work, the administrator has to enable manually the PTR.
You can also use a online tool for this info: http://ptrarchive.com/
Ters Whois (loop)
Inside a whois you can find a lot of interesting bilgiler like organizasyon adı, adres, e-postalar, telefon numaraları... Ama daha da ilginç olanı, bu alanlardan herhangi biriyle ters whois sorguları yaparsanız, şirkete ait daha fazla varlık bulabilirsiniz (örneğin, aynı e-postanın göründüğü diğer whois kayıtları).
You can use online tools like:
- https://viewdns.info/reversewhois/ - Ücretsiz
- https://domaineye.com/reverse-whois - Ücretsiz
- https://www.reversewhois.io/ - Ücretsiz
- https://www.whoxy.com/ - Ücretsiz web, ücretsiz olmayan API.
- http://reversewhois.domaintools.com/ - Ücretsiz değil
- https://drs.whoisxmlapi.com/reverse-whois-search - Ücretsiz Değil (sadece 100 ücretsiz arama)
- https://www.domainiq.com/ - Ücretsiz Değil
You can automate this task using DomLink (requires a whoxy API key).
You can also perform some automatic reverse whois discovery with amass: amass intel -d tesla.com -whois
Bu tekniği her yeni alan bulduğunuzda daha fazla alan adı keşfetmek için kullanabileceğinizi unutmayın.
İzleyiciler
If find the same ID of the same tracker in 2 different pages you can suppose that both pages are managed by the same team.
For example, if you see the same Google Analytics ID or the same Adsense ID on several pages.
There are some pages and tools that let you search by these trackers and more:
Favicon
Did you know that we can find related domains and sub domains to our target by looking for the same favicon icon hash? This is exactly what favihash.py tool made by @m4ll0k2 does. Here’s how to use it:
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
Kısaca, favihash, hedefimizle aynı favicon simgesi hash'ine sahip alan adlarını keşfetmemizi sağlar.
Ayrıca, favicon hash'ini kullanarak teknolojileri arayabilirsiniz, bu blog yazısında açıklandığı gibi. Yani, eğer bir web teknolojisinin savunmasız bir sürümünün favicon'unun hash'ini biliyorsanız, shodan'da arama yapabilir ve daha fazla savunmasız yer bulabilirsiniz:
shodan search org:"Target" http.favicon.hash:116323821 --fields ip_str,port --separator " " | awk '{print $1":"$2}'
Bu, bir web'in favicon hash'ini hesaplama şeklidir:
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
Farklı web siteleri arasında paylaşılabilecek dizgileri arayın. Telif hakkı dizgisi iyi bir örnek olabilir. Ardından bu dizgiyi google, diğer tarayıcılarda veya hatta shodan'da arayın: shodan search http.html:"Copyright string"
CRT Time
Bir cron job'a sahip olmak yaygındır.
# /etc/crontab
37 13 */10 * * certbot renew --post-hook "systemctl reload nginx"
sunucudaki tüm alan adı sertifikalarını yenilemek. Bu, bu işlem için kullanılan CA'nın geçerlilik süresinde oluşturulma zamanını ayarlamasa bile, sertifika şeffaflık günlüklerinde aynı şirkete ait alan adlarını bulmanın mümkün olduğu anlamına gelir.
Daha fazla bilgi için bu yazıya göz atın.
Mail DMARC bilgileri
Aynı dmarc bilgilerini paylaşan alan adlarını ve alt alan adlarını bulmak için https://dmarc.live/info/google.com gibi bir web sitesi veya https://github.com/Tedixx/dmarc-subdomains gibi bir araç kullanabilirsiniz.
Pasif Ele Geçirme
Görünüşe göre, insanların alt alan adlarını bulut sağlayıcılarına ait IP'lere ataması ve bir noktada o IP adresini kaybetmesi ama DNS kaydını silmeyi unutmaları yaygındır. Bu nedenle, sadece bir bulutta (örneğin Digital Ocean) bir VM oluşturmak, aslında bazı alt alan adlarını ele geçirmek anlamına gelir.
Bu yazı bununla ilgili bir hikaye anlatıyor ve DigitalOcean'da bir VM oluşturan, yeni makinenin IPv4'ünü alan ve buna işaret eden alt alan adı kayıtlarını Virustotal'da arayan bir script öneriyor.
Diğer yollar
Yeni bir alan adı bulduğunuzda daha fazla alan adı keşfetmek için bu tekniği kullanabileceğinizi unutmayın.
Shodan
IP alanına sahip olan kuruluşun adını zaten bildiğiniz için, bu veriyi shodan'da aramak için: org:"Tesla, Inc."
kullanabilirsiniz. TLS sertifikasındaki yeni beklenmedik alan adları için bulunan hostları kontrol edin.
Ana web sayfasının TLS sertifikasına erişebilir, Kuruluş adını alabilir ve ardından shodan tarafından bilinen tüm web sayfalarının TLS sertifikaları içinde o adı arayabilirsiniz. Filtre: ssl:"Tesla Motors"
veya sslsearch gibi bir araç kullanabilirsiniz.
Assetfinder
Assetfinder, ana bir alan adı ile ilişkili alan adlarını ve bunların alt alan adlarını arayan bir araçtır, oldukça etkileyici.
Zafiyetleri Aramak
Bazı alan adı ele geçirme durumlarını kontrol edin. Belki bir şirket bir alan adı kullanıyor ama sahipliğini kaybetmiştir. Sadece kaydedin (eğer yeterince ucuzsa) ve şirkete bildirin.
Eğer bulduğunuz varlık keşfinde zaten bulduğunuz IP'lerden farklı bir IP'ye sahip herhangi bir alan adı bulursanız, temel bir zafiyet taraması (Nessus veya OpenVAS kullanarak) ve bazı port taramaları ile nmap/masscan/shodan yapmalısınız. Hangi hizmetlerin çalıştığına bağlı olarak, bu kitapta "onlara saldırmak" için bazı ipuçları bulabilirsiniz.
Domain'in, müşterinin kontrolünde olmayan bir IP içinde barındırıldığını ve bu nedenle kapsamda olmadığını unutmayın, dikkatli olun.
Alt Alan Adları
Kapsam içindeki tüm şirketleri, her şirketin tüm varlıklarını ve şirketlerle ilgili tüm alan adlarını biliyoruz.
Bulunan her alan adının tüm olası alt alan adlarını bulma zamanı.
tip
Alan adlarını bulmak için bazı araçların ve tekniklerin alt alan adlarını bulmaya da yardımcı olabileceğini unutmayın.
DNS
DNS kayıtlarından alt alan adlarını almaya çalışalım. Ayrıca Bölge Transferi için de denemeliyiz (Eğer savunmasızsa, bunu bildirmelisiniz).
dnsrecon -a -d tesla.com
OSINT
Birçok alt alan adı elde etmenin en hızlı yolu, dış kaynaklarda arama yapmaktır. En çok kullanılan tools şunlardır (daha iyi sonuçlar için API anahtarlarını yapılandırın):
# 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"
Diğer ilginç araçlar/API'ler doğrudan alt alan adlarını bulmak için özel olmasalar da alt alan adlarını bulmak için faydalı olabilir, örneğin:
- Crobat: Alt alan adlarını elde etmek için https://sonar.omnisint.io API'sini kullanır.
# 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 ücretsiz 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: Verilen bir alan adı için AlienVault'un Açık Tehdit Değişimi, Wayback Machine ve Common Crawl'dan bilinen URL'leri alır.
# Get subdomains from GAUs found URLs
gau --subs tesla.com | cut -d "/" -f 3 | sort -u
- SubDomainizer & subscraper: Web'de JS dosyalarını ararlar ve buradan alt alan adlarını çıkarırlar.
# 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 alt alanlar ve IP geçmişi aramak için ücretsiz bir API sunmaktadır.
- chaos.projectdiscovery.io
Bu proje, bug-bounty programlarıyla ilgili tüm alt alanları ücretsiz olarak sunmaktadır. Bu verilere ayrıca chaospy kullanarak veya bu projenin kullandığı kapsamı https://github.com/projectdiscovery/chaos-public-program-list erişerek ulaşabilirsiniz.
Bu araçların birçokunun karşılaştırmasını burada bulabilirsiniz: https://blog.blacklanternsecurity.com/p/subdomain-enumeration-tool-face-off
DNS Brute force
Yeni alt alanları bulmak için DNS sunucularını olası alt alan adları ile brute-force yapmayı deneyelim.
Bu işlem için bazı yaygın alt alan kelime listelerine ihtiyacınız olacak:
- 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
Ayrıca iyi DNS çözümleyicilerin IP'lerine de ihtiyacınız var. Güvenilir DNS çözümleyicilerin bir listesini oluşturmak için https://public-dns.info/nameservers-all.txt adresinden çözümleyicileri indirebilir ve bunları filtrelemek için dnsvalidator kullanabilirsiniz. Ya da şunu kullanabilirsiniz: https://raw.githubusercontent.com/trickest/resolvers/main/resolvers-trusted.txt
DNS brute-force için en çok önerilen araçlar şunlardır:
- massdns: Bu, etkili bir DNS brute-force gerçekleştiren ilk araçtır. Çok hızlıdır ancak yanlış pozitiflere eğilimlidir.
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: Bence bu sadece 1 çözümleyici kullanıyor.
gobuster dns -d mysite.com -t 50 -w subdomains.txt
- shuffledns,
massdns
etrafında yazılmış bir go wrapper'ıdır ve aktif brute force kullanarak geçerli alt alan adlarını listelemenizi sağlar, ayrıca alt alan adlarını wildcard yönetimi ile çözümleyebilir ve kolay girdi-çıktı desteği sunar.
shuffledns -d example.com -list example-subdomains.txt -r resolvers.txt
- puredns: Ayrıca
massdns
kullanır.
puredns bruteforce all.txt domain.com
- aiodnsbrute alan adlarını asenkron olarak zorlamak için asyncio kullanır.
aiodnsbrute -r resolvers -w wordlist.txt -vv -t 1024 domain.com
İkinci DNS Kaba Kuvvet Turu
Açık kaynaklar ve kaba kuvvet kullanarak alt alan adlarını bulduktan sonra, bulunan alt alan adlarının varyasyonlarını oluşturarak daha fazlasını bulmayı deneyebilirsiniz. Bu amaç için birkaç araç faydalıdır:
- dnsgen: Alan adları ve alt alan adları verildiğinde permütasyonlar oluşturur.
cat subdomains.txt | dnsgen -
- goaltdns: Verilen alan adları ve alt alan adları için permutasyonlar oluşturur.
- goaltdns permutasyonlarını wordlist olarak buradan alabilirsiniz here.
goaltdns -l subdomains.txt -w /tmp/words-permutations.txt -o /tmp/final-words-s3.txt
- gotator: Verilen alan adları ve alt alan adları için permutasyonlar oluşturur. Eğer permutasyon dosyası belirtilmemişse, gotator kendi dosyasını kullanacaktır.
gotator -sub subdomains.txt -silent [-perm /tmp/words-permutations.txt]
- altdns: Alt alan adlarının permütasyonlarını oluşturmanın yanı sıra, bunları çözmeye de çalışabilir (ancak daha önce bahsedilen araçları kullanmak daha iyidir).
- altdns permütasyonlarını wordlist burada burada bulabilirsiniz.
altdns -i subdomains.txt -w /tmp/words-permutations.txt -o /tmp/asd3
- dmut: Alt alanların permütasyonlarını, mutasyonlarını ve değişikliklerini gerçekleştirmek için başka bir araç. Bu araç sonucu brute force ile elde edecektir (dns wild card'ı desteklemez).
- dmut permütasyonları kelime listesini buradan alabilirsiniz.
cat subdomains.txt | dmut -d /tmp/words-permutations.txt -w 100 \
--dns-errorLimit 10 --use-pb --verbose -s /tmp/resolvers-trusted.txt
- alterx: Belirtilen kalıplara dayanarak bir alan adı üzerinden yeni potansiyel alt alan adı isimleri üretir ve daha fazla alt alan adı keşfetmeye çalışır.
Akıllı permütasyonlar üretimi
- regulator: Daha fazla bilgi için bu gönderiyi okuyun, ancak temelde keşfedilen alt alan adlarının ana parçalarını alacak ve daha fazla alt alan adı bulmak için bunları karıştıracaktır.
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, bir alt alan brute-force fuzzer'dır ve son derece basit ama etkili bir DNS yanıt rehberli algoritma ile birleştirilmiştir. Sağlanan bir girdi veri setini, özel bir kelime listesi veya tarihsel DNS/TLS kayıtları gibi, kullanarak daha fazla ilgili alan adı sentezlemek ve bunları DNS taraması sırasında toplanan bilgilere dayalı olarak bir döngüde daha da genişletmek için kullanır.
echo www | subzuf facebook.com
Alt Alan Keşif İş Akışı
Bir alan adından alt alan keşfini otomatikleştirme hakkında yazdığım bu blog yazısını kontrol edin, böylece bilgisayarımda bir dizi aracı manuel olarak başlatmam gerekmiyor:
https://trickest.com/blog/full-subdomain-discovery-using-workflow/
https://trickest.com/blog/full-subdomain-brute-force-discovery-using-workflow/
VHosts / Sanal Ana Bilgiler
Eğer bir IP adresinde bir veya birkaç web sayfası bulduysanız, o IP'deki diğer alt alanları bulmaya çalışabilirsiniz. Bunun için OSINT kaynaklarında bir IP'deki alan adlarını arayabilir veya o IP'deki VHost alan adlarını brute-force yapabilirsiniz.
OSINT
Bazı VHosts'ları IP'lerde bulmak için HostHunter veya diğer API'leri kullanabilirsiniz.
Brute Force
Eğer bazı alt alanların bir web sunucusunda gizli olabileceğinden şüpheleniyorsanız, onu brute force yapmayı deneyebilirsiniz:
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
tip
Bu teknikle, dahili/gizli uç noktalara erişim sağlayabilirsiniz.
CORS Brute Force
Bazen, yalnızca geçerli bir alan/ad alanı Origin başlığında ayarlandığında Access-Control-Allow-Origin başlığını döndüren sayfalar bulabilirsiniz. Bu senaryolarda, bu davranışı keşfetmek için alt alan adları bulmak amacıyla kötüye kullanabilirsiniz.
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
Alt alanlar ararken, herhangi bir tür bucket'a işaret edip etmediğine dikkat edin ve bu durumda izinleri kontrol edin.
Ayrıca, bu noktada kapsam içindeki tüm alan adlarını bildiğiniz için, mümkün olan bucket isimlerini brute force yapmayı ve izinleri kontrol etmeyi deneyin.
Monitorization
Bir alan adının yeni alt alanları oluşturulup oluşturulmadığını Certificate Transparency Log'larını izleyerek izleyebilirsiniz sublert bunu yapar.
Vulnerabilities Arama
Mümkün olan alt alan ele geçirmelerini kontrol edin.
Eğer alt alan bir S3 bucket'a işaret ediyorsa, izinleri kontrol edin.
Eğer keşif sırasında bulduğunuz varlıklardan farklı bir IP'ye sahip herhangi bir alt alan bulursanız, temel bir güvenlik açığı taraması (Nessus veya OpenVAS kullanarak) ve bazı port taramaları nmap/masscan/shodan ile gerçekleştirmelisiniz. Hangi hizmetlerin çalıştığına bağlı olarak, bu kitapta "saldırmak" için bazı ipuçları bulabilirsiniz.
Dikkat edin ki bazen alt alan, müşterinin kontrolünde olmayan bir IP içinde barındırılmaktadır, bu nedenle kapsamda değildir, dikkatli olun.
IP'ler
Başlangıç adımlarında bazı IP aralıkları, alan adları ve alt alanlar bulmuş olabilirsiniz.
Artık bu aralıklardan tüm IP'leri toplama ve alan adları/alt alanlar (DNS sorguları) için toplama zamanı.
Aşağıdaki ücretsiz API'lerden hizmetler kullanarak, alan adları ve alt alanlar tarafından kullanılan önceki IP'leri de bulabilirsiniz. Bu IP'ler hala müşteri tarafından sahiplenilmiş olabilir (ve CloudFlare bypass'larını bulmanıza yardımcı olabilir).
Ayrıca, belirli bir IP adresine işaret eden alan adlarını kontrol etmek için hakip2host aracını kullanabilirsiniz.
Vulnerabilities Arama
CDN'lere ait olmayan tüm IP'leri port taraması yapın (çünkü burada ilginç bir şey bulma olasılığınız çok düşük). Keşfedilen çalışan hizmetlerde güvenlik açıkları bulma şansınız olabilir.
Host'ları tarama hakkında bir kılavuz bulun.
Web sunucuları avı
Tüm şirketleri ve varlıklarını bulduk ve kapsam içindeki IP aralıklarını, alan adlarını ve alt alanları biliyoruz. Artık web sunucularını arama zamanı.
Önceki adımlarda muhtemelen keşfedilen IP'ler ve alan adları üzerinde bazı keşifler yaptınız, bu nedenle mümkün olan tüm web sunucularını zaten bulmuş olabilirsiniz. Ancak, bulmadıysanız, şimdi kapsam içinde web sunucularını aramak için bazı hızlı ipuçlarını göreceğiz.
Lütfen, bunun web uygulamaları keşfine yönelik olacağını unutmayın, bu nedenle güvenlik açığı ve port taraması da yapmalısınız (kapsam tarafından izin veriliyorsa).
Web sunucularına ilişkin açık portları keşfetmek için masscan ile hızlı bir yöntem** burada bulunabilir.
Web sunucularını aramak için başka bir dost araç httprobe, fprobe ve httpxdir. Sadece bir alan adı listesi geçiyorsunuz ve port 80 (http) ve 443 (https) ile bağlantı kurmaya çalışıyor. Ayrıca, diğer portları denemesi için belirtebilirsiniz:
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
Ekran Görüntüleri
Artık kapsamda bulunan tüm web sunucularını (şirketin IP'leri ve tüm alan adları ve alt alan adları arasında) keşfettiğinize göre, muhtemelen nereden başlayacağınızı bilmiyorsunuz. Bu yüzden, basit tutalım ve hepsinin ekran görüntülerini almaya başlayalım. Ana sayfaya sadece bir göz atarak, daha savunmasız olma eğiliminde olan garip uç noktalar bulabilirsiniz.
Önerilen fikri gerçekleştirmek için EyeWitness, HttpScreenshot, Aquatone, Shutter, Gowitness veya webscreenshot'i kullanabilirsiniz.
Ayrıca, ardından eyeballer kullanarak tüm ekran görüntülerini inceleyebilir ve hangi alanların muhtemelen zafiyet içerebileceğini belirleyebilirsiniz.
Kamu Bulut Varlıkları
Bir şirkete ait potansiyel bulut varlıklarını bulmak için o şirketi tanımlayan anahtar kelimelerle bir listeye başlamalısınız. Örneğin, bir kripto şirketi için şu kelimeleri kullanabilirsiniz: "crypto", "wallet", "dao", "<domain_name>", <"subdomain_names">
.
Ayrıca, kova içinde kullanılan yaygın kelimelerin kelime listelerine de ihtiyacınız olacak:
- 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
Sonra, bu kelimelerle permutasyonlar oluşturmalısınız (daha fazla bilgi için İkinci Tur DNS Brute-Force bölümüne bakın).
Elde edilen kelime listeleriyle cloud_enum, CloudScraper, cloudlist ve S3Scanner** gibi araçları kullanabilirsiniz.**
Bulut Varlıkları ararken, AWS'deki kovalardan daha fazlasını aramalısınız.
Zafiyet Arayışı
Açık kova veya maruz kalmış bulut işlevleri gibi şeyler bulursanız, onlara erişmeli ve size ne sunduklarını görmeli ve bunları kötüye kullanıp kullanamayacağınızı denemelisiniz.
E-postalar
Kapsamdaki alan adları ve alt alan adları ile, e-postaları aramaya başlamak için ihtiyacınız olan her şeye sahipsiniz. Bir şirketin e-postalarını bulmak için en iyi çalışan API'ler ve araçlar şunlardır:
- theHarvester - API'lerle
- https://hunter.io/ API'si (ücretsiz sürüm)
- https://app.snov.io/ API'si (ücretsiz sürüm)
- https://minelead.io/ API'si (ücretsiz sürüm)
Zafiyet Arayışı
E-postalar, web girişleri ve kimlik doğrulama hizmetleri (SSH gibi) için brute-force yaparken faydalı olacaktır. Ayrıca, phishing için de gereklidir. Ayrıca, bu API'ler e-posta arkasındaki kişi hakkında daha fazla bilgi sağlayacaktır, bu da phishing kampanyası için faydalıdır.
Kimlik Bilgisi Sızıntıları
Alan adları, alt alan adları ve e-postalar ile, geçmişte bu e-postalara ait sızdırılmış kimlik bilgilerini aramaya başlayabilirsiniz:
Zafiyet Arayışı
Geçerli sızdırılmış kimlik bilgileri bulursanız, bu çok kolay bir kazanımdır.
Gizli Bilgi Sızıntıları
Kimlik bilgisi sızıntıları, hassas bilgilerin sızdırıldığı ve satıldığı şirketlerin hacklenmesiyle ilgilidir. Ancak, şirketler, bu veritabanlarında yer almayan diğer sızıntılardan da etkilenebilir:
Github Sızıntıları
Kimlik bilgileri ve API'ler, şirketin veya o github şirketinde çalışan kullanıcıların açık kaynaklı depolarında sızdırılabilir.
Bir organizasyonun ve geliştiricilerinin tüm açık reposunu indirmek için Leakos aracını kullanabilir ve bunlar üzerinde otomatik olarak gitleaks çalıştırabilirsiniz.
Leakos, bazen web sayfalarının da gizli bilgiler içerebileceği için, kendisine sağlanan URL'ler üzerinden gitleaks çalıştırmak için de kullanılabilir.
Github Dorks
Ayrıca, saldırdığınız organizasyonda arayabileceğiniz potansiyel github dorks için bu sayfayı kontrol edin:
Paste Sızıntıları
Bazen saldırganlar veya sadece çalışanlar, şirket içeriğini bir paste sitesinde yayınlayabilir. Bu, hassas bilgiler içerebilir veya içermeyebilir, ancak aramak için çok ilginçtir.
Birden fazla paste sitesinde aynı anda arama yapmak için Pastos aracını kullanabilirsiniz.
Google Dorks
Eski ama altın değerindeki google dorks, orada olmaması gereken maruz kalmış bilgileri bulmak için her zaman faydalıdır. Tek sorun, google-hacking-database içinde manuel olarak çalıştıramayacağınız birkaç binlerce olası sorgu bulunmasıdır. Bu yüzden, en sevdiğiniz 10 tanesini alabilir veya hepsini çalıştırmak için Gorks gibi bir araç kullanabilirsiniz.
Not: Tüm veritabanını normal Google tarayıcısını kullanarak çalıştırmayı bekleyen araçlar asla bitmeyecek, çünkü Google sizi çok kısa sürede engelleyecektir.
Zafiyet Arayışı
Geçerli sızdırılmış kimlik bilgileri veya API token'ları bulursanız, bu çok kolay bir kazanımdır.
Kamu Kod Zafiyetleri
Eğer şirketin açık kaynak kodu olduğunu bulursanız, bunu analiz edebilir ve üzerinde zafiyetler arayabilirsiniz.
Dile bağlı olarak, kullanabileceğiniz farklı araçlar vardır:
Source code Review / SAST Tools
Ayrıca, açık kaynaklı depoları taramanıza olanak tanıyan ücretsiz hizmetler de vardır:
Web Pentesting Metodolojisi
Hata avcıları tarafından bulunan zafiyetlerin çoğunluğu web uygulamalarında yer almaktadır, bu yüzden bu noktada bir web uygulaması test metodolojisi hakkında konuşmak istiyorum ve bu bilgiyi burada bulabilirsiniz.
Ayrıca, Web Otomatik Tarayıcıları açık kaynak araçları bölümüne özel bir atıfta bulunmak istiyorum, çünkü, çok hassas zafiyetler bulmalarını beklememelisiniz, ancak bazı başlangıç web bilgileri elde etmek için iş akışlarına entegre etmekte faydalıdırlar.
Tekrar
Tebrikler! Bu noktada tüm temel numaralandırmayı gerçekleştirdiniz. Evet, bu temel çünkü daha fazla numaralandırma yapılabilir (daha fazla hile göreceğiz).
Artık şunları buldunuz:
- Kapsamdaki tüm şirketleri buldunuz
- Şirketlere ait tüm varlıkları buldunuz (ve kapsamda ise bazı zafiyet taramaları gerçekleştirdiniz)
- Şirketlere ait tüm alan adlarını buldunuz
- Alan adlarının tüm alt alan adlarını buldunuz (herhangi bir alt alan ele geçirme?)
- Kapsamdaki tüm IP'leri (CDN'lerden ve CDN'lerden olmayan) buldunuz.
- Tüm web sunucularını buldunuz ve bunların ekran görüntülerini aldınız (daha derin bir incelemeyi gerektiren garip bir şey var mı?)
- Şirkete ait potansiyel kamu bulut varlıklarını buldunuz.
- E-postalar, kimlik bilgisi sızıntıları ve gizli sızıntılar size çok kolay bir büyük kazanç sağlayabilir.
- Bulduğunuz tüm web sitelerini pentest ettiniz
Tam Recon Otomatik Araçlar
Belirli bir kapsamda önerilen eylemlerin bir kısmını gerçekleştirecek birçok araç bulunmaktadır.
- https://github.com/yogeshojha/rengine
- https://github.com/j3ssie/Osmedeus
- https://github.com/six2dez/reconftw
- https://github.com/hackerspider1/EchoPwn - Biraz eski ve güncellenmemiş
Referanslar
- @Jhaddix tarafından sunulan tüm ücretsiz kurslar, The Bug Hunter's Methodology v4.0 - Recon Edition gibi
tip
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
Azure Hacking'i öğrenin ve pratik yapın:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- 💬 Discord grubuna veya telegram grubuna katılın ya da Twitter'da bizi takip edin 🐦 @hacktricks_live.**
- Hacking ipuçlarını paylaşmak için HackTricks ve HackTricks Cloud github reposuna PR gönderin.