O mundo Windows tem sua própria lógica de escalação, ancorada nos conceitos de token e privilégio que você viu na aula Windows internals: processos, registro e o coração da autenticação. O objetivo aqui é chegar ao SYSTEM — a conta mais poderosa do Windows, acima até do Administrador, com controle absoluto da máquina. Como no Linux, você raramente entra já no topo: compromete um serviço ou usuário limitado e precisa escalar. Esta aula sistematiza os caminhos de escalação em Windows, essenciais para o pentest corporativo e para a preparação do ataque a Active Directory (Bloco XI). Pratique em VMs Windows do laboratório.

Enumeração local primeiro

Como sempre, começa com enumeração local. Você precisa mapear seus privilégios, o sistema, os serviços e as configurações. Os comandos, muitos da aula PowerShell ofensivo: a linguagem nativa do alvo Windows:

whoami /priv                   # SEUS PRIVILÉGIOS — o mais importante
whoami /groups                 # grupos a que pertenço
systeminfo                     # versão, patches instalados (para exploits)
Get-LocalUser                  # usuários locais
net user                       # contas
# serviços e suas configurações (vetor rico)
Get-Service ; wmic service get name,pathname,startmode

E, como no Linux tem o LinPEAS, no Windows há o WinPEAS (e alternativas como o PowerUp), que automatizam a busca por vetores de escalação. O whoami /priv merece destaque especial: ele lista privilégios que, se presentes, abrem caminhos diretos de escalação — e certos nomes de privilégio são "luzes de neon" para o atacante.

Abuso de privilégios de token

O primeiro grande vetor é o abuso de privilégios de token. Lembre da aula Windows internals: processos, registro e o coração da autenticação — no Windows, privilégio é quase um objeto manipulável. Certos privilégios, quando atribuídos à sua conta comprometida, permitem escalar. O mais famoso é o SeImpersonatePrivilege: contas de serviço frequentemente o possuem, e ele permite "personificar" (impersonate) o token de outro processo. Existe uma família de exploits conhecidos (com nomes como "Potato" — JuicyPotato, PrintSpoofer, RoguePotato) que abusam do SeImpersonatePrivilege para personificar o token do SYSTEM e escalar. A lógica: se você comprometeu um serviço web ou de banco de dados (que roda como conta de serviço com esse privilégio), esses exploits te levam de conta de serviço a SYSTEM. Por isso o whoami /priv é o primeiro comando — ver "SeImpersonatePrivilege: Enabled" é frequentemente sinônimo de "SYSTEM está ao alcance".

Serviços mal configurados

O segundo vetor são as configurações inseguras de serviços. Serviços do Windows rodam com privilégios (muitos como SYSTEM), e configurações erradas os tornam exploráveis. Os casos clássicos: unquoted service paths (caminhos de serviço com espaços e sem aspas, que permitem, sob certas condições, o Windows executar um binário do atacante colocado num caminho intermediário); permissões fracas no executável do serviço (se você pode substituir o binário que um serviço SYSTEM executa, seu código roda como SYSTEM na próxima inicialização); e permissões fracas na configuração do serviço (se você pode alterar qual binário o serviço executa). Todos exploram o fato de um serviço privilegiado depender de algo que o usuário comum consegue modificar — a mesma lógica do cron job no Linux, adaptada ao modelo de serviços do Windows.

UAC bypass

O terceiro vetor é o UAC bypass. O UAC (User Account Control) é o mecanismo que pede confirmação para ações administrativas (aquela janela "deseja permitir que este app faça alterações?"). Mesmo uma conta que é administrador opera, por padrão, com privilégios reduzidos até o UAC ser satisfeito. Técnicas de UAC bypass permitem a um processo de um usuário administrador elevar-se para privilégios administrativos plenos sem o prompt — contornando o UAC. É relevante quando você comprometeu uma conta que já está no grupo de administradores mas opera limitada; o bypass a leva ao poder pleno.

Exploits de escalação local

O quarto vetor, como no Linux, são os exploits de vulnerabilidade de escalação. O systeminfo revela os patches instalados; cruzando com vulnerabilidades conhecidas de escalação local, você pode encontrar um exploit aplicável. Um exemplo notório é o PrintNightmare (uma falha no serviço de spooler de impressão que permitia escalação e execução de código); há muitos outros ligados a componentes específicos do Windows. Como no Linux, prefira vetores de configuração quando existirem, e trate exploits com o cuidado devido.

