EM ANDAMENTO
Resumo técnico
Plugin do NEXUS que enriquece domínios detectados em tarefas e comentários com WHOIS, DNS histórico (IP History), subdomínios e IPs atuais via API v1 do SecurityTrails, alimentando o Intelligence Hub com sinais de severidade. Consultas com cache local com TTL configurável, aba dedicada com lookup, histórico e configurações, e detecção automática de domínios em textos.
Escopo executado
- Registro:
plugin.jsonv1.0.0, ícone lucideglobe,icon_bg #0ea5e9,icon.pngpróprio;registerTab('securitytrails','SecurityTrails','globe',tab.php,'OSINT & Enrichment')+registerDoc('securitytrails','SecurityTrails','globe',doc.md); semcronjob.json(plugin sob demanda). - Aba dedicada (Alpine.js): 3 abas (Consultar / Histórico / Configurações); badge API Online/Offline no topo (valida via
GET /v1/ping); 4 stats cards do cache (total, hoje, com histórico, com subdomínios); lookup com checkbox Forçar (ignora o cache) e resultado com registrar, org/registrant, criado/expira, IPs atuais, subdomínios (até 24) e tabela DNS History (first/last seen + IPs); histórico de cache recente clicável que reconsulta com um clique. - Configuração: API key em
DB::setConfig('plugin.securitytrails'); togglesenrich_tasks/enrich_comments/include_whois/include_subdomains/include_dns_history; TTL de cache 1–168h (default 24h); campo de chave vazio mantém a chave salva. - API v1 via cURL: base
https://api.securitytrails.com/v1, headerAPIKEY, UANEXUS-SecurityTrails/1.0, timeout de conexão 8s e total 30s; endpointsGET /ping,/domain/{hostname},/domain/{hostname}/whois,/domain/{hostname}/subdomains(children_only=false) e/history/{hostname}/dns/a(page=1); trata 401/403 (chave inválida), 429 (rate limit), 404 (sem dados na base). - Detecção automática:
st_extract_domains()extrai URLs e FQDNs de tarefas/comentários (ignora localhost,example.*, IPs e extensões de arquivo), até 3 domínios por documento; o enriquecimento injeta bloco### SecurityTrails — OSINTcom registrar, org, criado/expira, NS, IPs, subdomínios (até 8 na prévia) e histórico A. - Cache local MySQL: tabela
securitytrails_cache(domain único comON DUPLICATE KEY UPDATE) guardandocurrent_ips_json,subdomains_json,subdomains_count,whois_json,dns_history_json,summary_json,raw_responseechecked_at; TTL configurável;forceignora; falha de escrita/criação de tabela tratada silenciosamente. - Enricher do Intelligence Hub:
nx_intel_register_enricher('securitytrails', ['domain'], 'st_intel_enrich', 44)— sinaisok/needs_key/error/skipped; sem chave →needs_key("API Key necessária"); orçamentoslice ≤ min(5, max_live_lookups); severidade35quando há mais de 50 subdomínios, senão15; summary "N IP(s) · N subdomínio(s) · N reg. DNS hist.". - Fast Responses:
/securitytrails <domínio>(argumento obrigatório) →st_lookup. - API com 6 actions:
st_lookup(cache-first +force),st_stats(totais do cache +api_online),st_history(cache recente paginado, limit ≤ 100),st_settings(config pública com chave mascarada),st_settings_saveest_delete(limpa o cache de um domínio). - Normalização:
st_normalize_domain(remove scheme, porta, path ewww., valida FQDN, rejeita IPs); WHOIS normalizado (registrar, registrant, name servers ≤ 12, contact email); DNS history com records ≤ 15 e IPs ≤ 20 por registro; summary comalexa_rank,apex_domaine NS/MX atuais (≤ 8).
Stack e ferramentas
- PHP 8 backend (sem framework) + cURL (SecurityTrails API v1)
- Alpine.js + Tailwind CSS (aba dedicada no NEXUS)
- Plugin API interno (actions + enricher +
fastr.json+ cache MySQL +system_settings)
Tags
SecurityTrails, OSINT, WHOIS, DNS, Subdomínios, Intelligence Hub, Plugin NEXUS
Resultado operacional
- OSINT em um clique: domínios citados em tarefas/comentários viram WHOIS, DNS e subdomínios sem sair do NEXUS.
- Cache com TTL: consultas repetidas respondem do cache local sem gastar a cota do free tier.
- Sem chave? Sem ruído: o hub sinaliza "API Key necessária" e o fluxo da tarefa segue intacto.
- Badge de disponibilidade: status API Online/Offline visível no topo da aba.
- Histórico navegável: cache recente clicável reconsulta o domínio com um clique.
Andamento no GitHub (issues)
Painel em tempo real com as issues mais recentes do repositório.
live feed
abrir issues no githubcarregando andamento...
não foi possivel carregar as issues agora. abra no github pelo link acima.
Resultados reais
Plugin do NEXUS que enriquece domínios detectados em tarefas e comentários com WHOIS, DNS histórico (IP History), subdomínios e IPs atuais via API v1 do SecurityTrails, alimentando o Intelligence Hub com sinais de severidade. Consultas com cache local com TTL configurável, aba dedicada com lookup, histórico e configurações, e detecção automática de domínios em textos.
Arquitetura e organização
- PHP 8
- cURL
- SecurityTrails API v1
- Alpine.js
- Tailwind CSS
- Plugin NEXUS
Execução e operação
O projeto segue fluxo reprodutível de execução com validação técnica em ambiente de produção/similar.
Screenshots
Falar sobre este projeto
Aplique este modelo no seu ambiente e acelere a entrega com consistência técnica.