Automação & escalonamento

Deixe ferramentas fazerem o trabalho repetitivo enquanto você foca em encontrar bugs

Automação de reconMonitoramento contínuoScripting

O que você vai descobrir

🎯 Por que isso importa

Os caçadores mais bem-sucedidos trabalham de forma eficiente, não exaustiva. Recon automatizada roda enquanto você dorme. Monitoramento contínuo captura novos assets antes dos competidores verem. Scripting lida com testes repetitivos em centenas de endpoints. Automação permite escalar seus esforços além do que testes manuais permitem.

🔍 O que você vai aprender

  • Pipelines de reconhecimento automatizados (e como cada parte funciona)
  • Monitoramento contínuo de subdomínios para capturar novos assets primeiro
  • Sistemas de notificação que alertam sobre descobertas
  • Conceitos fundamentais de scripting para testes
  • Nuclei para scanning de vulnerabilidades em escala
  • Práticas de automação responsável

🚀 Sua primeira vitória

Ao final deste capítulo, você terá um pipeline de recon automatizado que descobre assets enquanto você foca em testes reais - e vai entender cada linha de código nele.

🔧 Seu primeiro pipeline automatizado

Encadeie ferramentas para descoberta automatizada. Crie este script e execute:

#!/bin/bash
# recon.sh - Pipeline de reconhecimento automatizado
# Uso: ./recon.sh target.com

# --- O QUE ESTE SCRIPT FAZ ---
# 1. Recebe um domínio como entrada
# 2. Encontra todos os subdomínios
# 3. Verifica quais estão ativos
# 4. Obtém URLs históricas
# 5. Salva tudo em arquivos organizados

# --- O CÓDIGO ---

TARGET=$1  # $1 significa "primeiro argumento passado ao script"

# Verificação de segurança: Certifique-se de que um alvo foi fornecido
if [ -z "$TARGET" ]; then
    echo "Uso: ./recon.sh target.com"
    exit 1  # Sair com código de erro
fi

# Criar diretório de saída para este alvo
OUTPUT_DIR="./recon/$TARGET"
mkdir -p $OUTPUT_DIR  # -p cria diretórios pais se necessário

echo "[*] Iniciando recon para $TARGET"
echo "[*] Resultados serão salvos em $OUTPUT_DIR"

# Passo 1: Enumeração de subdomínios
echo "[+] Encontrando subdomínios..."
subfinder -d $TARGET -silent -o $OUTPUT_DIR/subdomains.txt
SUBDOMAIN_COUNT=$(wc -l < $OUTPUT_DIR/subdomains.txt)
echo "    Encontrados $SUBDOMAIN_COUNT subdomínios"

# Passo 2: Sondar hosts ativos
echo "[+] Verificando quais hosts estão ativos..."
cat $OUTPUT_DIR/subdomains.txt | httpx -silent -o $OUTPUT_DIR/live_hosts.txt
LIVE_COUNT=$(wc -l < $OUTPUT_DIR/live_hosts.txt)
echo "    Encontrados $LIVE_COUNT hosts ativos"

# Passo 3: Obter URLs históricas do Wayback Machine
echo "[+] Buscando URLs históricas..."
echo $TARGET | waybackurls > $OUTPUT_DIR/wayback_urls.txt
WAYBACK_COUNT=$(wc -l < $OUTPUT_DIR/wayback_urls.txt)
echo "    Encontradas $WAYBACK_COUNT URLs históricas"

# Passo 4: Resumo
echo ""
echo "=== RECON COMPLETA ==="
echo "Alvo:       $TARGET"
echo "Subdomínios: $SUBDOMAIN_COUNT"
echo "Hosts ativos: $LIVE_COUNT"
echo "Wayback:    $WAYBACK_COUNT URLs"
echo "Saída:      $OUTPUT_DIR/"

Para usar este script:

# 1. Salve o script como recon.sh
# 2. Torne-o executável:
chmod +x recon.sh

# 3. Execute:
./recon.sh target.com

# Resultados aparecem em ./recon/target.com/

Habilidades que você vai dominar

Scripting shell

Escreva scripts bash que automatizam tarefas repetitivas

Design de pipeline

Encadeie ferramentas para workflows eficientes

Monitoramento contínuo

Configure scans automatizados que rodam em agenda

Integração de alertas

Receba notificações quando automação encontrar algo

Entendendo automação em bug bounty

