Para atacar Windows com competência — e é nele que vive o pentest corporativo — você precisa entender como ele funciona por dentro. Não no nível de um desenvolvedor de kernel, mas o suficiente para saber onde as credenciais moram, como os processos se relacionam e onde a configuração sensível se esconde. Esta aula te dá esse mapa interno. Ela é a ponte conceitual para o Bloco XI (Active Directory), e cada conceito aqui reaparece lá como um vetor de ataque concreto.

A árvore pai-filho como sinal

Comece pelos processos e pela árvore de processos. No Windows, todo processo (exceto o inicial) é criado por outro, formando uma hierarquia pai-filho. Isso importa ofensivamente por dois motivos. Primeiro, porque processos herdam o contexto de segurança de quem os criou — se você compromete um processo rodando como administrador, o que ele gera também roda como administrador. Segundo, porque a relação pai-filho é um sinal de detecção: um processo do Word (winword.exe) gerando um PowerShell é altamente suspeito, porque documentos não deveriam abrir shells — é assinatura clássica de um ataque via macro maliciosa, e o Blue Team caça exatamente esses "pais anômalos". Você inspeciona processos com o Get-Process, e ferramentas como o Process Explorer mostram a árvore visualmente.

O token que carrega sua identidade

Central para segurança é o conceito de token de acesso. Quando você se autentica no Windows, o sistema gera um token que representa sua identidade e seus privilégios, e todo processo que você executa carrega uma cópia desse token — é o que o sistema consulta para decidir o que você pode ou não fazer. Muitos ataques de escalação de privilégio em Windows (aula Escalação de privilégios em Windows: tokens, serviços e SYSTEM) giram em torno de manipular ou roubar tokens: se você consegue "pegar emprestado" o token de um processo mais privilegiado, você herda os privilégios dele. Técnicas com nomes como token impersonation exploram justamente isso, e privilégios específicos (como o SeImpersonatePrivilege que o whoami /priv revela) são a chave que as habilita. Guarde a ideia: no Windows, privilégio é um objeto que pode ser roubado, não apenas um atributo fixo.

O registro como baú e como persistência

Agora o registro do Windows (Registry) — uma gigantesca base de dados hierárquica onde o sistema e os programas guardam configurações. Para o pentester, o registro é um baú de tesouros e um mecanismo de persistência ao mesmo tempo. É tesouro porque frequentemente contém informação sensível: credenciais salvas por preguiça de administradores, chaves de software, configurações que revelam a arquitetura da rede. É persistência (aula Persistência: garantindo que o acesso sobreviva) porque certas chaves definem o que roda automaticamente quando o sistema inicia — um atacante que escreve nelas garante que seu código volte a cada reinicialização. O registro se organiza em "colmeias" (hives), e uma navegação básica no PowerShell:

# chaves que definem programas executados na inicialização (vetor de persistência)
Get-ItemProperty "HKLM:\Software\Microsoft\Windows\CurrentVersion\Run"

# procurar por senhas eventualmente salvas no registro
reg query HKLM /f password /t REG_SZ /s

Aquele segundo comando varre o registro atrás da palavra "password" — e é assustador com que frequência ele encontra algo em ambientes reais mal administrados.

Onde os hashes moram: SAM, LSASS, NTDS

Chegamos ao ponto mais importante da aula: como o Windows armazena credenciais, porque é disso que dependem os ataques mais poderosos do curso. Localmente, o Windows guarda os hashes das senhas (não as senhas em texto puro) num arquivo de banco de dados chamado SAM (Security Account Manager). Já num ambiente de domínio, as credenciais ficam centralizadas no controlador de domínio. O detalhe crucial — e que funda o Bloco XI — é que o Windows historicamente usa hashes no formato NTLM, e há um processo, o LSASS (Local Security Authority Subsystem Service), que mantém credenciais na memória para permitir single sign-on (você digita a senha uma vez e acessa vários recursos sem redigitar). Essa conveniência tem um custo de segurança enorme: se um atacante com privilégios suficientes lê a memória do LSASS, ele extrai hashes e às vezes senhas de usuários logados. É o que ferramentas como o Mimikatz fazem, e é a origem de ataques como o Pass-the-Hash (aula Pass-the-Hash, Pass-the-Ticket e a reutilização de credenciais), em que o atacante nem precisa quebrar a senha — ele usa o hash diretamente para se autenticar. Perceba a sacada: em muitos ataques Windows, o hash é a credencial.

