Técnicas de enumeração manual
Reconhecimento sistemático para encontrar vetores de escalação de privilégios
O que você vai descobrir
🎯 Por que isso importa
Ferramentas automatizadas são poderosas, mas perdem contexto. A enumeração manual revela caminhos de ataque que scripts negligenciam e ajuda você a entender por que um exploit vai funcionar. Durante pentests reais, restrições de rede frequentemente impedem o download de ferramentas - você precisa saber como enumerar com comandos nativos.
🔍 O que você vai aprender
- Checklist completo de enumeração manual para sistemas Windows
- Comandos para identificar software instalado, patches e configurações
- Técnicas para encontrar permissões fracas de serviços e tarefas agendadas
- Métodos para descobrir credenciais armazenadas e arquivos sensíveis
🚀 Sua primeira vitória
Nos próximos 10 minutos, você vai construir um checklist mental de comandos de enumeração que pode usar em qualquer sistema Windows sem fazer upload de nenhuma ferramenta.
🔧 Experimente agora
Execute uma enumeração rápida do sistema para identificar vetores de ataque potenciais:
systeminfo | findstr /B /C:"OS Name" /C:"OS Version" /C:"System Type"
whoami /priv
net user %username%
wmic qfe list brief
Você verá: Versão do OS (para correspondência de exploits de kernel), seus privilégios, associações de grupos, e patches instalados (para identificar patches ausentes).
Habilidades que você vai dominar
✅ Compreensão fundamental
- Enumeração de sistema e versão do OS
- Descoberta de usuários e grupos
- Análise de configuração de rede
- Investigação de processos em execução
🔍 Habilidades especializadas
- Análise de permissões de serviços
- Enumeração de tarefas agendadas
- Técnicas de caça a credenciais
- Inspeção de chaves de registro
Entendendo a enumeração manual
A enumeração manual é um processo sistemático de coleta de informações sobre um sistema Windows para identificar caminhos de escalação de privilégios. Você está procurando por más configurações, patches ausentes, permissões fracas e credenciais armazenadas. Cada comando revela algo sobre a superfície de ataque.
Objetivo da enumeração: Encontrar a lacuna entre privilégios atuais e SYSTEM
Informações do sistema
Comece entendendo com o que você está trabalhando:
# Informações completas do sistema
systeminfo
# OS e arquitetura
systeminfo | findstr /B /C:"OS Name" /C:"OS Version" /C:"System Type"
# Hostname e domínio
hostname
echo %USERDOMAIN%
# Patches instalados (para correspondência de exploits de kernel)
wmic qfe list brief
wmic qfe get Caption,Description,HotFixID,InstalledOn
# Variáveis de ambiente (podem revelar caminhos de software instalado)
set
Enumeração de usuários e grupos
Entendendo o contexto de usuário e contas disponíveis:
# Contexto de usuário atual
whoami
whoami /priv
whoami /groups
whoami /all
# Usuários locais
net user
net user administrator
# Grupos locais
net localgroup
net localgroup administrators
net localgroup "Remote Desktop Users"
# Usuários atualmente logados
query user
qwinsta
Informações de rede
A configuração de rede revela oportunidades de pivoting e serviços em escuta:
# Configuração IP
ipconfig /all
# Tabela de roteamento
route print
# Cache ARP (outros hosts na rede)
arp -a
# Portas em escuta e conexões
netstat -ano
netstat -ano | findstr LISTEN
# Regras de firewall
netsh advfirewall show currentprofile
netsh advfirewall firewall show rule name=all
Processos e serviços em execução
Processos revelam software instalado e alvos potenciais:
# Processos em execução
tasklist
tasklist /v
tasklist /svc
# Serviços
sc query
sc query state= all
wmic service get name,displayname,pathname,startmode
# Encontrar caminhos de serviço sem aspas
wmic service get name,pathname,startmode | findstr /i /v "C:\Windows\\" | findstr /i /v """
# Permissões de serviço (requer accesschk do Sysinternals)
# accesschk.exe -uwcqv "Authenticated Users" * /accepteula
Tarefas agendadas
Tarefas agendadas podem executar como SYSTEM e rodar scripts com permissão de escrita:
# Listar tarefas agendadas
schtasks /query /fo LIST /v
schtasks /query /fo TABLE
# Verificar tarefas executando como SYSTEM
schtasks /query /fo LIST /v | findstr /i "SYSTEM"
# Alternativa PowerShell
Get-ScheduledTask | Where-Object {$_.Principal.UserId -eq "SYSTEM"}
Software instalado
Aplicações instaladas podem ter vulnerabilidades conhecidas:
# Software instalado
wmic product get name,version
reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" /s
# Apps 32-bit em 64-bit
reg query "HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall" /s
# Diretórios Program Files
dir /b "C:\Program Files"
dir /b "C:\Program Files (x86)"
Ferramentas e técnicas
Caça a credenciais
Buscar credenciais armazenadas e arquivos sensíveis:
# Credenciais salvas
cmdkey /list
# Buscar password em arquivos
findstr /si "password" *.txt *.xml *.ini *.config
findstr /spin "password" *.*
# Locais comuns de credenciais
type C:\Windows\Panther\Unattend.xml
type C:\Windows\Panther\Unattended.xml
type C:\Unattend.xml
type %WINDIR%\repair\SAM
type %WINDIR%\repair\system
# Configuração IIS
type C:\inetpub\wwwroot\web.config
type C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\web.config
# Senhas armazenadas no registro
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\Currentversion\Winlogon" 2>nul
reg query "HKCU\Software\SimonTatham\PuTTY\Sessions" /s 2>nul
Enumeração de registro
Chaves de registro que permitem escalação de privilégios:
# AlwaysInstallElevated (permite .msi executar como SYSTEM)
reg query HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
# AutoRuns (locais de persistência)
reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run"
reg query "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run"
# Chaves de registro de serviços
reg query "HKLM\SYSTEM\CurrentControlSet\Services" /s
# Configurações UAC
reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
Enumeração PowerShell
PowerShell fornece capacidades adicionais de enumeração:
# Versão PowerShell e política de execução
$PSVersionTable
Get-ExecutionPolicy
# Listar drives
Get-PSDrive
# Encontrar diretórios com permissão de escrita no PATH
$env:PATH.split(';') | ForEach-Object { $path = $_; try { [io.file]::OpenWrite("$path\test.txt").close(); Remove-Item "$path\test.txt"; Write-Host "Writable: $path" } catch {} }
# Buscar arquivos interessantes
Get-ChildItem -Path C:\ -Include *.txt,*.xml,*.config,*.ini -File -Recurse -ErrorAction SilentlyContinue | Select-String -Pattern "password"
# Listar serviços com caminhos sem aspas
Get-WmiObject win32_service | Select-Object Name,PathName | Where-Object { $_.PathName -notlike '"*' -and $_.PathName -like '* *' }
Cenários de ataque reais
🔴 Cenário: Descoberta de senha no Unattend.xml
Durante a implantação do Windows, administradores frequentemente usam arquivos unattend.xml para automatizar a instalação. Esses arquivos frequentemente contêm senhas de administrador local codificadas em base64. O arquivo persiste em locais comuns após a instalação, e muitos administradores esquecem de removê-lo.
Caminho de ataque: Enumerar sistema de arquivos → Encontrar Unattend.xml → Decodificar senha base64 → Autenticar como administrador
🟠 Cenário: Sessões PuTTY salvas
Administradores de sistema frequentemente salvam configurações de sessões SSH no PuTTY, incluindo credenciais de proxy. Estas são armazenadas no registro em texto claro. Descobrir credenciais SSH para servidores Linux durante um engajamento Windows fornece oportunidades de movimento lateral.
Caminho de ataque: Consultar registro do PuTTY → Extrair credenciais salvas → SSH para sistemas adicionais
💡 Dica de especialista
Enumeração manual não é sobre memorizar cada comando - é sobre desenvolver uma abordagem sistemática. Comece amplo (info do sistema, contexto de usuário), depois aprofunde (serviços, tarefas agendadas, credenciais). Documente tudo; você nunca sabe o que vai se tornar relevante depois.
Contramedidas defensivas
Higiene de credenciais
- Remover arquivos de implantação (Unattend.xml) após a instalação
- Nunca armazenar credenciais em scripts, arquivos de config ou registro
- Usar Windows Credential Manager com criptografia adequada
- Implementar LAPS para gerenciamento de senhas de administrador local
Hardening de serviços
- Usar caminhos com aspas para todos os executáveis de serviço
- Definir permissões restritivas nos diretórios de binários de serviço
- Executar serviços com privilégios mínimos necessários
- Usar Managed Service Accounts (MSAs) em vez de contas de usuário
Capacidades de detecção
- Monitorar comandos de enumeração (systeminfo, net user, whoami /priv)
- Alertar sobre consultas de registro em locais de armazenamento de credenciais
- Implementar logging de linha de comando através de políticas de auditoria avançadas
- Usar credenciais honeypot para detectar coleta de credenciais
Perguntas frequentes
Devo sempre executar ferramentas automatizadas ou começar com enumeração manual?
Comece manualmente, depois valide com ferramentas automatizadas. A enumeração manual ajuda você a entender o ambiente e frequentemente encontra problemas que ferramentas automatizadas perdem devido aos seus padrões de scan genéricos. Ferramentas automatizadas são ótimas para cobertura, mas enumeração manual desenvolve expertise.
E se eu não conseguir executar cmd.exe ou PowerShell?
Application whitelisting pode bloquear interpretadores. Tente wmic.exe (frequentemente esquecido), mshta.exe, ou encontre diretórios com permissão de escrita para colocar executáveis permitidos. Você também pode usar técnicas living-off-the-land com binários Microsoft assinados (LOLBins).
Como verificar permissões de serviço sem Sysinternals?
Use sc sdshow <servicename> para ver o descritor de segurança no formato SDDL. Embora mais difícil de ler que a saída do accesschk, mostra as mesmas informações de permissão. Parsers SDDL online podem ajudar a decodificar o formato.
🎯 Enumeração manual - Dominado!
Você agora tem uma abordagem sistemática para enumerar sistemas Windows usando apenas comandos nativos. Sem ferramentas para fazer upload, sem detecção pelo AV - apenas comandos Windows nativos que revelam tudo que você precisa.
Pronto para automatizar com WinPEAS e PowerUp →