"Automação lida com quantidade. Você lida com qualidade."

Por que automação dá vantagem

Considere este cenário: Uma empresa adiciona um novo subdomínio às 2h da manhã. Um caçador com monitoramento contínuo captura às 2h05 e começa a testar. Um caçador sem automação pode não descobrir por dias - até lá, outros caçadores já encontraram os bugs fáceis.

Vantagens da automação:

  • Velocidade: Seja o primeiro a testar novos assets
  • Cobertura: Teste centenas de subdomínios enquanto você dorme
  • Consistência: Nunca esqueça de verificar algo
  • Economia de tempo: Gaste tempo testando, não executando comandos repetitivos

O que automatizar vs o que fazer manualmente

Automatize isso (repetitivo, escalável):

  • Enumeração e monitoramento de subdomínios
  • Detecção de hosts ativos
  • Coleta de screenshots
  • Fingerprinting de tecnologia
  • Scanning de vulnerabilidades conhecidas (templates Nuclei)
  • Coleta de URLs históricas

Mantenha manual (requer julgamento humano):

  • Testes de lógica de negócio - automação não consegue entender propósito da aplicação
  • Fluxos de autenticação complexos - requerem entendimento de gerenciamento de sessão
  • Vulnerabilidades encadeadas - precisam de pensamento criativo para conectar bugs
  • Escrita de relatórios - relatórios de qualidade requerem explicação humana
  • Avaliação de impacto - determinar consequências do mundo real

Técnicas de automação

Monitoramento contínuo de subdomínios

Este script roda diariamente, compara subdomínios de hoje com os de ontem e alerta sobre novas descobertas:

#!/bin/bash
# monitor.sh - Alertar sobre novos subdomínios
# Executar diariamente via cron job

TARGET=$1
DATA_DIR="./monitor/$TARGET"
mkdir -p $DATA_DIR

# Caminhos dos arquivos
OLD_SUBS="$DATA_DIR/subs_previous.txt"
NEW_SUBS="$DATA_DIR/subs_current.txt"
DIFF_FILE="$DATA_DIR/subs_new.txt"

# Obter subdomínios atuais
echo "[*] Escaneando $TARGET por subdomínios..."
subfinder -d $TARGET -silent -o $NEW_SUBS

# Primeira execução? Salvar baseline
if [ ! -f "$OLD_SUBS" ]; then
    cp $NEW_SUBS $OLD_SUBS
    echo "[*] Primeira execução - baseline salva"
    exit 0
fi

# Comparar: Encontrar subdomínios em NEW que não estão em OLD
# comm -13 mostra linhas únicas ao arquivo 2 (novos subdomínios)
comm -13 <(sort $OLD_SUBS) <(sort $NEW_SUBS) > $DIFF_FILE

# Verificar se encontramos algo novo
if [ -s "$DIFF_FILE" ]; then  # -s verifica se arquivo tem conteúdo
    NEW_COUNT=$(wc -l < $DIFF_FILE)
    echo "[!] Encontrados $NEW_COUNT NOVOS subdomínios!"
    echo ""
    cat $DIFF_FILE
    echo ""

    # Opcional: Enviar notificação (descomente e configure)
    # notify_discord "Novos subdomínios para $TARGET: $(cat $DIFF_FILE)"
else
    echo "[*] Nenhum novo subdomínio encontrado"
fi

# Atualizar baseline para próxima execução
cp $NEW_SUBS $OLD_SUBS

# --- PARA EXECUTAR DIARIAMENTE ---
# Adicionar ao crontab (executar: crontab -e)
# 0 6 * * * /caminho/para/monitor.sh target.com >> /caminho/para/monitor.log 2>&1
#
# Isso executa às 6h da manhã todo dia
# Formato cron: minuto hora dia mês dia_semana comando

Scanning de vulnerabilidades com Nuclei

Nuclei usa templates para escanear vulnerabilidades conhecidas. É como ter milhares de verificações de segurança automatizadas:

# INSTALAÇÃO
go install -v github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest

# Atualizar templates (execute regularmente - novas vulnerabilidades adicionadas frequentemente)
nuclei -update-templates
# O que faz: Baixa os templates mais recentes de detecção de vulnerabilidades
# Templates cobrem: CVEs, misconfigs, painéis expostos, takeovers, etc.

# ─────────────────────────────────────────────────────────

# EXEMPLOS DE SCANNING

