feat(recon): grupo de reconocimiento de red + servicios + fingerprint web

Añade el capability group `recon` (dominio cybersecurity + pipelines, Python),
con la política de archivado OSINT y página madre docs/capabilities/recon.md.

Lookups y sondeo (wrappers de CLI):
- whois_lookup, rdap_lookup, dns_records, ping_host, traceroute_host, nmap_scan
- save_scan_to_osint (sink común) + recon_osint (pipeline one-shot scan+archivado)

Escaneo de puertos/servicios nativo (stdlib, sin nmap ni sudo):
- scan_tcp_ports: connect-scan TCP concurrente (open/closed/filtered)
- grab_service_banner: banner grab + identificación de servicio/versión real
- identify_port_service: puro, puerto -> servicio IANA esperado (~120 puertos)
- scan_port_services: pipeline one-shot (scan -> identify + banner por puerto abierto)

Fingerprint de tecnología web (estilo Wappalyzer), patrón pura/impura:
- fetch_http_fingerprint: GET stdlib, recoge headers/html/cookies (solo nombres)
- detect_web_tech: puro, matchea ~50 firmas regex -> tecnologías por categoría
- fingerprint_web_stack: pipeline one-shot url -> tecnologías

Todas devuelven dict {status} sin lanzar. Tests: 43 verdes, sin red externa.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-14 15:12:07 +02:00
parent d89da1292d
commit 935008ec3f
49 changed files with 6659 additions and 302 deletions
@@ -32,6 +32,18 @@ from .whois_lookup import whois_lookup
from .dns_records import dns_records
from .enum_subdomains_crtsh import enum_subdomains_crtsh
# Active recon (grupo recon).
from .nmap_scan import nmap_scan
from .rdap_lookup import rdap_lookup
from .ping_host import ping_host
from .traceroute_host import traceroute_host
from .scan_tcp_ports import scan_tcp_ports
from .grab_service_banner import grab_service_banner
from .identify_port_service import identify_port_service
from .save_scan_to_osint import save_scan_to_osint
from .fetch_http_fingerprint import fetch_http_fingerprint
from .detect_web_tech import detect_web_tech
# OSINT passive enrichment orchestrators (grupo osint-enrich).
from .scan_ficha_attachments_metadata import scan_ficha_attachments_metadata
from .enrich_person_passive import enrich_person_passive
@@ -67,6 +79,16 @@ __all__ = [
"whois_lookup",
"dns_records",
"enum_subdomains_crtsh",
"nmap_scan",
"rdap_lookup",
"ping_host",
"traceroute_host",
"scan_tcp_ports",
"grab_service_banner",
"identify_port_service",
"save_scan_to_osint",
"fetch_http_fingerprint",
"detect_web_tech",
"scan_ficha_attachments_metadata",
"enrich_person_passive",
"enrich_org_passive",