// Penetration Testing — Phase One

Reconhecimento

Recon é a fase que determina o sucesso de tudo que vem depois. Um bom reconhecimento entrega a vulnerabilidade antes mesmo de você lançar um exploit. Aqui você aprende a enxergar a superfície de ataque do alvo sem ser detectado.

OSINT DNS NMAP GOOGLE DORKS SHODAN FFUF SUBDOMÍNIOS
Reconhecimento passivo é tudo que você coleta sobre o alvo sem enviar um único pacote para os servidores dele. Fontes públicas, registros DNS, certificados, redes sociais. Zero risco de detecção. Sempre começa aqui.
WHOIS & Registros de Domínio
Por que importa WHOIS revela quem registrou o domínio, quando, e por qual registrar. Mesmo com privacidade ativada, o registrar, datas de criação/expiração e nameservers são visíveis. Nameservers revelam o provedor de DNS — às vezes o mesmo que hospeda o servidor.
Registro

WHOIS

Consulta o banco de dados de registro de domínios. Pode revelar: nome do registrante, email, telefone, endereço (quando sem privacidade), nameservers, e datas de criação/expiração. Emails encontrados valem para phishing e enumeração de usuários.

Datas de expiração próximas = oportunidade de domain takeover.
Técnica

Enumeração de Subdomínios

Subdomínios revelam infraestrutura: dev.empresa.com, staging.empresa.com, vpn.empresa.com. Ambientes de desenvolvimento costumam ter menos proteção que produção. Fontes: DNS bruteforce, crt.sh, SecurityTrails, Shodan.

crt.sh usa Certificate Transparency logs — revela subdomínios sem enviar um pacote sequer ao alvo.
Técnica

Google Dorks

Operadores de busca avançada do Google para encontrar informações sensíveis indexadas acidentalmente. O banco de dorks mais completo é o GHDB (Google Hacking Database) no Exploit-DB.

# Arquivos de configuração expostos site:alvo.com ext:env OR ext:conf OR ext:cfg # Páginas de login esquecidas site:alvo.com inurl:admin OR inurl:login OR inurl:dashboard # Documentos internos indexados site:alvo.com ext:pdf OR ext:xlsx filetype:doc # Câmeras e painéis expostos intitle:"index of" inurl:webcam
Ferramenta

Shodan

Motor de busca para dispositivos conectados à internet. Indexa banners de serviços, versões de software, certificados TLS. Você pode buscar pelo IP do alvo e ver exatamente o que está exposto sem tocar nos servidores.

Shodan mostra CVEs associados a serviços expostos. Um alvo com Nginx 1.18 aparecer com CVE-2023-44487 listado é um achado imediato.
Ferramenta

crt.sh & Certificate Transparency

Todo certificado TLS emitido por uma CA pública é registrado em logs de transparência. O crt.sh é uma interface para consultar esses logs. Busca por %.empresa.com retorna todos os subdomínios que já tiveram certificado emitido — incluindo os esquecidos.

Técnica

OSINT em Pessoas & Código

LinkedIn revela estrutura da empresa, tecnologias usadas e nomes de funcionários (para phishing). GitHub expõe credenciais commitadas por acidente, chaves de API, arquivos .env, histórico de código. Pastebin/GitHub Gists para leaks.

Buscar no GitHub: org:empresa password OR secret OR api_key
theHarvester — Coleta automatizada
terminal # Coletar emails, subdomínios e IPs de múltiplas fontes theHarvester -d empresa.com -b google,bing,linkedin,shodan # Subdomínios via Amass (mais completo) amass enum -passive -d empresa.com # Subdomínios via subfinder (rápido) subfinder -d empresa.com -silent # Zone transfer (sempre tente) dig AXFR empresa.com @ns1.empresa.com
Recon ativo envolve enviar pacotes diretamente ao alvo. Só é feito após confirmar que o alvo está dentro do escopo autorizado. A ordem clássica: descubra hosts vivos → escaneie portas → identifique serviços e versões → enumere caminhos web.
Nmap — A espinha dorsal do recon ativo
Como o Nmap funciona O Nmap SYN scan (-sS) envia um pacote SYN e analisa a resposta: SYN-ACK = porta aberta, RST = fechada, sem resposta = filtrada (firewall). Nunca completa o handshake TCP — mais silencioso que um connect scan completo. Para UDP (-sU), envia payload vazio e aguarda ICMP "port unreachable" para portas fechadas.
Nmap

