44 KiB
Metodologia de Reconhecimento Externo
{% hint style="success" %}
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Suporte ao HackTricks
- Confira os planos de assinatura!
- Junte-se ao đŹ grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter đŠ @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para os repositĂłrios do HackTricks e HackTricks Cloud.
Se vocĂȘ estĂĄ interessado em carreira de hacking e hackear o inhackeĂĄvel - estamos contratando! (fluĂȘncia em polonĂȘs escrita e falada Ă© necessĂĄria).
{% embed url="https://www.stmcyber.com/careers" %}
Descobertas de Ativos
EntĂŁo, foi dito a vocĂȘ que tudo que pertence a alguma empresa estĂĄ dentro do escopo, e vocĂȘ quer descobrir o que essa empresa realmente possui.
O objetivo desta fase Ă© obter todas as empresas pertencentes Ă empresa principal e, em seguida, todos os ativos dessas empresas. Para isso, vamos:
- Encontrar as aquisiçÔes da empresa principal, isso nos darå as empresas dentro do escopo.
- Encontrar o ASN (se houver) de cada empresa, isso nos darĂĄ os intervalos de IP pertencentes a cada empresa.
- Usar consultas de whois reverso para procurar outras entradas (nomes de organizaçÔes, domĂnios...) relacionadas Ă primeira (isso pode ser feito recursivamente).
- Usar outras técnicas como filtros
org
essl
do shodan para procurar outros ativos (o truquessl
pode ser feito recursivamente).
AquisiçÔes
Primeiramente, precisamos saber quais outras empresas sĂŁo propriedade da empresa principal.
Uma opção Ă© visitar https://www.crunchbase.com/, pesquisar pela empresa principal e clicar em "aquisiçÔes". LĂĄ vocĂȘ verĂĄ outras empresas adquiridas pela principal.
Outra opção é visitar a pågina da Wikipedia da empresa principal e procurar por aquisiçÔes.
Ok, neste ponto vocĂȘ deve saber todas as empresas dentro do escopo. Vamos descobrir como encontrar seus ativos.
ASNs
Um nĂșmero de sistema autĂŽnomo (ASN) Ă© um nĂșmero Ășnico atribuĂdo a um sistema autĂŽnomo (AS) pela Internet Assigned Numbers Authority (IANA).
Um AS consiste em blocos de endereços IP que tĂȘm uma polĂtica claramente definida para acessar redes externas e sĂŁo administrados por uma Ășnica organização, mas podem ser compostos por vĂĄrios operadores.
Ă interessante descobrir se a empresa tem algum ASN atribuĂdo para encontrar seus intervalos de IP. SerĂĄ interessante realizar um teste de vulnerabilidade contra todos os hosts dentro do escopo e procurar por domĂnios dentro desses IPs.
VocĂȘ pode pesquisar pelo nome da empresa, por IP ou por domĂnio em https://bgp.he.net/.
Dependendo da regiĂŁo da empresa, esses links podem ser Ășteis para coletar mais dados: AFRINIC (Ăfrica), Arin(AmĂ©rica do Norte), APNIC (Ăsia), LACNIC (AmĂ©rica Latina), RIPE NCC (Europa). De qualquer forma, provavelmente todas as informaçÔes Ășteis (intervalos de IP e Whois) jĂĄ aparecem no primeiro link.
#You can try "automate" this with amass, but it's not very recommended
amass intel -org tesla
amass intel -asn 8911,50313,394161
AlĂ©m disso, a enumeração de subdomĂnios do BBOT's agrega e resume automaticamente os ASNs no final da varredura.
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: +----------+---------------------+--------------+----------------+----------------------------+-----------+
VocĂȘ pode encontrar os intervalos de IP de uma organização tambĂ©m usando http://asnlookup.com/ (ele tem uma API gratuita).
VocĂȘ pode encontrar o IP e ASN de um domĂnio usando http://ipv4info.com/.
Procurando vulnerabilidades
Neste ponto, sabemos todos os ativos dentro do escopo, entĂŁo, se vocĂȘ tiver permissĂŁo, pode lançar algum scanner de vulnerabilidades (Nessus, OpenVAS) sobre todos os hosts.
AlĂ©m disso, vocĂȘ pode lançar alguns scans de porta ou usar serviços como shodan para encontrar portas abertas e dependendo do que vocĂȘ encontrar, vocĂȘ deve dar uma olhada neste livro sobre como pentestar vĂĄrios serviços possĂveis em execução.
AlĂ©m disso, pode valer a pena mencionar que vocĂȘ tambĂ©m pode preparar algumas listas de nomes de usuĂĄrio e senhas padrĂŁo e tentar bruteforçar serviços com https://github.com/x90skysn3k/brutespray.
DomĂnios
Sabemos todas as empresas dentro do escopo e seus ativos, Ă© hora de encontrar os domĂnios dentro do escopo.
Por favor, note que nas tĂ©cnicas propostas a seguir vocĂȘ tambĂ©m pode encontrar subdomĂnios e que essa informação nĂŁo deve ser subestimada.
Primeiramente, vocĂȘ deve procurar o(s) domĂnio(s) principal(is) de cada empresa. Por exemplo, para Tesla Inc. serĂĄ tesla.com.
DNS Reverso
Como vocĂȘ encontrou todos os intervalos de IP dos domĂnios, vocĂȘ pode tentar realizar consultas de dns reverso nesses IPs para encontrar mais domĂnios dentro do escopo. Tente usar algum servidor DNS da vĂtima ou algum servidor DNS bem conhecido (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
Para que isso funcione, o administrador precisa habilitar manualmente o PTR.
VocĂȘ tambĂ©m pode usar uma ferramenta online para essas informaçÔes: http://ptrarchive.com/
Reverse Whois (loop)
Dentro de um whois vocĂȘ pode encontrar muitas informaçÔes interessantes, como nome da organização, endereço, e-mails, nĂșmeros de telefone... Mas o que Ă© ainda mais interessante Ă© que vocĂȘ pode encontrar mais ativos relacionados Ă empresa se realizar buscas reversas de whois por qualquer um desses campos (por exemplo, outros registros whois onde o mesmo e-mail aparece).
VocĂȘ pode usar ferramentas online como:
- https://viewdns.info/reversewhois/ - Gratuito
- https://domaineye.com/reverse-whois - Gratuito
- https://www.reversewhois.io/ - Gratuito
- https://www.whoxy.com/ - Gratuito web, API nĂŁo gratuita.
- http://reversewhois.domaintools.com/ - NĂŁo gratuito
- https://drs.whoisxmlapi.com/reverse-whois-search - NĂŁo Gratuito (apenas 100 buscas gratuitas)
- https://www.domainiq.com/ - NĂŁo Gratuito
VocĂȘ pode automatizar essa tarefa usando DomLink (requer uma chave de API whoxy).
VocĂȘ tambĂ©m pode realizar algumas descobertas automĂĄticas de reverse whois com amass: amass intel -d tesla.com -whois
Note que vocĂȘ pode usar essa tĂ©cnica para descobrir mais nomes de domĂnio toda vez que encontrar um novo domĂnio.
Trackers
Se encontrar o mesmo ID do mesmo tracker em 2 pĂĄginas diferentes, vocĂȘ pode supor que ambas as pĂĄginas sĂŁo gerenciadas pela mesma equipe.
Por exemplo, se vocĂȘ ver o mesmo ID do Google Analytics ou o mesmo ID do Adsense em vĂĄrias pĂĄginas.
Existem algumas pĂĄginas e ferramentas que permitem que vocĂȘ pesquise por esses trackers e mais:
Favicon
VocĂȘ sabia que podemos encontrar domĂnios e subdomĂnios relacionados ao nosso alvo procurando pelo mesmo hash do Ăcone favicon? Isso Ă© exatamente o que a ferramenta favihash.py feita por @m4ll0k2 faz. Aqui estĂĄ como usĂĄ-la:
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
Simplificando, favihash nos permitirĂĄ descobrir domĂnios que tĂȘm o mesmo hash de Ăcone favicon que nosso alvo.
AlĂ©m disso, vocĂȘ tambĂ©m pode pesquisar tecnologias usando o hash do favicon, conforme explicado em este post do blog. Isso significa que, se vocĂȘ souber o hash do favicon de uma versĂŁo vulnerĂĄvel de uma tecnologia web, pode pesquisar no shodan e encontrar mais lugares vulnerĂĄveis:
shodan search org:"Target" http.favicon.hash:116323821 --fields ip_str,port --separator " " | awk '{print $1":"$2}'
Isso Ă© como vocĂȘ pode calcular o hash do favicon de um site:
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
Procure dentro das påginas da web strings que podem ser compartilhadas entre diferentes webs na mesma organização. A string de copyright pode ser um bom exemplo. Em seguida, procure por essa string no google, em outros navegadores ou até mesmo no shodan: shodan search http.html:"Copyright string"
CRT Time
Ă comum ter um cron job como
# /etc/crontab
37 13 */10 * * certbot renew --post-hook "systemctl reload nginx"
para renovar todos os certificados de domĂnio no servidor. Isso significa que mesmo que a CA usada para isso nĂŁo defina o tempo em que foi gerado no tempo de validade, Ă© possĂvel encontrar domĂnios pertencentes Ă mesma empresa nos logs de transparĂȘncia de certificados.
Confira este artigo para mais informaçÔes.
InformaçÔes de Mail DMARC
VocĂȘ pode usar um site como https://dmarc.live/info/google.com ou uma ferramenta como https://github.com/Tedixx/dmarc-subdomains para encontrar domĂnios e subdomĂnios compartilhando as mesmas informaçÔes de dmarc.
Tomada Passiva
Aparentemente, Ă© comum que as pessoas atribuam subdomĂnios a IPs que pertencem a provedores de nuvem e, em algum momento, percam esse endereço IP, mas se esqueçam de remover o registro DNS. Portanto, apenas criar uma VM em uma nuvem (como Digital Ocean) vocĂȘ estarĂĄ, na verdade, assumindo alguns subdomĂnios.
Este post explica uma histĂłria sobre isso e propĂ”e um script que cria uma VM no DigitalOcean, obtĂ©m o IPv4 da nova mĂĄquina e busca no Virustotal por registros de subdomĂnio apontando para ela.
Outras maneiras
Observe que vocĂȘ pode usar essa tĂ©cnica para descobrir mais nomes de domĂnio toda vez que encontrar um novo domĂnio.
Shodan
Como vocĂȘ jĂĄ sabe o nome da organização que possui o espaço de IP. VocĂȘ pode pesquisar por esses dados no shodan usando: org:"Tesla, Inc."
Verifique os hosts encontrados para novos domĂnios inesperados no certificado TLS.
VocĂȘ poderia acessar o certificado TLS da pĂĄgina principal, obter o nome da Organização e entĂŁo procurar esse nome dentro dos certificados TLS de todas as pĂĄginas conhecidas pelo shodan com o filtro: ssl:"Tesla Motors"
ou usar uma ferramenta como sslsearch.
Assetfinder
Assetfinder Ă© uma ferramenta que procura por domĂnios relacionados com um domĂnio principal e subdomĂnios deles, bastante incrĂvel.
Procurando vulnerabilidades
Verifique por alguma tomada de domĂnio. Talvez alguma empresa esteja usando algum domĂnio mas perdeu a propriedade. Basta registrĂĄ-lo (se for barato o suficiente) e avisar a empresa.
Se vocĂȘ encontrar algum domĂnio com um IP diferente dos que vocĂȘ jĂĄ encontrou na descoberta de ativos, vocĂȘ deve realizar uma varredura bĂĄsica de vulnerabilidades (usando Nessus ou OpenVAS) e alguma varredura de portas com nmap/masscan/shodan. Dependendo de quais serviços estĂŁo em execução, vocĂȘ pode encontrar neste livro algumas dicas para "atacĂĄ-los".
&#xNAN;Note que Ă s vezes o domĂnio estĂĄ hospedado dentro de um IP que nĂŁo Ă© controlado pelo cliente, entĂŁo nĂŁo estĂĄ no escopo, tenha cuidado.
Dica de bug bounty: inscreva-se no Intigriti, uma plataforma premium de bug bounty criada por hackers, para hackers! Junte-se a nós em https://go.intigriti.com/hacktricks hoje e comece a ganhar recompensas de até $100,000!
{% embed url="https://go.intigriti.com/hacktricks" %}
SubdomĂnios
Sabemos todas as empresas dentro do escopo, todos os ativos de cada empresa e todos os domĂnios relacionados Ă s empresas.
Ă hora de encontrar todos os possĂveis subdomĂnios de cada domĂnio encontrado.
{% hint style="success" %} Observe que algumas das ferramentas e tĂ©cnicas para encontrar domĂnios tambĂ©m podem ajudar a encontrar subdomĂnios! {% endhint %}
DNS
Vamos tentar obter subdomĂnios dos registros DNS. TambĂ©m devemos tentar por TransferĂȘncia de Zona (Se vulnerĂĄvel, vocĂȘ deve relatar).
dnsrecon -a -d tesla.com
OSINT
A maneira mais rĂĄpida de obter muitos subdomĂnios Ă© pesquisar em fontes externas. As ferramentas mais utilizadas sĂŁo as seguintes (para melhores resultados, configure as chaves da API):
# subdomains
bbot -t tesla.com -f subdomain-enum
# subdomains (passive only)
bbot -t tesla.com -f subdomain-enum -rf passive
# subdomains + port scan + web screenshots
bbot -t tesla.com -f subdomain-enum -m naabu gowitness -n my_scan -o .
amass enum [-active] [-ip] -d tesla.com
amass enum -d tesla.com | grep tesla.com # To just list subdomains
# Subfinder, use -silent to only have subdomains in the output
./subfinder-linux-amd64 -d tesla.com [-silent]
# findomain, use -silent to only have subdomains in the output
./findomain-linux -t tesla.com [--quiet]
python3 oneforall.py --target tesla.com [--dns False] [--req False] [--brute False] run
assetfinder --subs-only <domain>
# It requires that you create a sudomy.api file with API keys
sudomy -d tesla.com
vita -d tesla.com
theHarvester -d tesla.com -b "anubis, baidu, bing, binaryedge, bingapi, bufferoverun, censys, certspotter, crtsh, dnsdumpster, duckduckgo, fullhunt, github-code, google, hackertarget, hunter, intelx, linkedin, linkedin_links, n45ht, omnisint, otx, pentesttools, projectdiscovery, qwant, rapiddns, rocketreach, securityTrails, spyse, sublist3r, threatcrowd, threatminer, trello, twitter, urlscan, virustotal, yahoo, zoomeye"
Existem outras ferramentas/APIs interessantes que, mesmo nĂŁo sendo diretamente especializadas em encontrar subdomĂnios, podem ser Ășteis para encontrar subdomĂnios, como:
- Crobat: Usa a API https://sonar.omnisint.io para obter subdomĂnios
# Get list of subdomains in output from the API
## This is the API the crobat tool will use
curl https://sonar.omnisint.io/subdomains/tesla.com | jq -r ".[]"
curl https://jldc.me/anubis/subdomains/tesla.com | jq -r ".[]"
- RapidDNS API gratuita
# 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: busca URLs conhecidas do Open Threat Exchange da AlienVault, da Wayback Machine e do Common Crawl para qualquer domĂnio dado.
# Get subdomains from GAUs found URLs
gau --subs tesla.com | cut -d "/" -f 3 | sort -u
- SubDomainizer & subscraper: Eles vasculham a web em busca de arquivos JS e extraem subdomĂnios a partir daĂ.
# 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 tem uma API gratuita para pesquisar subdomĂnios e histĂłrico de IP
- chaos.projectdiscovery.io
Este projeto oferece gratuitamente todos os subdomĂnios relacionados a programas de bug-bounty. VocĂȘ pode acessar esses dados tambĂ©m usando chaospy ou atĂ© mesmo acessar o escopo usado por este projeto https://github.com/projectdiscovery/chaos-public-program-list
VocĂȘ pode encontrar uma comparação de muitas dessas ferramentas aqui: https://blog.blacklanternsecurity.com/p/subdomain-enumeration-tool-face-off
Força bruta de DNS
Vamos tentar encontrar novos subdomĂnios forçando servidores DNS usando possĂveis nomes de subdomĂnio.
Para esta ação, vocĂȘ precisarĂĄ de algumas listas de palavras comuns de subdomĂnios como:
- https://gist.github.com/jhaddix/86a06c5dc309d08580a018c66354a056
- https://wordlists-cdn.assetnote.io/data/manual/best-dns-wordlist.txt
- https://localdomain.pw/subdomain-bruteforce-list/all.txt.zip
- https://github.com/pentester-io/commonspeak
- https://github.com/danielmiessler/SecLists/tree/master/Discovery/DNS
E tambĂ©m IPs de bons resolvedores de DNS. Para gerar uma lista de resolvedores de DNS confiĂĄveis, vocĂȘ pode baixar os resolvedores de https://public-dns.info/nameservers-all.txt e usar dnsvalidator para filtrĂĄ-los. Ou vocĂȘ poderia usar: https://raw.githubusercontent.com/trickest/resolvers/main/resolvers-trusted.txt
As ferramentas mais recomendadas para força bruta de DNS são:
- massdns: Esta foi a primeira ferramenta que realizou uma força bruta de DNS eficaz. à muito råpida, no entanto, é propensa a falsos positivos.
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: Este eu acho que usa apenas 1 resolvedor
gobuster dns -d mysite.com -t 50 -w subdomains.txt
- shuffledns Ă© um wrapper em torno do
massdns
, escrito em go, que permite enumerar subdomĂnios vĂĄlidos usando bruteforce ativo, alĂ©m de resolver subdomĂnios com tratamento de wildcard e suporte fĂĄcil de entrada-saĂda.
shuffledns -d example.com -list example-subdomains.txt -r resolvers.txt
- puredns: Ele também usa
massdns
.
puredns bruteforce all.txt domain.com
- aiodnsbrute usa asyncio para forçar nomes de domĂnio de forma assĂncrona.
aiodnsbrute -r resolvers -w wordlist.txt -vv -t 1024 domain.com
Segunda Rodada de Força Bruta DNS
ApĂłs ter encontrado subdomĂnios usando fontes abertas e força bruta, vocĂȘ pode gerar alteraçÔes dos subdomĂnios encontrados para tentar encontrar ainda mais. VĂĄrias ferramentas sĂŁo Ășteis para esse propĂłsito:
- dnsgen: Dado os domĂnios e subdomĂnios, gera permutaçÔes.
cat subdomains.txt | dnsgen -
- goaltdns: Dado os domĂnios e subdomĂnios, gere permutaçÔes.
- VocĂȘ pode obter a wordlist de permutaçÔes do goaltdns aqui here.
goaltdns -l subdomains.txt -w /tmp/words-permutations.txt -o /tmp/final-words-s3.txt
- gotator: Dado os domĂnios e subdomĂnios, gera permutaçÔes. Se nenhum arquivo de permutaçÔes for indicado, o gotator usarĂĄ o seu prĂłprio.
gotator -sub subdomains.txt -silent [-perm /tmp/words-permutations.txt]
- altdns: AlĂ©m de gerar permutaçÔes de subdomĂnios, ele tambĂ©m pode tentar resolvĂȘ-los (mas Ă© melhor usar as ferramentas comentadas anteriormente).
- VocĂȘ pode obter a wordlist de permutaçÔes do altdns aqui.
altdns -i subdomains.txt -w /tmp/words-permutations.txt -o /tmp/asd3
- dmut: Outra ferramenta para realizar permutaçÔes, mutaçÔes e alteraçÔes de subdomĂnios. Esta ferramenta farĂĄ brute force do resultado (nĂŁo suporta wildcard dns).
- VocĂȘ pode obter a lista de palavras de permutaçÔes do dmut aqui.
cat subdomains.txt | dmut -d /tmp/words-permutations.txt -w 100 \
--dns-errorLimit 10 --use-pb --verbose -s /tmp/resolvers-trusted.txt
- alterx: Com base em um domĂnio, ele gera novos nomes de subdomĂnios potenciais com base em padrĂ”es indicados para tentar descobrir mais subdomĂnios.
Geração de permutaçÔes inteligentes
- regulator: Para mais informaçÔes, leia este post, mas basicamente ele pegarĂĄ as partes principais dos subdomĂnios descobertos e as misturarĂĄ para encontrar mais subdomĂnios.
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 Ă© um fuzzer de força bruta de subdomĂnios combinado com um algoritmo guiado por resposta DNS imensamente simples, mas eficaz. Ele utiliza um conjunto de dados de entrada fornecido, como uma lista de palavras personalizada ou registros DNS/TLS histĂłricos, para sintetizar com precisĂŁo mais nomes de domĂnio correspondentes e expandi-los ainda mais em um loop com base nas informaçÔes coletadas durante a varredura DNS.
echo www | subzuf facebook.com
Fluxo de Trabalho de Descoberta de SubdomĂnios
Confira este post no blog que escrevi sobre como automatizar a descoberta de subdomĂnios a partir de um domĂnio usando fluxos de trabalho do Trickest para que eu nĂŁo precise lançar manualmente um monte de ferramentas no meu computador:
{% embed url="https://trickest.com/blog/full-subdomain-discovery-using-workflow/" %}
{% embed url="https://trickest.com/blog/full-subdomain-brute-force-discovery-using-workflow/" %}
VHosts / Hosts Virtuais
Se vocĂȘ encontrou um endereço IP contendo uma ou vĂĄrias pĂĄginas da web pertencentes a subdomĂnios, vocĂȘ pode tentar encontrar outros subdomĂnios com pĂĄginas nesse IP procurando em fontes OSINT por domĂnios em um IP ou forçando nomes de domĂnio VHost nesse IP.
OSINT
VocĂȘ pode encontrar alguns VHosts em IPs usando HostHunter ou outras APIs.
Força Bruta
Se vocĂȘ suspeitar que algum subdomĂnio pode estar oculto em um servidor web, vocĂȘ pode tentar forçå-lo:
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" %} Com esta tĂ©cnica, vocĂȘ pode atĂ© conseguir acessar endpoints internos/ocultos. {% endhint %}
Força Bruta de CORS
Ăs vezes, vocĂȘ encontrarĂĄ pĂĄginas que retornam o cabeçalho Access-Control-Allow-Origin apenas quando um domĂnio/subdomĂnio vĂĄlido Ă© definido no cabeçalho Origin. Nesses cenĂĄrios, vocĂȘ pode abusar desse comportamento para descobrir novos subdomĂnios.
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
Enquanto procura por subdomĂnios, fique atento para ver se estĂĄ apontando para algum tipo de bucket, e nesse caso verifique as permissĂ”es.
AlĂ©m disso, como neste ponto vocĂȘ jĂĄ saberĂĄ todos os domĂnios dentro do escopo, tente forçar nomes de buckets possĂveis e verificar as permissĂ”es.
Monitorização
VocĂȘ pode monitorar se novos subdomĂnios de um domĂnio sĂŁo criados monitorando os Logs de TransparĂȘncia de Certificados sublert .
Procurando vulnerabilidades
Verifique possĂveis subdomain takeovers.
Se o subdomĂnio estiver apontando para algum bucket S3, verifique as permissĂ”es.
Se vocĂȘ encontrar algum subdomĂnio com um IP diferente dos que vocĂȘ jĂĄ encontrou na descoberta de ativos, vocĂȘ deve realizar uma varredura bĂĄsica de vulnerabilidades (usando Nessus ou OpenVAS) e alguma varredura de portas com nmap/masscan/shodan. Dependendo dos serviços que estĂŁo em execução, vocĂȘ pode encontrar neste livro algumas dicas para "atacĂĄ-los".
&#xNAN;Note que Ă s vezes o subdomĂnio estĂĄ hospedado dentro de um IP que nĂŁo Ă© controlado pelo cliente, entĂŁo nĂŁo estĂĄ no escopo, tenha cuidado.
IPs
Nos passos iniciais, vocĂȘ pode ter encontrado alguns intervalos de IP, domĂnios e subdomĂnios.
Ă hora de recolher todos os IPs desses intervalos e para os domĂnios/subdomĂnios (consultas DNS).
Usando serviços das seguintes APIs gratuitas, vocĂȘ tambĂ©m pode encontrar IPs anteriores usados por domĂnios e subdomĂnios. Esses IPs podem ainda ser de propriedade do cliente (e podem permitir que vocĂȘ encontre CloudFlare bypasses)
VocĂȘ tambĂ©m pode verificar domĂnios apontando para um endereço IP especĂfico usando a ferramenta hakip2host
Procurando vulnerabilidades
Varra todas as portas dos IPs que nĂŁo pertencem a CDNs (pois vocĂȘ provavelmente nĂŁo encontrarĂĄ nada interessante lĂĄ). Nos serviços em execução descobertos, vocĂȘ pode ser capaz de encontrar vulnerabilidades.
Encontre um guia sobre como escanear hosts.
Caça a servidores web
Encontramos todas as empresas e seus ativos e sabemos os intervalos de IP, domĂnios e subdomĂnios dentro do escopo. Ă hora de procurar por servidores web.
Nos passos anteriores, vocĂȘ provavelmente jĂĄ realizou alguma reconhecimento dos IPs e domĂnios descobertos, entĂŁo vocĂȘ pode jĂĄ ter encontrado todos os possĂveis servidores web. No entanto, se vocĂȘ nĂŁo encontrou, agora vamos ver algumas dicas rĂĄpidas para procurar servidores web dentro do escopo.
Por favor, note que isso serĂĄ orientado para descoberta de aplicativos web, entĂŁo vocĂȘ deve realizar a varredura de vulnerabilidades e varredura de portas tambĂ©m (se permitido pelo escopo).
Um método råpido para descobrir portas abertas relacionadas a servidores web usando masscan pode ser encontrado aqui.
Outra ferramenta amigĂĄvel para procurar servidores web Ă© httprobe, fprobe e httpx. VocĂȘ apenas passa uma lista de domĂnios e ela tentarĂĄ se conectar Ă porta 80 (http) e 443 (https). AlĂ©m disso, vocĂȘ pode indicar para tentar outras portas:
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
Capturas de Tela
Agora que vocĂȘ descobriu todos os servidores web presentes no escopo (entre os IPs da empresa e todos os domĂnios e subdomĂnios), vocĂȘ provavelmente nĂŁo sabe por onde começar. EntĂŁo, vamos simplificar e começar apenas tirando capturas de tela de todos eles. Apenas ao dar uma olhada na pĂĄgina principal, vocĂȘ pode encontrar endpoints estranhos que sĂŁo mais propensos a serem vulnerĂĄveis.
Para realizar a ideia proposta, vocĂȘ pode usar EyeWitness, HttpScreenshot, Aquatone, Shutter, Gowitness ou webscreenshot.
AlĂ©m disso, vocĂȘ pode usar eyeballer para analisar todas as capturas de tela e te dizer o que provavelmente contĂ©m vulnerabilidades e o que nĂŁo contĂ©m.
Ativos de Nuvem PĂșblica
Para encontrar potenciais ativos de nuvem pertencentes a uma empresa, vocĂȘ deve começar com uma lista de palavras-chave que identificam essa empresa. Por exemplo, para uma empresa de criptomoedas, vocĂȘ pode usar palavras como: "crypto", "wallet", "dao", "<domain_name>", <"subdomain_names">
.
VocĂȘ tambĂ©m precisarĂĄ de listas de palavras de palavras comuns usadas em 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
EntĂŁo, com essas palavras, vocĂȘ deve gerar permutations (verifique o Second Round DNS Brute-Force para mais informaçÔes).
Com as listas de palavras resultantes, vocĂȘ pode usar ferramentas como cloud_enum, CloudScraper, cloudlist ou S3Scanner.
Lembre-se de que, ao procurar Ativos de Nuvem, vocĂȘ deve procurar mais do que apenas buckets na AWS.
Procurando vulnerabilidades
Se vocĂȘ encontrar coisas como buckets abertos ou funçÔes de nuvem expostas, vocĂȘ deve acessĂĄ-los e tentar ver o que eles oferecem e se vocĂȘ pode abusar deles.
Emails
Com os domĂnios e subdomĂnios dentro do escopo, vocĂȘ basicamente tem tudo o que precisa para começar a procurar por emails. Estas sĂŁo as APIs e ferramentas que funcionaram melhor para mim para encontrar emails de uma empresa:
- theHarvester - com APIs
- API de https://hunter.io/ (versĂŁo gratuita)
- API de https://app.snov.io/ (versĂŁo gratuita)
- API de https://minelead.io/ (versĂŁo gratuita)
Procurando vulnerabilidades
Emails serĂŁo Ășteis mais tarde para forçar logins web e serviços de autenticação (como SSH). AlĂ©m disso, eles sĂŁo necessĂĄrios para phishings. AlĂ©m disso, essas APIs fornecerĂŁo ainda mais informaçÔes sobre a pessoa por trĂĄs do email, o que Ă© Ăștil para a campanha de phishing.
Vazamentos de Credenciais
Com os domĂnios, subdomĂnios e emails, vocĂȘ pode começar a procurar por credenciais vazadas no passado pertencentes a esses emails:
Procurando vulnerabilidades
Se vocĂȘ encontrar credenciais vazadas vĂĄlidas, essa Ă© uma vitĂłria muito fĂĄcil.
Vazamentos de Segredos
Vazamentos de credenciais estĂŁo relacionados a hacks de empresas onde informaçÔes sensĂveis foram vazadas e vendidas. No entanto, as empresas podem ser afetadas por outros vazamentos cujas informaçÔes nĂŁo estĂŁo nessas bases de dados:
Vazamentos do Github
Credenciais e APIs podem ser vazadas nos repositĂłrios pĂșblicos da empresa ou dos usuĂĄrios que trabalham para essa empresa no github.
VocĂȘ pode usar a ferramenta Leakos para baixar todos os repositĂłrios pĂșblicos de uma organização e de seus desenvolvedores e executar gitleaks sobre eles automaticamente.
Leakos tambĂ©m pode ser usado para executar gitleaks contra todo o texto fornecido URLs passadas para ele, pois Ă s vezes pĂĄginas web tambĂ©m contĂȘm segredos.
Dorks do Github
Verifique tambĂ©m esta pĂĄgina para potenciais dorks do github que vocĂȘ tambĂ©m poderia procurar na organização que estĂĄ atacando:
{% content-ref url="github-leaked-secrets.md" %} github-leaked-secrets.md {% endcontent-ref %}
Vazamentos de Pastas
Ăs vezes, atacantes ou apenas trabalhadores irĂŁo publicar conteĂșdo da empresa em um site de paste. Isso pode ou nĂŁo conter informaçÔes sensĂveis, mas Ă© muito interessante procurar por isso.
VocĂȘ pode usar a ferramenta Pastos para pesquisar em mais de 80 sites de paste ao mesmo tempo.
Dorks do Google
Dorks do Google, antigos mas valiosos, sĂŁo sempre Ășteis para encontrar informaçÔes expostas que nĂŁo deveriam estar lĂĄ. O Ășnico problema Ă© que o google-hacking-database contĂ©m vĂĄrios milhares de possĂveis consultas que vocĂȘ nĂŁo pode executar manualmente. EntĂŁo, vocĂȘ pode pegar suas 10 favoritas ou pode usar uma ferramenta como Gorks para executĂĄ-las todas.
Observe que as ferramentas que esperam executar todo o banco de dados usando o navegador regular do Google nunca terminarĂŁo, pois o Google irĂĄ bloquear vocĂȘ muito em breve.
Procurando vulnerabilidades
Se vocĂȘ encontrar credenciais ou tokens de API vazados vĂĄlidos, essa Ă© uma vitĂłria muito fĂĄcil.
Vulnerabilidades de CĂłdigo PĂșblico
Se vocĂȘ descobriu que a empresa tem cĂłdigo de cĂłdigo aberto, vocĂȘ pode analisĂĄ-lo e procurar por vulnerabilidades nele.
Dependendo da linguagem, existem diferentes ferramentas que vocĂȘ pode usar:
{% content-ref url="../../network-services-pentesting/pentesting-web/code-review-tools.md" %} code-review-tools.md {% endcontent-ref %}
Existem tambĂ©m serviços gratuitos que permitem que vocĂȘ escaneie repositĂłrios pĂșblicos, como:
Metodologia de Pentesting Web
A maioria das vulnerabilidades encontradas por caçadores de bugs reside dentro de aplicaçÔes web, entĂŁo, neste ponto, eu gostaria de falar sobre uma metodologia de teste de aplicaçÔes web, e vocĂȘ pode encontrar essas informaçÔes aqui.
Eu tambĂ©m quero fazer uma menção especial Ă seção Ferramentas de Scanners AutomĂĄticos de Web de CĂłdigo Aberto, pois, se vocĂȘ nĂŁo deve esperar que elas encontrem vulnerabilidades muito sensĂveis, elas sĂŁo Ășteis para implementĂĄ-las em fluxos de trabalho para ter algumas informaçÔes iniciais da web.
Recapitulação
ParabĂ©ns! Neste ponto, vocĂȘ jĂĄ realizou toda a enumeração bĂĄsica. Sim, Ă© bĂĄsico porque muito mais enumeração pode ser feita (veremos mais truques mais tarde).
EntĂŁo vocĂȘ jĂĄ:
- Encontrou todas as empresas dentro do escopo
- Encontrou todos os ativos pertencentes Ă s empresas (e realizou alguns scans de vulnerabilidades se estiver no escopo)
- Encontrou todos os domĂnios pertencentes Ă s empresas
- Encontrou todos os subdomĂnios dos domĂnios (algum takeover de subdomĂnio?)
- Encontrou todos os IPs (de e nĂŁo de CDNs) dentro do escopo.
- Encontrou todos os servidores web e tirou uma captura de tela deles (algo estranho que vale uma olhada mais profunda?)
- Encontrou todos os ativos de nuvem pĂșblica potenciais pertencentes Ă empresa.
- Emails, vazamentos de credenciais e vazamentos de segredos que podem te dar uma grande vitĂłria muito facilmente.
- Pentesting todas as webs que vocĂȘ encontrou
Ferramentas AutomĂĄticas de Recon Completo
Existem vårias ferramentas por aà que realizarão parte das açÔes propostas contra um determinado escopo.
- https://github.com/yogeshojha/rengine
- https://github.com/j3ssie/Osmedeus
- https://github.com/six2dez/reconftw
- https://github.com/hackerspider1/EchoPwn - Um pouco antiga e nĂŁo atualizada
ReferĂȘncias
- Todos os cursos gratuitos de @Jhaddix como A Metodologia do Caçador de Bugs v4.0 - Edição Recon
Se vocĂȘ estĂĄ interessado em uma carreira em hacking e hackear o inhackeĂĄvel - estamos contratando! (fluĂȘncia em polonĂȘs escrita e falada Ă© necessĂĄria).
{% embed url="https://www.stmcyber.com/careers" %}
{% hint style="success" %}
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Suporte ao HackTricks
- Confira os planos de assinatura!
- Junte-se ao đŹ grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter đŠ @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para os repositĂłrios do HackTricks e HackTricks Cloud.