hacktricks/generic-methodologies-and-resources/external-recon-methodology/README.md

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
{% endhint %}

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:

  1. Encontrar as aquisiçÔes da empresa principal, isso nos darå as empresas dentro do escopo.
  2. Encontrar o ASN (se houver) de cada empresa, isso nos darĂĄ os intervalos de IP pertencentes a cada empresa.
  3. Usar consultas de whois reverso para procurar outras entradas (nomes de organizaçÔes, domínios...) relacionadas à primeira (isso pode ser feito recursivamente).
  4. Usar outras técnicas como filtros org e ssl do shodan para procurar outros ativos (o truque ssl 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:

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

favihash - descobrir domĂ­nios com o mesmo hash de Ă­cone favicon

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

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:

# 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 ".[]"
# 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

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:

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:

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:

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ĂĄ:

  1. Encontrou todas as empresas dentro do escopo
  2. Encontrou todos os ativos pertencentes Ă s empresas (e realizou alguns scans de vulnerabilidades se estiver no escopo)
  3. Encontrou todos os domĂ­nios pertencentes Ă s empresas
  4. Encontrou todos os subdomĂ­nios dos domĂ­nios (algum takeover de subdomĂ­nio?)
  5. Encontrou todos os IPs (de e nĂŁo de CDNs) dentro do escopo.
  6. Encontrou todos os servidores web e tirou uma captura de tela deles (algo estranho que vale uma olhada mais profunda?)
  7. Encontrou todos os ativos de nuvem pĂșblica potenciais pertencentes Ă  empresa.
  8. Emails, vazamentos de credenciais e vazamentos de segredos que podem te dar uma grande vitĂłria muito facilmente.
  9. 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.

ReferĂȘncias

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
{% endhint %}