Descoberta de hosts vivos

Antes de escanear portas, descubra quais hosts estão ativos na rede. Evita desperdiçar tempo em IPs sem resposta.

# Ping sweep — hosts vivos na subnet nmap -sn 192.168.1.0/24 # Sem ping (quando ICMP está bloqueado) nmap -Pn -sn 192.168.1.0/24
Nmap

Port scanning progressivo

Estratégia de 3 etapas: rápido primeiro, detalhado depois. Economiza tempo sem perder cobertura.

# 1. Scan rápido — top 1000 portas nmap -T4 -F alvo.com # 2. Todas as portas TCP nmap -p- alvo.com # 3. Versão e scripts nas portas abertas nmap -sV -sC -p 22,80,443,8080 alvo.com
Nmap NSE

Scripts de enumeração

NSE (Nmap Scripting Engine) tem centenas de scripts para enumeração específica por serviço. Acionados com -sC (default scripts) ou individualmente.

# Scripts HTTP nmap --script http-title,http-headers,http-methods -p 80,443 alvo.com # Scripts SMB nmap --script smb-enum-shares,smb-os-discovery -p 445 alvo.com # Salvar resultado em XML para parse posterior nmap -oX resultado.xml alvo.com
Banner Grabbing

Identificar versões de serviços

Muitos serviços expõem versão e nome no banner inicial da conexão. Com a versão em mãos, você busca CVEs associados.

# Banner via netcat nc alvo.com 22 SSH-2.0-OpenSSH_7.4 # Banner HTTP via curl curl -I https://alvo.com Server: nginx/1.24.0 # Banner via nmap -sV nmap -sV -p 21 alvo.com 21/tcp open ftp vsftpd 2.3.4
vsftpd 2.3.4 tem backdoor conhecida (CVE-2011-2523). Banner = exploit em segundos.
Enumeração Web — Caminhos e Conteúdo
Por que enumerar diretórios Aplicações web expõem muito mais do que o que está linkado na interface. Painéis de administração, backups, arquivos de configuração, endpoints de API não documentados — tudo isso pode estar acessível via path direto. Ferramentas de fuzzing testam centenas de caminhos por segundo usando wordlists.
Ferramenta

ffuf — Fuzzing rápido

A ferramenta mais flexível para fuzzing web. Usa a palavra FUZZ como placeholder em qualquer parte da requisição — path, parâmetros, headers, cookies. Suporta filtros por status code, tamanho de resposta e palavras.

# Directory bruteforce ffuf -u https://alvo.com/FUZZ -w SecLists/Discovery/Web-Content/common.txt # Filtrar respostas 404 (mostrar só resultados válidos) ffuf -u https://alvo.com/FUZZ -w common.txt -fc 404 # Fuzzing de subdomínios via vhost ffuf -u https://alvo.com -H "Host: FUZZ.alvo.com" -w subdomains.txt -fs 0 # JSON body via request file (necessário para POST com JSON) ffuf -request login.txt -w passwords.txt
Wordlists

SecLists — A coleção essencial

Repositório com as melhores wordlists organizadas por categoria. Instalado por padrão no Kali. As mais usadas em recon web:

Discovery/Web-Content/common.txt — paths comuns
Discovery/Web-Content/raft-medium-directories.txt — mais abrangente
Discovery/DNS/subdomains-top1million-5000.txt — subdomínios
Usernames/top-usernames-shortlist.txt — enumeração de usuários

Ferramenta

Nikto — Scanner de vulnerabilidades web

Testa automaticamente um servidor web contra um banco de dados de problemas conhecidos: arquivos de backup expostos, headers de segurança ausentes, versões vulneráveis, configurações inseguras. Barulhento — gera muito log. Não usar sem autorização.