# Escanear todos os hosts ativos com todos os templates
nuclei -l live_hosts.txt -o all_findings.txt
# Aviso: Isso pode levar horas em listas grandes. Comece direcionado.

# Escanear apenas subdomain takeovers
nuclei -l live_hosts.txt -t takeovers/ -o takeovers.txt
# O que faz: Verifica takeovers de GitHub Pages, Heroku, S3, etc.
# Scan rápido, descobertas de alto valor

# Escanear painéis admin expostos
nuclei -l live_hosts.txt -t exposed-panels/ -o panels.txt
# O que faz: Encontra páginas de login, interfaces admin, dashboards
# Bom para encontrar painéis admin esquecidos

# Escanear apenas severidades críticas e altas
nuclei -l live_hosts.txt -severity critical,high -o critical_findings.txt
# Use quando quiser focar em problemas de impacto

# Escanear CVEs específicos
nuclei -l live_hosts.txt -t cves/2024/ -o cve_findings.txt
# Testa vulnerabilidades conhecidas de 2024

# ─────────────────────────────────────────────────────────

# INTERPRETANDO RESULTADOS

# Formato de saída do Nuclei:
# [template-id] [severity] [protocol] [matched-url] [extracted-info]
#
# Exemplo:
# [git-config-exposure] [medium] [http] [https://target.com/.git/config]
#
# Isso te diz:
# - O que foi encontrado (template git-config-exposure deu match)
# - Severidade (medium)
# - Onde (https://target.com/.git/config)
#
# IMPORTANTE: Nuclei encontra problemas POTENCIAIS
# Sempre verifique descobertas manualmente antes de reportar

Integração de notificações

Receba alertas quando automação encontrar algo interessante:

# Notificação Webhook Discord
# 1. Criar webhook: Configurações do Servidor → Integrações → Webhooks → Novo Webhook
# 2. Copiar a URL do webhook

notify_discord() {
    local MESSAGE="$1"
    local WEBHOOK_URL="https://discord.com/api/webhooks/SEU_WEBHOOK_ID/SEU_TOKEN"

    # Enviar requisição POST para Discord
    curl -s -X POST "$WEBHOOK_URL" \
        -H "Content-Type: application/json" \
        -d "{\"content\": \"$MESSAGE\"}"
}

# Uso nos seus scripts:
if [ -s "$DIFF_FILE" ]; then
    notify_discord "🔔 Novos subdomínios encontrados para $TARGET: $(cat $DIFF_FILE | tr '\n' ' ')"
fi

# ─────────────────────────────────────────────────────────

# Webhook Slack (abordagem similar)
notify_slack() {
    local MESSAGE="$1"
    local WEBHOOK_URL="https://hooks.slack.com/services/SEU/SLACK/WEBHOOK"

    curl -s -X POST "$WEBHOOK_URL" \
        -H "Content-Type: application/json" \
        -d "{\"text\": \"$MESSAGE\"}"
}

# ─────────────────────────────────────────────────────────

# Notificação Bot Telegram
notify_telegram() {
    local MESSAGE="$1"
    local BOT_TOKEN="SEU_TOKEN_BOT"
    local CHAT_ID="SEU_CHAT_ID"

    curl -s "https://api.telegram.org/bot${BOT_TOKEN}/sendMessage" \
        -d "chat_id=${CHAT_ID}" \
        -d "text=${MESSAGE}"
}

# Dica: Mantenha URLs de webhook em arquivo de config separado, não nos scripts
# source ~/.config/notify_config.sh

Histórias de sucesso de automação

🏆 Primeiro em um novo subdomínio

O script de monitoramento de um caçador detectou um novo subdomínio (staging-api.target.com) às 3h da manhã. Às 3h15, scans Nuclei automatizados encontraram modo debug habilitado. Às 4h, o caçador tinha escrito e submetido um relatório de credenciais de banco de dados expostas. Recompensa de $5.000 - tudo porque automação rodou enquanto ele dormia.

Lição: Monitoramento contínuo + scanning automatizado = vantagem de primeiro a chegar em novos assets.

🏆 Escalando para 50 programas

Um caçador em tempo parcial não conseguia competir com pesquisadores em tempo integral manualmente. Ele construiu um pipeline que monitorava 50 programas, executava recon toda noite e alertava sobre novos subdomínios ou descobertas Nuclei. Em 6 meses, ele ganhou mais de $30.000 - tudo de descobertas automatizadas que ele verificou manualmente e reportou.