Credenciais expostas, o vetor transversal

E há o vetor transversal, comum a todos os sistemas: credenciais expostas. O Windows guarda credenciais em vários lugares que a enumeração revela — no registro (aula Windows internals: processos, registro e o coração da autenticação), em arquivos de configuração, em senhas salvas, e (o mais valioso) na memória do LSASS, de onde ferramentas de extração recuperam hashes e senhas de usuários logados. Escalar às vezes não requer exploit algum: basta encontrar a senha do administrador salva em texto claro num script de instalação esquecido. E as credenciais obtidas aqui — especialmente hashes NTLM — são a matéria-prima da movimentação lateral e dos ataques de AD (Blocos VIII e XI).

O hardening no mundo Windows

Do lado defensivo, o hardening de escalação em Windows espelha a lógica do Linux, adaptado: menor privilégio (não conceder privilégios como SeImpersonate desnecessariamente; limitar quem é administrador); configurar serviços com segurança (aspas nos caminhos, permissões restritas nos binários e configurações de serviço); manter o UAC no nível mais alto e o sistema atualizado (fechando bypasses e exploits como o PrintNightmare); proteger credenciais (Credential Guard para blindar o LSASS, não salvar senhas em scripts); e auditar com as mesmas ferramentas (WinPEAS, PowerUp) que o atacante usa. Com escalação em ambos os mundos dominada, você sabe transformar qualquer pé-dentro em controle total do host.

Fontes e leituras recomendadas

  • HackTricks — "Windows Local Privilege Escalation" (referência completa)
  • WinPEAS e PowerUp — enumeração automatizada de privesc Windows
  • Privilege Constants — a documentação da Microsoft onde o SeImpersonatePrivilege é definido, base da família "Potato"
  • TryHackMe — "Windows PrivEsc" e salas relacionadas

Exercícios

  1. Qual é o objetivo da escalação em Windows, e por que o comando whoami /priv é tão importante logo no início?

    ✓ Resposta:

    O objetivo é chegar ao SYSTEM, a conta de controle absoluto do Windows. O whoami /priv é crucial porque lista os privilégios da conta comprometida, e certos privilégios (como SeImpersonatePrivilege) abrem caminhos diretos de escalação — vê-los presentes indica que o SYSTEM pode estar ao alcance.

  2. Explique o vetor do SeImpersonatePrivilege e a que família de exploits ele se associa.

    ✓ Resposta:

    O SeImpersonatePrivilege permite personificar o token de outro processo; contas de serviço costumam possuí-lo. Associa-se à família de exploits "Potato" (JuicyPotato, PrintSpoofer, RoguePotato), que o abusam para personificar o token do SYSTEM, escalando de conta de serviço a SYSTEM.

  3. Descreva uma configuração insegura de serviço que leva à escalação, e como ela se assemelha ao vetor de cron job do Linux.

    ✓ Resposta:

    Exemplos: permissões fracas no executável de um serviço que roda como SYSTEM — se o atacante pode substituir o binário, seu código roda como SYSTEM na próxima inicialização. Assemelha-se ao cron job do Linux porque, em ambos, um processo privilegiado depende de algo (script/binário) que um usuário comum consegue modificar.

  4. O que é o UAC e o que um UAC bypass consegue fazer?

    ✓ Resposta:

    O UAC (User Account Control) exige confirmação para ações administrativas, fazendo mesmo contas de administrador operarem com privilégios reduzidos até ser satisfeito. Um UAC bypass permite a um processo elevar-se a privilégios administrativos plenos sem o prompt, contornando esse controle.

  5. Por que a escalação "às vezes não requer exploit algum", e qual o valor das credenciais obtidas para fases posteriores?

    ✓ Resposta:

    Porque às vezes basta encontrar credenciais expostas (senha do administrador em um script esquecido, no registro, ou na memória do LSASS) para obter acesso privilegiado, sem explorar nenhuma falha. As credenciais obtidas — especialmente hashes NTLM — são a matéria-prima da movimentação lateral e dos ataques a Active Directory.