nikto -h https://alvo.com nikto -h alvo.com -port 8080 -ssl
Ferramenta

whatweb — Fingerprinting de tecnologias

Identifica CMS, frameworks, linguagens, servidores web, bibliotecas JavaScript e plugins a partir dos headers e HTML. Fundamental para saber qual pilha de tecnologia atacar.

whatweb https://alvo.com WordPress 6.1, PHP/8.1, nginx/1.24, jQuery 3.6
WordPress + versão identificada = buscar CVEs e plugins vulneráveis com wpscan.
Resumo das principais ferramentas de recon com uso, quando aplicar e o que esperar de cada uma.
FerramentaTipoUso principalQuando usar
theHarvesterOSINT passivoEmails, subdomínios, IPs de fontes públicasInício de todo engajamento externo
AmassOSINT passivo/ativoEnumeração abrangente de subdomíniosQuando precisa de cobertura máxima de subdomínios
subfinderOSINT passivoSubdomínios via APIs públicasAlternativa rápida ao Amass
ShodanOSINT passivoServiços expostos, versões, CVEsAntes de qualquer scan ativo
crt.shOSINT passivoSubdomínios via Certificate TransparencySempre — gratuito e silencioso
NmapRecon ativoPort scan, versões, OS fingerprint, NSE scriptsApós confirmar escopo autorizado
ffufRecon ativoFuzzing de paths, parâmetros, vhostsEnumeração web em qualquer alvo HTTP
gobusterRecon ativoDirectory/DNS bruteforceAlternativa ao ffuf, mais simples
NiktoRecon ativoVulnerabilidades web conhecidasScan inicial de servidor web
whatwebRecon ativoFingerprint de tecnologiasIdentificar stack antes de explorar
MaltegoOSINT passivoMapeamento visual de relacionamentosEngajamentos grandes com múltiplos alvos
Recon-ngOSINT passivoFramework modular de OSINTColeta estruturada com múltiplos módulos
Fluxo de Recon Recomendado

1. Passivo primeiro

WHOIS → crt.sh → theHarvester → Shodan → Google Dorks → GitHub. Colete tudo antes de qualquer contato ativo. Documente cada descoberta com fonte e timestamp.

2. Ativo dentro do escopo

Confirme o escopo no contrato. Nmap host discovery → port scan → service detection → NSE scripts. ffuf em todos os serviços web encontrados. Nikto + whatweb em paralelo.

3. Documente tudo

Salve outputs de cada ferramenta em arquivo. Anote IPs, portas, versões, caminhos encontrados. Esse mapa é a base da fase de exploração. Um finding perdido no recon é um vetor não explorado.

Marque conforme for avançando. O progresso fica salvo no navegador.
OSINT Passivo
Fiz consulta WHOIS de um domínio real e interpretei os camposRegistrante, nameservers, datas de criação e expiração
Usei crt.sh para enumerar subdomínios via Certificate TransparencyBusca com %.empresa.com
Executei pelo menos 5 Google Dorks diferentes em um alvo autorizadoUsando operadores site:, ext:, inurl:, intitle:
Pesquisei um IP no Shodan e interpretei os resultadosServiços expostos, versões, CVEs listados
Rodei theHarvester e/ou subfinder em um domínioColetei subdomínios e emails de fontes passivas
Busquei leaks no GitHub de uma organizaçãoUsando org: password OR secret OR api_key
Recon Ativo
Fiz um scan Nmap completo com -sV -sC e interpretei o outputIdentifiquei serviços, versões e OS
Usei Nmap NSE scripts para enumeração de SMB ou HTTPsmb-enum-shares, http-title, ssl-enum-ciphers
Fiz directory fuzzing com ffuf e SecListsEncontrei ao menos um path não linkado na interface
Identifiquei o stack tecnológico de um alvo com whatwebCMS, versão de servidor, linguagem backend
Capturei um banner de serviço com nc ou curl -IE busquei CVEs para a versão identificada
Documentei todos os resultados em arquivo organizadoIPs, portas, versões, paths encontrados, fontes