Saltar al contenido

VirusTotal

Tres herramientas en una key

Con una sola API key de VirusTotal tienes cobertura para los tres tipos principales de IOC:

FuncionIOCQue analiza
virustotal_ip_lookupIPReputacion, detecciones, dominios asociados
virustotal_domain_lookupDominioCategorias, DNS, WHOIS, detecciones, subdomains
virustotal_hash_lookupHash MD5/SHA1/SHA256Reputacion del fichero, detecciones AV, metadata

virustotal_ip_lookup

from src.tools.virustotal import virustotal_ip_lookup
result = await virustotal_ip_lookup("185.220.101.34")

Campos principales devueltos:

  • malicious_count: numero de motores AV que la marcan como maliciosa
  • harmless_count: motores que la marcan como benigna
  • reputation: score de reputacion (-100 a 100)
  • country: pais de origen
  • asn: numero de sistema autonomo
  • as_owner: nombre del ISP/proveedor
  • tags: etiquetas (p.ej. “TOR”, “VPN”, “hosting”)
  • last_analysis_stats: estadisticas del ultimo analisis
  • associated_domains: dominios vistos en esa IP

virustotal_domain_lookup

from src.tools.virustotal import virustotal_domain_lookup
result = await virustotal_domain_lookup("evil-phishing.com")

Campos principales:

  • categories: categorias asignadas por distintos proveedores
  • reputation: score de reputacion
  • malicious_count: detecciones
  • creation_date: fecha de registro (del WHOIS de VT)
  • last_dns_records: registros DNS recientes
  • subdomains: subdominios conocidos
  • last_https_certificate: info del certificado SSL
  • tags: etiquetas

virustotal_hash_lookup

from src.tools.virustotal import virustotal_hash_lookup
result = await virustotal_hash_lookup("d41d8cd98f00b204e9800998ecf8427e")

Campos principales:

  • meaningful_name: nombre del malware (si se conoce)
  • malicious_count: numero de AV que detectan
  • popular_threat_classification: familia de malware
  • file_type: tipo de fichero
  • size: tamano en bytes
  • first_submission_date: primera vez visto en VT
  • tags: etiquetas (packed, overlay, pdf, etc.)

Free tier

  • 500 requests/dia
  • Limite de 4 requests/minuto en el free tier
  • Sin acceso a algunos campos premium (comentarios, relaciones avanzadas)

El cache de 24h reduce el consumo real — si investigas la misma IP varias veces en un dia, solo cuenta como una llamada.

Ejemplo de salida del agente

[VirusTotal IP] 185.220.101.34
├─ Maliciosas: 87/94 motores
├─ Reputacion: -95
├─ Tags: tor, exit-node
├─ Pais: NL (Paises Bajos)
├─ ASN: AS53667 (Frantech Solutions)
└─ Dominios asociados: (3 encontrados)
├─ relay1.example.tor
├─ exit-node-nl.example.net
└─ ...