
malwoverview v8.1.0
Malwoverview es una herramienta de primera respuesta para la caza de amenazas en VirusTotal, Hybrid Analysis, URLHaus, Polyswarm, Malshare, Alien Vault, Malpedia, Malware Bazaar, ThreatFox, Triage, IPInfo, Shodan, AbuseIPDB, GreyNoise, URLScan.io, Whois/RDAP, NIST y VulnCheck. Compatible con enriquecimiento mediante LLM, extracción de IOC, análisis con YARA y análisis de Android.
Malwoverview

Copyright (C) 2018-2026 Alexandre Borges (https://exploitreversing.com)
Este programa es software libre: puedes redistribuirlo y/o modificarlo
bajo los términos de la Licencia Pública General de GNU publicada por
la Free Software Foundation, ya sea la versión 3 de la Licencia, o
(a tu elección) cualquier versión posterior.
Este programa se distribuye con la esperanza de que sea útil,
pero SIN NINGUNA GARANTÍA; sin siquiera la garantía implícita de
COMERCIABILIDAD o IDONEIDAD PARA UN PROPÓSITO PARTICULAR. Consulte la
Licencia Pública General de GNU para más detalles.
Vea la Licencia Pública General de GNU en <http://www.gnu.org/licenses/>.
Versión actual: 8.1.0 (Nombre en clave: Revolutions)
Nota importante: Malwoverview NO envía muestras a ningún endpoint de forma predeterminada,
por lo que respeta posibles Acuerdos de No Divulgación (NDA). Existen opciones específicas
que envían muestras explícitamente, pero estas opciones están explicadas en la ayuda.
ACERCA DE
Malwoverview.py es una herramienta de primera respuesta para threat hunting (caza de amenazas), que realiza un triaje inicial y rápido de muestras de malware, URLs, direcciones IP, dominios, familias de malware, IOCs y hashes. Además, Malwoverview es capaz de obtener informes de comportamiento dinámico y estático, enviar y descargar muestras desde varios endpoints. En pocas palabras, funciona como un cliente para las principales sandboxes existentes.
Esta herramienta tiene como objetivo:
- Determinar muestras de malware ejecutables similares (PE/PE+) según la tabla de importaciones (imphash) y agruparlas por diferentes colores (presta atención a la segunda columna de la salida). ¡Así que los colores importan!
- Mostrar información de hashes en los motores Virus Total, Hybrid Analysis, Malshare, Polyswarm, URLhaus, Alien Vault, Malpedia y ThreatCrowd.
- Determinar si las muestras de malware contienen overlay y, si lo deseas, extraerlo.
- Verificar archivos sospechosos en Virus Total, Hybrid Analysis y Polyswarm.
- Verificar URLs en los motores Virus Total, Malshare, Polyswarm, URLhaus y Alien Vault.
- Descargar muestras de malware desde los motores Hybrid Analysis, Malshare, URLHaus, Polyswarm y Malpedia.
- Enviar muestras de malware a VirusTotal, Hybrid Analysis y Polyswarm.
- Listar las últimas URLs sospechosas de URLHaus.
- Listar los últimos payloads de URLHaus.
- Buscar payloads específicos en Malshare.
- Buscar payloads similares (PE32/PE32+) en el motor Polyswarm.
- Clasificar todos los archivos de un directorio buscando información en Virus Total y Hybrid Analysis.
- Elaborar informes sobre un dominio sospechoso utilizando diferentes motores como VirusTotal, Malpedia y ThreatCrowd.
- Verificar paquetes APK directamente desde dispositivos Android contra Hybrid Analysis y Virus Total.
- Enviar paquetes APK directamente desde dispositivos Android a Hybrid Analysis y Virus Total.
- Mostrar URLs relacionadas con una etiqueta proporcionada por el usuario desde URLHaus.
- Mostrar payloads relacionados con una etiqueta (firma) desde URLHaus.
- Mostrar información sobre una dirección IP desde Virus Total, Alien Vault, Malpedia y ThreatCrowd.
- Mostrar información de direcciones IP, dominios y URLs desde Polyswarm.
- Realizar meta-búsquedas en la Red Polyswarm utilizando varios criterios: imphash, IPv4, dominio, URL y familia de malware.
- Obtener información de threat hunting desde AlienVault utilizando diferentes criterios.
- Obtener información de threat hunting desde Malpedia utilizando diferentes criterios.
- Obtener información de threat hunting desde Malware Bazaar utilizando diferentes criterios.
- Obtener información de IOC desde ThreatFox utilizando diferentes criterios.
- Obtener información de threat hunting desde Triage utilizando diferentes criterios.
- Obtener la evaluación de hashes de un archivo dado contra Virus Total.
- Enviar archivos grandes (>= 32 MB) a Virus Total.
- Malwoverview utiliza la API v.3 de Virus Total, por lo que ya no existe ninguna opción que use la v.2.
- Recuperar información sobre una dirección IP dada desde el servicio IPInfo.
- Recuperar información combinada sobre una dirección IP dada desde múltiples servicios.
- Ofrecer una opción extra para guardar cualquier archivo descargado en una ubicación central.
- Listar y buscar vulnerabilidades desde NIST mediante diferentes criterios.
- Consultar la base de datos de VulnCheck - nivel Community/Free.
- Obtener información de threat hunting desde Shodan utilizando diferentes criterios.
- Verificar la reputación de IP desde AbuseIPDB.
- Verificar la clasificación de IP desde GreyNoise (API comunitaria).
- Realizar consultas Whois/RDAP de dominios e IPs.
- Correlación de hashes entre servicios: VirusTotal, Hybrid Analysis, Triage y AlienVault.
- Verificación de hashes por lotes contra Malware Bazaar desde un archivo que contiene hashes.
- Verificación de hashes por lotes contra Hybrid Analysis desde un archivo que contiene hashes.
- Verificación de hashes por lotes contra Triage desde un archivo que contiene hashes.
- Escaneo de directorios contra Malware Bazaar, Hybrid Analysis y Triage.
- Extraer IOCs (hashes, IPs, URLs, dominios, CVEs) de archivos de texto.
- Escanear archivos o directorios con reglas YARA.
- Modo REPL interactivo para sesiones continuas de threat hunting.
- Formatos de salida estructurados JSON y CSV.
- Caché de resultados con TTL configurable (basado en SQLite).
- Soporte de proxies HTTP/HTTPS/SOCKS5 para todas las solicitudes de API.
- Mapeo de técnicas MITRE ATT&CK para informes de comportamiento.
- Modo panel TUI (interfaz de usuario de texto) con navegación basada en paneles.
- Obtener información de threat hunting desde URLScan.io: enviar URLs, recuperar resultados de escaneo y buscar escaneos.
- Enriquecimiento de amenazas impulsado por LLM: evaluación de riesgos generada por IA, mapeo MITRE ATT&CK y recomendaciones de analista añadidas a cualquier resultado de consulta. Soporta Claude, Gemini, OpenAI y Ollama (local).
- Verificación de IPs por lotes contra VirusTotal desde un archivo que contiene direcciones IP, mostrando una tabla resumen (Dirección IP, País, Propietario AS, Detección).
- Cazar en VirusTotal con reglas YARA: enviar y seguir trabajos Retrohunt, listar los archivos coincidentes, y crear y listar rulesets y notificaciones de Livehunt.
- Escanear con un directorio completo de reglas YARA, cada archivo compilado en su propio namespace.
- Buscar muestras de Malware Bazaar por nombre de regla YARA, y descargar y extraer el conjunto de reglas YARAify de abuse.ch.
- Descargar el conjunto completo de reglas YARA de Malpedia para un nivel TLP dado.
- Listar los tipos de archivo de MalShare vistos en las últimas 24 horas, y listar los hashes de cualquiera de esos tipos.
- Verificación de hashes por lotes contra URLHaus desde un archivo que contiene hashes.
- Pivotes de Transparencia de Certificados a través de crt.sh, sin clave API: enumerar los subdominios vistos en los certificados emitidos y listar los propios certificados.
- Inspeccionar, depurar y vaciar la caché local de resultados.
- El modo interactivo y la TUI alcanzan todos los servicios que alcanza la línea de comandos, y la TUI exporta sus resultados a json y csv.
- Triaje PE local de un archivo o directorio sin clave API, listando tipo de archivo, tamaño, overlay, tamaño del overlay y entropía, y resaltando los archivos por encima de un umbral de entropía.
- Los escaneos de Android calculan el hash de cada APK de un paquete, incluidos los APK divididos (split APKs), en lugar de solo el APK base.
- Verificación de firmas Authenticode sin clave API, informando si un binario está firmado y si la firma sigue siendo válida, y nombrando al firmante de un archivo manipulado.
- Cada firma incrustada de un binario con múltiples firmas se informa, cada una con su propio algoritmo de digest, certificado, huella digital y número de serie, de modo que un segundo firmante nunca queda oculto detrás del primero.
- La verificación de archivos de VirusTotal (-v 1) y el informe de hashes (-v 8) muestran el bloque de firma: si el certificado se verificó, las cadenas del firmante y del contrafirmante, la fecha de firma y cada certificado con su estado, algoritmo, fechas de validez, número de serie y huella digital.
COLABORADORES
Alexandre Borges (https://github.com/alexandreborges) | propietario del proyecto y desarrollador principal
Artur Marzano (https://github.com/Macmod) | co-desarrollador principal
Corey Forman (https://github.com/digitalsleuth) | responsable de la integración con REMnux
Christian Clauss (https://github.com/cclauss)
CÓMO CONTRIBUIR A ESTE PROYECTO
Desde la versión 6.0.0, existe una nueva rama llamada "dev". Todas las contribuciones y propuestas deben realizarse en esta rama "dev".
Los profesionales que quieran contribuir deben abrir un issue explicando su mejora propuesta y cómo haría mejor el proyecto. Una vez aceptada, estará autorizado(a) para enviar el PR, que será probado.
Una vez que todos los cambios se prueban, esta nueva versión de Malwoverview se replica a la rama master y se genera un nuevo paquete de Python.
INSTALACIÓN
Esta herramienta ha sido probada en REMnux, Ubuntu, Kali Linux, macOS y Windows. Malwoverview se puede instalar ejecutando el siguiente comando:
* pip3.11 install git+https://github.com/alexandreborges/malwoverview
o...
* python -m pip install -U malwoverview
Si quieres instalar Malwoverview en macOS, tienes que ejecutar los siguientes comandos:
* /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
* brew install libmagic
* pip3 install urllib3==1.26.6
* pip3 install -U malwoverview
* Añade el directorio de binarios de Python a la variable PATH editando el archivo .bash_profile en tu directorio
de inicio. Ejemplo:
export PATH=$PATH:/Users/alexandreborges/Library/Python/3.9/bin
* Ejecuta: . ./.bash_profile
Si estás instalando Malwoverview en Windows, asegúrate de que las siguientes condiciones se cumplan
DESPUÉS de haber instalado Malwoverview:
* python-magic NO está instalado. (pip show python-magic)
* python-magic-bin SÍ está instalado. (pip show python-magic-bin)
Nota: ¡Se recomienda guardar el .malwapi.conf antes de cualquier actualización!
Características opcionales
Algunas características requieren dependencias opcionales. Instálalas según sea necesario:
* Escaneo YARA: pip install malwoverview[yara]
* Verificación de firmas: pip install malwoverview[signature]
* Exportación de informes PDF: pip install malwoverview[pdf]
* Panel TUI: pip install malwoverview[tui]
* Todas las opcionales: pip install malwoverview[all]
APIs REQUERIDAS
Es posible empezar a usar Malwoverview sin insertar todas las APIs. Sin embargo, para usar todas las opciones de Malwoverview, debes insertar la API respectiva de los siguientes servicios: VirusTotal, Hybrid Analysis, URLHaus, Malshare, Polyswarm, Alien Vault, Malpedia, Triage, IPInfo, Malware Bazaar, ThreatFox, VulnCheck, Shodan, AbuseIPDB, GreyNoise y URLScan.io en el archivo de configuración .malwapi.conf, que debe estar presente (o crearse) en el directorio de inicio (/home/[usuario] o /root en Linux, y C:\Users[usuario] en Windows. Alternativamente, los usuarios pueden crear un archivo de configuración personalizado e indicarlo usando la opción -c.
Para destacar: si el archivo .malwapi.conf no existe en tu directorio de inicio, ¡debes crearlo!
-
Una nota especial sobre Alien Vault: es necesario suscribirse a los pulses en el sitio web de Alien Vault antes de usar la opción -n 1.
-
Una nota especial sobre Malshare y Shodan: ambos servicios requieren que su clave API se envíe en la propia URL, y ninguno documenta una alternativa de cabecera o de cuerpo de solicitud (el endpoint hashlookup de Malshare es un POST, pero la clave sigue viajando en la cadena de consulta). Malwoverview reemplaza estas dos claves con [REDACTED] en cada mensaje de error que imprime, para que no terminen en la salida que pegues en un informe de error, pero la clave sigue quedando registrada en los registros de acceso de esos servicios y en cualquier proxy que termine TLS entre tú y ellos. Trata ambas claves como expuestas al operador del servicio y rótalas como harías con cualquier otra credencial.
El archivo de configuración .malwapi.conf tiene el siguiente formato:
[VIRUSTOTAL]
VTAPI =
[HYBRID-ANALYSIS]
HAAPI =
[MALSHARE]
MALSHAREAPI =
[HAUSSUBMIT]
HAUSSUBMITAPI =
[POLYSWARM]
POLYAPI =
[ALIENVAULT]
ALIENAPI =
[MALPEDIA]
MALPEDIAAPI =
[TRIAGE]
TRIAGEAPI =
[IPINFO]
IPINFOAPI =
[BAZAAR]
BAZAARAPI =
[THREATFOX]
THREATFOXAPI =
[VULNCHECK]
VULNCHECKAPI =
[URLHAUS]
URLHAUSAPI =
[SHODAN]
SHODANAPI =
[ABUSEIPDB]
ABUSEIPDBAPI =
[GREYNOISE]
GREYNOISEAPI =
[URLSCANIO]
URLSCANIOAPI =
[LLM]
PROVIDER = claude
CLAUDE_API_KEY =
CLAUDE_MODEL = claude-opus-4-8
GEMINI_API_KEY =
OPENAI_API_KEY =
OPENAI_MODEL = gpt-4o-mini
OLLAMA_URL = http://localhost:11434
OLLAMA_MODEL = llama3.1
Las APIs se pueden solicitar en los sitios web de los respectivos servicios:
- Virus Total (API comunitaria y de pago): https://www.virustotal.com/gui/join-us
- Hybrid Analysis: https://www.hybrid-analysis.com/signup
- Malshare: https://malshare.com/doc.php
- URLHaus: https://urlhaus.abuse.ch/api/#account
- Polyswarm: https://docs.polyswarm.io/consumers
- Alien Vault: https://otx.alienvault.com/api
- Malpedia: No ofrece registro abierto, pero puedes solicitar una cuenta de usuario directamente a través de Twitter (MD) o por correo electrónico de feedback. El usuario de Twitter de Malpedia es @malpedia.
- Malware Bazaar: https://bazaar.abuse.ch/api/#auth\_key
- ThreatFox: https://threatfox.abuse.ch/api/#auth\_key
- Triage: https://tria.ge/signup.
- IPInfo: https://ipinfo.io/
- VulnCheck: https://vulncheck.com/signin (Nivel Community/Free disponible)
- Shodan: https://account.shodan.io/register
- AbuseIPDB: https://www.abuseipdb.com/register
- GreyNoise: https://viz.greynoise.io/signup
- URLScan.io: https://urlscan.io/user/signup
Proveedores de enriquecimiento LLM (opcionales)
Malwoverview admite el enriquecimiento de amenazas impulsado por LLM mediante la bandera --enrich. Después de cualquier consulta, se añade una evaluación de amenazas generada por IA con nivel de riesgo, identificación de la familia de malware, mapeo MITRE ATT&CK y recomendaciones de analista.
Se admiten tres proveedores. Configura uno en la sección [LLM] de .malwapi.conf:
18. Anthropic Claude (de pago, mejor calidad)
Mejores resultados para el análisis de inteligencia de amenazas. Identifica con precisión las familias
de malware, mapea técnicas precisas de MITRE ATT&CK y proporciona recomendaciones
accionables basadas en conocimiento real de amenazas.
Configuración:
a) Crea una cuenta de API en https://console.anthropic.com/ (separada de la
suscripción de claude.ai)
b) Ve a Settings → Billing → Add credit (mínimo $5, pago por uso)
c) Ve a Settings → API Keys → Create Key
d) Copia la clave (empieza con sk-ant-api03-...)
e) Configura .malwapi.conf:
[LLM]
PROVIDER = claude
CLAUDE_API_KEY = sk-ant-api03-your-key-here
CLAUDE_MODEL = claude-opus-4-8
CLAUDE_MODEL es opcional y por defecto usa claude-opus-4-8. Opciones comunes:
- claude-opus-4-8 — Mejor calidad (predeterminado)
- claude-sonnet-4-6 — Buen equilibrio entre calidad y coste
- claude-haiku-4-5 — El más rápido y barato
Coste: ~$0.02-0.04 por llamada de enriquecimiento usando el modelo Opus predeterminado (menos con
Sonnet o Haiku). Con un crédito de $5 se obtienen aproximadamente 125-250 llamadas de enriquecimiento Opus.
19. Google Gemini (requiere facturación)
Resultados de buena calidad. Requiere una cuenta de facturación de Google Cloud.
Configuración:
a) Ve a https://aistudio.google.com/apikeys
b) Inicia sesión con tu cuenta de Google
c) Haz clic en Create API Key → copia la clave
d) Habilita la facturación: haz clic en el enlace del proyecto junto a tu clave → Google Cloud
Console → Billing → Link a billing account
e) Configura .malwapi.conf:
[LLM]
PROVIDER = gemini
GEMINI_API_KEY = your-gemini-key-here
GEMINI_MODEL = gemini-2.0-flash
Nota: El nivel gratuito tiene un límite de frecuencia bajo (2-5 solicitudes por minuto). Para
límites más altos, habilita la facturación de pago por uso.
20. OpenAI (de pago)
Resultados de buena calidad usando modelos GPT. Requiere una cuenta de OpenAI con
créditos de API.
Configuración:
a) Crea una cuenta en https://platform.openai.com/signup
b) Ve a https://platform.openai.com/api-keys → Create new secret key
c) Añade facturación en https://platform.openai.com/settings/organization/billing
d) Configura .malwapi.conf:
[LLM]
PROVIDER = openai
OPENAI_API_KEY = sk-your-key-here
OPENAI_MODEL = gpt-4o-mini
Modelos disponibles:
- gpt-4o-mini — El más barato (~$0.002 por enriquecimiento), buena calidad (predeterminado)
- gpt-4o — Mejor calidad (~$0.01 por enriquecimiento)
21. Ollama (gratuito, local, privado)
Se ejecuta completamente en tu máquina. No necesita clave API y ningún dato sale de tu
sistema. Adecuado para entornos donde no está permitido enviar datos de amenazas a APIs
en la nube. La calidad depende del modelo elegido.
Configuración:
a) Descarga e instala Ollama desde https://ollama.com/download
(disponible para Windows, Linux y macOS)
b) Abre una terminal y descarga un modelo:
ollama pull qwen2.5:14bModelos recomendados:
- qwen2.5:14b — Mejor calidad con un tamaño razonable (9 GB, necesita 16 GB de RAM)
- llama3.1:8b — Buena calidad, más pequeño (5 GB, necesita 8 GB de RAM)
- llama3.1:70b — Excelente calidad, grande (40 GB, necesita 48 GB de RAM)
c) Ollama se inicia automáticamente y sirve en http://localhost:11434
d) Configura .malwapi.conf:
[LLM]
PROVIDER = ollama
OLLAMA_URL = http://localhost:11434
OLLAMA_MODEL = qwen2.5:14b
Rendimiento: una GPU con 12+ GB de VRAM proporciona respuestas rápidas (5-10 s).
Solo con CPU es más lento (30-60 s) pero funcional. Los modelos más grandes (14b, 70b)
requieren más VRAM y pueden agotar el tiempo de espera en CPU si no hay suficiente memoria
disponible. El modelo llama3.1:8b se recomienda para máquinas con
memoria de GPU limitada (6 GB o menos).
Tiempos de respuesta esperados:
- API de Claude: 3-8 segundos
- API de Gemini: 3-8 segundos
- Ollama (GPU con VRAM suficiente): 5-15 segundos
- Ollama (solo CPU, modelo 8b): 30-60 segundos
- Ollama (solo CPU, modelo 14b+): 60-300 segundos
Ejemplos de uso:
# CLI: añade --enrich a cualquier consulta
malwoverview -v 8 -V <hash> --enrich
malwoverview -ip 1 -IP 8.8.8.8 --enrich
malwoverview --correlate-hash <hash> --enrich
# REPL interactivo: activa/desactiva el enriquecimiento o cambia de proveedor
malwoverview --interactive
malwoverview> set enrich on # usa el proveedor de la configuración
malwoverview> set enrich claude # cambia a Claude
malwoverview> set enrich ollama # cambia a Ollama
malwoverview> set enrich openai # cambia a OpenAI
malwoverview> set enrich off # desactiva el enriquecimiento
malwoverview> vt hash <hash> # análisis de malware + enriquecimiento
malwoverview> nist cve CVE-2024-3400 # consulta de CVE + enriquecimiento
malwoverview> vulncheck cve CVE-2024-3400 # VulnCheck + enriquecimiento
# TUI: haz clic en el botón Enrich para alternar entre proveedores
# Enrich (OFF) → claude → gemini → openai → ollama → OFF
# Botón verde = proveedor activo y configurado
# Botón amarillo = proveedor seleccionado pero falta la clave API
# Botón por defecto = enriquecimiento deshabilitado
malwoverview --tui
Nota sobre las solicitudes de API a MALPEDIA:
El servicio y la aceptación se basan en la revisión de la comunidad. Por lo tanto, se recomienda enviar una solicitud de API desde tu dirección de correo electrónico empresarial y NO desde una pública/gratuita (Gmail, Outlook, etc.). Además, sería ideal que proporcionaras más información sobre ti (cuenta de LinkedIn, X/Twitter, Mastodon, BlueSky, etc.), ya que esto facilitaría la verificación de tu identidad, perfil profesional y legitimidad, acelerando la aprobación de tu solicitud.
Nota sobre Triage:
Cada operación de Triage se basa en el ID de Triage de cada artefacto, por lo que necesitas usar "-x 1 -X <attribute>:<value>" para buscar el ID correcto del artefacto y luego usar esta información de ID con las opciones restantes de Triage (-x [2-7]) para obtener más información de threat hunting del endpoint de Triage.
Nota sobre URLHaus, Malware Bazaar y Threat Fox:
A partir de la segunda mitad de 2025, se requerirá una clave de autenticación (API) para utilizar los servicios de URLHaus, Malware Bazaar y Threat Fox.
Nota sobre el color de fondo del terminal:
Malwoverview fue escrito para producir resultados para un fondo de terminal oscuro. Sin embargo, existe la opción -o 0 que cambia y adapta los colores de salida para un fondo claro.
Para comprobar la instalación, ejecuta:
malwoverview --help
Hay más información disponible en:
(Repositorio PYPI.org) https://pypi.org/project/malwoverview/
(Github) https://github.com/alexandreborges/malwoverview
Si quieres realizar la instalación manual (normalmente no es necesaria), se deben ejecutar unos pocos pasos, como se muestra en la siguiente subsección.
INSTALACIÓN MANUAL (REMnux y Ubuntu)
-
Python versión 3.11 o posterior (¡¡¡Solo Python 3.x !!! NO funciona con Python 2.7)
$ apt-get install python3.11 (por ejemplo) -
Python-magic.
Para instalar el paquete python-magic puedes ejecutar el siguiente comando:
$ pip3.11 install python-magicO puedes compilarlo desde el repositorio de github:
$ git clone https://github.com/ahupp/python-magic $ cd python-magic/ $ python3.11 setup.py build $ python3.11 setup.py installComo hay problemas serios relacionados con las dos versiones existentes del paquete python-magic, se recomienda instalarlo desde Github (segundo procedimiento anterior) y copiar el archivo magic.py al MISMO directorio de la herramienta malwoverview.
-
Instala todos los paquetes de Python necesarios:
$ pip3.11 install -r requirements.txt O $ pip3.11 install -U pefile $ pip3.11 install -U colorama $ pip3.11 install -U simplejson $ pip3.11 install -U python-magic $ pip3.11 install -U requests $ pip3.11 install -U validators $ pip3.11 install -U geocoder $ pip3.11 install -U polyswarm-api $ pip3.11 install -U pathlib $ pip3.11 install -U configparser -
Para comprobar un móvil Android necesitas instalar la herramienta "adb":
$ sudo apt get install adbPD: antes de probar las opciones de Android, comprueba:
* Si la herramienta adb está listada en la variable de entorno PATH. * Si el sistema tiene acceso autorizado al dispositivo mediante "adb devices -l"
AYUDA
usage: python malwoverview.py -c -d -o <0|1> -v <1-20> -V -a <1-13> -A -l <1-8> -L <hash|file type> -j <1-8> -J -p <1-8> -P -y <1-5> -Y -n <1-5> -N -m <1-9> -M -b <1-15> -B -x <1-9> -X -ip <1-8> -IP -O --nist <1-5> --NIST -vc <1-8> -VC -s <1-2> -S -ab <1> -AB -gn <1> -GN -wh <1-2> -WH -ct <1-2> -CT -u <1-5> -U --correlate-hash --extract-iocs <file|url> --yara --yara-target --peinfo <file|directory> --entropy-threshold --sigcheck <file|directory> --no-signature --sig-verify-mode <any|first|all|best> --output-format text|json|csv --proxy --quiet --verbose --no-cache --cache-ttl --cache-stats --prune-cache --clear-cache --no-resolve --defang --no-ioc-filter --report html|pdf --interactive --tui --attack-map
Malwoverview es una herramienta de primera respuesta para threat hunting escrita por Alexandre Borges.
OPCIONES DE MALWARE: Opciones de consulta de análisis e inteligencia de malware
-h, --help
+ muestra este mensaje de ayuda y sale
-c CONFIG FILE, --config CONFIG FILE
+ Usa un archivo de configuración personalizado para especificar las API.
-d DIRECTORY, --directory DIRECTORY
+ Especifica el directorio que contiene las muestras de malware que se comprobarán contra VIRUS TOTAL.
+ Usa la opción -D para decidir si estás usando una API VT pública o una API VT
Premium.
-o BACKGROUND, --background BACKGROUND
+ Adapta los colores de salida a un terminal con fondo de color claro.
+ El valor predeterminado es terminal con fondo de color oscuro.
-v VIRUSTOTAL, --virustotal_option VIRUSTOTAL
+ -v 1: dado un archivo mediante la opción -V, consulta la base de datos de VIRUS TOTAL (API v.3)
para obtener el informe del archivo dado a través de la opción -V.
+ v 2: muestra un informe antivirus para un archivo dado usando la opción -V (API v.3);
+ v 3: igual que -v2, pero también se muestran el IAT y el EAT del binario (API v.3);
+ v 4: extrae el overlay;
+ v 5: envía una URL al escaneo de VT;
+ v 6: envía una dirección IP a Virus Total;
+ v 7: esta opción obtiene un informe sobre el dominio proporcionado de Virus Total;
+ v 8: verifica un hash dado contra Virus Total;
+ v 9: envía una muestra a VT (hasta 32 MB). Usa una barra diagonal para especificar el
archivo de destino en sistemas Windows. Requiere pasar el archivo de muestra con la opción -V;
+ -v 10: verifica hashes de un archivo proporcionado mediante la opción -V. Esta opción usa
la API pública de VT v.3;
+ -v 11: verifica hashes de un archivo proporcionado mediante la opción -V. Esta opción usa
la API Premium v.3;
+ -v 12: muestra información de comportamiento de una muestra dado un hash mediante la opción -V.
Esta opción usa la API de VT v.3; -v 13: envía archivos GRANDES (más de 32 MB)
a VT usando la API v.3;
+ -v 14: envía un trabajo Retrohunt usando el archivo de reglas YARA o el directorio de reglas
proporcionado con -V (VT escanea las muestras que recibió durante los últimos meses
contra las reglas);
+ -v 15: lista tus trabajos Retrohunt, opcionalmente filtrados por un estado pasado
a través de -V (starting, running, aborting, aborted o finished);
+ -v 16: muestra el estado y el progreso del trabajo Retrohunt cuyo id se
proporciona con -V;
+ -v 17: lista los archivos que coinciden con el trabajo Retrohunt cuyo id se proporciona con -V;
+ -v 18: crea un ruleset de Livehunt a partir del archivo de reglas YARA o directorio de reglas
proporcionado con -V (VT entonces compara cada nuevo envío contra él);
+ -v 19: lista tus rulesets de Livehunt;
+ -v 20: lista tus notificaciones de Livehunt. Las opciones 14 a 20 necesitan una clave de VT con
privilegios premium (empresariales);
-V VIRUSTOTAL_ARG, --virustotal_arg VIRUSTOTAL_ARG
+ Proporciona el argumento para la opción -v. Si "-v 1" a "-v 4" entonces -V debe ser
una ruta de archivo; Si "-v 5" entonces -V debe ser una URL; Si "-v 6" entonces -V debe
ser una dirección IP; Si "-v 7" entonces -V debe ser un dominio; Si "-v 8" entonces
-V debe ser un hash (MD5/SHA1/SHA256); Si "-v 9" o "-v 13" entonces -V debe
ser una ruta de archivo para enviar; Si "-v 10" o "-v 11" entonces -V debe ser un archivo
que contenga hashes (uno por línea); Si "-v 12" entonces -V debe ser un hash para
análisis de comportamiento; Si "-v 14" o "-v 18" entonces -V debe ser un archivo de reglas YARA
o un directorio de reglas; Si "-v 15" entonces -V puede ser un estado de trabajo;
Si "-v 16" o "-v 17" entonces -V debe ser un id de trabajo Retrohunt.
-a HYBRID_ANALYSIS, --hybrid_option HYBRID_ANALYSIS
+ Este parámetro obtiene informes de HYBRID ANALYSIS, descarga muestras y envía
muestras para ser analizadas.
+ Los valores posibles son:
+ 1: obtiene un informe para un hash o muestra dado de un entorno Windows 7 de 32 bits;
+ 2: obtiene un informe para un hash o muestra dado de un entorno Windows 7 de 32 bits
(soporte HWP);
+ 3: obtiene un informe para un hash o muestra dado de un entorno Windows de 64 bits;
+ 4: obtiene un informe para un hash o muestra dado de un entorno Android;
+ 5: obtiene un informe para un hash o muestra dado de un entorno Linux de 64 bits;
+ 6: envía una muestra a un entorno Windows 7 de 32 bits;
+ 7. envía una muestra a un entorno Windows 7 de 32 bits con soporte HWP;
+ 8. envía una muestra a un entorno Windows 7 de 64 bits;
+ 9. envía una muestra a un entorno Android;
+ 10. envía una muestra a un entorno Linux de 64 bits;
+ 11. descarga la muestra para un hash dado (la muestra almacenada es la misma
independientemente del entorno sandbox, por lo que una sola opción
reemplaza las antiguas opciones 11 a 15);
+ 12. comprobación de hashes por lotes desde un archivo (un hash por línea);
+ 13. escaneo de directorio: calcula SHA256 para cada archivo y lo comprueba
contra Hybrid Analysis.
-A SUBMIT_HA, --ha_arg SUBMIT_HA
+ Proporciona el argumento para la opción -a de HYBRID ANALYSIS. Si "-a 1" a
"-a 5" entonces -A debe ser un hash o una ruta de archivo (detección automática); Si "-a 6"
a "-a 10" entonces -A debe ser una ruta de archivo para enviar; Si "-a 11" entonces -A
debe ser un hash para descargar; Si "-a 12" entonces -A debe ser un archivo
que contenga hashes (uno por línea); Si "-a 13" entonces -A debe ser una ruta de directorio
para escanear.
-D VT_PUBLIC_PREMIUM, --vtpubpremium VT_PUBLIC_PREMIUM
+ Esta opción debe usarse con la opción -d.
+ Valores posibles:
+ <0> usa la API Premium de VT v3 (predeterminada);
+ <1> usa la API pública de VT v3.
-l MALSHARE_HASHES, --malsharelist MALSHARE_HASHES
+ Esta opción descarga una muestra y muestra hashes de un tipo específico
de las últimas 24 horas del repositorio MALSHARE.
+ Los valores posibles son:
+ 1: Descargar una muestra;
+ 2: PE32 (predeterminado) ;
+ 3: ELF ;
+ 4: Java;
+ 5: PDF ;
+ 6: Listar los tipos de archivo disponibles en las últimas 24 horas (y cuántas
muestras de cada uno);
+ 7: Lista de hashes de las últimas 24 horas;
+ 8: Listar hashes del tipo de archivo proporcionado con -L (usa -l 6 para descubrir
los tipos de archivo válidos).
-L MALSHARE_HASH_SEARCH, --malshare_hash MALSHARE_HASH_SEARCH
+ Proporciona un hash como argumento para descargar una muestra del repositorio
MALSHARE (-l 1) o, cuando se usa con -l 8, el tipo de archivo cuyos hashes
deben listarse.
-j HAUS_OPTION, --haus_option HAUS_OPTION
+ Esta opción obtiene información de URLHaus dependiendo del valor pasado como argumento:
+ 1: descarga la muestra dada;
+ 2: consulta información sobre un
hash proporcionado ;
+ 3: busca información sobre una URL dada;
+ 4: busca una URL maliciosa por una etiqueta dada (distingue mayúsculas/minúsculas);
+ 5: busca payloads dada una etiqueta;
+ 6: recupera una lista de enlaces descargables a payloads recientes;
+ 7: recupera una lista de URL maliciosas recientes;
+ 8: comprobación de hashes por lotes desde un archivo (un hash por línea).
-J HAUS_ARG, --haus_arg HAUS_ARG
+ Proporciona el argumento para la opción -j de URLHaus. Si "-j 1" entonces -J debe
ser un hash SHA256 para descargar la muestra; Si "-j 2" entonces -J debe ser un
hash (MD5/SHA1/SHA256) para buscar; Si "-j 3" entonces -J debe ser una URL para
comprobar; Si "-j 4" entonces -J debe ser una etiqueta (distingue mayúsculas/minúsculas); Si "-j 5" entonces
-J debe ser un nombre de firma.
-p POLY_OPTION, --poly_option POLY_OPTION
+ (Solo para Linux) Esta opción está relacionada con las operaciones de POLYSWARM:
+ 1. busca información relacionada con un hash dado proporcionado mediante la opción -P;
+ 2. envía una muestra proporcionada por la opción -P para ser analizada por el motor de Polyswarm ;
+ 3. Descarga una muestra de Polyswarm proporcionando el hash a través de la opción -P.
Atención: Polyswarm impone un máximo de 20 muestras por mes;
+ 4. busca muestras similares dado un archivo de muestra mediante la opción -P;
+ 5. busca muestras relacionadas con una dirección IP proporcionada a través de la opción -P;
+ 6. busca muestras relacionadas con un dominio dado proporcionado por la opción -P;
+ 7. busca muestras relacionadas con una URL proporcionada a través de la opción -P;
+ 8. busca muestras relacionadas con una familia de malware dada proporcionada por la opción -P.
-P POLYSWARM_ARG, --poly_arg POLYSWARM_ARG
+ (Solo para Linux) Proporciona un argumento para la opción -p de POLYSWARM.
-y ANDROID_OPTION, --android_option ANDROID_OPTION
+ Esta opción de ANDROID tiene múltiples valores posibles:
+ <1>: Comprueba todos los paquetes APK de terceros del dispositivo Android conectado por USB
contra Hybrid Analysis usando múltiples hilos. Notas: el dispositivo Android no
necesita estar rooteado y el sistema debe tener la herramienta adb en la variable
de entorno PATH;
+ <2>: Comprueba todos los paquetes APK de terceros del dispositivo Android conectado por USB
contra VirusTotal usando la API pública (más lento debido al retraso de 60 segundos por cada
4 hashes). Notas: el dispositivo Android no necesita estar rooteado y el sistema
debe tener la herramienta adb en la variable de entorno PATH;
+ <3>: Comprueba todos los paquetes APK de terceros del dispositivo Android conectado por USB
contra VirusTotal usando múltiples hilos (solo para Virus API privada). Notas: el
dispositivo Android no necesita estar rooteado y el sistema debe tener la herramienta adb
en la variable de entorno PATH;
+ <4> Envía un APK de terceros desde tu dispositivo Android conectado por USB a
Hybrid Analysis;
+ 5. Envía un APK de terceros desde tu dispositivo Android conectado por USB a Virus-Total.
-Y ANDROID_ARG, --android_arg ANDROID_ARG
+ Esta opción proporciona el argumento para -y de ANDROID.
-n ALIENVAULT, --alienvault ALIENVAULT
+ Comprueba múltiples informaciones de ALIENVAULT. Los valores posibles son:
+ 1: Obtener los pulses suscritos;
+ 2: Obtener información sobre una dirección IP;
+ 3: Obtener información sobre un dominio;
+ 4: Obtener información sobre un hash;
+ 5: Obtener información sobre una URL.
-N ALIENVAULT_ARGS, --alienvaultargs ALIENVAULT_ARGS
+ Proporciona el argumento para la opción -n de ALIENVAULT. Si "-n 1" entonces -N
debe ser el número de pulses suscritos a recuperar; Si "-n 2" entonces -N
debe ser una dirección IP; Si "-n 3" entonces -N debe ser un dominio; Si "-n 4"
entonces -N debe ser un hash (MD5/SHA256); Si "-n 5" entonces -N debe ser una URL.
-m MALPEDIA, --malpedia MALPEDIA
+ Esta opción está relacionada con MALPEDIA y presenta diferentes significados dependiendo del
valor elegido. Así:
+ 1: Listar la meta información de todas las familias;
+ 2: Listar todos los IDs de actores;
+ 3: Listar todos los payloads disponibles organizados por familia de Malpedia;
+ 4: Obtener meta información de un actor específico, por lo que es necesario usar
la opción -M. Además, intenta confirmar el ID de actor correcto ejecutando
malwoverview con la opción -m 3;
+ 5: Listar todos los IDs de familias;
+ 6: Obtener meta-información de una familia específica, por lo que es necesario
usar la opción -M. Además, intenta confirmar el ID de familia correcto
ejecutando malwoverview con la opción -m 5;
+ 7: Obtener una muestra de malware de malpedia (formato zip -- contraseña: infected).
Es necesario especificar el hash solicitado mediante la opción -M;
+ 8: Obtener un archivo zip que contiene reglas Yara para una familia específica
(obtén las posibles familias usando -m 5), el cual debe especificarse mediante la opción -M;
+ 9: Obtener un archivo zip que contiene el ruleset completo de Yara de Malpedia para un
nivel TLP, que debe proporcionarse con -M como uno de tlp_white, tlp_green,
tlp_amber o auto (las formas cortas white, green y amber también son
aceptadas). Combínalo con --yara para escanear con las reglas descargadas.
-M MALPEDIAARG, --malpediarg MALPEDIAARG
+ Proporciona el argumento para la opción -m de MALPEDIA. Si "-m 4" entonces -M debe
ser un nombre de actor (confirma con -m 2); Si "-m 6" entonces -M debe ser un
nombre de familia (confirma con -m 5); Si "-m 7" entonces -M debe ser un hash para
descargar la muestra; Si "-m 8" entonces -M debe ser un nombre de familia para obtener
reglas YARA.
-b BAZAAR, --bazaar BAZAAR+ Comprueba múltiples informaciones de MALWARE BAZAAR y THREATFOX. Los posibles
valores son:
+ 1: (Bazaar) Consulta información sobre una muestra de hash de malware;
+ 2: (Bazaar) Obtiene información y una lista de muestras de malware asociadas
y según una etiqueta específica;
+ 3: (Bazaar) Obtiene una lista de muestras de malware según un imphash dado;
+ 4: (Bazaar) Consulta las últimas muestras de malware;
+ 5: (Bazaar) Descarga una muestra de malware de Malware Bazaar proporcionando
un hash SHA256. La muestra descargada se comprime con la siguiente
contraseña: infected;
+ 6: (ThreatFox) Obtiene el conjunto de datos IOC actual de los últimos x días
mediante la opción -B (máximo de 7 días);
+ 7: (ThreatFox) Busca el IOC especificado en ThreatFox mediante la opción -B;
+ 8: (ThreatFox) Busca IOCs según la etiqueta especificada mediante la opción -B;
+ 9: (ThreatFox) Busca IOCs según la familia de malware especificada mediante
la opción -B;
+ 10. (ThreatFox) Lista todas las familias de malware disponibles.
+ 11: (Bazaar) Verificación de hash por lotes desde un archivo (un hash por
línea) contra Malware Bazaar;
+ 12: (Bazaar) Escaneo de directorio — calcula el SHA256 de cada archivo en un
directorio y lo verifica contra Malware Bazaar;
+ 13: (Bazaar) Busca muestras que coincidan con el nombre de regla YARA
proporcionado por la opción -B. Los nombres de regla se enumeran al final de un
informe de hash (-b 1), y también son los nombres de regla dentro del conjunto
YARAify descargado con -b 14 y extraído con -b 15;
+ 14: (YARAify) Descarga el conjunto de reglas YARAify (abuse.ch), que es el
conjunto de reglas detrás de Malware Bazaar;
+ 15: (YARAify) Extrae el conjunto de reglas YARAify descargado a un directorio
de reglas que se puede proporcionar a --yara.
-B BAZAAR_ARG, --bazaararg BAZAAR_ARG
+ Proporciona un argumento a la opción -b de MALWARE BAZAAR y THREAT FOX:
+ "-b 1" indica que el argumento de -B debe ser un hash y se recuperará un
informe sobre la muestra;
+ "-b 2" indica que el argumento de -B debe ser una etiqueta de malware y se
mostrarán las últimas muestras que coincidan con esta etiqueta;
+ "-b 3" significa que el argumento proporcionado por -M debe ser un imphash y
se mostrarán las últimas muestras que coincidan con este imphash;
+ "-b 4" significa que el argumento proporcionado por -M debe ser "100 o time",
donde "100" enumera las últimas "100 muestras" y "time" enumera las últimas
muestras añadidas a Malware Bazaar en los últimos 60 minutos;
+ "-b 5" significa que la muestra se descargará y el argumento de -B debe ser
un hash SHA256 de la muestra que deseas descargar de Malware Bazaar;
+ "-b 6" indica que se recuperará una lista de IOCs y el valor de -B es el
número de DÍAS para filtrar dichos IOCs. El tiempo máximo es 7 (días);
+ "-b 7" indica que el argumento de -B es el IOC que deseas buscar;
+ "-b 8" indica que el argumento de -B es la ETIQUETA del IOC que deseas
buscar;
+ "-b 9" indica que el argumento de -B es la familia de malware para la que
deseas buscar IOCs;
-x TRIAGE, --triage TRIAGE
+ Proporciona información de TRIAGE según el valor especificado:
+ 1: esta opción obtiene la información general de la muestra proporcionando
un argumento con la opción -X en los siguientes formatos posibles:
- sha256:<value>
- sha1:<value>
- md5:<value>
- family:<value>
- score:<value>
- tag:<value>
- url:<value>
- wallet:<value>
- ip:<value>;
+ 2: Obtiene un informe resumido para un ID de Triage dado (obtenido de la
opción -x 1);
+ 3: Envía una muestra para análisis;
+ 4: Envía una muestra a través de una URL para análisis;
+ 5: Descarga la muestra especificada por el ID de Triage;
+ 6: Descarga el archivo pcapng de la muestra asociada al ID de Triage dado;
+ 7: Obtiene un informe dinámico para el ID de Triage dado (obtenido de la
opción -x 1);
+ 8: Verificación de hash por lotes desde un archivo (un hash por línea)
contra Triage;
+ 9: Escaneo de directorio — calcula el SHA256 de cada archivo en un directorio
y lo verifica contra Triage.
-X TRIAGE_ARG, --triagearg TRIAGE_ARG
+ Proporciona un argumento para la opción -x de TRIAGE. Si "-x 1", entonces -X
debe ser una consulta de búsqueda (p. ej., sha256:<hash>, family:<name>, tag:<tag>,
ip:<ip>); Si "-x 2", entonces -X debe ser un ID de muestra de Triage (obtenido de
-x 1); Si "-x 3", entonces -X debe ser una ruta de archivo a enviar; Si "-x 4",
entonces -X debe ser una URL a enviar; Si "-x 5" o "-x 6", entonces -X debe ser
un ID de muestra de Triage para descargar; Si "-x 7", entonces -X debe ser un ID
de muestra de Triage para el informe dinámico; Si "-x 8", entonces -X debe ser un
archivo que contenga hashes (uno por línea); Si "-x 9", entonces -X debe ser una
ruta de directorio a escanear.
-O OUTPUTDIR, --output-dir OUTPUTDIR
+ Establece el directorio de salida para todas las descargas de muestras.
-ip IP, --ip IP
+ Obtiene información de IP de diversas fuentes. Los posibles valores son:
+ 1: Obtiene detalles de una dirección IP proporcionada con -IP desde IPInfo;
+ 2: Eliminado en 8.1.0 (BGPView cerró);
+ 3: Obtiene detalles de una dirección IP proporcionada con -IP desde todos
los servicios de inteligencia disponibles (VirusTotal/Alienvault);
+ 4: Obtiene detalles de una dirección IP desde Shodan;
+ 5: Obtiene detalles de una dirección IP desde AbuseIPDB;
+ 6: Obtiene detalles de una dirección IP desde GreyNoise;
+ 7: Obtiene detalles de una dirección IP desde todos los servicios
(exhaustivo);
+ 8: Verifica por lotes direcciones IP desde un archivo (una por línea)
contra VirusTotal y muestra una tabla resumen (Dirección IP, País, Propietario
AS, Detección). Usa -D para elegir entre la API de VT Pública (-D 1) y Premium
(-D 0, predeterminada).
-IP IPARG, --iparg IPARG
+ Proporciona un argumento para la opción -ip. Para -ip 1 a 7 debe ser una
dirección IP válida (IPv4 o IPv6); para -ip 8 debe ser un archivo que
contenga direcciones IP (una por línea).
-s SHODAN, --shodan SHODAN
+ Opciones de SHODAN:
+ 1: Consulta de IP;
+ 2: Consulta de búsqueda.
-S SHODAN_ARG, --shodanarg SHODAN_ARG
+ Proporciona un argumento para la opción -s de SHODAN. Si "-s 1", entonces -S
debe ser una dirección IP; Si "-s 2", entonces -S debe ser una consulta de
búsqueda (p. ej., "apache", "port:22 country:BR").
-ab ABUSEIPDB, --abuseipdb ABUSEIPDB
+ Opciones de ABUSEIPDB:
+ 1: Comprueba la reputación de una IP.
-AB ABUSEIPDB_ARG, --abuseipdbarg ABUSEIPDB_ARG
+ Proporciona una dirección IP para la opción -ab de ABUSEIPDB.
-gn GREYNOISE, --greynoise GREYNOISE
+ Opciones de GREYNOISE:
+ 1: Comprobación rápida de IP (API comunitaria).
-GN GREYNOISE_ARG, --greynoisearg GREYNOISE_ARG
+ Proporciona una dirección IP para la opción -gn de GREYNOISE.
-wh WHOIS, --whois WHOIS
+ Opciones de WHOIS:
+ 1: Consulta whois de dominio;
+ 2: Consulta whois/RDAP de IP.
-WH WHOIS_ARG, --whoisarg WHOIS_ARG
+ Proporciona un argumento para la opción -wh de WHOIS. Si "-wh 1", entonces -WH
debe ser un nombre de dominio; Si "-wh 2", entonces -WH debe ser una dirección IP.
-ct CRTSH, --crtsh CRTSH
+ Consulta los registros de transparencia de certificados a través de crt.sh, que
no requiere clave de API. Valores posibles:
+ 1: enumera los nombres DNS distintos que aparecen en los certificados
emitidos para el dominio proporcionado con -CT, lo cual es una forma económica
de enumerar subdominios. Los nombres que pertenecen a otros dominios, que
aparecen porque un certificado puede cubrir varios inquilinos, se cuentan y se
informan por separado;
+ 2: enumera los propios certificados (identificador, emisor, nombre común y
fechas de validez, del más reciente al más antiguo).
-CT CRTSH_ARG, --crtsharg CRTSH_ARG
+ Proporciona el nombre de dominio consultado por la opción -ct.
-u URLSCANIO, --urlscanio URLSCANIO
+ Opciones de URLSCAN.IO:
+ 1: Envía una URL para escaneo;
+ 2: Obtiene el resultado del escaneo por UUID;
+ 3: Busca escaneos usando la sintaxis de consulta de Elasticsearch
(p. ej., "page.server:nginx", "task.tags:phishing");
+ 4: Busca escaneos por dominio;
+ 5: Busca escaneos por IP.
-U URLSCANIO_ARG, --urlscanioarg URLSCANIO_ARG
+ Proporciona un argumento para la opción -u de URLSCAN.IO. Si "-u 1", entonces
-U debe ser una URL a enviar para escaneo; Si "-u 2", entonces -U debe ser un UUID
(obtenido de -u 1); Si "-u 3", entonces -U debe ser una consulta de Elasticsearch
(p. ej., "page.server:nginx", "task.tags:phishing"); Si "-u 4", entonces -U debe
ser un dominio; Si "-u 5", entonces -U debe ser una dirección IP.
--correlate-hash HASH
+ Correlación de hash entre servicios: consulta un hash en VirusTotal, Hybrid
Analysis, Triage y AlienVault generando un informe consolidado.
--extract-iocs SOURCE
+ Extrae IOCs (hashes, IPs, URLs, dominios, correos electrónicos, CVEs) de un
archivo (.txt, .pdf, .eml) o URL (http/https).
La extracción de PDF requiere: pip install malwoverview[pdf]
--yara RULES_FILE
+ Archivo de reglas YARA a utilizar para el escaneo. Debe usarse con --yara-target.
Requiere: pip install malwoverview[yara]
--yara-target TARGET
+ Archivo o directorio a escanear con reglas YARA.
--peinfo TARGET
+ Triage PE local de un archivo o directorio (sin clave de API): tipo de archivo,
tamaño, overlay, tamaño del overlay y entropía. Los directorios se escanean
recursivamente. La entropía es la mayor entropía de sección PE, o la entropía
Shannon de todo el archivo para archivos que no son PE.
--entropy-threshold VALUE
+ Valor de entropía con el que --peinfo resalta un archivo como empaquetado o
cifrado. Predeterminado: 7.0
--sigcheck TARGET
+ Comprueba la firma Authenticode de un archivo o directorio (sin clave de API):
estado, firmante, emisor, fechas del certificado, algoritmo de resumen, huella
digital del certificado y número de serie. El estado puede ser VALID, TAMPERED,
UNTRUSTED, EXPIRED, MALFORMED, INVALID, NONE (sin firma incrustada), PRESENT (hay
una firma pero no se verificó) o N/A (no es un archivo PE). Solo se leen las
firmas incrustadas: un archivo informado como NONE puede seguir estando firmado
mediante un catálogo de Windows.
La verificación completa requiere: pip install malwoverview[signature]
VALID significa que el archivo sigue coincidiendo con el certificado con el que se
firmó. No es un veredicto sobre el archivo: los certificados de firma se roban, se
usan indebidamente y se emiten por error, y el malware ha llevado firmas válidas de
Microsoft. Una firma incrustada se almacena en el overlay, por lo que un archivo
firmado siempre informa de una y ese overlay no es una carga útil añadida.
La revocación de certificados no se comprueba. No se realiza ninguna solicitud de
red, por lo que un archivo firmado con un certificado que se revocó posteriormente
sigue informando VALID.
Una firma permanece VALID después de que su certificado expire cuando lleva una
contrafirma, porque la contrafirma demuestra que el archivo se firmó mientras el
certificado seguía siendo válido. Así es como se supone que funciona Authenticode,
y el informe lo indica cuando ocurre: una fecha de caducidad en el pasado junto a
VALID no es una contradicción.
Un archivo puede llevar más de una firma incrustada, normalmente SHA-1 para
compatibilidad más SHA-256, y los firmantes frecuentemente difieren. La columna
Signer muestra una de ellas y marca las demás como (+N); ejecutar --sigcheck sobre
un solo archivo enumera cada firma con su propio algoritmo de resumen, certificado,
huella digital y número de serie.
--no-signature
+ Omite la verificación de firma en --peinfo y --sigcheck, informando solo si hay
una firma presente. Útil en directorios grandes.
--sig-verify-mode MODE
+ Qué firma incrustada decide el estado de un archivo con múltiples firmas: any,
first, all o best. Predeterminado: best
best sigue la firma realizada con el algoritmo de resumen más fuerte, que es el
que Windows reconoce. first sigue el orden del archivo, coincidiendo con
sigcheck.exe. all requiere que todas las firmas se verifiquen, y any acepta el
archivo cuando una sola lo hace. La elección importa: entre 517 controladores con
múltiples firmas, 37 cambian de estado según esta configuración, y any informa
VALID en 21 archivos que first rechaza.
--attack-map
+ Habilita el mapeo de técnicas MITRE ATT&CK para informes de comportamiento.
GENERAL OPTIONS: Opciones de formato de salida, proxy, caché y verbosidad
--output-format text|json|csv
+ Formato de salida: text (predeterminado, terminal con colores), json o csv.
--proxy URL
+ URL de proxy HTTP/HTTPS/SOCKS5 (p. ej., socks5://127.0.0.1:9050).
--quiet
+ Suprime el banner y la salida cosmética.
--verbose
+ Muestra información de depuración (URLs de solicitudes, tiempos, etc.).
--no-cache
+ Desactiva el almacenamiento en caché de resultados.
--cache-ttl SECONDS
+ Tiempo de vida de la caché en segundos (predeterminado: 3600).
--cache-stats
+ Muestra la ubicación de la caché de resultados local, cuántas entradas
contiene, cuántas de ellas están expiradas según el --cache-ttl actual y su
tamaño en disco. Luego sale.
--prune-cache
+ Elimina solo las entradas expiradas de la caché de resultados local (según
--cache-ttl) y sale.
--clear-cache
+ Elimina todas las entradas de la caché de resultados local y sale.
--no-resolve
+ No resuelve ni geolocaliza los nombres de host encontrados en los resultados. Al
listar un feed (por ejemplo, las listas de payloads y etiquetas de URLHaus),
normalmente tu host consulta cada URL que muestra, lo que indica al operador de
esa infraestructura que está siendo investigada. Con esta opción, la columna de
ubicación muestra "Not Resolved" en su lugar.
--defang
+ Imprime los IOCs enumerados por --extract-iocs en forma desarmada
(hxxp://example[.]com), para que puedan copiarse en un informe o ticket sin que se
vuelvan clicables. Se aplica solo a esa lista y cambia únicamente la salida: las
consultas se siguen haciendo con los valores reales.
--no-ioc-filter
+ Desactiva el filtrado de ruido que --extract-iocs aplica por defecto.
Normalmente, los bloques <script>, <style> y <svg> de una página HTML se omiten,
un dominio solo se informa cuando su última etiqueta es un dominio de nivel
superior real, y los enlaces de vuelta al sitio de origen o a elementos conocidos
de la página (analíticas, fuentes, botones sociales) se descartan. Con esta
opción, en su lugar se informa cada coincidencia de regex en la fuente sin
procesar.
--report html|pdf
+ Genera un informe en el formato especificado.
La exportación a PDF requiere: pip install malwoverview[pdf]
--report-file PATH
+ Ruta de salida para el informe generado.
--interactive
+ Lanza el modo REPL interactivo.
--tui
+ Lanza el modo de panel TUI (interfaz de usuario de texto) con selector de
servicios, entrada de consultas y panel de resultados desplazable.
Requiere: pip install malwoverview[tui]
--enrich
+ Habilita el enriquecimiento de resultados con LLM. Añade una evaluación de
amenazas generada por IA después de cada resultado de consulta. Funciona con todos
los tipos de consulta, incluyendo búsquedas de hash de malware, comprobaciones de
reputación de IP, búsquedas de CVE (NIST y VulnCheck) y correlación entre
servicios. Utiliza el proveedor configurado en la sección [LLM] de .malwapi.conf,
o anulado con --llm. Proveedores soportados:
- claude: API de Anthropic Claude (mejor calidad, de pago)
- gemini: API de Google Gemini (requiere facturación)
- openai: API de OpenAI (de pago, modelos GPT)
- ollama: Instancia local de Ollama (gratuita, privada)
--llm PROVIDER
+ Anula el proveedor de LLM para el enriquecimiento (usar con --enrich).
Ejemplos:
malwoverview -v 8 -V <hash> --enrich --llm claude
malwoverview --nist 2 --NIST CVE-2024-3400 --enrich --llm claude
malwoverview -vc 3 -VC CVE-2024-3400 --enrich --llm ollama
VULNERABILITY OPTIONS: Opciones de consulta a bases de datos de vulnerabilidades
NIST CVE Database Query:
Opciones de consulta para la base de datos de CVE de NIST (el tipo de consulta y el
valor son obligatorios; las demás opciones son opcionales)
--nist NIST_OPTION, Tipo de consulta: 1=Búsqueda de CPE/Producto, 2=Búsqueda por
ID de CVE, 3=Severidad CVSS v3, 4=Búsqueda por palabra clave,
5=Búsqueda por ID de CWE
--NIST NIST_ARG Valor de búsqueda (el formato depende del tipo de consulta)
--time YEARS Limita los resultados a los últimos N años
--rpp NUM Resultados por página (predeterminado: 100, máximo: 2000)
--startindex NUM Índice de inicio de paginación (predeterminado: 0)
--ncves NUM Limita la salida a los primeros N CVEs
VulnCheck Database Query:
Opciones de consulta para la base de datos de vulnerabilidades de VulnCheck (nivel
Community/Gratuito)
-vc VULNCHECK_OPTION, --vulncheck VULNCHECK_OPTION
+ Tipo de consulta: 1: Lista los índices disponibles;
2: Obtiene KEV (Known Exploited Vulnerabilities);
3: Busca CVE en KEV;
4: Obtiene el enlace de respaldo de KEV;
5: Lista CVEs de MITRE;
6: Lista CVEs de NIST NVD2;
7: Busca CVE en MITRE;
8: Busca CVE en NIST NVD2.
-VC VULNCHECK_ARG, --VULNCHECK VULNCHECK_ARG
+ Valor de búsqueda (ID de CVE para las opciones 3/7/8, máximo de resultados para
las opciones 2/5/6, p. ej., 50).
SUBCOMANDOS
A partir de la versión 8.0, Malwoverview admite una sintaxis alternativa de subcomandos junto a la sintaxis tradicional basada en opciones. Ambas sintaxis son totalmente compatibles y producen resultados idénticos.
Subcomandos disponibles:
vt Operaciones de VirusTotal (file, av, hash, url, ip, domain, submit, behavior, batch)
ha Operaciones de Hybrid Analysis (report, submit, download, batch, dir)
bazaar Operaciones de Malware Bazaar (hash, tag, download, batch, dir)
triage Operaciones de Triage (search, summary, submit, dynamic, batch, dir)
urlhaus Operaciones de URLHaus (hash, url, tag, download, batch)
ip Consultas de direcciones IP (info, shodan, abuse, greynoise, all, batch)
whois Consultas Whois/RDAP (domain, ip)
shodan Operaciones de Shodan (ip, search)
correlate Correlación entre servicios (hash)
extract Extracción de IOCs de archivos o URLs
yara Escaneo con reglas YARA
nist Consultas a la base de datos de CVE de NIST
vulncheck Consultas a la base de datos de VulnCheck
Ejemplos de subcomandos (equivalentes a la sintaxis basada en opciones):
# These pairs are equivalent:
malwoverview vt hash <sha256> # same as: malwoverview -v 8 -V <sha256>
malwoverview vt behavior <sha256> # same as: malwoverview -v 12 -V <sha256>
malwoverview ha report <hash> --env 3 # same as: malwoverview -a 3 -A <hash>
malwoverview ha batch <hashfile> # same as: malwoverview -a 12 -A <hashfile>
malwoverview bazaar hash <sha256> # same as: malwoverview -b 1 -B <sha256>
malwoverview bazaar batch <hashfile> # same as: malwoverview -b 11 -B <hashfile>
malwoverview bazaar dir <directory> # same as: malwoverview -b 12 -B <directory>
malwoverview triage search sha256:<value> # same as: malwoverview -x 1 -X sha256:<value>
malwoverview triage batch <hashfile> # same as: malwoverview -x 8 -X <hashfile>
malwoverview ip all <ipaddr> # same as: malwoverview -ip 7 -IP <ipaddr>
malwoverview ip shodan <ipaddr> # same as: malwoverview -ip 4 -IP <ipaddr>
malwoverview ip batch <ipfile> # same as: malwoverview -ip 8 -IP <ipfile>
malwoverview whois domain <domain> # same as: malwoverview -wh 1 -WH <domain>
malwoverview correlate hash <sha256> # same as: malwoverview --correlate-hash <sha256>
malwoverview extract <file|url> # same as: malwoverview --extract-iocs <file|url>
malwoverview yara <rules> <target> # same as: malwoverview --yara <rules> --yara-target <target>
malwoverview nist 2 CVE-2021-44228 # same as: malwoverview --nist 2 --NIST CVE-2021-44228
Usa --help con cualquier subcomando para más detalles:
malwoverview vt --help
malwoverview ip --help
malwoverview ha report --help
EJEMPLOS
OPCIONES DE MALWARE:malwoverview -d /home/remnux/malware/windows_2/
malwoverview -v 1 -V 95a8370c36d81ea596d83892115ce6b90717396c8f657b17696c7eeb2dba1d2e.exe
malwoverview -v 2 -V 95a8370c36d81ea596d83892115ce6b90717396c8f657b17696c7eeb2dba1d2e.exe
malwoverview -v 3 -V 95a8370c36d81ea596d83892115ce6b90717396c8f657b17696c7eeb2dba1d2e.exe
malwoverview -v 4 -V 95a8370c36d81ea596d83892115ce6b90717396c8f657b17696c7eeb2dba1d2e.exe,
malwoverview -v 5 -V http://jamogames.com/templates/JLHk/
malwoverview -v 6 -V 185.220.100.243
malwoverview -v 7 -V xurl.es
malwoverview -v 8 -V ab4d6a82cafc92825a0b88183325855f0c44920da970b42c949d5d5ffdcc0585
malwoverview -v 9 -V cc2d791b16063a302e1ebd35c0e84e6cf6519e90bb710c958ac4e4ddceca68f7.exe
malwoverview -v 10 -V /home/remnux/malware/hash_list_3.txt
malwoverview -v 11 -V /home/remnux/malware/hash_list_3.txt
malwoverview -v 12 -V 9d26e19b8fc5819b634397d48183637bacc9e1c62d8b1856b8116141cb8b4000
malwoverview -v 13 -V /largefiles/4b3b46558cffe1c0b651f09c719af2779af3e4e0e43da060468467d8df445e93
malwoverview -v 14 -V /home/remnux/rules/apt_rules.yar
malwoverview -v 14 -V /home/remnux/rules/
malwoverview -v 15
malwoverview -v 16 -V 1712345678-abcdef0123456789
malwoverview -v 17 -V 1712345678-abcdef0123456789
malwoverview -v 18 -V /home/remnux/rules/livehunt.yar
malwoverview -v 19
malwoverview -v 20
malwoverview -a 1 -A 2e1fcadbac81296946930fe3ba580fd0b1aca11bc8ffd7cefa19dea131274ae8
malwoverview -a 1 -A 2e1fcadbac81296946930fe3ba580fd0b1aca11bc8ffd7cefa19dea131274ae8.exe
malwoverview -a 2 -A 2e1fcadbac81296946930fe3ba580fd0b1aca11bc8ffd7cefa19dea131274ae8
malwoverview -a 3 -A 2e1fcadbac81296946930fe3ba580fd0b1aca11bc8ffd7cefa19dea131274ae8
malwoverview -a 4 -A malware1.apk
malwoverview -a 4 -A 82eb6039cdda6598dc23084768e18495d5ebf3bc3137990280bc0d9351a483eb
malwoverview -a 5 -A 2b03806939d1171f063ba8d14c3b10622edb5732e4f78dc4fe3eac98b56e5d46
malwoverview -a 5 -A 2b03806939d1171f063ba8d14c3b10622edb5732e4f78dc4fe3eac98b56e5d46.elf
malwoverview -a 6 -A 47eccaaa672667a9cea23e24fd702f7b3a45cbf8585403586be474585fd80243.exe
malwoverview -a 7 -A 47eccaaa672667a9cea23e24fd702f7b3a45cbf8585403586be474585fd80243.exe
malwoverview -a 8 -A 47eccaaa672667a9cea23e24fd702f7b3a45cbf8585403586be474585fd80243.exe
malwoverview -a 9 -A malware_7.apk
malwoverview -a 10 -A 925f649617743f0640bdfff4b6b664b9e12761b0e24bbb99ca72740545087ad2.elf
malwoverview -a 11 -A cd856b20a5e67a105b220be56c361b21aff65cac00ed666862b6f96dd190775e
malwoverview -a 12 -A /home/remnux/malware/hash_list.txt
malwoverview -a 13 -A /home/remnux/malware/samples/
malwoverview -l 1 -L d3dcc08c9b955cd3f68c198e11d5788869d1b159dc8014d6eaa39e6c258123b0
malwoverview -l 2
malwoverview -l 3
malwoverview -l 4
malwoverview -l 5
malwoverview -l 6
malwoverview -l 8 -L PE32
malwoverview -j 1 -J 7c99d644cf39c14208df6d139313eaf95123d569a9206939df996cfded6924a6
malwoverview -j 2 -J 7c99d644cf39c14208df6d139313eaf95123d569a9206939df996cfded6924a6
malwoverview -j 3 -J https://unada.us/acme-challenge/3NXwcYNCa/
malwoverview -j 4 -J Qakbot
malwoverview -j 5 -J Emotet
malwoverview -j 5 -J Icedid
malwoverview -j 6
malwoverview -j 7
malwoverview -j 8 -J /home/remnux/malware/hash_list.txt
malwoverview -p 1 -P 1999ba265cd51c94e8ae3a6038b3775bf9a49d6fe57d75dbf1726921af8a7ab2
malwoverview -p 2 -P 301524c3f959d2d6db9dffdf267ab16a706d3286c0b912f7dda5eb42b6d89996.exe
malwoverview -p 3 -P 68c11ef39769674123066bcd52e1d687502eb6c4c0788b4f682e8d31c15e5306
malwoverview -p 4 -P 68c11ef39769674123066bcd52e1d687502eb6c4c0788b4f682e8d31c15e5306.exe
malwoverview -p 5 -P 188.40.75.132
malwoverview -p 6 -P covid19tracer.ca
malwoverview -p 7 -P http://ksahosting.net/wp-includes/utf8.php
malwoverview -p 8 -P Qakbot
malwoverview -y 1
malwoverview -y 2
malwoverview -y 3
malwoverview -y 4 -Y com.spaceship.netprotect
malwoverview -y 5 -Y com.mwr.dz
malwoverview -v 1 -V 368afeda7af69f329e896dc86e9e4187a59d2007e0e4b47af30a1c117da0d792.apk
malwoverview -n 1 -N 10
malwoverview -n 2 -N 176.57.215.100
malwoverview -n 3 -N threesmallhills.com
malwoverview -n 4 -N 6d1756aa6b45244764409398305c460368d64ff9 -o 0
malwoverview -n 5 -N http://ksahosting.net/wp-includes/utf8.php
malwoverview -m 1 | more
malwoverview -m 2 | more
malwoverview -m 3 | more
malwoverview -m 4 -M apt41 | more
malwoverview -m 5 | more
malwoverview -m 6 -M win.qakbot
malwoverview -m 7 -M 3d375d0ead2b63168de86ca2649360d9dcff75b3e0ffa2cf1e50816ec92b3b7d
malwoverview -m 8 -M win.qakbot
malwoverview -m 9 -M tlp_white
malwoverview -m 9 -M tlp_green
malwoverview -b 1 -B c9d7b5d06cd8ab1a01bf0c5bf41ef2a388e41b4c66b1728494f86ed255a95d48
malwoverview -b 2 -B Revil | more
malwoverview -b 3 -B f34d5f2d4577ed6d9ceec516c1f5a744
malwoverview -b 4 -B 100
malwoverview -b 4 -B time | more
malwoverview -b 5 -B bda50ff249b947617d9551c717e78131ed32bf77db9dc5b7591d3e1af6cb2f1a
malwoverview -b 6 -B 3 | more
malwoverview -b 7 -B 193.150.103.37:21330
malwoverview -b 8 -B Magecart | more
malwoverview -b 9 -B "Cobalt Strike"
malwoverview -b 10 | more
malwoverview -x 1 -X score:10 | more
malwoverview -x 1 -X 71382e72d8fb3728dc8941798ab1c180493fa978fd7eadc1ab6d21dae0d603e2
malwoverview -x 2 -X 220315-qxzrfsadfl
malwoverview -x 3 -X cd856b20a5e67a105b220be56c361b21aff65cac00ed666862b6f96dd190775e
malwoverview -x 4 -X http://ztechinternational.com/Img/XSD.exe
malwoverview -x 5 -X 220315-xmbp7sdbel
malwoverview -x 6 -X 220315-xmbp7sdbel
malwoverview -x 7 -X 220315-xmbp7sdbel
malwoverview -ip 1 -IP 8.8.8.8
malwoverview -ip 3 -IP 8.8.8.8
malwoverview -b 5 -B <hash> -O <directory>
malwoverview -b 11 -B /home/remnux/malware/hash_list.txt
malwoverview -b 12 -B /home/remnux/malware/samples/
malwoverview -b 13 -B Windows_Trojan_Emotet
malwoverview -b 14
malwoverview -b 15
malwoverview -x 8 -X /home/remnux/malware/hash_list.txt
malwoverview -x 9 -X /home/remnux/malware/samples/
malwoverview -ip 4 -IP 8.8.8.8
malwoverview -ip 5 -IP 8.8.8.8
malwoverview -ip 6 -IP 8.8.8.8
malwoverview -ip 7 -IP 8.8.8.8
malwoverview -ip 8 -IP /home/remnux/malware/ip_list.txt
malwoverview -ip 8 -IP /home/remnux/malware/ip_list.txt -D 1
malwoverview -s 1 -S 8.8.8.8
malwoverview -s 2 -S "apache"
malwoverview -ab 1 -AB 185.220.100.243
malwoverview -gn 1 -GN 185.220.100.243
malwoverview -wh 1 -WH example.com
malwoverview -wh 2 -WH 8.8.8.8
malwoverview -ct 1 -CT iana.org
malwoverview -ct 2 -CT iana.org
malwoverview -u 1 -U https://example.com
malwoverview -u 2 -U 019ce889-ab8d-768b-894e-3e5bf5401f8d
malwoverview -u 3 -U task.tags:phishing
malwoverview -u 4 -U example.com
malwoverview -u 5 -U 8.8.8.8
malwoverview --correlate-hash ab4d6a82cafc92825a0b88183325855f0c44920da970b42c949d5d5ffdcc0585
malwoverview --extract-iocs /home/remnux/malware/report.txt
malwoverview --extract-iocs /home/remnux/malware/report.pdf
malwoverview --extract-iocs https://example.com/threat-report.html
malwoverview --yara /home/remnux/rules/malware.yar --yara-target /home/remnux/malware/samples/
malwoverview --yara /home/remnux/rules/ --yara-target /home/remnux/malware/samples/
malwoverview --peinfo /home/remnux/malware/samples/
malwoverview --peinfo /home/remnux/malware/dropper.exe
malwoverview --peinfo /home/remnux/malware/samples/ --entropy-threshold 7.5
malwoverview --peinfo /home/remnux/malware/samples/ --output-format csv
malwoverview --peinfo /home/remnux/malware/samples/ --no-signature
malwoverview --sigcheck /home/remnux/malware/suspicious.exe
malwoverview --sigcheck /home/remnux/malware/samples/
malwoverview --sigcheck /home/remnux/malware/samples/ --output-format json
malwoverview --sigcheck /home/remnux/malware/samples/ --sig-verify-mode all
malwoverview --interactive
malwoverview --tui
malwoverview -v 8 -V <hash> --output-format json
malwoverview -ip 3 -IP 8.8.8.8 --proxy socks5://127.0.0.1:9050
malwoverview -v 12 -V <hash> --attack-map
malwoverview -a 1 -A <hash> --attack-map
malwoverview --correlate-hash <hash> --attack-map
# Caché local de resultados
malwoverview --cache-stats
malwoverview --prune-cache
malwoverview --clear-cache
# Descarga el conjunto de reglas de YARAify y escanea con él (-b 15 extrae en
# <directorio de salida>/yaraify-rules, así que usa el mismo -O en ambos pasos)
malwoverview -b 14 -O /home/remnux/rules
malwoverview -b 15 -O /home/remnux/rules
malwoverview --yara /home/remnux/rules/yaraify-rules --yara-target /home/remnux/malware/samples/
# Conjunto de reglas de Malpedia (-m 9 guarda malpedia_yara_<level>.zip; extráelo primero)
malwoverview -m 9 -M tlp_white -O /home/remnux/rules
unzip /home/remnux/rules/malpedia_yara_tlp_white.zip -d /home/remnux/rules/malpedia
malwoverview --yara /home/remnux/rules/malpedia --yara-target /home/remnux/malware/samples/
# Enriquecimiento con LLM (añade la evaluación de amenazas por IA a cualquier consulta)
malwoverview -v 8 -V <hash> --enrich # usa el proveedor de la configuración
malwoverview -v 8 -V <hash> --enrich --llm claude # anular: usar Claude
malwoverview -v 8 -V <hash> --enrich --llm ollama # anular: usar Ollama
malwoverview -v 8 -V <hash> --enrich --llm openai # anular: usar OpenAI
malwoverview -ip 1 -IP 8.8.8.8 --enrich
malwoverview --correlate-hash <hash> --enrich
malwoverview --nist 2 --NIST CVE-2024-3400 --enrich # Enriquecimiento de CVE (NIST)
malwoverview -vc 3 -VC CVE-2024-3400 --enrich # Enriquecimiento de CVE (VulnCheck)
malwoverview --nist 4 --NIST palo alto --enrich # búsqueda por palabra clave + enriquecimiento
SINTAXIS DE SUBCOMANDOS (alternativa a los indicadores):
# VirusTotal
malwoverview vt hash ab4d6a82cafc92825a0b88183325855f0c44920da970b42c949d5d5ffdcc0585
malwoverview vt file 95a8370c36d81ea596d83892115ce6b90717396c8f657b17696c7eeb2dba1d2e.exe
malwoverview vt av 95a8370c36d81ea596d83892115ce6b90717396c8f657b17696c7eeb2dba1d2e.exe
malwoverview vt url http://jamogames.com/templates/JLHk/
malwoverview vt ip 185.220.100.243
malwoverview vt domain xurl.es
malwoverview vt submit cc2d791b16063a302e1ebd35c0e84e6cf6519e90bb710c958ac4e4ddceca68f7.exe
malwoverview vt behavior 9d26e19b8fc5819b634397d48183637bacc9e1c62d8b1856b8116141cb8b4000
malwoverview vt batch /home/remnux/malware/hash_list_3.txt
malwoverview vt batch /home/remnux/malware/hash_list_3.txt --public
# Hybrid Analysis
malwoverview ha report 2e1fcadbac81296946930fe3ba580fd0b1aca11bc8ffd7cefa19dea131274ae8
malwoverview ha report 2e1fcadbac81296946930fe3ba580fd0b1aca11bc8ffd7cefa19dea131274ae8 --env 3
malwoverview ha submit 47eccaaa672667a9cea23e24fd702f7b3a45cbf8585403586be474585fd80243.exe
malwoverview ha download cd856b20a5e67a105b220be56c361b21aff65cac00ed666862b6f96dd190775e
malwoverview ha batch /home/remnux/malware/hash_list.txt
malwoverview ha dir /home/remnux/malware/samples/
# Malware Bazaar
malwoverview bazaar hash c9d7b5d06cd8ab1a01bf0c5bf41ef2a388e41b4c66b1728494f86ed255a95d48
malwoverview bazaar tag Revil | more
malwoverview bazaar download bda50ff249b947617d9551c717e78131ed32bf77db9dc5b7591d3e1af6cb2f1a
malwoverview bazaar batch /home/remnux/malware/hash_list.txt
malwoverview bazaar dir /home/remnux/malware/samples/
# Triage
malwoverview triage search score:10 | more
malwoverview triage search sha256:71382e72d8fb3728dc8941798ab1c180493fa978fd7eadc1ab6d21dae0d603e2
malwoverview triage summary 220315-qxzrfsadfl
malwoverview triage submit cd856b20a5e67a105b220be56c361b21aff65cac00ed666862b6f96dd190775e
malwoverview triage dynamic 220315-xmbp7sdbel
malwoverview triage batch /home/remnux/malware/hash_list.txt
malwoverview triage dir /home/remnux/malware/samples/
# URLHaus
malwoverview urlhaus hash 7c99d644cf39c14208df6d139313eaf95123d569a9206939df996cfded6924a6
malwoverview urlhaus url https://unada.us/acme-challenge/3NXwcYNCa/
malwoverview urlhaus tag Qakbot
malwoverview urlhaus download 7c99d644cf39c14208df6d139313eaf95123d569a9206939df996cfded6924a6
# Consultas de IP
malwoverview ip info 8.8.8.8
malwoverview ip shodan 8.8.8.8
malwoverview ip abuse 185.220.100.243
malwoverview ip greynoise 185.220.100.243
malwoverview ip all 8.8.8.8
# Shodan (independiente)
malwoverview shodan ip 8.8.8.8
malwoverview shodan search "apache"
# Whois
malwoverview whois domain example.com
malwoverview whois ip 8.8.8.8
# Correlación entre servicios
malwoverview correlate hash ab4d6a82cafc92825a0b88183325855f0c44920da970b42c949d5d5ffdcc0585
# Extracción de IOC (texto, PDF, correo electrónico o URL)
malwoverview extract /home/remnux/malware/report.txt
malwoverview extract /home/remnux/malware/report.pdf
malwoverview extract https://example.com/threat-report.html
# Escaneo con YARA
malwoverview yara /home/remnux/rules/malware.yar /home/remnux/malware/samples/
# Consultas de CVE en NIST
malwoverview nist 1 "windows" --ncves 50
malwoverview nist 2 CVE-2021-44228
malwoverview nist 3 CRITICAL --ncves 50
malwoverview nist 4 "remote code execution" --ncves 50
# Consultas de VulnCheck
malwoverview vulncheck 2 30
malwoverview vulncheck 3 CVE-2021-44228
# Subcomandos combinados con opciones globales
malwoverview vt hash <sha256> --output-format json
malwoverview ip all 8.8.8.8 --proxy socks5://127.0.0.1:9050
malwoverview vt behavior <sha256> --attack-map
MODO INTERACTIVO (--interactive):
malwoverview --interactive
# Dentro del prompt (escribe "help" para ver la lista completa):
vt hash ab4d6a82cafc92825a0b88183325855f0c44920da970b42c949d5d5ffdcc0585
vt file /home/remnux/malware/sample.exe
vt behavior 9d26e19b8fc5819b634397d48183637bacc9e1c62d8b1856b8116141cb8b4000
vt batch /home/remnux/malware/hash_list.txt
vt retrohunt submit /home/remnux/rules/
vt retrohunt list
vt retrohunt status 1712345678-abcdef0123456789
vt livehunt notifications
bazaar yara Windows_Trojan_Emotet
bazaar yaradownload
bazaar yaraextract
bazaar dir /home/remnux/malware/samples/
urlhaus batch /home/remnux/malware/hash_list.txt
urlhaus payloads
triage submit /home/remnux/malware/sample.exe
triage pcap 220315-xmbp7sdbel
malpedia ruleset tlp_white
malpedia meta emotet
malshare types
malshare type PE32
hybrid file /home/remnux/malware/sample.exe
hybrid dir /home/remnux/malware/samples/
threatfox malwarelist
ip batch /home/remnux/malware/ip_list.txt
ip multi 8.8.8.8
ip all 8.8.8.8
crtsh subdomains iana.org
crtsh certs iana.org
android ha
android sendvt com.example.app
yara /home/remnux/rules/ /home/remnux/malware/samples/
iocs /home/remnux/malware/report.pdf
peinfo /home/remnux/malware/samples/
peinfo /home/remnux/malware/samples/ 7.5
sigcheck /home/remnux/malware/suspicious.exe
cache stats
cache prune
set attack on
set enrich claude
export json
export csv results.csv # la ruta de exportación debe estar dentro del directorio actual
MODO TUI (--tui):
malwoverview --tui
# Elige un servicio en el panel izquierdo, escribe la consulta y pulsa Enter.
# F3 copia el resultado, F4 extrae un ID de él, F5 exporta los
# resultados recopilados a json, F6 los exporta a csv, Ctrl+L limpia.
# Ctrl+V (o Shift+Insert) pega el portapapeles en el cuadro de consulta desde
# cualquier lugar del panel, por lo que se puede pegar un hash sin hacer clic
# primero en el cuadro.
# La lista de teclas se imprime sobre los resultados y se vuelve a escribir cada
# vez que se limpia el panel, lo que incluye el inicio de cada búsqueda.
# Mientras el cuadro de consulta tiene el foco, salir es Ctrl+Q, porque la propia Q
# debe seguir siendo escribible.
OPCIONES DE VULNERABILIDADES:
# Buscar vulnerabilidades de Windows
malwoverview --nist 1 --NIST "windows" --ncves 50
# Buscar vulnerabilidades de Apache
malwoverview --nist 1 --NIST "apache" --ncves 30
# Buscar vulnerabilidades de Chrome
malwoverview --nist 1 --NIST "chrome" --ncves 25
# Buscar vulnerabilidades de Chromium
malwoverview --nist 1 --NIST "chromium" --ncves 25
# Buscar vulnerabilidades de Linux
malwoverview --nist 1 --NIST "linux" --ncves 25
# Buscar vulnerabilidades de MacOS
malwoverview --nist 1 --NIST "MacOS" --ncves 25
# Buscar la vulnerabilidad Log4Shell
malwoverview --nist 2 --NIST "CVE-2021-44228"
# Buscar la vulnerabilidad ProxyShell
malwoverview --nist 2 --NIST "CVE-2021-34473"
# Buscar la vulnerabilidad Spring4Shell
malwoverview --nist 2 --NIST "CVE-2022-22965"
# Buscar vulnerabilidades de severidad CRÍTICA
malwoverview --nist 3 --NIST "CRITICAL" --ncves 50
# Buscar vulnerabilidades de severidad ALTA
malwoverview --nist 3 --NIST "HIGH" --ncves 40
# Buscar vulnerabilidades de severidad MEDIA
malwoverview --nist 3 --NIST "MEDIUM" --ncves 30
# Buscar vulnerabilidades de omisión de autenticación
malwoverview --nist 4 --NIST "authentication bypass" --ncves 30
# Buscar vulnerabilidades de ejecución remota de código (RCE)
malwoverview --nist 4 --NIST "remote code execution" --ncves 50
# Buscar vulnerabilidades de inyección SQL
malwoverview --nist 4 --NIST "sql injection" --ncves 25
# Buscar vulnerabilidades de path traversal (CWE-22)
malwoverview --nist 5 --NIST "CWE-22" --ncves 30
# Buscar vulnerabilidades de inyección SQL (CWE-89)
malwoverview --nist 5 --NIST "CWE-89" ---ncves 40
# Buscar vulnerabilidades de Cross-Site Scripting (CWE-79)
malwoverview --nist 5 --NIST "CWE-79" --ncves 35
# Listar los índices disponibles de VulnCheck (nivel Community/Gratuito)
malwoverview -vc 1
# Obtener Known Exploited Vulnerabilities (KEV) - 30 resultados
malwoverview -vc 2 -VC 30
# Obtener Known Exploited Vulnerabilities (KEV) - 100 resultados
malwoverview -vc 2 -VC 100
# Buscar un CVE específico en la base de datos KEV
malwoverview -vc 3 -VC CVE-2021-44228
# Buscar un CVE específico en la base de datos KEV
malwoverview -vc 3 -VC CVE-2022-22965
# Obtener enlace de descarga de respaldo para el conjunto de datos KEV de VulnCheck
malwoverview -vc 4
# Listar CVEs recientes de la base de datos de MITRE
malwoverview -vc 5
# Listar CVEs recientes de la base de datos de MITRE - 20 resultados
malwoverview -vc 5 -VC 20
# Listar CVEs recientes de la base de datos NIST NVD2
malwoverview -vc 6
# Listar CVEs recientes de la base de datos NIST NVD2 - 50 resultados
malwoverview -vc 6 -VC 50
# Buscar un CVE específico en la base de datos de MITRE (registros oficiales de CVE)
malwoverview -vc 7 -VC CVE-2024-21412
# Buscar un CVE específico en NIST NVD2 (puntuaciones CVSS, CWE, estado CISA KEV)
malwoverview -vc 8 -VC CVE-2024-21412
QUÉ HAY DE NUEVO EN 8.1.0, CON EJEMPLOSTodo lo que esta versión añade o cambia, como comandos que puedes ejecutar. La versión narrativa de la misma lista es el bloque 8.1.0 en HISTORY, más abajo.
1. Opciones que cambiaron de número (lee esto primero)
El único cambio incompatible. Las cinco opciones de descarga de Hybrid Analysis hacían lo mismo, así que se fusionaron en una y las dos opciones posteriores bajaron:
# Download a sample from Hybrid Analysis (was -a 11, -a 12, -a 13, -a 14 or -a 15)
malwoverview -a 11 -A 495c7e5513fa7766c236e76d8520139139fc4ad7203ddcb2ccdae17bdb691979
# Batch hash check from a file (was -a 16)
malwoverview -a 12 -A /home/remnux/malware/hashes.txt
# Scan every file in a directory (was -a 17)
malwoverview -a 13 -A /home/remnux/malware/samples/
Todas las demás opciones mantuvieron su número. Todos los números nuevos son aditivos.
2. Análisis local sin clave de API y sin petición de red
# Triage a directory: type, size, overlay, overlay size, entropy, signature
malwoverview --peinfo /home/remnux/malware/samples/
# Lower the bar for what counts as packed or encrypted (default 7.0)
malwoverview --peinfo /home/remnux/malware/samples/ --entropy-threshold 6.5
# Skip signature verification on a large sweep
malwoverview --peinfo /home/remnux/malware/samples/ --no-signature
# YARA now accepts a whole rules directory, scanned recursively
malwoverview --yara /home/remnux/rules/ --yara-target /home/remnux/malware/samples/
3. Authenticode: ¿está firmado y es válida la firma?
# One file: status, signer, issuer, certificate dates, thumbprint, serial
malwoverview --sigcheck /home/remnux/malware/suspicious.exe
# A whole directory, one row per file
malwoverview --sigcheck /home/remnux/malware/samples/
Un archivo puede llevar varias firmas incrustadas — normalmente SHA-1 por compatibilidad más SHA-256 — y los firmantes suelen ser diferentes. La tabla marca las adicionales como (+N); ejecuta la forma de un solo archivo para listarlas todas. Qué firma decide el estado es seleccionable:
# Strongest digest decides (default, and what Windows honours)
malwoverview --sigcheck /home/remnux/malware/driver.sys --sig-verify-mode best
# First in file order decides (what sigcheck.exe reports)
malwoverview --sigcheck /home/remnux/malware/driver.sys --sig-verify-mode first
# Every signature must verify (strictest)
malwoverview --sigcheck /home/remnux/malware/driver.sys --sig-verify-mode all
# Any one signature verifying is enough (most permissive)
malwoverview --sigcheck /home/remnux/malware/driver.sys --sig-verify-mode any
Los propios datos de firma de VirusTotal también se muestran ahora, de modo que una consulta de hash informa de la cadena de firmantes, la fecha de firma y la huella digital de cada certificado:
# Signature block from VirusTotal, by hash
malwoverview -v 8 -V 495c7e5513fa7766c236e76d8520139139fc4ad7203ddcb2ccdae17bdb691979
# Same block when checking a local file
malwoverview -v 1 -V /home/remnux/malware/suspicious.exe
4. Transparencia de certificados a través de crt.sh (sin clave de API)
# Distinct DNS names seen in certificates issued for a domain
malwoverview -ct 1 -CT example.com
# The certificates themselves: identifier, issuer, common name, validity
malwoverview -ct 2 -CT example.com
5. VirusTotal Retrohunt y Livehunt (requiere una clave empresarial)
# Submit a Retrohunt job from a rules file or a rules directory
malwoverview -v 14 -V /home/remnux/rules/hunting.yar
# List your Retrohunt jobs, optionally filtered by status
malwoverview -v 15
malwoverview -v 15 -V finished
# Status and progress of one job, then the files it matched
malwoverview -v 16 -V 1234abcd-5678-90ef-1234-567890abcdef
malwoverview -v 17 -V 1234abcd-5678-90ef-1234-567890abcdef
# Create a Livehunt ruleset, list your rulesets, list notifications
malwoverview -v 18 -V /home/remnux/rules/livehunt.yar
malwoverview -v 19
malwoverview -v 20
6. Más lugares para obtener reglas YARA y cómo pivotar sobre ellas
Una consulta de hash ahora lista las reglas YARA que coincidieron con la muestra, que es de donde sale el nombre de la regla para el siguiente comando:
# 1. look a sample up: the report ends with the rules that matched it
malwoverview -b 1 -B 3b89db05cd1e6283a5d23e32eb6a6c17d92953c80c93befa194a0c93a633c1b5
tags: elf Mirai upx-dec
yara rules:
ELF_Mirai
linux_generic_ipv6_catcher
unixredflags3
# 2. take one of those names and pull every other sample it matched
malwoverview -b 13 -B ELF_Mirai
Los nombres de las reglas también viven en los propios conjuntos de reglas, que se pueden descargar y leer localmente:
# Download the YARAify rule set from abuse.ch, then extract it.
# Both use -O for the working directory; -b 15 finds the archive there.
malwoverview -b 14 -O /home/remnux/rules/
malwoverview -b 15 -O /home/remnux/rules/
El archivo llega como /home/remnux/rules/yaraify-rules.zip y se extrae en /home/remnux/rules/yaraify-rules/, un archivo .yar por regla. Ese directorio es el destino de --yara, y sus nombres de archivo son los nombres de las reglas:
malwoverview --yara /home/remnux/rules/yaraify-rules/ --yara-target /home/remnux/malware/samples/
Un conjunto de reglas recopilado de muchos autores no compila correctamente contra todas las versiones de YARA. Los archivos con errores de sintaxis se listan y se omiten, y el escaneo se ejecuta con el resto: una ejecución del conjunto anterior compiló 548 de 557 archivos.
# The complete Malpedia YARA ruleset for a TLP level
malwoverview -m 9 -M white
7. Opciones que estaban rotas y ahora funcionan
# -m 1 returned the family list; it now returns family meta information
malwoverview -m 1
# -l 6 lists the file types seen in the last 24 hours, -l 8 lists one of them
malwoverview -l 6
malwoverview -l 8 -L PE32
# -ip 3 and -ip 7 used to be identical; -ip 3 is VirusTotal + OTX,
# -ip 7 queries every configured service (IPInfo was never reached)
malwoverview -ip 3 -IP 8.8.8.8
malwoverview -ip 7 -IP 8.8.8.8
# -j 8 (URLhaus batch hash check) was unreachable
malwoverview -j 8 -J /home/remnux/malware/hashes.txt
8. Salida legible por máquina para todas las opciones
json y csv ahora funcionan en toda la herramienta en lugar de en un tercio de ella:
malwoverview -v 8 -V 495c7e5513fa7766c236e76d8520139139fc4ad7203ddcb2ccdae17bdb691979 --output-format json
malwoverview --sigcheck /home/remnux/malware/samples/ --output-format csv
malwoverview -b 6 -B 3 --output-format json
# LLM enrichment reaches json and csv too, as a typed record
malwoverview -v 8 -V 495c7e5513fa7766c236e76d8520139139fc4ad7203ddcb2ccdae17bdb691979 --enrich --output-format json
9. Mantener una consulta silenciosa y la salida segura para pegar
# Do not resolve attacker-controlled hostnames to IP addresses
malwoverview -j 2 -J http://malicious.example.com/payload.bin --no-resolve
# Defang the extracted IOCs so the list can be pasted into a ticket
malwoverview --extract-iocs /home/remnux/malware/report.txt --defang
# The source can equally be a URL, so a published report can be read and
# its IOCs defanged in one step
malwoverview --extract-iocs https://example.com/threat-report.html --defang
# A vendor blog is mostly navigation, analytics and minified JavaScript, so
# the extractor skips <script>, <style> and <svg>, drops links back to the
# source site and to known page furniture, and only reports a domain whose
# last label is a real top-level domain
malwoverview --extract-iocs https://www.fortinet.com/blog/threat-research/dprk-related-campaigns-with-lnk-and-github-c2
# Turn all of that off and report every regex match in the raw source
malwoverview --extract-iocs https://example.com/threat-report.html --no-ioc-filter
10. Control de caché
malwoverview --cache-stats
malwoverview --prune-cache
malwoverview --clear-cache
11. Ambas superficies interactivas alcanzan todos los servicios
# Command-line REPL
malwoverview --interactive
# Full-screen dashboard: 111 services, Ctrl+V pastes, F5 exports json,
# F6 exports csv
malwoverview --tui
QUÉ HAY DE NUEVO EN 8.0.0 A 8.0.5, CON EJEMPLOS
8.0.0 añadió mucho de una vez, así que los comandos están agrupados aquí por su finalidad en lugar de por número de opción. 8.0.1 a 8.0.5 fueron principalmente correcciones y están al final. Cuando 8.1.0 cambió posteriormente un número de opción, el comando siguiente usa el número actual e indica cuál era antes.
1. Cinco servicios nuevos
# URLScan.io (-u): submit a URL, fetch a result by id, search,
# then look up a domain or an IP
malwoverview -u 1 -U https://example.com
malwoverview -u 2 -U 019ce889-ab8d-768b-894e-3e5bf5401f8d
malwoverview -u 3 -U task.tags:phishing
malwoverview -u 4 -U example.com
malwoverview -u 5 -U 8.8.8.8
# Shodan (-s): a single IP, or a search query
malwoverview -s 1 -S 8.8.8.8
malwoverview -s 2 -S "apache"
# AbuseIPDB (-ab): IP reputation
malwoverview -ab 1 -AB 185.220.100.243
# GreyNoise (-gn): background internet noise, or aimed at you?
malwoverview -gn 1 -GN 185.220.100.243
# Whois / RDAP (-wh): a domain, then an IP
malwoverview -wh 1 -WH example.com
malwoverview -wh 2 -WH 8.8.8.8
Los nuevos servicios de IP también son accesibles desde -ip, de modo que una misma dirección puede consultarse servicio por servicio, o a través de todos a la vez:
malwoverview -ip 4 -IP 8.8.8.8
malwoverview -ip 5 -IP 8.8.8.8
malwoverview -ip 6 -IP 8.8.8.8
malwoverview -ip 7 -IP 8.8.8.8
2. Un mismo hash en varios servicios con un solo comando
malwoverview --correlate-hash ab4d6a82cafc92825a0b88183325855f0c44920da970b42c949d5d5ffdcc0585
3. Comprobaciones de hash por lotes y escaneos de directorios
# Malware Bazaar: a file of hashes, then a directory of samples
malwoverview -b 11 -B /home/remnux/malware/hash_list.txt
malwoverview -b 12 -B /home/remnux/malware/samples/
# Hybrid Analysis (8.0.0 numbered these -a 16 and -a 17)
malwoverview -a 12 -A /home/remnux/malware/hash_list.txt
malwoverview -a 13 -A /home/remnux/malware/samples/
# Triage
malwoverview -x 8 -X /home/remnux/malware/hash_list.txt
malwoverview -x 9 -X /home/remnux/malware/samples/
4. Extracción de IOCs y escaneo con YARA
# Pull hashes, IPs, URLs, domains, emails and CVEs out of a report
malwoverview --extract-iocs /home/remnux/malware/report.txt
malwoverview --extract-iocs /home/remnux/malware/report.pdf
malwoverview --extract-iocs https://example.com/threat-report.html
# Scan samples with YARA rules
malwoverview --yara /home/remnux/rules/malware.yar --yara-target /home/remnux/malware/samples/
5. Enriquecimiento con LLM de cualquier resultado
# Provider taken from the [LLM] section of .malwapi.conf
malwoverview -v 8 -V <hash> --enrich
# Override it per run: claude, gemini, openai or ollama
malwoverview -v 8 -V <hash> --enrich --llm claude
malwoverview --nist 2 --NIST CVE-2024-3400 --enrich --llm gemini
6. Salida estructurada, informes y mapeo ATT&CK
malwoverview -v 8 -V <hash> --output-format json
malwoverview -ip 1 -IP 8.8.8.8 --output-format csv
malwoverview -v 12 -V <hash> --attack-map
malwoverview -v 8 -V <hash> --report html --report-file /home/remnux/report.html
malwoverview -v 8 -V <hash> --report pdf --report-file /home/remnux/report.pdf
7. Caché, proxy y verbosidad
malwoverview -v 8 -V <hash> --no-cache
malwoverview -v 8 -V <hash> --cache-ttl 86400
malwoverview -ip 3 -IP 8.8.8.8 --proxy socks5://127.0.0.1:9050
malwoverview -v 8 -V <hash> --quiet
malwoverview -v 8 -V <hash> --verbose
8. Dos superficies interactivas
malwoverview --interactive
malwoverview --tui
9. Lo que 8.0.1 a 8.0.5 corrigieron, como comandos
# 8.0.1: these take a file path again, not only a hash
malwoverview -v 1 -V /home/remnux/malware/suspicious.exe
malwoverview -a 1 -A /home/remnux/malware/suspicious.exe
malwoverview -l 1 -L ab4d6a82cafc92825a0b88183325855f0c44920da970b42c949d5d5ffdcc0585
# 8.0.2: batch IP check against VirusTotal, Premium then Public API
malwoverview -ip 8 -IP /home/remnux/malware/ip_list.txt
malwoverview -ip 8 -IP /home/remnux/malware/ip_list.txt -D 1
# 8.0.2: Android scans work on current devices again, hashing with SHA256
malwoverview -y 1
malwoverview -y 2
# 8.0.3 and 8.0.4: Claude enrichment works again and is rendered with colour
malwoverview -v 8 -V <hash> --enrich --llm claude
# 8.0.5: overlay and entropy in the directory check and the hash report
malwoverview -d /home/remnux/malware/samples/
malwoverview -v 8 -V <hash>
HISTORIAL
Versión 8.1.0:
This version adds YARA hunting and local PE triage, repairs options
that did not do what they announced, and includes a set of security
fixes.
ATTENTION: two options changed number. The five Hybrid Analysis download
options (-a 11 to -a 15) are now a single option, -a 11. The batch hash
check moved to -a 12 (it was -a 16) and the directory scan to -a 13 (it
was -a 17). Nothing else changed number.
NEW OPTIONS
* --sigcheck: Authenticode signature checking of a file or a
directory, with no API key and no network request. Reports VALID,
TAMPERED, UNTRUSTED, EXPIRED, MALFORMED, INVALID, NONE or N/A with
the signer, issuer and certificate dates. Every embedded signature
is listed, each with its own digest algorithm, thumbprint and
serial number. Verification needs
pip install malwoverview[signature]; without it the status is
PRESENT or NONE.
* --sig-verify-mode any|first|all|best: which signature decides the
status of a multi-signed file. Default best.
* --no-signature: skips signature verification on large directories.
* --peinfo and --entropy-threshold: local PE triage of a file or
directory, listing file type, size, overlay, overlay size, entropy
and signature status, highlighting files at or above the threshold
(default 7.0). Recursive, no API key.
* -ct 1|2 and -CT: Certificate Transparency through crt.sh, no API
key. -ct 1 lists the DNS names seen in certificates issued for a
domain, -ct 2 lists the certificates.
* -v 14 to -v 20: VirusTotal Retrohunt and Livehunt. Submit a job,
list jobs, follow a job, list matched files, create a ruleset, list
rulesets and list notifications. Requires a premium key.
* -b 13, -b 14 and -b 15: Malware Bazaar search by YARA rule name,
and download and extraction of the YARAify rule set.
* -m 9: download of the Malpedia YARA ruleset for a TLP level.
* -l 8: lists the hashes of a MalShare file type given with -L.
* -j 8: URLHaus batch hash check, which no option reached before.
* --cache-stats, --prune-cache and --clear-cache.
* --no-resolve: does not resolve or geolocate the host names shown by
-j 2 and -j 3.
* --defang: prints the IOCs listed by --extract-iocs as
hxxp://example[.]com. Output only.
* --no-ioc-filter: turns off the --extract-iocs noise filtering and
reports every regex match in the raw source.
* --yara now accepts a directory of rules, each file compiled in its
own namespace. A file that fails to compile is reported and
skipped.
REPAIRED OPTIONS
* -m 1 called the same endpoint as -m 5. It now retrieves the family
meta information and accepts an optional filter with -M.
* -l 6 was labelled "Composite(OLE)" and listed PDF samples. It now
lists the file types seen in the last 24 hours with a count.
* -ip 3 and -ip 7 produced identical output. -ip 3 now queries
VirusTotal and AlienVault only; -ip 7 queries every remaining
service, including IPInfo.
* -l 1 wrote a zero byte file for every sample and reported success.
Redirects are followed and an empty body is refused.
* -a 6 to -a 10 and -y 4 always failed with "Requested URI - Not
Found". Hybrid Analysis requests no longer go through the www host,
whose redirect dropped the upload.
* -b 14 answered HTTP 301. The rule set is fetched from the working
address with the abuse.ch Auth-Key.
* -v 20 reads the Livehunt notifications from the
hunting_notification_files endpoint, which carries the sha256.
* -b 6, -m 4 and the other options that consume an argument now
require it. Eight of them stopped with a raw TypeError when it was
omitted.
* -A now accepts a native Windows path (-a 1 to -a 5), which was
rejected as "Input contains invalid characters".
* --report html, --report pdf and --enrich now work for
--correlate-hash, --extract-iocs and --yara, which produced no
report.
* The Malpedia sample and rule downloads no longer end the program
before the report and the json/csv export.
* The validated form of every argument is now the one used. A URL
written as hxxp://example[.]com was sent to the service still
defanged, and paths such as ~/samples were not expanded.
* -ip 2 (BGPView) is removed: its domain no longer resolves. The
number is kept and reports the removal, pointing at -ip 1 and
-ip 7. No other -ip number changed.
* --defang is documented as applying to --extract-iocs only, which is
the only option that reads it.
NEW BEHAVIOUR
* -y 1, -y 2 and -y 3 hash every APK of a package instead of the base
APK alone. On the test device a scan went from 35 to 79 APKs.
-y 4 and -y 5 report when the selected package is a split APK.
* -b 1 lists the YARA rules that matched the sample, so a name can be
passed to -b 13.
* -v 1 and -v 8 show the signature block VirusTotal already returned:
whether it verified, the signer and counter signer chains, the
signing date and every certificate with its status, algorithm,
dates, serial number and thumbprint.
* --sigcheck and --peinfo report the certificate thumbprint, serial
number and digest algorithm, in the report and in json and csv.
* --extract-iocs no longer reports a web page's own code. On a vendor
blog it returned 855 IOCs, 743 of them "domains" produced by
minified JavaScript. Script, style, svg and noscript blocks are
skipped, a domain is reported only when its last label is a real
top-level domain, and links back to the source site and to page
furniture are dropped: 855 IOCs became 16, keeping every sample
hash and the command-and-control URLs. Suppression is counted and
reported. Code-hosting, paste and messaging services are never
suppressed.* --extract-iocs nombra el host y el tipo de fallo cuando una descarga
falla, en lugar de imprimir la excepción cruda de urllib3.
* Un 404 de GreyNoise Community se notifica como lo que es, que la
dirección no es un escáner de internet, en lugar de como un error.
* Un fallo de red ya no llega al usuario como un traceback de Python.
43 bloques try solo capturaban ValueError, por lo que un error de
conexión escapaba sin capturar. El host notificado se toma de la
URL analizada, nunca del texto de la excepción.
* Un fallo de TLS se explica: un handshake que se completa y luego
se cierra, un certificado que falla la verificación, un puerto que
responde sin TLS y un handshake rechazado reciben cada uno su
propia línea. El texto de la excepción se lee pero nunca se
imprime.
* crt.sh usa una política de reintentos paciente (5 reintentos, 2
segundos de backoff) porque responde a la misma URL con 200, 404 o
502 a segundos de distancia. Todos los demás servicios mantienen la
política anterior.
* El HTTP 429 ahora se reintenta, como máximo tres veces, respetando
ambas formas de Retry-After y sin esperar nunca más de 300
segundos. Las subidas de muestras no se reintentan.
* El cálculo de entropía lee el archivo en bloques en lugar de
cargarlo entero. El valor notificado no cambia.
* El escáner YARA ya no cambia el directorio de trabajo del proceso
mientras compila las reglas.
* La coincidencia de --attack-map es exacta en lugar de una búsqueda
de subcadena, que había atribuido técnicas no relacionadas (una
etiqueta vacía coincidía con las 691). Se extiende a los informes
de Hybrid Analysis y a --correlate-hash.
* A --enrich se le envían los registros recopilados en lugar del
texto extraído del terminal, y ahora funciona con --output-format
json y csv, donde antes se ignoraba silenciosamente.
* Cada opción ahora produce registros para --output-format json y
csv. Antes solo lo hacía un tercio de ellas.
* Los resultados de MalShare se incluyen en json y csv.
* Las secciones [INQUEST] y [VIRUSEXCHANGE] se eliminan de
.malwapi.conf y del código que hay detrás de ellas.
* La versión mínima de Python es 3.10, y los classifiers anuncian
3.10 a 3.13.
MODOS INTERACTIVO Y GRÁFICO
* --interactive gana todos los comandos que antes solo tenía la línea
de comandos: los informes de VirusTotal, subidas, informe de
comportamiento, comprobación por lotes, Retrohunt y Livehunt; el
imphash de Malware Bazaar, descarga, lote, directorio, búsqueda de
reglas YARA y conjunto de reglas de YARAify; la descarga de
payloads de URLHaus, búsqueda de firmas, lista de payloads,
comprobación por lotes y feed; las submissions de Triage,
descargas, informe dinámico, comprobaciones por lotes y de
directorio; la meta de familias de Malpedia, lista de payloads y
conjunto de reglas; los listados de tipos de archivo de MalShare;
la submission de Hybrid Analysis, comprobaciones por lotes y de
directorio; la lista de familias de ThreatFox; las consultas por
lotes de IP y multiservicio; y crtsh, android, yara, iocs y cache.
ATT&CK se conmuta con "set attack on|off".
* --tui se reconstruye sobre el código de módulo usado por la línea
de comandos en lugar de sobre su propia copia de cada llamada de
servicio: 3013 líneas se convirtieron en 818, y la lista de
servicios pasó de 37 a 111 entradas. Los resultados se exportan
con F5 (json) y F6 (csv), algo que antes no soportaba en absoluto.
* El pegado de --tui está corregido. Un hash pegado antes de hacer
clic en el cuadro de consulta se descartaba sin mensaje, porque
solo el widget enfocado recibe un pegado y el panel inicia en la
lista de servicios. Ahora el pegado se captura en toda la ventana.
* --tui gana Ctrl+V y Shift+Insert, que leen el portapapeles
directamente para terminales que nunca envían un pegado. No se
necesita ningún paquete de terceros.
* La lista de teclas de --tui se vuelve a escribir cada vez que se
limpia el panel de resultados, y se construye a partir de los
propios enlaces de teclas. La barra de teclas mantiene Quit (como
Ctrl+Q) y Paste mientras el cuadro de consulta tiene el foco, y sus
etiquetas ya no repiten la tecla.
INFORMES
* --peinfo y --sigcheck ajustan sus columnas a los archivos que se
están escaneando y nunca acortan el nombre de archivo, que
comúnmente es el SHA256. Type y Signer permanecen limitados; un
valor acortado lo es solo en pantalla.
* Cada columna de tabla se mide en celdas de terminal en lugar de
caracteres, por lo que un asunto de certificado CJK o un nombre de
archivo ya no desalinean las columnas. El truncamiento se detiene
en un límite de carácter.
* Las reglas de una tabla ahora equivalen a la suma de sus columnas,
los encabezados de columna y las reglas son neutros, una celda
vacía lee n/a y el cierre cuenta con "[+] ". Aplicado a -j 8, -a
12, -a 13, -b 11, -b 12, -b 13, -x 8, -x 9, -l 6, -s 2, -u 3,
--yara, --peinfo y --sigcheck, cuyas reglas discrepaban de sus
columnas por hasta 51 caracteres.
* El mismo tratamiento se completó en todos los informes restantes.
Ninguna regla se escribe ya como un número fijo: cada una se
obtiene de un ancho con nombre o del encabezado bajo el que se
encuentra, por lo que el título, la regla y las columnas ya no
pueden discrepar. 88 reglas en 19 archivos, llegando a todos los
servicios que consulta la herramienta.
* 38 títulos de informes se rellenaban con 28 espacios finales,
poniendo la línea del título más allá de la regla que tiene debajo.
Invisible en pantalla y visible en cuanto la salida se canaliza,
redirige o copia.
* -b 6 a -b 10: los valores largos se ajustan al ancho del informe.
Una URL de referencia o una lista de alias unida por comas ocupaba
hasta 137 columnas bajo una regla de 100 columnas; en una ejecución
de -b 6, 52 de 5936 líneas lo hacían.
* -j 2 a -j 7: cada informe se dibuja con un ancho tomado de las
columnas que realmente imprime, reemplazando los seis números
diferentes (100, 104, 126, 130, 136 y 146) usados antes. -j 2
también ajusta su columna de URL a partir de la respuesta y ya no
imprime su encabezado dos veces.
* -l 1 y -l 8 son tablas. El encabezado anunciaba tres columnas
centradas a 75, 38 y 8 bajo una regla de 126, mientras que las
filas siguientes imprimían "sha256: ... md5: ... type: ...", por lo
que los encabezados no se alineaban con nada. Un error de MalShare
ya no se imprime debajo de un encabezado que promete resultados
que nunca llegan.
* -ct 1 y -ct 2: el encabezado del informe se dibuja al ancho de la
tabla que presenta, y las líneas de estado, error y recuento se
ajustan a él como avisos con viñetas en lugar de sobrepasarlo.
* -a 12 y -a 13: un hash que Hybrid Analysis nunca ha visto producía
una fila en blanco y ahora lee not found, que es distinto del
veredicto "unknown". Un fallo de HTTP se notifica como tal. -a 13
ya no corta cada nombre de archivo a 40 caracteres.
* -j 8: la columna Status mostraba la respuesta cruda, por lo que un
acierto leía "ok". Ahora lee found, not found, invalid hash o bad
request. La columna de hash sigue a los hashes del archivo.
* -x 8 y -x 9: el nombre de archivo y las etiquetas se cortaban con
un slice simple y ahora se truncan con puntos suspensivos, y la
puntuación se colorea según el valor.
* -b 11 y -b 12: la columna Signature tiene 17 columnas y una muestra
desconocida lee n/a en lugar de dejar un hueco.
* -s 2 es una tabla en lugar de cuatro líneas etiquetadas por host,
cien bloques para una consulta. Las columnas son IP, Port, Country,
Product, Vulns y Organization. El banner crudo se reemplaza por
Product, que es lo que Shodan parseó del banner o del encabezado
Server; el banner completo sigue llegando a json y csv. Vulns es el
número de CVEs que Shodan lista contra el host.
* -u 3: la columna Score siempre era cero, porque el endpoint de
búsqueda no devuelve veredictos en absoluto y el código
predeterminaba el valor; los registros json y csv llevaban
"malicious": "False" para cada resultado de una consulta de
phishing. Ambos campos han desaparecido, reemplazados por Age(d),
la antigüedad del dominio en días, coloreada según el valor. Las
celdas se truncan con puntos suspensivos en lugar de cortarse, y la
columna IP ya no parte una dirección IPv6 por la mitad.
* -u 2: el veredicto, la puntuación, las categorías, las etiquetas y
las marcas se resaltan en lugar de dibujarse como el tipo MIME, los
valores se ajustan en lugar de salirse de la pantalla, y las fechas
del certificado se muestran como UTC en lugar de segundos epoch
crudos. El título de la página ya no se corta a 80 caracteres.
* -u 1: la nota de cierre se prefija con "[+] ", se dibuja como un
aviso en lugar de como un campo más, y lleva el UUID del escaneo
recién enviado para que el comando de recuperación se pueda copiar.
* --correlate-hash, -wh 1 y -wh 2 ajustan sus valores, con las
continuaciones alineadas bajo la primera línea. Un estado WHOIS
alcanzaba 187 columnas bajo una regla de 100, y los IDs ATT&CK de
un conjunto de pulsos alcanzaban 200. El SHA512 se divide entre
líneas; los registros mantienen cada valor en una sola línea.
* --yara ya no imprime los errores de compilación por archivo, que
son una propiedad del conjunto de reglas más que de las muestras y
empujaban el informe fuera de la pantalla. El recuento permanece en
el resumen y el detalle está disponible con --verbose. Las
columnas File y Rule se dimensionan a partir de su contenido,
porque cortar cualquiera de ellas rompe el enlace de vuelta a la
muestra o a la regla.
* El bloque de certificado de -v 1 y -v 8 se ajusta a 120 columnas.
Un estado es una oración por problema unida con comas y alcanzaba
233 caracteres en una línea.
* La salida de --enrich se ajusta al ancho de la regla que tiene
encima, con las continuaciones indentadas bajo un marcador de
lista. Los registros json y csv mantienen la respuesta sin ajustar.
* -y 1 notifica su inventario APK al final de la tabla en lugar de
encima de ella, prefijado con "[+] " en el color neutro. Las filas
las imprime un hilo por paquete y esos hilos nunca se unían fuera
de Windows, por lo que la línea ahora se imprime después de que se
unen. -y 2 y -y 3 se tratan de la misma manera.
* -ip 3 y -ip 7: las dos notas de referencias cruzadas se prefijan
con "[+] ", donde antes se leían como parte de los datos que tienen
encima.
* Un archivo de reglas YARA que se omite ahora informa del motivo. La
ruta ocupaba toda la línea y la razón se cortaba.
* La salida json y csv de --correlate-hash, --extract-iocs y --yara
ya no comienza con una línea en blanco.
* Los informes ya no se imprimen en la salida estándar junto con el
json o el csv, lo que hacía imposible parsear el resultado, y
veintinueve funciones ya no terminan el programa antes de la
exportación. El texto va al error estándar cuando un comando no
produce ningún registro, de modo que un fallo se puede distinguir
de un resultado vacío.
* El csv escrito en la salida estándar en Windows ya no sigue cada
fila con una en blanco, y tanto el json como el csv se escriben en
UTF-8 en lugar de la codificación de la consola.
* El csv escrito por "export csv" en el modo interactivo ya no
termina cada línea con dos retornos de carro en Windows.
* Un certificado que contiene caracteres que la consola no puede
representar ya no termina la ejecución con UnicodeEncodeError.
* Una secuencia de escape inválida en la búsqueda de familias de
PolySwarm ya no emite un SyntaxWarning.
* Una caché ATT&CK truncada o corrupta ya no falla con "Error while
connecting to Virus Total!". Se detecta, se descarga de nuevo y se
escribe atómicamente.
* Una submission de Hybrid Analysis rechazada ya no se detiene con un
KeyError; se imprime la razón dada por el servicio.
* 43 manejadores alrededor de una petición solo capturaban ValueError,
por lo que un fallo de red aún podía llegar al usuario como un
traceback de Python. Ahora también capturan los errores de petición
y nombran el servicio y el host. El mensaje nunca contiene el texto
de la excepción, porque MalShare y Shodan llevan la clave API en la
URL.
* Siete de esos manejadores en URLHaus eran inalcanzables: un
manejador más amplio por encima de ellos capturaba el fallo primero,
no imprimía nada y salía. -j 7 contra un servicio inalcanzable
imprimía un encabezado, una regla y nada más, lo que se lee
exactamente como una búsqueda que no encontró nada.
* --defang ahora también desactiva la línea Source del informe de
extracción de IOC, de modo que todo el informe se puede pegar en
algún lugar seguro. Una ruta de archivo local se deja intacta, y el
registro exportado mantiene el valor real en ambos casos.
* La lista SUBCOMMANDS en este archivo anunciaba "ip bgp", eliminado
en esta versión, omitía "ip batch" y "urlhaus batch", y listaba un
subcomando urlscanio que nunca ha existido. URLScan.io es accesible
a través de -u.
COLORES
* Sobre un fondo claro ya no se usa ni cian ni azul claro, solo azul.
Sobre un fondo oscuro ambos siguen en uso. Esto cambió 298 lugares
en 16 archivos, incluido el color compartido de info().
* Una auditoría de todo el paquete encontró 26 lugares más que
rompían la regla, algunos dentro de una prueba de fondo y algunos
coloreados una vez para ambos fondos. El verde sobre oscuro ahora
es verde claro.
* El color neutro nunca se aplicaba en Windows con un fondo oscuro:
se escribía como una secuencia de escape extendida de 256 colores,
que el conversor colorama solo entiende como códigos básicos, por
lo que se descartaba y el color anterior permanecía en vigor. Cada
regla de tabla, encabezado de columna y aviso con viñetas se veía
afectado.
* -x 8 y -x 9: la columna Tags es azul claro sobre oscuro y azul
sobre claro. Usaba el mismo tono que la columna Hash a su lado.
* -b 1: las etiquetas de campo son cian claro sobre oscuro y azul
sobre claro, coincidiendo con todos los demás informes; el fondo
claro usaba verde.
* -j 8: la columna de hash es púrpura claro sobre oscuro y azul
sobre claro. La columna de estado es gris hasta que hay algo que
notificar.
* -ab 1: las etiquetas de campo son azul claro sobre oscuro y azul
sobre claro.
* -y 1: la columna Package es azul claro sobre oscuro.
* -y 2 y -y 3: la columna Hash es rosa sobre oscuro y púrpura sobre
claro.
* -s 2: la columna Product es azul claro sobre oscuro y cian sobre
claro.
Los cambios siguientes son correcciones de seguridad. Ninguno de ellos
cambia ninguna sintaxis de comando.
* Corrige la inyección de secuencias de escape de terminal
provenientes de las respuestas de los servicios (ALTA). Los campos
controlados por el atacante impresos en el terminal (los datos de
comportamiento y nombres de muestra de VirusTotal, los nombres de
archivo, firmas y etiquetas de Malware Bazaar y URLHaus, los
nombres y descripciones de pulsos de AlienVault OTX, los campos de
ThreatFox y Hybrid Analysis) podían mover el cursor y sobrescribir
un veredicto ya impreso, establecer el título de la ventana,
escribir en el portapapeles o limpiar la pantalla. Cada respuesta
JSON ahora se sanitiza en cuanto se parsea.
* Corrige la misma inyección de secuencias de escape en el modo
gráfico (ALTA). --tui parseaba las respuestas de los servicios en
dieciséis lugares, ninguno de ellos sanitizado. Ya no parsea
ninguna respuesta.
* Corrige la inyección de secuencias de escape de terminal
provenientes de la línea de comandos y de los archivos de entrada
(MEDIA). -B, -X, -TR, -S, -M, -L, -NIST y los demás argumentos de
texto libre aceptaban ESC, el CSI de 8 bits y la tecla de retroceso,
y los validadores devolvían un valor rechazado al terminal sin
limpiarlo antes. Esto afectaba solo a Linux y macOS.
* Corrige la inyección de secuencias de escape de terminal desde
tres fuentes más (MEDIA): los valores extraídos por --extract-iocs,
cuyo patrón de URL excluía los espacios en blanco pero no los demás
caracteres de control; los campos WHOIS, que llegan como texto
plano escrito por el registrador y el registrante; y el sha256 leído
de un dispositivo Android conectado por USB, que ahora se comprueba
contra una allowlist de 64 caracteres hexadecimales.
* Corrige una denegación de servicio en --extract-iocs (MEDIA). El
manejo de HTML eliminaba los bloques script, style, svg y comment
con una expresión regular perezosa, que es cuadrática cuando la
etiqueta de apertura nunca se cierra: 50.000 etiquetas script sin
cerrar en 400 KB tardaban 158 segundos, y la opción lee hasta 10 MB
de una URL. Los bloques ahora se eliminan con un único escaneo
hacia adelante.
* Corrige una posible denegación de servicio en la extracción de IOC
(BAJA/MEDIA): las expresiones regulares de dominio y correo podían
tardar muchísimo en un documento manipulado. El texto ahora se
divide en tokens limitados antes de la coincidencia, y los IOC
extraídos no cambian.
* Corrige la inyección de fórmulas CSV en los informes exportados
(MEDIA). Los valores que comienzan con "=", "+", "-", "@" o una
tabulación se ejecutaban como fórmulas en Excel y LibreOffice.
Ahora se prefijan con una comilla simple y se eliminan los saltos
de línea incrustados.
* Corrige la inyección de fórmulas CSV en la fila de encabezado de
los informes exportados (BAJA). Los nombres de columna se toman de
la respuesta del servicio y se escribían sin la protección
anterior.
* Corrige las secuencias de escape que llegaban al terminal a través
de un mensaje de error en los modos interactivo y gráfico (BAJA).
Ambos imprimían el texto de una excepción no manejada sin
limpiarlo.
* Corrige el DNS rebinding en --extract-iocs (MEDIA). La dirección
que se validaba ahora es la dirección a la que se conecta, mientras
que el nombre de host se mantiene en el encabezado Host y en el SNI
TLS. Los nombres de host que no se pueden resolver se rechazan. Las
peticiones hechas a través de un proxy no se fijan.
* Corrige una omisión de la protección de direcciones privadas
mediante direcciones IPv6 mapeadas a IPv4 como ::ffff:127.0.0.1
(MEDIA). Las direcciones multicast y no especificadas también se
rechazan ahora.* Corrige la exposición de claves de API en los mensajes de error (MEDIO). Las
claves de Malshare y Shodan se reemplazan por [REDACTED], y los
errores de conexión de Malshare se manejan en lugar de lanzar una
excepción.
* Añade un tiempo de espera predeterminado de 15 segundos para conectar y 180 segundos para
leer en cada solicitud HTTP que no establezca el suyo propio (MEDIO).
* Deja de enviar la ruta local completa de la muestra a VirusTotal
(BAJO/MEDIO). Solo se envía el nombre del archivo con -v 9.
* Rechaza las rutas APK que contengan ".." durante los escaneos de Android (BAJO).
* Sanea el nombre de archivo utilizado en el envío a Triage (BAJO).
* Elimina todas las secuencias de escape de la salida del enriquecimiento LLM y
ya no solo las de color (BAJO).
* Avisa cuando .malwapi.conf es legible por otros usuarios y sugiere
"chmod 600" (Linux y macOS).
Versión 8.0.5:
Esta versión:
* Añade informes de overlay y entropía a las opciones de VirusTotal: la
comprobación de directorio (-d) gana una columna "Overlay" (SÍ/NO, o N/A para
archivos que no son PE) y una columna "Ent" (0.00 a 8.00), el informe de archivo
(-v 1/2/3) gana el overlay, su tamaño en KB/MB y la entropía,
y el informe de hash (-v 8) gana el overlay y el tamaño obtenidos de
los datos pe_info de VirusTotal sin descargar la muestra. La entropía
es la entropía por sección más alta del PE, la mejor señal para
secciones empaquetadas o cifradas, con respaldo a la entropía de
Shannon de todo el archivo para archivos que no son PE. "AV Detection" se renombra a
"AV" y la tabla de -d se realinea.
Versión 8.0.4:
Esta versión:
* Renderiza el informe de enriquecimiento LLM con color en lugar de
Markdown sin procesar: los encabezados y los términos clave en
**negrita** se resaltan y se eliminan los símbolos de marcado. Sobre
un fondo oscuro, el texto del cuerpo usa un tono casi blanco mientras
que los encabezados mantienen sus acentos azul/morado/cian. La CLI,
el REPL y la TUI comparten el motor de renderizado, y los prompts
piden al modelo esa estructura para que se mantenga coherente.
Versión 8.0.3:
Esta versión:
* Corrige el enriquecimiento LLM de Claude (Anthropic), que fallaba en
cada llamada porque el nombre del modelo estaba fijado a un modelo
retirado. Ahora se establece mediante CLAUDE_MODEL en la sección [LLM]
de .malwapi.conf, junto con GEMINI_MODEL / OPENAI_MODEL /
OLLAMA_MODEL, y el valor predeterminado es claude-opus-4-8. Claude
también es ahora el proveedor predeterminado, y la corrección cubre
la CLI, el REPL y la TUI.
Versión 8.0.2:
Esta versión:
* Introduce una comprobación de IP por lotes contra VirusTotal (-ip 8 / "ip
batch"), que lee una dirección IP por línea de un archivo e
imprime la dirección IP, el país, el propietario de AS y la proporción
de detección. Use -D 1 para la API pública, que espera 61 s cada 4 IP
para respetar el límite de tasa, o -D 0 para Premium (predeterminado).
* Corrige las opciones de escaneo de dispositivos Android (-y 1, -y 2 y -y 3), que
habían dejado de funcionar en las versiones actuales de Android. El