Comprometer o DC é comprometer o domínio

Isso conecta ao Active Directory (AD), que apenas apresento aqui (o Bloco XI o dissecará). O AD é o serviço de diretório que centraliza a gestão de identidade numa rede corporativa: todos os usuários, computadores, grupos e políticas num só lugar, administrados a partir de um controlador de domínio (DC). Comprometer o DC é, em geral, comprometer a organização inteira — por isso ele é o "objetivo final" típico de um red team engagement em ambiente Windows. O AD usa o protocolo Kerberos para autenticação, e as fragilidades na forma como o Kerberos e o NTLM operam dão origem a uma família inteira de ataques com nomes que você começará a ouvir (Kerberoasting, Pass-the-Ticket, DCSync) — todos, no fundo, explorando como o Windows gerencia e prova identidade.

A conveniência é a superfície de ataque

O que amarra esta aula é a percepção de que a segurança do Windows gira em torno de identidade e credenciais, e que a conveniência (single sign-on, tokens, credenciais em cache) cria a superfície de ataque. Do lado defensivo, é por isso que ambientes Windows maduros investem pesado em proteger o LSASS (com recursos como Credential Guard), em limitar privilégios administrativos, em segmentar a rede para conter movimentação lateral, e em monitorar comportamentos anômalos de processos e autenticação. Cada defesa dessas responde diretamente a um vetor que você acabou de conhecer. Com este mapa interno na cabeça, você está pronto para, enfim, montar o laboratório e começar a atacar.

Fontes e leituras recomendadas

  • Windows Internals — Russinovich, Solomon & Ionescu (a referência definitiva, dividida em volumes)
  • Sysinternals Suite (Microsoft) — Process Explorer, Autoruns e outras ferramentas para explorar os internals
  • HackTricks — seção de Windows Local Privilege Escalation e roubo de credenciais
  • ATT&CK, técnicas da tática Credential Access (mapeiam exatamente o que a aula descreve)

Exercícios

  1. Por que a relação pai-filho entre processos é relevante tanto para o ataque quanto para a detecção? Dê um exemplo de "pai anômalo".

    ✓ Resposta:

    Ofensivamente, processos herdam o contexto de segurança do pai, então comprometer um processo privilegiado estende o privilégio aos filhos. Defensivamente, relações incomuns denunciam ataques — um exemplo de pai anômalo é o winword.exe (Word) gerando um PowerShell, típico de macro maliciosa.

  2. O que é um token de acesso no Windows, e como ele se relaciona com ataques de escalação de privilégio?

    ✓ Resposta:

    É uma estrutura que representa a identidade e os privilégios do usuário, carregada por cada processo que ele executa e consultada para decidir permissões. Ataques de escalação buscam roubar ou personificar (impersonate) tokens de processos mais privilegiados para herdar seus privilégios.

  3. Cite os dois usos que o registro do Windows tem para um pentester, e dê um exemplo de cada.

    ✓ Resposta:

    (a) Fonte de informação sensível — ex.: buscar credenciais salvas com reg query HKLM /f password /t REG_SZ /s. (b) Mecanismo de persistência — ex.: a chave ...CurrentVersion\Run, que define programas executados na inicialização.

  4. O que é o LSASS, por que ele mantém credenciais em memória, e qual o risco de segurança disso?

    ✓ Resposta:

    É o processo (Local Security Authority Subsystem Service) que mantém credenciais em memória para viabilizar single sign-on. O risco é que um atacante com privilégio suficiente pode ler essa memória e extrair hashes ou até senhas de usuários logados.

  5. Explique, com base no armazenamento de credenciais, por que num ataque Pass-the-Hash o atacante "não precisa quebrar a senha".

    ✓ Resposta:

    Porque o Windows autentica usando o hash NTLM da senha; se o atacante obtém o hash (por exemplo, da memória do LSASS ou do SAM), ele pode apresentá-lo diretamente para se autenticar, sem precisar recuperar a senha original em texto puro.