Avançado Pentest e Ofensiva
Enumeração de serviços — banner grabbing, versões, configurações expostas
Após identificar portas abertas, a enumeração extrai informações específicas de cada serviço. Versão exata + configuração exposta = pesquisa de CVE direta.
Banner Grabbing — identificação rápida
# netcat — conexão manual ao serviço
nc 192.168.1.10 22
nc 192.168.1.10 80
# Exemplo de resposta SSH:
SSH-2.0-OpenSSH_7.2p2 Ubuntu-4ubuntu2.10
# Exemplo de resposta HTTP:
GET / HTTP/1.0
HTTP/1.1 200 OK
Server: Apache/2.4.49 (Ubuntu)
X-Powered-By: PHP/7.4.3
# curl — headers HTTP completos
curl -I http://192.168.1.10
curl -v http://192.168.1.10 2>&1 | grep -E "^[<>]"
# telnet para serviços de texto simples
telnet 192.168.1.10 25 # SMTP
telnet 192.168.1.10 21 # FTP
HTTP — enumeração web
# Diretórios e arquivos ocultos
gobuster dir -u http://192.168.1.10 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
feroxbuster -u http://192.168.1.10 -w /usr/share/wordlists/dirb/common.txt
# Tecnologias usadas
whatweb http://192.168.1.10
wappalyzer (extensão de browser)
# Subdomínios via vhost fuzzing
gobuster vhost -u http://example.com -w subdomains.txt
# Arquivos comuns a verificar:
/robots.txt
/sitemap.xml
/.well-known/security.txt
/admin, /phpmyadmin, /wp-admin
/.git/HEAD (repositório git exposto)
/backup.zip, /dump.sql
SMB (porta 445) — enumeração Windows/Samba
# Listar shares sem autenticação (null session)
smbclient -L //192.168.1.10 -N
smbmap -H 192.168.1.10
# Enum4linux — enumeração completa SMB/RPC
enum4linux -a 192.168.1.10
# Usuários, grupos, políticas de senha, shares
Output esperado:
[+] Got OS info for 192.168.1.10 from smbclient:
Domain=[WORKGROUP] OS=[Windows 6.1] Server=[Samba 4.7.6]
[+] users: administrator, john.smith, service_account
[+] Share: IPC$, ADMIN$, Backups (READ)
SMTP (porta 25) — enumeração de usuários
# VRFY — verifica se usuário existe
telnet 192.168.1.10 25
VRFY root
252 2.0.0 root
VRFY nobody
550 5.1.1 <nobody>: Recipient address rejected
# EXPN — expande lista de distribuição
EXPN webmaster
# Automação
smtp-user-enum -M VRFY -U users.txt -t 192.168.1.10
SNMP (porta 161 UDP) — dump de configuração
# Community string padrão "public"
snmpwalk -c public -v1 192.168.1.10
snmpwalk -c public -v2c 192.168.1.10 .1.3.6.1.2.1.1
# OIDs úteis:
.1.3.6.1.2.1.1.1.0 → descrição do sistema
.1.3.6.1.2.1.1.5.0 → hostname
.1.3.6.1.4.1.77.1.2.25 → usuários Windows
.1.3.6.1.2.1.6.13.1.3 → portas TCP abertas
# onesixtyone — brute force de community strings
onesixtyone -c community.txt 192.168.1.10
FTP (porta 21) — login anônimo e arquivos
# Teste de login anônimo
ftp 192.168.1.10
Username: anonymous
Password: <qualquer email>
# Via nmap script
nmap --script ftp-anon 192.168.1.10
# Se anônimo funcionar:
ls -la # listar arquivos
get arquivo # baixar
put arquivo # tentar upload (misconfiguration grave)
SSH (porta 22) — versão e autenticação
# Métodos de autenticação suportados
nmap --script ssh-auth-methods 192.168.1.10
# Versão e algoritmos
nmap --script ssh2-enum-algos 192.168.1.10
Output:
ssh-auth-methods: publickey, password, keyboard-interactive
Versão: OpenSSH 7.2p2 → vulnerável a user enumeration (CVE-2016-6210)
Banco de dados — verificação de exposição
# MySQL acessível externamente?
nmap -sV -p 3306 --script mysql-info 192.168.1.10
# PostgreSQL
nmap -p 5432 --script pgsql-brute 192.168.1.10
# Redis sem autenticação (porta 6379)
redis-cli -h 192.168.1.10 ping
redis-cli -h 192.168.1.10 info server
# MongoDB sem auth (porta 27017)
mongosh 192.168.1.10
show dbs
Cada serviço enumerado deve ser registrado com: versão exata, configuração identificada, CVEs pesquisados e próxima ação planejada.