Lição: Automação permite monitorar programas em escala. Você se torna sua própria equipe de segurança.

Práticas de automação responsável

⚠️ Regras para testes automatizados

1. Respeite limites de taxa. Não sobrecarregue alvos com requisições. Use contagens de threads razoáveis (10-50, não 1000). Adicione delays se necessário. Ser bloqueado não ajuda ninguém.

2. Verifique políticas dos programas. Alguns programas proíbem scanning automatizado completamente. Outros têm regras específicas sobre intensidade de scan. Leia antes de executar.

3. Não escaneie fora do escopo. Certifique-se de que sua automação toca apenas assets em escopo. Um wildcard (*.target.com) não significa que você pode escanear fornecedores deles.

4. Verifique antes de reportar. Descobertas Nuclei são problemas potenciais, não vulnerabilidades confirmadas. Sempre verifique manualmente que o problema existe e é explorável antes de submeter um relatório.

Perguntas frequentes

Preciso saber programar para automatizar?

Scripting bash fundamental é suficiente para começar - os exemplos neste capítulo funcionam como estão. Você pode copiar, modificar e combinar esses scripts sem conhecimento profundo de programação. Conforme você progride, aprender Python abre mais possibilidades para ferramentas customizadas. Comece com bash, aprenda modificando scripts existentes e cresça a partir daí.

Onde devo executar minha automação?

VPS (recomendado): Um servidor de $5-10/mês da DigitalOcean, Linode ou Vultr roda 24/7, tem bandwidth estável e mantém seu IP residencial separado dos testes. Ótimo para monitoramento contínuo.

Máquina local: Bom para scans sob demanda. Use cron jobs para tarefas agendadas. Lembre que seu computador precisa estar ligado e conectado.

Funções cloud: AWS Lambda, Google Cloud Functions para tarefas periódicas leves. Mais complexo de configurar mas escala bem.

Automação não vai me fazer ser bloqueado?

Pode se você for agressivo. Boas práticas para evitar bloqueios:
- Use contagens de threads razoáveis (comece com 10-20)
- Adicione delays entre requisições (flag -delay em muitas ferramentas)
- Use um VPS com IP limpo (IPs residenciais são bloqueados mais rápido)
- Rode entre múltiplos programas em vez de martelar um só
- Recon passiva (subfinder) não toca o alvo, então não pode causar bloqueios

Posso reportar descobertas Nuclei diretamente?

Não - sempre verifique primeiro. Templates Nuclei podem ter falsos positivos. Antes de reportar:
1. Visite manualmente a URL e confirme o problema
2. Entenda o que você está vendo (não reporte "Nuclei disse")
3. Avalie o impacto real (algumas descobertas têm impacto baixo/nenhum)
4. Escreva um relatório adequado explicando a vulnerabilidade

Programas perdem paciência rapidamente com caçadores que spamam saída de scanner não verificada.

O que é um cron job?

Cron é um agendador Linux que roda comandos em horários especificados. Para editar sua agenda cron:

crontab -e

Formato: minuto hora dia mês dia_semana comando

Exemplos:
0 6 * * * /caminho/para/script.sh - Roda diariamente às 6h
0 */4 * * * /caminho/para/script.sh - Roda a cada 4 horas
0 0 * * 0 /caminho/para/script.sh - Roda semanalmente no domingo

🎯 Você pode automatizar sua caça!

Pipelines de recon, monitoramento contínuo, scanning Nuclei, notificações - você agora tem as ferramentas para escalar seus esforços de bug bounty. Sua automação roda enquanto você dorme, capturando novos assets antes dos competidores.

Automação Nuclei Monitoramento Notificações

Pronto para construir sua carreira de bug bounty →

Validação de Conhecimento

Demonstre sua compreensão para ganhar pontos e progredir

1
Pergunta do Capítulo

Qual cadeia de ferramentas é comumente usada para descoberta automatizada de subdomínios e sondagem?

1
Ler
2
Validar
3
Concluir

Pronto para acompanhar seu progresso?

Crie uma conta gratuita para salvar seu progresso, ganhar pontos e acessar mais de 170 labs práticos de cibersegurança.

Comece a Aprender Grátis
Junte-se a 5.000+ hackers aprendendo cibersegurança com labs práticos. Criar Conta