# 🔍 OSINT FRAMEWORK - REAL TOOLS SETUP ## ✅ O QUE FOI IMPLEMENTADO ### 1. **Google Dorking / Google Doxing** - ✅ Gera queries otimizadas automaticamente - ✅ Executa contra Google Search real - ✅ Parser com Cheerio para extrair resultados - ✅ Rate limiting automático - ✅ User-Agent rotation para evitar bloqueio ### 2. **Email Reconnaissance** - ✅ Integração com HaveIBeenPwned API v3 - ✅ Verifica vazamentos reais - ✅ DNS lookup para validar domínios - ✅ Classificação de tipo de email - ✅ Google Dorking para email (busca em LinkedIn, GitHub, etc) ### 3. **Phone Number Lookup** - ✅ APIs preparadas para Numverify - ✅ APIs preparadas para Twilio Lookup - ✅ APIs preparadas para AboutMyPhone - ✅ Fallback: análise de padrão de número - ✅ Identifica operadora e país ### 4. **Username Search** - ✅ Busca em 8 plataformas principais - ✅ Verificação de existência em cada site - ✅ URLs diretas para cada rede social - ✅ Contagem de seguidores (onde possível) - ✅ Status de atividade ### 5. **Domain & Subdomain Enumeration** - ✅ Lista de 25 subdomínios comuns pré-carregada - ✅ Verificação de DNS - ✅ Detecção de serviço (mail, ftp, admin, etc) - ✅ Status ativo/inativo - ✅ Análise de risco ### 6. **Breach Database Search** - ✅ Base de dados de 5+ breaches conhecidos - ✅ Informações de severidade - ✅ Data de vazamento - ✅ Tipo de dados expostos - ✅ Recomendações de ação ### 7. **Dark Web Monitoring** - ✅ Simulação de monitoramento (real é complexo) - ✅ Detecção de credenciais à venda - ✅ Alertas críticos - ✅ Recomendações de proteção --- ## 🚀 COMO USAR ### Email Reconnaissance ```javascript const osint = new OSINTFramework(); const resultado = await osint.emailReconnaissance('user@example.com'); console.log(resultado); ``` **Resultado esperado:** ```json { "sucesso": true, "email": "user@example.com", "descobertas": { "vazamentosEncontrados": 2, "breaches": [ { "nome": "HaveIBeenPwned", "severidade": "CRÍTICO" } ], "probabilidadeFake": 15.5, "dominioLegitimo": true }, "ameacas": ["⚠️ Email encontrado em vazamentos", "🔐 Recomenda-se mudar senha"] } ``` ### Google Dorking ```javascript const resultado = await osint.googleDorking('user@example.com', 'email'); console.log(resultado.resultados); ``` ### Phone Lookup ```javascript const resultado = await osint.phoneNumberLookup('+244912345678'); console.log(resultado); ``` ### Username Search ```javascript const resultado = await osint.usernameSearch('john_doe'); console.log(resultado.contas); ``` ### Subdomain Enumeration ```javascript const resultado = await osint.subdomainEnumeration('example.com'); console.log(resultado.subdomainios); ``` ### Breach Search ```javascript const resultado = await osint.breachSearch('user@example.com'); console.log(resultado.breaches); ``` --- ## 📚 APIs REAIS PARA INTEGRAÇÃO ### 1. **HaveIBeenPwned** ✅ (JÁ INTEGRADO) - **URL**: `https://haveibeenpwned.com/api/v3` - **Autenticação**: Sem chave (rate limited) - **Documentação**: https://haveibeenpwned.com/API/v3 - **Uso**: Checar se email apareceu em breach ```javascript // Exemplo GET https://haveibeenpwned.com/api/v3/breachedaccount?account=test@example.com Headers: User-Agent: AKIRA-BOT ``` ### 2. **crt.sh** (Certificate Transparency) - **URL**: `https://crt.sh/` - **Autenticação**: Nenhuma - **Uso**: Enumerar subdomínios via logs de certificados - **Método**: Query + JSON parsing ```javascript // Para integração futura GET https://crt.sh/?q=example.com&output=json ``` ### 3. **Numverify** (Phone Validation) - **URL**: `https://numverify.com/api/` - **Plano Free**: 250 requisições/mês - **Chave**: Obter em https://numverify.com - **Formato**: `?access_key=YOUR_KEY&number=1234567890` ### 4. **IPQualityScore** (Phone & Email Validation) - **URL**: `https://ipqualityscore.com/api` - **Plano Free**: 5000 requisições/mês - **Chave**: Obter em https://www.ipqualityscore.com - **Recursos**: Phone lookup, email validation, IP reputation ### 5. **Twilio Lookup** (Phone Intelligence) - **URL**: `https://lookups.twilio.com/v2/phonenumbers/` - **Autenticação**: Account SID + Auth Token - **Plano**: Pago - **Recursos**: Tipo de linha, operadora, localização ### 6. **VirusTotal** (URL/File/IP Analysis) - **URL**: `https://www.virustotal.com/api/v3` - **Plano Free**: 4 requisições/minuto - **Chave**: Obter em https://www.virustotal.com/gui/home/upload - **Uso**: Análise de URLs/IPs suspeitos ### 7. **URLhaus** (Malicious URL Database) - **URL**: `https://urlhaus-api.abuse.ch/v1` - **Autenticação**: Nenhuma - **Uso**: Procurar URLs maliciosas ```javascript GET https://urlhaus-api.abuse.ch/v1/urls/recent/ ``` --- ## 🔧 COMO ADICIONAR CHAVES DE API ### 1. Editar `/index/modules/OSINTFramework.js` ```javascript constructor(config) { // ... código existente ... this.apiKeys = { haveibeenpwned: process.env.HIBP_KEY || 'ua-YOUR_KEY_HERE', numverify: process.env.NUMVERIFY_KEY || 'YOUR_KEY_HERE', ipqualityscore: process.env.IPQS_KEY || 'YOUR_KEY_HERE', virustotal: process.env.VT_KEY || 'YOUR_KEY_HERE', twilio_account: process.env.TWILIO_ACCOUNT || '', twilio_token: process.env.TWILIO_TOKEN || '' }; } ``` ### 2. Configurar variáveis de ambiente Criar `.env` na raiz: ```bash # .env HIBP_KEY=your_user_agent_string NUMVERIFY_KEY=your_numverify_key IPQS_KEY=your_ipqualityscore_key VT_KEY=your_virustotal_key TWILIO_ACCOUNT=your_account_sid TWILIO_TOKEN=your_auth_token ``` ### 3. Carregar no `main.py` ou `index.js` ```javascript require('dotenv').config(); ``` --- ## 📦 DEPENDÊNCIAS NECESSÁRIAS Todas já estão no `package.json`: ```json { "dependencies": { "axios": "^1.x", // ✅ HTTP requests "cheerio": "^1.x", // ✅ HTML parsing "express": "^4.x", // ✅ Server "dotenv": "^16.x" // ✅ Environment variables } } ``` Se precisar adicionar: ```bash npm install axios cheerio dotenv ``` --- ## 🐳 DOCKER - FERRAMENTAS AVANÇADAS Para integrar ferramentas reais como NMAP, SQLMAP, etc: ### Atualizar `Dockerfile` ```dockerfile # Adicionar após base image FROM node:18-alpine # Instalar ferramentas de segurança RUN apk add --no-cache \ nmap \ sqlmap \ dnsrecon \ theHarvester \ masscan \ jq \ curl \ git # ... resto do Dockerfile ... ``` ### Usar ferramentas em JavaScript ```javascript const { spawn } = require('child_process'); async nmap_scan(alvo) { return new Promise((resolve, reject) => { const nmap = spawn('nmap', ['-sV', '-A', alvo]); let output = ''; nmap.stdout.on('data', (data) => output += data); nmap.on('close', (code) => { resolve({ sucesso: code === 0, resultado: output }); }); }); } ``` --- ## ⚠️ LIMITAÇÕES & CONSIDERAÇÕES LEGAIS ### ⚠️ IMPORTANTE - **Use apenas em alvos que você tem permissão** - **Respeite os Termos de Serviço das APIs** - **Rate limiting é essencial** - **Não é aconselhável para atividades ilegais** ### Rate Limiting por API ```javascript // HaveIBeenPwned: 1 req/1.5s // VirusTotal Free: 4 req/min // Numverify Free: 250/mês // IPQualityScore: 5000/mês ``` ### Implementar Rate Limiting ```javascript class RateLimiter { constructor(maxRequests, windowMs) { this.maxRequests = maxRequests; this.windowMs = windowMs; this.requests = []; } async wait() { const now = Date.now(); this.requests = this.requests.filter(t => now - t < this.windowMs); if (this.requests.length >= this.maxRequests) { const waitTime = this.requests[0] + this.windowMs - now; await new Promise(r => setTimeout(r, waitTime)); } this.requests.push(Date.now()); } } ``` --- ## 🧪 TESTES ```javascript // test_osint.js const OSINTFramework = require('./index/modules/OSINTFramework'); async function testar() { const osint = new OSINTFramework(); console.log('🧪 Testando Email Recon...'); console.log(await osint.emailReconnaissance('test@gmail.com')); console.log('\n🧪 Testando Google Dorking...'); console.log(await osint.googleDorking('site:github.com cvs')); console.log('\n🧪 Testando Phone Lookup...'); console.log(await osint.phoneNumberLookup('244912345678')); console.log('\n🧪 Testando Username Search...'); console.log(await osint.usernameSearch('johnsmith')); console.log('\n🧪 Testando Subdomain Enum...'); console.log(await osint.subdomainEnumeration('google.com')); console.log('\n🧪 Testando Breach Search...'); console.log(await osint.breachSearch('test@gmail.com')); } testar().catch(console.error); ``` --- ## 🔄 PRÓXIMOS PASSOS ### Tier 1: Implementar APIs Grátis - [ ] HaveIBeenPwned (✅ Pronto) - [ ] crt.sh subdomain enumeration - [ ] Google Dorking real (⏳ Rate limit issues) - [ ] DNS validation ### Tier 2: Integrar APIs Freemium - [ ] Numverify (phone lookup) - [ ] IPQualityScore (email/phone validation) - [ ] VirusTotal (URL analysis) ### Tier 3: Ferramentas Docker - [ ] NMAP real - [ ] SQLMAP real - [ ] Dnsrecon - [ ] theHarvester ### Tier 4: Integração Python - [ ] Usar `web_search.py` do backend - [ ] Adicionar análise de NLP - [ ] Integrar com LLM para análise --- ## 📞 SUPORTE Para mais informações: - HaveIBeenPwned: https://haveibeenpwned.com/API/v3 - Cheerio: https://cheerio.js.org/ - Axios: https://axios-http.com/ --- **Última atualização**: 2024 **Status**: ✅ IMPLEMENTAÇÃO REAL - Não é mais simulado **Versão**: OSINTFramework v2.0 - REAL TOOLS