Skip to content

Telegram bot para reconhecimento automatizado de domínios usando ProjectDiscovery tools (subfinder, httpx, dnsx, nuclei) + WhatWeb. Features: PDF reports, scan history, rate limiting. Topics sugeridos: telegram-bot, recon, reconnaissance, projectdis

Notifications You must be signed in to change notification settings

rafabez/recon_bot

Repository files navigation

🤖 Recon Bot

Telegram bot para reconhecimento automatizado de domínios usando ferramentas da ProjectDiscovery

Bot de reconhecimento que integra múltiplas ferramentas de segurança em uma interface simples via Telegram. Ideal para pentesters, security researchers e profissionais de infosec.

✨ Funcionalidades

  • 🔍 Enumeração de Subdomínios - Descoberta automática com subfinder
  • 🌐 Análise HTTP/HTTPS - Teste de hosts ativos com detecção de tecnologias (httpx)
  • 📡 Informações DNS - Coleta completa de registros DNS (dnsx)
  • 📋 WHOIS - Informações de registro de domínio
  • 🔎 Identificação de Tecnologias - Detecção de stack tecnológico (whatweb)
  • 📊 Relatórios PDF - Exportação de resultados
  • 💾 Histórico Completo - Armazenamento e download de todos os scans
  • 📈 Estatísticas - Tracking de uso e rate limiting

🛠️ Stack Tecnológico

Core Tools:

  • subfinder - Subdomain enumeration
  • httpx - Fast HTTP probe
  • dnsx - DNS toolkit
  • WhatWeb - Web technology identifier
  • whois - Domain registration lookup

Framework:

  • Python 3.8+
  • python-telegram-bot
  • ReportLab (PDF generation)

📋 Requisitos

  • Python 3.8+
  • Ubuntu/Debian Linux (testado em Oracle Cloud Free Tier)
  • Go 1.21+ (para ferramentas ProjectDiscovery)
  • Ruby (para WhatWeb)

🚀 Quick Start

# 1. Clone o repositório
git clone https://github.com/rafabez/recon_bot.git
cd recon_bot

# 2. Execute o instalador automático
chmod +x install_tools.sh
./install_tools.sh
source ~/.bashrc

# 3. Configure o ambiente Python
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

# 4. Configure seu token do Telegram
cp .env.example .env
nano .env  # Adicione: TELEGRAM_BOT_TOKEN=seu_token_aqui

# 5. Execute o bot
python bot.py

🔧 Configuração do Bot no Telegram

  1. Abra o Telegram e procure por @BotFather
  2. Envie /newbot e siga as instruções
  3. Copie o token fornecido
  4. Cole o token no arquivo .env

📱 Uso

Comandos:

  • /start - Iniciar bot
  • /help - Informações e ajuda
  • /stats - Estatísticas de uso
  • /history - Histórico de scans (admin)
  • /download - Download de resultados (admin)

Scan de Domínio:

Simplesmente envie um domínio para o bot e ele executará o recon completo:

example.com

Recursos Automáticos:

  • ✅ Enumeração completa de subdomínios
  • ✅ Teste de hosts HTTP/HTTPS ativos
  • ✅ Coleta de registros DNS
  • ✅ Consulta WHOIS
  • ✅ Identificação de tecnologias web
  • ✅ Geração de relatório PDF
  • ✅ Download em formato ZIP

📁 Estrutura de Arquivos

recon_bot/
├── bot.py                 # Bot principal
├── config.py              # Configurações
├── recon_tools.py         # Módulo de execução das ferramentas
├── requirements.txt       # Dependências Python
├── install_tools.sh       # Script de instalação
├── .env.example          # Exemplo de configuração
├── .env                  # Configuração (não commitado)
├── .gitignore
├── README.md
├── scans/                # Resultados dos scans
│   └── domain_timestamp/
│       ├── subdomains.txt
│       ├── httpx.json
│       ├── dns.json
│       ├── whois.txt
│       ├── whatweb.json
│       └── summary.json
└── history/              # Histórico de scans
    └── domain_timestamp.json

🔒 Segurança

Controle de Acesso:

Por padrão, o bot é público. Para restringir acesso, edite .env:

ALLOWED_USERS=123456789,987654321

Use @userinfobot para descobrir seu Telegram User ID.

Boas Práticas:

  • ✅ Mantenha o .env seguro (já está no .gitignore)
  • ✅ Use ambiente virtual Python
  • ✅ Configure firewall no servidor
  • ✅ Rate limiting habilitado por padrão

🌐 Deploy em Produção

Opção 1: systemd (recomendado)

Use o arquivo systemd-service.example como template e configure o serviço:

sudo cp systemd-service.example /etc/systemd/system/recon-bot.service
sudo nano /etc/systemd/system/recon-bot.service  # Ajuste os paths
sudo systemctl daemon-reload
sudo systemctl enable --now recon-bot
sudo journalctl -u recon-bot -f  # Ver logs

Opção 2: screen

screen -S recon-bot
source venv/bin/activate
python bot.py
# Ctrl+A, D para detach

🐛 Troubleshooting

Tool not found:

which subfinder httpx dnsx
export PATH=$PATH:$HOME/go/bin
source ~/.bashrc

Bot não responde:

sudo journalctl -u recon-bot -f  # Ver logs

Timeout em scans:

  • Ajuste TOOL_TIMEOUT em config.py
  • Verifique recursos do servidor (RAM, CPU)

📊 Requisitos de Servidor

Testado em Oracle Cloud Free Tier:

  • CPU: 1-2 vCPU
  • RAM: 1GB (mínimo) | 2GB (recomendado)
  • Storage: 10GB+

🤝 Contribuindo

Pull requests são bem-vindos! Para mudanças importantes, abra uma issue primeiro para discussão.

Veja IMPROVEMENTS.md para lista de melhorias planejadas.

📄 Licença

Este projeto é para fins educacionais. Use de forma responsável e ética.

⚠️ Aviso Legal

Este bot é para fins de pesquisa e educação apenas. Sempre obtenha permissão antes de realizar reconhecimento em domínios que você não possui. O uso indevido desta ferramenta pode violar leis locais.

🙏 Créditos

Construído com ferramentas open-source incríveis:


⭐ Se este projeto foi útil, considere dar uma estrela!

Desenvolvido para a comunidade de infosec 🔒

About

Telegram bot para reconhecimento automatizado de domínios usando ProjectDiscovery tools (subfinder, httpx, dnsx, nuclei) + WhatWeb. Features: PDF reports, scan history, rate limiting. Topics sugeridos: telegram-bot, recon, reconnaissance, projectdis

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published