
Malwoverview est un outil de première réponse pour la chasse aux menaces sur VirusTotal, Hybrid Analysis, URLHaus, Polyswarm, Malshare, Alien Vault, Malpedia, Malware Bazaar, ThreatFox, Triage, IPInfo, Shodan, AbuseIPDB, GreyNoise, URLScan.io, Whois/RDAP, NIST et VulnCheck. Prend en charge l'enrichissement par LLM, l'extraction d'IOC, l'analyse YARA et l'analyse Android.
Copyright (C) 2018-2026 Alexandre Borges (https://exploitreversing.com)
Ce programme est un logiciel libre : vous pouvez le redistribuer et/ou le modifier
selon les termes de la GNU General Public License telle que publiée par
la Free Software Foundation, soit la version 3 de la Licence, soit
(à votre choix) toute version ultérieure.
Ce programme est distribué dans l'espoir qu'il sera utile,
mais SANS AUCUNE GARANTIE ; sans même la garantie implicite de
QUALITÉ MARCHANDE ou d'ADÉQUATION À UN USAGE PARTICULIER. Voir la
GNU General Public License pour plus de détails.
Voir la GNU Public License sur <http://www.gnu.org/licenses/>.
Note importante : Malwoverview ne soumet PAS d'échantillons à un endpoint par défaut,
ce qui respecte d'éventuels accords de non-divulgation (NDA). Certaines options
spécifiques soumettent explicitement des échantillons, mais ces options sont expliquées dans l'aide.
Malwoverview.py est un outil de première réponse pour la chasse aux menaces (threat hunting), qui effectue un tri initial et rapide des échantillons de logiciels malveillants, des URL, des adresses IP, des domaines, des familles de logiciels malveillants, des IOC et des hachages. De plus, Malwoverview est capable d'obtenir des rapports de comportement dynamiques et statiques, de soumettre et de télécharger des échantillons depuis plusieurs endpoints. En quelques mots, il fonctionne comme un client pour les principales sandboxes existantes.
Cet outil vise à :
Alexandre Borges (https://github.com/alexandreborges) | propriétaire du projet et développeur principal
Artur Marzano (https://github.com/Macmod) | co-développeur principal
Corey Forman (https://github.com/digitalsleuth) | responsable de l'intégration REMnux
Christian Clauss (https://github.com/cclauss)
Depuis la version 6.0.0, il existe une nouvelle branche nommée « dev ». Toutes les contributions et propositions doivent être effectuées sur cette branche « dev ».
Les professionnels souhaitant contribuer doivent ouvrir une issue expliquant l'amélioration proposée et la manière dont elle améliorerait le projet. Une fois acceptée, il ou elle est autorisé(e) à soumettre la PR, qui sera testée.
Une fois toutes les modifications testées, cette nouvelle version de Malwoverview est répliquée sur la branche master et un nouveau paquet Python est généré.
Cet outil a été testé sur REMnux, Ubuntu, Kali Linux, macOS et Windows. Malwoverview peut être installé en exécutant la commande suivante :
* pip3.11 install git+https://github.com/alexandreborges/malwoverview
ou...
* python -m pip install -U malwoverview
Si vous souhaitez installer Malwoverview sur macOS, vous devez exécuter les commandes suivantes :
* /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
* Ajoutez le répertoire binaire Python à la variable PATH en modifiant le fichier .bash_profile dans votre répertoire
personnel. Exemple :
export PATH=$PATH:/Users/alexandreborges/Library/Python/3.9/bin
* Exécutez : . ./.bash_profile
Si vous installez Malwoverview sur Windows, assurez-vous que les conditions suivantes sont vraies
APRÈS avoir installé Malwoverview :
* python-magic n'est PAS installé. (pip show python-magic)
* python-magic-bin EST installé. (pip show python-magic-bin)
Certaines fonctionnalités nécessitent des dépendances optionnelles. Installez-les selon vos besoins :
* Analyse YARA : pip install malwoverview[yara]
* Vérification de signature : pip install malwoverview[signature]
* Export de rapport PDF : pip install malwoverview[pdf]
* Tableau de bord TUI : pip install malwoverview[tui]
* Tout en option : pip install malwoverview[all]
Il est possible de commencer à utiliser Malwoverview sans insérer toutes les API. Cependant, pour utiliser toutes les options de Malwoverview, vous devez insérer l'API respective des services suivants : VirusTotal, Hybrid Analysis, URLHaus, Malshare, Polyswarm, Alien Vault, Malpedia, Triage, IPInfo, Malware Bazaar, ThreatFox, VulnCheck, Shodan, AbuseIPDB, GreyNoise et URLScan.io dans le fichier de configuration .malwapi.conf, qui doit être présent (ou créé) dans le répertoire personnel (/home/[nom_utilisateur] ou /root sous Linux, et C:\Users[nom_utilisateur] sous Windows. Alternativement, les utilisateurs peuvent créer un fichier de configuration personnalisé et l'indiquer en utilisant l'option -c.
À souligner : si le fichier .malwapi.conf n'existe pas dans votre répertoire personnel, vous devez le créer !
Une note spéciale concernant Alien Vault : il est nécessaire de s'abonner aux pulses sur le site Web d'Alien Vault avant d'utiliser l'option -n 1.
Une note spéciale concernant Malshare et Shodan : les deux services exigent que leur clé API soit envoyée dans l' URL elle-même, et aucun ne documente d'en-tête ou de corps de requête alternatif (l'endpoint hashlookup de Malshare est un POST, mais la clé voyage toujours dans la chaîne de requête). Malwoverview remplace ces deux clés par [REDACTED] dans chaque message d'erreur qu'il imprime, afin qu'elles ne se retrouvent pas dans la sortie que vous collez dans un rapport de bug, mais la clé est toujours enregistrée dans les journaux d'accès de ces services et dans tout proxy qui termine le TLS entre vous et eux. Traitez les deux clés comme exposées à l'opérateur du service et faites-les tourner comme vous le feriez pour toute autre information d'identification.
Le fichier de configuration .malwapi.conf a le format suivant :
[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
Les API peuvent être demandées sur les sites Web des services respectifs :
Malwoverview prend en charge l'enrichissement des menaces par LLM via le drapeau --enrich. Après toute requête, une évaluation de menace générée par IA est ajoutée avec le niveau de risque, l'identification de la famille de logiciels malveillants, le mappage MITRE ATT&CK et des recommandations d'analyste.
Trois fournisseurs sont pris en charge. Configurez-en un dans la section [LLM] de .malwapi.conf :
18. Anthropic Claude (payant, meilleure qualité)
Meilleurs résultats pour l'analyse de renseignements sur les menaces. Identifie avec précision les familles
de logiciels malveillants, mappe des techniques MITRE ATT&CK précises et fournit des recommandations
exploitables basées sur une connaissance réelle des menaces.
Configuration :
a) Créez un compte API sur https://console.anthropic.com/ (distinct de
l'abonnement claude.ai)
b) Allez dans Paramètres → Facturation → Ajouter du crédit (5 $ minimum, paiement à l'utilisation)
c) Allez dans Paramètres → Clés API → Créer une clé
d) Copiez la clé (commence par sk-ant-api03-...)
e) Configurez .malwapi.conf :
[LLM]
PROVIDER = claude
CLAUDE_API_KEY = sk-ant-api03-votre-clé-ici
CLAUDE_MODEL = claude-opus-4-8
CLAUDE_MODEL est optionnel et prend par défaut claude-opus-4-8. Choix courants :
- claude-opus-4-8 — Meilleure qualité (défaut)
- claude-sonnet-4-6 — Bon équilibre entre qualité et coût
- claude-haiku-4-5 — Le plus rapide et le moins cher
Coût : ~0,02-0,04 $ par appel d'enrichissement avec le modèle Opus par défaut (moins avec
Sonnet ou Haiku). Un crédit de 5 $ fournit environ 125 à 250 appels d'enrichissement Opus.
19. Google Gemini (nécessite une facturation)
Résultats de bonne qualité. Nécessite un compte de facturation Google Cloud.
Configuration :
a) Allez sur https://aistudio.google.com/apikeys
b) Connectez-vous avec un compte Google
c) Cliquez sur Créer une clé API → copiez la clé
d) Activez la facturation : cliquez sur le lien du projet à côté de votre clé → Google Cloud
Console → Facturation → Associer un compte de facturation
e) Configurez .malwapi.conf :
[LLM]
PROVIDER = gemini
GEMINI_API_KEY = votre-clé-gemini-ici
GEMINI_MODEL = gemini-2.0-flash
Remarque : le niveau gratuit a une limite de débit faible (2 à 5 requêtes par minute). Pour des
limites plus élevées, activez la facturation à l'utilisation.
20. OpenAI (payant)
Résultats de bonne qualité avec les modèles GPT. Nécessite un compte OpenAI avec
des crédits API.
Configuration :
a) Créez un compte sur https://platform.openai.com/signup
b) Allez sur https://platform.openai.com/api-keys → Créer une nouvelle clé secrète
c) Ajoutez la facturation sur https://platform.openai.com/settings/organization/billing
d) Configurez .malwapi.conf :
[LLM]
PROVIDER = openai
OPENAI_API_KEY = sk-votre-clé-ici
OPENAI_MODEL = gpt-4o-mini
Modèles disponibles :
- gpt-4o-mini — Le moins cher (~0,002 $ par enrichissement), bonne qualité (défaut)
- gpt-4o — Meilleure qualité (~0,01 $ par enrichissement)
21. Ollama (gratuit, local, privé)
Fonctionne entièrement sur votre machine. Aucune clé API requise, aucune donnée ne quitte votre
système. Idéal pour les environnements où l'envoi de données de menace vers des API cloud
n'est pas autorisé. La qualité dépend du modèle choisi.
Configuration :
a) Téléchargez et installez Ollama depuis https://ollama.com/download
(disponible pour Windows, Linux et macOS)
b) Ouvrez un terminal et récupérez un modèle :
ollama pull qwen2.5:14bModèles recommandés :
- qwen2.5:14b — Meilleure qualité pour une taille raisonnable (9 Go, nécessite 16 Go de RAM)
- llama3.1:8b — Bonne qualité, plus petit (5 Go, nécessite 8 Go de RAM)
- llama3.1:70b — Excellente qualité, volumineux (40 Go, nécessite 48 Go de RAM)
c) Ollama démarre automatiquement et sert sur http://localhost:11434
d) Configurez .malwapi.conf :
[LLM]
PROVIDER = ollama
OLLAMA_URL = http://localhost:11434
OLLAMA_MODEL = qwen2.5:14b
Performances : un GPU avec 12+ Go de VRAM fournit des réponses rapides (5-10 s).
Avec CPU uniquement, c'est plus lent (30-60 s) mais fonctionnel. Les modèles plus grands (14b, 70b)
nécessitent plus de VRAM et peuvent expirer sur CPU si la mémoire est insuffisante.
Le modèle llama3.1:8b est recommandé pour les machines disposant d'une
mémoire GPU limitée (6 Go ou moins).
Temps de réponse attendus :
- API Claude : 3-8 secondes
- API Gemini : 3-8 secondes
- Ollama (GPU avec VRAM suffisante) : 5-15 secondes
- Ollama (CPU uniquement, modèle 8b) : 30-60 secondes
- Ollama (CPU uniquement, modèle 14b+) : 60-300 secondes
Exemples d'utilisation :
# CLI : ajoutez --enrich à n'importe quelle requête
malwoverview -v 8 -V <hash> --enrich
malwoverview -ip 1 -IP 8.8.8.8 --enrich
malwoverview --correlate-hash <hash> --enrich
# REPL interactif : activez/désactivez l'enrichissement ou changez de fournisseur
malwoverview --interactive
malwoverview> set enrich on # utilise le fournisseur de la configuration
malwoverview> set enrich claude # bascule vers Claude
malwoverview> set enrich ollama # bascule vers Ollama
malwoverview> set enrich openai # bascule vers OpenAI
malwoverview> set enrich off # désactive l'enrichissement
malwoverview> vt hash <hash> # analyse de malware + enrichissement
malwoverview> nist cve CVE-2024-3400 # recherche CVE + enrichissement
malwoverview> vulncheck cve CVE-2024-3400 # VulnCheck + enrichissement
# TUI : cliquez sur le bouton Enrich pour parcourir les fournisseurs
# Enrich (OFF) → claude → gemini → openai → ollama → OFF
# Bouton vert = fournisseur actif et configuré
# Bouton jaune = fournisseur sélectionné mais clé API manquante
# Bouton par défaut = enrichissement désactivé
malwoverview --tui
Le service et l'acceptation reposent sur l'examen par la communauté. Il est donc recommandé de soumettre une requête API depuis votre adresse e-mail professionnelle et NON depuis une adresse publique/gratuite (Gmail, Outlook, etc.). De plus, il serait appréciable de fournir davantage d'informations sur vous (compte LinkedIn, X/Twitter, Mastodon, BlueSky, etc.) car cela faciliterait la vérification de votre identité, de votre profil professionnel et de votre légitimité, et accélérerait l'approbation de votre demande.
Chaque opération Triage est basée sur l'ID Triage de chaque artefact, vous devez donc utiliser « -x 1 -X <attribute>:<value> » pour rechercher l'ID correct de l'artefact, puis utiliser ces informations d'ID avec les options Triage restantes (-x [2-7]) pour obtenir davantage d'informations de threat hunting depuis le point de terminaison Triage.
À partir de la seconde moitié de 2025, une clé d'authentification (API) sera nécessaire pour utiliser les services URLHaus, Malware Bazaar et Threat Fox.
Malwoverview a été conçu pour produire une sortie adaptée à un fond de terminal sombre. Cependant, il existe l'option -o 0 qui change et adapte les couleurs de sortie pour un fond clair.
Pour vérifier l'installation, exécutez :
malwoverview --help
Des informations complémentaires sont disponibles sur :
(dépôt PYPI.org) https://pypi.org/project/malwoverview/
(Github) https://github.com/alexandreborges/malwoverview
Si vous souhaitez effectuer l'installation manuelle (elle n'est généralement pas nécessaire), quelques étapes doivent être exécutées, comme indiqué dans la sous-section suivante.
Version de Python 3.11 ou ultérieure (Uniquement Python 3.x !!! Cela ne fonctionne PAS avec Python 2.7)
$ apt-get install python3.11 (par exemple)
Python-magic.
Pour installer le paquet python-magic, vous pouvez exécuter la commande suivante :
$ pip3.11 install python-magic
Ou vous pouvez le compiler depuis le dépôt Github :
$ git clone https://github.com/ahupp/python-magic
$ cd python-magic/
$ python3.11 setup.py build
$ python3.11 setup.py install
Comme il existe de sérieux problèmes liés aux deux versions existantes du paquet python-magic, il est recommandé de l'installer depuis Github (seconde procédure ci-dessus) et de copier le fichier magic.py dans le MÊME répertoire que l'outil malwoverview.
Installez tous les paquets Python nécessaires :
$ pip3.11 install -r requirements.txt
OU
$ 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
Pour vérifier un mobile Android, vous devez installer l'outil « adb » :
$ sudo apt get install adb
PS : avant d'essayer les options Android, vérifiez :
* Si l'outil adb est listé dans la variable d'environnement PATH.
* Si le système dispose d'un accès autorisé à l'appareil en utilisant « adb devices -l »
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 est un outil de première réponse pour le threat hunting écrit par Alexandre Borges.
OPTIONS MALWARE : Options de requête d'analyse et de renseignement sur les malwares
-h, --help
+ Affiche ce message d'aide et quitte
-c CONFIG FILE, --config CONFIG FILE
+ Utilise un fichier de configuration personnalisé pour spécifier les API.
-d DIRECTORY, --directory DIRECTORY
+ Spécifie le répertoire contenant les échantillons de malwares à vérifier auprès de VIRUS TOTAL.
+ Utilisez l'option -D pour décider si vous utilisez une API VT publique ou une
API VT Premium.
-o BACKGROUND, --background BACKGROUND
+ Adapte les couleurs de sortie à un terminal à fond clair.
+ Le défaut est un terminal à fond sombre.
-v VIRUSTOTAL, --virustotal_option VIRUSTOTAL
+ -v 1 : étant donné un fichier via l'option -V, interroge la base de données VIRUS TOTAL (API v.3)
pour obtenir le rapport du fichier fourni via l'option -V.
+ v 2 : affiche un rapport antivirus pour un fichier donné via l'option -V (API v.3) ;
+ v 3 : identique à -v2, mais l'IAT et l'EAT du binaire sont également affichés (API v.3) ;
+ v 4 : extrait l'overlay ;
+ v 5 : soumet une URL à l'analyse VT ;
+ v 6 : soumet une adresse IP à Virus Total ;
+ v 7 : cette option obtient un rapport sur le domaine fourni depuis Virus Total ;
+ v 8 : vérifie un hash donné auprès de Virus Total ;
+ v 9 : soumet un échantillon à VT (jusqu'à 32 Mo). Utilisez une barre oblique pour spécifier le
fichier cible sur les systèmes Windows. Nécessite de passer le fichier d'échantillon avec l'option -V ;
+ -v 10 : vérifie les hashs d'un fichier fourni via l'option -V. Cette option utilise
l'API publique VT v.3 ;
+ -v 11 : vérifie les hashs d'un fichier fourni via l'option -V. Cette option utilise
l'API Premium v.3 ;
+ -v 12 : affiche les informations de comportement d'un échantillon à partir d'un hash fourni via l'option -V.
Cette option utilise l'API VT v.3 ; -v 13 : soumet des fichiers VOLUMINEUX (plus de 32 Mo)
à VT en utilisant l'API v.3 ;
+ -v 14 : soumet un travail Retrohunt en utilisant le fichier de règles YARA ou le répertoire de règles
fourni avec -V (VT analyse les échantillons reçus au cours des derniers mois
par rapport aux règles) ;
+ -v 15 : liste vos travaux Retrohunt, éventuellement filtrés par un statut passé
via -V (starting, running, aborting, aborted ou finished) ;
+ -v 16 : affiche le statut et la progression du travail Retrohunt dont l'identifiant est
fourni avec -V ;
+ -v 17 : liste les fichiers correspondant au travail Retrohunt dont l'identifiant est fourni avec -V ;
+ -v 18 : crée un ensemble de règles Livehunt à partir du fichier de règles YARA ou du répertoire de règles
fourni avec -V (VT fait ensuite correspondre chaque nouvelle soumission à ces règles) ;
+ -v 19 : liste vos ensembles de règles Livehunt ;
+ -v 20 : liste vos notifications Livehunt. Les options 14 à 20 nécessitent une clé VT avec
des privilèges premium (entreprise) ;
-V VIRUSTOTAL_ARG, --virustotal_arg VIRUSTOTAL_ARG
+ Fournit l'argument pour l'option -v. Si « -v 1 » à « -v 4 », alors -V doit être
un chemin de fichier ; Si « -v 5 », alors -V doit être une URL ; Si « -v 6 », alors -V doit
être une adresse IP ; Si « -v 7 », alors -V doit être un domaine ; Si « -v 8 », alors
-V doit être un hash (MD5/SHA1/SHA256) ; Si « -v 9 » ou « -v 13 », alors -V doit
être un chemin de fichier à soumettre ; Si « -v 10 » ou « -v 11 », alors -V doit être un fichier
contenant des hashs (un par ligne) ; Si « -v 12 », alors -V doit être un hash pour
l'analyse de comportement ; Si « -v 14 » ou « -v 18 », alors -V doit être un fichier de règles YARA
ou un répertoire de règles ; Si « -v 15 », alors -V peut être un statut de travail ;
Si « -v 16 » ou « -v 17 », alors -V doit être un identifiant de travail Retrohunt.
-a HYBRID_ANALYSIS, --hybrid_option HYBRID_ANALYSIS
+ Ce paramètre récupère les rapports de HYBRID ANALYSIS, télécharge des échantillons et soumet
des échantillons à analyser.
+ Les valeurs possibles sont :
+ 1 : obtient un rapport pour un hash ou un échantillon donné depuis un environnement Windows 7 32 bits ;
+ 2 : obtient un rapport pour un hash ou un échantillon donné depuis un environnement Windows 7 32 bits
(prise en charge HWP) ;
+ 3 : obtient un rapport pour un hash ou un échantillon donné depuis un environnement Windows 64 bits ;
+ 4 : obtient un rapport pour un hash ou un échantillon donné depuis un environnement Android ;
+ 5 : obtient un rapport pour un hash ou un échantillon donné depuis un environnement Linux 64 bits ;
+ 6 : soumet un échantillon à un environnement Windows 7 32 bits ;
+ 7. soumet un échantillon à un environnement Windows 7 32 bits avec prise en charge HWP ;
+ 8. soumet un échantillon à un environnement Windows 7 64 bits ;
+ 9. soumet un échantillon à un environnement Android ;
+ 10. soumet un échantillon à un environnement Linux 64 bits ;
+ 11. télécharge l'échantillon pour un hash donné (l'échantillon stocké est le
même quel que soit l'environnement sandbox, donc une seule option
remplace les anciennes options 11 à 15) ;
+ 12. vérification par lot des hashs à partir d'un fichier (un hash par ligne) ;
+ 13. analyse de répertoire - calcule le SHA256 de chaque fichier et vérifie
auprès de Hybrid Analysis.
-A SUBMIT_HA, --ha_arg SUBMIT_HA
+ Fournit l'argument pour l'option -a de HYBRID ANALYSIS. Si « -a 1 » à
« -a 5 », alors -A doit être un hash ou un chemin de fichier (détection automatique) ; Si « -a 6 »
à « -a 10 », alors -A doit être un chemin de fichier à soumettre ; Si « -a 11 », alors -A
doit être un hash à télécharger ; Si « -a 12 », alors -A doit être un fichier
contenant des hashs (un par ligne) ; Si « -a 13 », alors -A doit être un chemin de répertoire
à analyser.
-D VT_PUBLIC_PREMIUM, --vtpubpremium VT_PUBLIC_PREMIUM
+ Cette option doit être utilisée avec l'option -d.
+ Valeurs possibles :
+ <0> utilise l'API VT Premium v3 (par défaut) ;
+ <1> utilise l'API VT publique v3.
-l MALSHARE_HASHES, --malsharelist MALSHARE_HASHES
+ Cette option télécharge un échantillon et affiche les hashs d'un type spécifique
des dernières 24 heures depuis le dépôt MALSHARE.
+ Les valeurs possibles sont :
+ 1 : Télécharger un échantillon ;
+ 2 : PE32 (défaut) ;
+ 3 : ELF ;
+ 4 : Java ;
+ 5 : PDF ;
+ 6 : Lister les types de fichiers disponibles au cours des dernières 24 heures (et combien
d'échantillons de chaque) ;
+ 7 : Liste des hashs des dernières 24 heures ;
+ 8 : Lister les hashs du type de fichier donné avec -L (utilisez -l 6 pour découvrir
les types de fichiers valides).
-L MALSHARE_HASH_SEARCH, --malshare_hash MALSHARE_HASH_SEARCH
+ Fournit un hash comme argument pour télécharger un échantillon depuis le dépôt
MALSHARE (-l 1) ou, lorsqu'il est utilisé avec -l 8, le type de fichier dont les hashs
doivent être listés.
-j HAUS_OPTION, --haus_option HAUS_OPTION
+ Cette option récupère des informations d'URLHaus selon la valeur passée en argument :
+ 1 : effectue le téléchargement de l'échantillon donné ;
+ 2 : interroge les informations concernant un
hash fourni ;
+ 3 : recherche des informations sur une URL donnée ;
+ 4 : recherche une URL malveillante par une balise donnée (sensible à la casse) ;
+ 5 : recherche des payloads pour une balise donnée ;
+ 6 : récupère une liste de liens téléchargeables vers des payloads récents ;
+ 7 : récupère une liste d'URL malveillantes récentes ;
+ 8 : vérification par lot des hashs à partir d'un fichier (un hash par ligne).
-J HAUS_ARG, --haus_arg HAUS_ARG
+ Fournit l'argument pour l'option -j d'URLHaus. Si « -j 1 », alors -J doit
être un hash SHA256 pour télécharger l'échantillon ; Si « -j 2 », alors -J doit être un
hash (MD5/SHA1/SHA256) à rechercher ; Si « -j 3 », alors -J doit être une URL à
vérifier ; Si « -j 4 », alors -J doit être une balise (sensible à la casse) ; Si « -j 5 », alors
-J doit être un nom de signature.
-p POLY_OPTION, --poly_option POLY_OPTION
+ (Uniquement pour Linux) Cette option concerne les opérations POLYSWARM :
+ 1. recherche des informations liées à un hash donné fourni via l'option -P ;
+ 2. soumet un échantillon fourni par l'option -P pour analyse par le moteur Polyswarm ;
+ 3. télécharge un échantillon depuis Polyswarm en fournissant le hash via l'option -P.
Attention : Polyswarm impose un maximum de 20 échantillons par mois ;
+ 4. recherche des échantillons similaires à partir d'un fichier d'échantillon via l'option -P ;
+ 5. recherche des échantillons liés à une adresse IP fournie via l'option -P ;
+ 6. recherche des échantillons liés à un domaine donné fourni par l'option -P ;
+ 7. recherche des échantillons liés à une URL fournie via l'option -P ;
+ 8. recherche des échantillons liés à une famille de malwares fournie par l'option -P.
-P POLYSWARM_ARG, --poly_arg POLYSWARM_ARG
+ (Uniquement pour Linux) Fournit un argument pour l'option -p de POLYSWARM.
-y ANDROID_OPTION, --android_option ANDROID_OPTION
+ Cette option ANDROID a plusieurs valeurs possibles :
+ <1> : Vérifie tous les packages APK tiers de l'appareil Android connecté en USB
auprès de Hybrid Analysis en utilisant le multithreading. Remarques : l'appareil Android ne doit
pas être rooté et le système doit avoir l'outil adb dans la variable d'environnement
PATH ;
+ <2> : Vérifie tous les packages APK tiers de l'appareil Android connecté en USB
auprès de VirusTotal en utilisant l'API publique (plus lent en raison d'un délai de 60 secondes pour
4 hashs). Remarques : l'appareil Android ne doit pas être rooté et le système
doit avoir l'outil adb dans la variable d'environnement PATH ;
+ <3> : Vérifie tous les packages APK tiers de l'appareil Android connecté en USB
auprès de VirusTotal en utilisant le multithreading (uniquement pour l'API VirusTotal privée). Remarques :
l'appareil Android ne doit pas être rooté et le système doit avoir l'outil adb
dans la variable d'environnement PATH ;
+ <4> Envoie un APK tiers depuis votre appareil Android connecté en USB vers
Hybrid Analysis ;
+ 5. Envoie un APK tiers depuis votre appareil Android connecté en USB vers Virus-Total.
-Y ANDROID_ARG, --android_arg ANDROID_ARG
+ Cette option fournit l'argument pour -y d'ANDROID.
-n ALIENVAULT, --alienvault ALIENVAULT
+ Vérifie plusieurs informations depuis ALIENVAULT. Les valeurs possibles sont :
+ 1 : Obtenir les pulses auxquels vous êtes abonné ;
+ 2 : Obtenir des informations sur une adresse IP ;
+ 3 : Obtenir des informations sur un domaine ;
+ 4 : Obtenir des informations sur un hash ;
+ 5 : Obtenir des informations sur une URL.
-N ALIENVAULT_ARGS, --alienvaultargs ALIENVAULT_ARGS
+ Fournit l'argument pour l'option -n d'ALIENVAULT. Si « -n 1 », alors -N
doit être le nombre de pulses abonnés à récupérer ; Si « -n 2 », alors -N
doit être une adresse IP ; Si « -n 3 », alors -N doit être un domaine ; Si « -n 4 »,
alors -N doit être un hash (MD5/SHA256) ; Si « -n 5 », alors -N doit être une URL.
-m MALPEDIA, --malpedia MALPEDIA
+ Cette option est liée à MALPEDIA et présente différentes significations selon
la valeur choisie. Ainsi :
+ 1 : Lister les méta-informations pour toutes les familles ;
+ 2 : Lister tous les identifiants d'acteurs ;
+ 3 : Lister tous les payloads disponibles organisés par famille depuis Malpedia ;
+ 4 : Obtenir les méta-informations d'un acteur spécifique, il est donc nécessaire d'utiliser
l'option -M. De plus, essayez de confirmer l'identifiant d'acteur correct en exécutant
malwoverview avec l'option -m 3 ;
+ 5 : Lister tous les identifiants de familles ;
+ 6 : Obtenir les méta-informations d'une famille spécifique, il est donc nécessaire
d'utiliser l'option -M. De plus, essayez de confirmer l'identifiant de famille correct en
exécutant malwoverview avec l'option -m 5 ;
+ 7 : Obtenir un échantillon de malware depuis malpedia (format zip -- mot de passe : infected).
Il est nécessaire de spécifier le hash demandé en utilisant l'option -M ;
+ 8 : Obtenir un fichier zip contenant les règles Yara pour une famille spécifique
(obtenez les familles possibles en utilisant -m 5), qui doit être spécifiée en utilisant l'option -M ;
+ 9 : Obtenir un fichier zip contenant l'ensemble complet des règles Yara de Malpedia pour un
niveau TLP, qui doit être fourni avec -M comme l'une des valeurs tlp_white, tlp_green,
tlp_amber ou auto (les formes courtes white, green et amber sont également
acceptées). Combinez-le avec --yara pour analyser avec les règles téléchargées.
-M MALPEDIAARG, --malpediarg MALPEDIAARG
+ Fournit l'argument pour l'option -m de MALPEDIA. Si « -m 4 », alors -M doit
être un nom d'acteur (confirmez avec -m 2) ; Si « -m 6 », alors -M doit être un
nom de famille (confirmez avec -m 5) ; Si « -m 7 », alors -M doit être un hash pour
télécharger l'échantillon ; Si « -m 8 », alors -M doit être un nom de famille pour obtenir
les règles YARA.
-b BAZAAR, --bazaar BAZAAR+ Vérifie plusieurs informations provenant de MALWARE BAZAAR et THREATFOX. Les valeurs
possibles sont :
+ 1: (Bazaar) Interroge les informations sur un hash de malware ;
+ 2: (Bazaar) Obtient des informations et une liste d'échantillons de malware associés
et selon un tag spécifique ;
+ 3: (Bazaar) Obtient une liste d'échantillons de malware selon un imphash donné ;
+ 4: (Bazaar) Interroge les derniers échantillons de malware ;
+ 5: (Bazaar) Télécharge un échantillon de malware depuis Malware Bazaar en fournissant un
hash SHA256. L'échantillon téléchargé est compressé avec le mot de passe suivant :
infected ;
+ 6: (ThreatFox) Obtient le jeu de données IOC actuel des x derniers jours fournis par
l'option -B (maximum 7 jours) ;
+ 7: (ThreatFox) Recherche l'IOC spécifié sur ThreatFox via l'option -B ;
+ 8: (ThreatFox) Recherche des IOC selon le tag spécifié via l'option -B ;
+ 9: (ThreatFox) Recherche des IOC selon la famille de malware spécifiée fournie par
l'option -B ;
+ 10. (ThreatFox) Liste toutes les familles de malware disponibles.
+ 11: (Bazaar) Vérification par lot de hash à partir d'un fichier (un hash par ligne)
auprès de Malware Bazaar ;
+ 12: (Bazaar) Analyse de répertoire — calcule le SHA256 de chaque fichier dans un
répertoire et vérifie auprès de Malware Bazaar ;
+ 13: (Bazaar) Recherche des échantillons correspondant au nom de règle YARA fourni par
l'option -B. Les noms de règles sont listés à la fin d'un rapport de hash
(-b 1), et correspondent également aux noms de règles de l'ensemble YARAify
téléchargé avec -b 14 et extrait avec -b 15 ;
+ 14: (YARAify) Télécharge l'ensemble de règles YARAify (abuse.ch), qui est l'ensemble
de règles utilisé par Malware Bazaar ;
+ 15: (YARAify) Extrait l'ensemble de règles YARAify téléchargé dans un répertoire
de règles qui peut être fourni à --yara.
-B BAZAAR_ARG, --bazaararg BAZAAR_ARG
+ Fournit un argument à l'option -b MALWARE BAZAAR et THREAT FOX :
+ « -b 1 » indique que l'argument de -B doit être un hash et qu'un rapport sur
l'échantillon sera récupéré ;
+ « -b 2 » indique que l'argument de -B doit être un tag de malware et que les derniers échantillons
correspondant à ce tag seront affichés ;
+ « -b 3 » signifie que l'argument fourni par -M doit être un imphash et que les derniers échantillons
correspondant à cet impshash seront affichés ;
+ « -b 4 » signifie que l'argument fourni par -M doit être « 100 or time », où « 100 »
liste les « 100 derniers échantillons » et « time » liste les derniers échantillons ajoutés à Malware Bazaar
au cours des 60 dernières minutes ;
+ « -b 5 » signifie que l'échantillon sera téléchargé et que l'argument de -B doit être
un hash SHA256 de l'échantillon que vous souhaitez télécharger depuis Malware Bazaar ;
+ « -b 6 » indique qu'une liste d'IOC sera récupérée et que la valeur de -B
est le nombre de JOURS pour filtrer ces IOC. La durée maximale est de 7 (jours) ;
+ « -b 7 » indique que l'argument de -B est l'IOC que vous souhaitez rechercher ;
+ « -b 8 » indique que l'argument de -B est le TAG de l'IOC que vous souhaitez rechercher ;
+ « -b 9 » indique que l'argument de -B est la famille de malware pour laquelle vous souhaitez
rechercher des IOC ;
-x TRIAGE, --triage TRIAGE
+ Fournit des informations de TRIAGE selon la valeur spécifiée :
+ 1: cette option obtient les informations générales de l'échantillon en fournissant un argument avec l'option -X dans les formats possibles suivants :
- sha256:<value>
- sha1:<value>
- md5:<value>
- family:<value>
- score:<value>
- tag:<value>
- url:<value>
- wallet:<value>
- ip:<value>;
+ 2: Obtient un rapport récapitulatif pour un ID Triage donné (obtenu avec l'option -x 1) ;
+ 3: Soumet un échantillon pour analyse ;
+ 4: Soumet un échantillon via une URL pour analyse ;
+ 5: Télécharge l'échantillon spécifié par l'ID Triage ;
+ 6: Télécharge le fichier pcapng de l'échantillon associé à l'ID Triage donné ;
+ 7: Obtient un rapport dynamique pour l'ID Triage donné (obtenu avec l'option -x 1) ;
+ 8: Vérification par lot de hash à partir d'un fichier (un hash par ligne) auprès de Triage ;
+ 9: Analyse de répertoire — calcule le SHA256 de chaque fichier dans un répertoire
et vérifie auprès de Triage.
-X TRIAGE_ARG, --triagearg TRIAGE_ARG
+ Fournit un argument pour l'option -x de TRIAGE. Si « -x 1 », alors -X doit
être une requête de recherche (par ex., sha256:<hash>, family:<name>, tag:<tag>,
ip:<ip>) ; Si « -x 2 », alors -X doit être un ID d'échantillon Triage (obtenu avec
-x 1) ; Si « -x 3 », alors -X doit être un chemin de fichier à soumettre ; Si « -x 4 »
alors -X doit être une URL à soumettre ; Si « -x 5 » ou « -x 6 » alors -X doit être
un ID d'échantillon Triage à télécharger ; Si « -x 7 » alors -X doit être un ID Triage
pour le rapport dynamique ; Si « -x 8 » alors -X doit être un fichier
contenant des hashs (un par ligne) ; Si « -x 9 » alors -X doit être un répertoire
à analyser.
-O OUTPUTDIR, --output-dir OUTPUTDIR
+ Définit le répertoire de sortie pour tous les téléchargements d'échantillons.
-ip IP, --ip IP
+ Obtient des informations IP de diverses sources. Les valeurs possibles sont :
+ 1: Obtient les détails d'une adresse IP fournie avec -IP depuis IPInfo ;
+ 2: Supprimé dans 8.1.0 (BGPView arrêté) ;
+ 3: Obtient les détails d'une adresse IP fournie avec -IP depuis tous
les services de renseignement disponibles (VirusTotal/Alienvault) ;
+ 4: Obtient les détails d'une adresse IP depuis Shodan ;
+ 5: Obtient les détails d'une adresse IP depuis AbuseIPDB ;
+ 6: Obtient les détails d'une adresse IP depuis GreyNoise ;
+ 7: Obtient les détails d'une adresse IP depuis tous les services (complet) ;
+ 8: Vérification par lot d'adresses IP à partir d'un fichier (une par ligne)
auprès de VirusTotal et affichage d'un tableau récapitulatif (Adresse IP, Pays, Propriétaire AS,
Détection). Utilisez -D pour choisir entre l'API VT Publique (-D 1) et Premium
(-D 0, par défaut).
-IP IPARG, --iparg IPARG
+ Fournit un argument pour l'option -ip. Pour -ip 1 à 7, il doit
s'agir d'une adresse IP valide (IPv4 ou IPv6) ; pour -ip 8, il doit s'agir d'un
fichier contenant des adresses IP (une par ligne).
-s SHODAN, --shodan SHODAN
+ Options SHODAN :
+ 1: Recherche IP ;
+ 2: Requête de recherche.
-S SHODAN_ARG, --shodanarg SHODAN_ARG
+ Fournit un argument pour l'option -s de SHODAN. Si « -s 1 », alors -S doit
être une adresse IP ; Si « -s 2 », alors -S doit être une requête de recherche
(par ex., « apache », « port:22 country:BR »).
-ab ABUSEIPDB, --abuseipdb ABUSEIPDB
+ Options ABUSEIPDB :
+ 1: Vérifie la réputation IP.
-AB ABUSEIPDB_ARG, --abuseipdbarg ABUSEIPDB_ARG
+ Fournit une adresse IP pour l'option -ab de ABUSEIPDB.
-gn GREYNOISE, --greynoise GREYNOISE
+ Options GREYNOISE :
+ 1: Vérification IP rapide (API communauté).
-GN GREYNOISE_ARG, --greynoisearg GREYNOISE_ARG
+ Fournit une adresse IP pour l'option -gn de GREYNOISE.
-wh WHOIS, --whois WHOIS
+ Options WHOIS :
+ 1: Recherche whois de domaine ;
+ 2: Recherche whois/RDAP IP.
-WH WHOIS_ARG, --whoisarg WHOIS_ARG
+ Fournit un argument pour l'option -wh de WHOIS. Si « -wh 1 », alors -WH doit
être un nom de domaine ; Si « -wh 2 », alors -WH doit être une adresse IP.
-ct CRTSH, --crtsh CRTSH
+ Interroge les journaux de Certificate Transparency via crt.sh, qui ne nécessite
aucune clé API. Valeurs possibles :
+ 1: liste les noms DNS distincts vus dans les certificats émis pour
le domaine fourni avec -CT, ce qui est un moyen simple d'énumérer les
sous-domaines. Les noms appartenant à d'autres domaines, qui apparaissent parce
qu'un certificat peut couvrir plusieurs tenants, sont comptés et rapportés
séparément ;
+ 2: liste les certificats eux-mêmes (identifiant, émetteur, nom commun
et dates de validité, du plus récent au plus ancien).
-CT CRTSH_ARG, --crtsharg CRTSH_ARG
+ Fournit le nom de domaine interrogé par l'option -ct.
-u URLSCANIO, --urlscanio URLSCANIO
+ Options URLSCAN.IO :
+ 1: Soumet une URL pour analyse ;
+ 2: Obtient le résultat d'analyse par UUID ;
+ 3: Recherche des analyses à l'aide de la syntaxe de requête Elasticsearch
(par ex., « page.server:nginx », « task.tags:phishing ») ;
+ 4: Recherche des analyses par domaine ;
+ 5: Recherche des analyses par IP.
-U URLSCANIO_ARG, --urlscanioarg URLSCANIO_ARG
+ Fournit un argument pour l'option -u de URLSCAN.IO. Si « -u 1 », alors -U
doit être une URL à soumettre pour analyse ; Si « -u 2 », alors -U doit être un UUID
(obtenu avec -u 1) ; Si « -u 3 », alors -U doit être une requête Elasticsearch
(par ex., « page.server:nginx », « task.tags:phishing ») ; Si « -u 4 », alors -U
doit être un domaine ; Si « -u 5 », alors -U doit être une adresse IP.
--correlate-hash HASH
+ Corrélation de hash inter-services : interroge un hash auprès de VirusTotal,
Hybrid Analysis, Triage et AlienVault et produit un rapport consolidé.
--extract-iocs SOURCE
+ Extrait les IOC (hashs, IP, URL, domaines, e-mails, CVE) d'un fichier
(.txt, .pdf, .eml) ou d'une URL (http/https).
L'extraction PDF nécessite : pip install malwoverview[pdf]
--yara RULES_FILE
+ Fichier de règles YARA à utiliser pour l'analyse. Doit être utilisé avec --yara-target.
Nécessite : pip install malwoverview[yara]
--yara-target TARGET
+ Fichier ou répertoire à analyser avec les règles YARA.
--peinfo TARGET
+ Triage PE local d'un fichier ou d'un répertoire (sans clé API) : type de fichier, taille,
overlay, taille de l'overlay et entropie. Les répertoires sont analysés récursivement.
L'entropie est l'entropie de section PE la plus élevée, ou l'entropie de Shannon
de l'ensemble du fichier pour les fichiers non-PE.
--entropy-threshold VALUE
+ Valeur d'entropie à partir de laquelle --peinfo signale un fichier comme packé ou
chiffré. Défaut : 7.0
--sigcheck TARGET
+ Vérifie la signature Authenticode d'un fichier ou d'un répertoire (sans clé API) :
statut, signataire, émetteur, dates du certificat, algorithme de digest, empreinte
du certificat et numéro de série. Le statut est l'un des suivants : VALID, TAMPERED,
UNTRUSTED, EXPIRED, MALFORMED, INVALID, NONE (aucune signature intégrée),
PRESENT (une signature est présente mais n'a pas été vérifiée) ou N/A (pas un fichier
PE). Seules les signatures intégrées sont lues : un fichier signalé comme NONE peut
encore être signé via un catalogue Windows.
La vérification complète nécessite : pip install malwoverview[signature]
VALID signifie que le fichier correspond toujours au certificat avec lequel il a été signé.
Ce n'est pas un verdict sur le fichier : les certificats de signature sont volés,
abusés et émis par erreur, et des malwares ont porté des signatures Microsoft valides.
Une signature intégrée est stockée dans l'overlay, donc un fichier signé
en possède toujours une et cet overlay n'est pas une charge ajoutée.
La révocation du certificat n'est pas vérifiée. Aucune requête réseau n'est effectuée,
donc un fichier signé avec un certificat révoqué par la suite signale toujours VALID.
Une signature reste VALID après l'expiration de son certificat lorsqu'elle porte une
contre-signature, car la contre-signature prouve que le fichier a été signé pendant
que le certificat était encore valide. C'est ainsi qu'Authenticode est conçu pour
fonctionner, et le rapport l'indique lorsque cela se produit : une date d'expiration
dans le passé à côté de VALID n'est pas une contradiction.
Un fichier peut porter plus d'une signature intégrée, généralement SHA-1 pour la
compatibilité plus SHA-256, et les signataires diffèrent fréquemment. La colonne Signer
en affiche une et marque les autres comme (+N) ; l'exécution de --sigcheck sur un
seul fichier liste chaque signature avec son propre algorithme de digest, certificat,
empreinte et numéro de série.
--no-signature
+ Ignore la vérification de signature dans --peinfo et --sigcheck, en signalant
uniquement si une signature est présente. Utile sur les grands répertoires.
--sig-verify-mode MODE
+ Quelle signature intégrée détermine le statut d'un fichier multi-signé :
any, first, all ou best. Défaut : best
best suit la signature réalisée avec l'algorithme de digest le plus fort,
qui est celui que Windows honore. first suit l'ordre du fichier, comme
sigcheck.exe. all exige que chaque signature soit vérifiée, et any accepte
le fichier dès qu'une seule l'est. Le choix a son importance : sur 517
pilotes multi-signés, 37 changent de statut selon ce réglage, et
any signale VALID sur 21 fichiers que first rejette.
--attack-map
+ Active la correspondance des techniques MITRE ATT&CK pour les rapports de comportement.
OPTIONS GÉNÉRALES : Options de format de sortie, de proxy, de cache et de verbosité
--output-format text|json|csv
+ Format de sortie : text (défaut, terminal coloré), json ou csv.
--proxy URL
+ URL de proxy HTTP/HTTPS/SOCKS5 (par ex., socks5://127.0.0.1:9050).
--quiet
+ Supprime la bannière et la sortie cosmétique.
--verbose
+ Affiche les informations de débogage (URL des requêtes, minutage, etc.).
--no-cache
+ Désactive la mise en cache des résultats.
--cache-ttl SECONDS
+ Durée de vie du cache en secondes (défaut : 3600).
--cache-stats
+ Affiche l'emplacement du cache de résultats local, le nombre d'entrées
qu'il contient, combien d'entre elles sont expirées selon le --cache-ttl actuel,
et sa taille sur le disque. Puis quitte.
--prune-cache
+ Supprime uniquement les entrées expirées du cache de résultats local (selon
--cache-ttl) et quitte.
--clear-cache
+ Supprime toutes les entrées du cache de résultats local et quitte.
--no-resolve
+ Ne résout pas et ne géolocalise pas les noms d'hôte trouvés dans les résultats.
Lister un flux (par exemple les listes de payloads et de tags URLHaus) fait
normalement rechercher à votre hôte chaque URL affichée, ce qui indique à l'opérateur
de cette infrastructure qu'elle est en cours d'investigation. Avec cette option, la
colonne d'emplacement affiche « Not Resolved » à la place.
--defang
+ Affiche les IOC listés par --extract-iocs sous forme désamorcée
(hxxp://example[.]com), afin qu'ils puissent être copiés dans un rapport ou un ticket
sans devenir cliquables. Cela s'applique uniquement à cette liste, et ne modifie
que la sortie : les requêtes sont toujours effectuées avec les valeurs réelles.
--no-ioc-filter
+ Désactive le filtrage du bruit que --extract-iocs applique par défaut.
Normalement, une page HTML voit ses blocs <script>, <style> et <svg> ignorés,
un domaine n'est signalé que lorsque son dernier libellé est un véritable domaine
de premier niveau, et les liens de retour vers le site source ou vers des éléments
de page connus (analytique, polices, boutons sociaux) sont supprimés. Avec cette
option, chaque correspondance regex dans la source brute est signalée à la place.
--report html|pdf
+ Génère un rapport au format spécifié.
L'export PDF nécessite : pip install malwoverview[pdf]
--report-file PATH
+ Chemin de sortie pour le rapport généré.
--interactive
+ Lance le mode REPL interactif.
--tui
+ Lance le mode tableau de bord TUI (Text User Interface) avec sélecteur de service,
saisie de requête et panneau de résultats défilant. Nécessite : pip install malwoverview[tui]
--enrich
+ Active l'enrichissement des résultats par LLM. Ajoute une évaluation de menace
générée par IA après chaque résultat de requête. Fonctionne avec tous les types de
requêtes, y compris les recherches de hash de malware, les vérifications de réputation
IP, les recherches CVE (NIST et VulnCheck) et la corrélation inter-services. Utilise
le fournisseur configuré dans la section [LLM] de .malwapi.conf, ou remplacé avec
--llm. Fournisseurs pris en charge :
- claude : API Anthropic Claude (meilleure qualité, payant)
- gemini : API Google Gemini (facturation requise)
- openai : API OpenAI (payant, modèles GPT)
- ollama : Instance Ollama locale (gratuit, privé)
--llm PROVIDER
+ Remplace le fournisseur LLM pour l'enrichissement (à utiliser avec --enrich).
Exemples :
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
OPTIONS DE VULNÉRABILITÉ : Options de requête de base de données de vulnérabilités
NIST CVE Database Query:
Query options for NIST CVE database (Query type and value are required; other options are optional)
--nist NIST_OPTION, Query type: 1=CPE/Product Search, 2=CVE ID Search,
3=CVSS v3 Severity, 4=Keyword Search, 5=CWE ID Search
--NIST NIST_ARG Search value (format depends on query type)
--time YEARS Limit results to last N years
--rpp NUM Results per page (default: 100, max: 2000)
--startindex NUM Pagination start index (default: 0)
--ncves NUM Limit output to first N CVEs
VulnCheck Database Query:
Query options for VulnCheck vulnerability database (Community/Free tier)
-vc VULNCHECK_OPTION, --vulncheck VULNCHECK_OPTION
+ Type de requête : 1 : Liste des index disponibles ;
2 : Obtenir KEV (Known Exploited Vulnerabilities) ;
3 : Rechercher CVE dans KEV ;
4 : Obtenir le lien de sauvegarde KEV ;
5 : Lister les CVE MITRE ;
6 : Lister les CVE NIST NVD2 ;
7 : Rechercher CVE dans MITRE ;
8 : Rechercher CVE dans NIST NVD2.
-VC VULNCHECK_ARG, --VULNCHECK VULNCHECK_ARG
+ Valeur de recherche (ID CVE pour les options 3/7/8, nombre maximal de résultats
pour les options 2/5/6, par ex., 50).
Depuis la version 8.0, Malwoverview prend en charge une syntaxe alternative de sous-commandes en plus de la syntaxe traditionnelle basée sur des options. Les deux syntaxes sont entièrement prises en charge et produisent des résultats identiques.
Sous-commandes disponibles :
vt VirusTotal operations (file, av, hash, url, ip, domain, submit, behavior, batch)
ha Hybrid Analysis operations (report, submit, download, batch, dir)
bazaar Malware Bazaar operations (hash, tag, download, batch, dir)
triage Triage operations (search, summary, submit, dynamic, batch, dir)
urlhaus URLHaus operations (hash, url, tag, download, batch)
ip IP address lookups (info, shodan, abuse, greynoise, all, batch)
whois Whois/RDAP lookups (domain, ip)
shodan Shodan operations (ip, search)
correlate Cross-service correlation (hash)
extract IOC extraction from files or URLs
yara YARA rule scanning
nist NIST CVE database queries
vulncheck VulnCheck database queries
Exemples de sous-commandes (équivalents à la syntaxe basée sur des options) :
# 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
Utilisez --help avec n'importe quelle sous-commande pour plus de détails :
malwoverview vt --help
malwoverview ip --help
malwoverview ha report --help
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
# Local result cache
malwoverview --cache-stats
malwoverview --prune-cache
malwoverview --clear-cache
# Download the YARAify rule set and scan with it (-b 15 extracts into
# <output directory>/yaraify-rules, so use the same -O for both steps)
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/
# Malpedia rule set (-m 9 saves malpedia_yara_<level>.zip; extract it first)
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/
# LLM enrichment (append AI threat assessment to any query)
malwoverview -v 8 -V <hash> --enrich # uses provider from config
malwoverview -v 8 -V <hash> --enrich --llm claude # override: use Claude
malwoverview -v 8 -V <hash> --enrich --llm ollama # override: use Ollama
malwoverview -v 8 -V <hash> --enrich --llm openai # override: use OpenAI
malwoverview -ip 1 -IP 8.8.8.8 --enrich
malwoverview --correlate-hash <hash> --enrich
malwoverview --nist 2 --NIST CVE-2024-3400 --enrich # CVE enrichment (NIST)
malwoverview -vc 3 -VC CVE-2024-3400 --enrich # CVE enrichment (VulnCheck)
malwoverview --nist 4 --NIST palo alto --enrich # keyword search + enrichment
# 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
# IP lookups
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 (standalone)
malwoverview shodan ip 8.8.8.8
malwoverview shodan search "apache"
# Whois
malwoverview whois domain example.com
malwoverview whois ip 8.8.8.8
# Cross-service correlation
malwoverview correlate hash ab4d6a82cafc92825a0b88183325855f0c44920da970b42c949d5d5ffdcc0585
# IOC extraction (text, PDF, email, or URL)
malwoverview extract /home/remnux/malware/report.txt
malwoverview extract /home/remnux/malware/report.pdf
malwoverview extract https://example.com/threat-report.html
# YARA scanning
malwoverview yara /home/remnux/rules/malware.yar /home/remnux/malware/samples/
# NIST CVE queries
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
# VulnCheck queries
malwoverview vulncheck 2 30
malwoverview vulncheck 3 CVE-2021-44228
# Subcommands combined with global options
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
malwoverview --interactive
# Inside the prompt (type "help" for the full list):
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 # the export path must be inside the current directory
malwoverview --tui
# Pick a service on the left panel, type the query, press Enter.
# F3 copies the result, F4 picks an ID out of it, F5 exports the
# collected results to json, F6 exports them to csv, Ctrl+L clears.
# Ctrl+V (or Shift+Insert) pastes the clipboard into the query box from
# anywhere in the dashboard, so a hash can be pasted without clicking
# into the box first.
# The key list is printed above the results and is written again every
# time the pane is cleared, which includes the start of every search.
# While the query box has the focus, quitting is Ctrl+Q, because Q itself
# has to remain typeable.
# Search for Windows vulnerabilities
malwoverview --nist 1 --NIST "windows" --ncves 50
# Search for Apache vulnerabilities
malwoverview --nist 1 --NIST "apache" --ncves 30
# Search for Chrome vulnerabilities
malwoverview --nist 1 --NIST "chrome" --ncves 25
# Search for Chromium vulnerabilities
malwoverview --nist 1 --NIST "chromium" --ncves 25
# Search for Linux vulnerabilities
malwoverview --nist 1 --NIST "linux" --ncves 25
# Search for MacOS vulnerabilities
malwoverview --nist 1 --NIST "MacOS" --ncves 25
# Search for Log4Shell vulnerability
malwoverview --nist 2 --NIST "CVE-2021-44228"
# Search for ProxyShell vulnerability
malwoverview --nist 2 --NIST "CVE-2021-34473"
# Search for Spring4Shell vulnerability
malwoverview --nist 2 --NIST "CVE-2022-22965"
# Search for CRITICAL severity vulnerabilities
malwoverview --nist 3 --NIST "CRITICAL" --ncves 50
# Search for HIGH severity vulnerabilities
malwoverview --nist 3 --NIST "HIGH" --ncves 40
# Search for MEDIUM severity vulnerabilities
malwoverview --nist 3 --NIST "MEDIUM" --ncves 30
# Search for Authentication Bypass vulnerabilities
malwoverview --nist 4 --NIST "authentication bypass" --ncves 30
# Search for Remote Code Execution (RCE) vulnerabilities
malwoverview --nist 4 --NIST "remote code execution" --ncves 50
# Search for SQL injection vulnerabilities
malwoverview --nist 4 --NIST "sql injection" --ncves 25
# Search for Path Traversal vulnerabilities (CWE-22)
malwoverview --nist 5 --NIST "CWE-22" --ncves 30
# Search for SQL Injection vulnerabilities (CWE-89)
malwoverview --nist 5 --NIST "CWE-89" ---ncves 40
# Search for Cross-Site Scripting vulnerabilities (CWE-79)
malwoverview --nist 5 --NIST "CWE-79" --ncves 35
# List available VulnCheck indexes (Community/Free tier)
malwoverview -vc 1
# Get Known Exploited Vulnerabilities (KEV) - 30 results
malwoverview -vc 2 -VC 30
# Get Known Exploited Vulnerabilities (KEV) - 100 results
malwoverview -vc 2 -VC 100
# Search for a specific CVE in KEV database
malwoverview -vc 3 -VC CVE-2021-44228
# Search for a specific CVE in KEV database
malwoverview -vc 3 -VC CVE-2022-22965
# Get backup download link for VulnCheck KEV dataset
malwoverview -vc 4
# List recent CVEs from MITRE database
malwoverview -vc 5
# List recent CVEs from MITRE database - 20 results
malwoverview -vc 5 -VC 20
# List recent CVEs from NIST NVD2 database
malwoverview -vc 6
# List recent CVEs from NIST NVD2 database - 50 results
malwoverview -vc 6 -VC 50
# Search for specific CVE in MITRE database (official CVE records)
malwoverview -vc 7 -VC CVE-2024-21412
# Search for specific CVE in NIST NVD2 (CVSS scores, CWE, CISA KEV status)
malwoverview -vc 8 -VC CVE-2024-21412
Le seul changement incompatible. Les cinq options de téléchargement d'Hybrid Analysis faisaient la même chose, elles ont donc été fusionnées en une seule et les deux options qui les suivaient ont été décalées vers le bas :
# 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/
Toutes les autres options ont conservé leur numéro. Tous les nouveaux numéros sont additifs.
# 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/
# 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 fichier peut porter plusieurs signatures intégrées — généralement SHA-1 pour la compatibilité plus SHA-256 — et les signataires sont souvent différents. Le tableau marque les signatures supplémentaires par (+N) ; utilisez la forme mono-fichier pour toutes les lister. La signature qui détermine le statut est sélectionnable :
# 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
Les données de signature propres à VirusTotal sont également affichées désormais, de sorte qu'une recherche par hash rapporte la chaîne de signataires, la date de signature et l'empreinte de chaque certificat :
# 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
# 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
# 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
Une recherche par hash liste désormais les règles YARA qui ont correspondu à l'échantillon ; c'est de là que provient le nom de règle pour la commande suivante :
# 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
Les noms de règles se trouvent aussi dans les ensembles de règles eux-mêmes, qui peuvent être téléchargés et lus localement :
# 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/
L'archive est enregistrée sous /home/remnux/rules/yaraify-rules.zip et est extraite dans /home/remnux/rules/yaraify-rules/, un fichier .yar par règle. Ce répertoire est la cible de --yara, et ses noms de fichiers sont les noms de règles :
malwoverview --yara /home/remnux/rules/yaraify-rules/ --yara-target /home/remnux/malware/samples/
Un ensemble de règles rassemblé auprès de nombreux auteurs ne se compile pas proprement avec chaque version de YARA. Les fichiers avec des erreurs de syntaxe sont listés et ignorés, et l'analyse s'exécute avec le reste : une exécution de l'ensemble ci-dessus a compilé 548 des 557 fichiers.
# The complete Malpedia YARA ruleset for a TLP level
malwoverview -m 9 -M white
# -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
json et csv fonctionnent désormais sur tout l'outil plutôt que sur un tiers de celui-ci :
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
# 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
malwoverview --cache-stats
malwoverview --prune-cache
malwoverview --clear-cache
# Command-line REPL
malwoverview --interactive
# Full-screen dashboard: 111 services, Ctrl+V pastes, F5 exports json,
# F6 exports csv
malwoverview --tui
8.0.0 a ajouté beaucoup de choses d'un coup ; les commandes sont donc regroupées ici selon leur fonction plutôt que par numéro d'option. Les versions 8.0.1 à 8.0.5 contenaient surtout des correctifs et se trouvent à la fin. Lorsque 8.1.0 a ensuite modifié un numéro d'option, la commande ci-dessous utilise le numéro actuel et indique ce qu'il était auparavant.
# 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
Les nouveaux services IP sont également accessibles via -ip, de sorte qu'une même adresse peut être traitée service par service, ou par tous à la fois :
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 --correlate-hash ab4d6a82cafc92825a0b88183325855f0c44920da970b42c949d5d5ffdcc0585
# 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/
# 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/
# 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
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
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
malwoverview --interactive
malwoverview --tui
# 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>
Version 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 nomme l'hôte et le type de défaillance lorsqu'une récupération
échoue, au lieu d'afficher l'exception urllib3 brute.
* Une 404 GreyNoise Community est rapportée comme le résultat qu'elle est, à savoir que
l'adresse n'est pas un scanner internet, au lieu d'une erreur.
* Un échec réseau n'atteint plus l'utilisateur sous la forme d'un traceback Python.
43 blocs try ne capturaient que ValueError, donc une erreur de connexion
s'échappait sans être interceptée. L'hôte rapporté est tiré de l'URL analysée, jamais
du texte de l'exception.
* Un échec TLS est expliqué : une poignée de main qui se termine puis
se ferme, un certificat qui échoue à la vérification, un port qui répond
sans TLS et une poignée de main refusée ont chacun leur propre ligne. Le
texte de l'exception est lu mais jamais affiché.
* crt.sh utilise une politique de nouvelle tentative patiente (5 tentatives, 2 secondes de délai)
car il répond à la même URL avec 200, 404 ou 502 à quelques secondes d'intervalle.
Tous les autres services conservent la politique précédente.
* La réponse HTTP 429 est désormais retentée, au plus trois fois, en respectant les deux formes
de Retry-After et sans jamais attendre plus de 300 secondes. Les
téléversements d'échantillons ne sont pas retentés.
* Le calcul d'entropie lit le fichier par blocs au lieu de le charger
en entier. La valeur rapportée ne change pas.
* Le scanner YARA ne modifie plus le répertoire de travail du
processus lors de la compilation des règles.
* La correspondance --attack-map est exacte au lieu d'une recherche de sous-chaîne, ce qui
attribuait des techniques sans rapport (une balise vide correspondait aux 691).
Elle est étendue aux rapports Hybrid Analysis et à --correlate-hash.
* --enrich reçoit les enregistrements collectés au lieu du texte extrait
du terminal, et fonctionne désormais avec --output-format json et csv,
où il était silencieusement ignoré.
* Chaque option produit désormais des enregistrements pour --output-format json et csv.
Seul un tiers d'entre elles le faisait.
* Les résultats MalShare sont inclus dans le json et le csv.
* Les sections [INQUEST] et [VIRUSEXCHANGE] sont supprimées de
.malwapi.conf et du code qui les sous-tend.
* La version minimale de Python est 3.10, et les classificateurs annoncent
3.10 à 3.13.
MODES INTERACTIF ET GRAPHIQUE
* --interactive gagne toutes les commandes que seule la ligne de commande possédait :
les rapports VirusTotal, les téléversements, le rapport de comportement, la vérification par lot,
Retrohunt et Livehunt ; l'imphash Malware Bazaar, le téléchargement,
le lot, le répertoire, la recherche de règles YARA et l'ensemble de règles YARAify ; le
téléchargement de payload URLHaus, la recherche de signatures, la liste de payloads, la vérification
par lot et le flux ; les soumissions Triage, les téléchargements, le rapport dynamique,
les vérifications par lot et de répertoire ; les métadonnées de famille Malpedia, la liste de payloads
et l'ensemble de règles ; les listes de types de fichiers MalShare ; la soumission
Hybrid Analysis, les vérifications par lot et de répertoire ; la liste de familles ThreatFox ;
le lot IP et les requêtes multi-services ; et crtsh, android, yara,
iocs et cache. ATT&CK est activé avec « set attack on|off ».
* --tui est reconstruit sur le code du module utilisé par la ligne de commande
au lieu de sa propre copie de chaque appel de service : 3013 lignes sont devenues
818, et la liste des services est passée de 37 à 111 entrées. Les résultats
s'exportent avec F5 (json) et F6 (csv), ce qu'il ne prenait pas en charge du
tout.
* Le collage dans --tui est corrigé. Un hash collé avant de cliquer dans la
zone de requête était ignoré sans message, car seul le
widget focalisé reçoit un collage et le tableau de bord démarre sur la liste des
services. Le collage est désormais capté pour toute la fenêtre.
* --tui gagne Ctrl+V et Shift+Insert, qui lisent le presse-papiers
directement pour les terminaux qui n'envoient jamais de collage. Aucun paquet
tiers n'est nécessaire.
* La liste des touches --tui est réécrite à chaque fois que le volet des résultats est
effacé, et est construite à partir des liaisons de touches elles-mêmes. La barre de touches
conserve Quit (comme Ctrl+Q) et Paste lorsque la zone de requête a le focus,
et ses libellés ne répètent plus la touche.
RAPPORTS
* --peinfo et --sigcheck dimensionnent leurs colonnes à partir des fichiers
scannés et ne raccourcissent jamais le nom du fichier, qui est généralement le
SHA256. Type et Signer restent plafonnés ; une valeur raccourcie ne l'est
qu'à l'écran.
* Chaque colonne de tableau est mesurée en cellules de terminal plutôt qu'en
caractères, donc un sujet de certificat ou un nom de fichier CJK ne
pousse plus les colonnes hors alignement. La troncature s'arrête sur une limite
de caractère.
* Les règles d'un tableau égalent désormais la somme de ses colonnes, les en-têtes
de colonnes et les règles sont neutres, une cellule vide affiche n/a et le
décompte final commence par « [+] ». Appliqué à -j 8, -a 12, -a 13,
-b 11, -b 12, -b 13, -x 8, -x 9, -l 6, -s 2, -u 3, --yara,
--peinfo et --sigcheck, dont les règles étaient en désaccord avec leurs colonnes
jusqu'à 51 caractères.
* Le même traitement a été appliqué à tous les rapports restants.
Aucune règle n'est plus écrite comme un nombre fixe : chacune est tirée d'une
largeur nommée ou de l'en-tête sous lequel elle se trouve, donc le titre, la
règle et les colonnes ne peuvent plus diverger. 88 règles dans 19 fichiers,
atteignant tous les services interrogés par l'outil.
* 38 titres de rapports étaient complétés par 28 espaces de fin, plaçant la
ligne de titre au-delà de la règle en dessous. Invisible à l'écran et visible
dès que la sortie est canalisée, redirigée ou copiée.
* -b 6 à -b 10 : les valeurs longues sont renvoyées à la ligne à la largeur du rapport. Une
URL de référence ou une liste d'alias joints par des virgules atteignait 137 colonnes
sous une règle de 100 colonnes ; sur une exécution de -b 6, 52 des 5936 lignes le faisaient.
* -j 2 à -j 7 : chaque rapport est tracé sur une seule largeur tirée des
colonnes qu'il imprime réellement, remplaçant les six nombres différents
(100, 104, 126, 130, 136 et 146) utilisés auparavant. -j 2 dimensionne aussi sa
colonne URL à partir de la réponse et n'imprime plus son en-tête deux fois.
* -l 1 et -l 8 sont des tableaux. L'en-tête annonçait trois colonnes
centrées sur 75, 38 et 8 sous une règle de 126, tandis que les lignes ci-dessous
imprimaient « sha256: ... md5: ... type: ... », donc les en-têtes ne s'alignaient
avec rien. Une erreur MalShare n'est plus imprimée sous un
en-tête promettant des résultats qui n'arrivent jamais.
* -ct 1 et -ct 2 : l'en-tête du rapport est tracé à la largeur du
tableau qu'il introduit, et les lignes de statut, d'erreur et de comptage sont
renvoyées à la ligne comme des avis à puces au lieu de le dépasser.
* -a 12 et -a 13 : un hash qu'Hybrid Analysis n'a jamais vu produisait une
ligne vide et affiche désormais not found, ce qui est distinct du
verdict « unknown ». Un échec HTTP est rapporté comme tel. -a 13 ne
coupe plus chaque nom de fichier à 40 caractères.
* -j 8 : la colonne Statut affichait la réponse brute, donc un résultat lisait « ok ».
Elle affiche désormais found, not found, invalid hash ou bad request. La
colonne de hash suit les hash du fichier.
* -x 8 et -x 9 : le nom de fichier et les balises étaient coupés par une simple
tranche et sont désormais tronqués avec des points de suspension, et le score est coloré selon la valeur.
* -b 11 et -b 12 : la colonne Signature fait 17 colonnes et un échantillon
inconnu affiche n/a au lieu de laisser un espace vide.
* -s 2 est un tableau au lieu de quatre lignes étiquetées par hôte, soit une centaine
de blocs pour une seule requête. Les colonnes sont IP, Port, Country, Product,
Vulns et Organization. La bannière brute est remplacée par Product,
c'est-à-dire ce que Shodan a analysé à partir de la bannière ou de l'en-tête Server ;
la bannière entière atteint toujours json et csv. Vulns est le nombre de
CVE que Shodan liste pour l'hôte.
* -u 3 : la colonne Score était toujours à zéro, car le point de terminaison de recherche
ne renvoie aucun verdict et le code mettait la valeur par défaut ; les
enregistrements json et csv portaient « malicious » : « False » pour chaque résultat
d'une requête de phishing. Les deux champs ont disparu, remplacés par Age(d), l'
âge du domaine en jours, coloré selon la valeur. Les cellules sont tronquées avec des points de suspension
au lieu d'être découpées, et la colonne IP ne coupe plus une adresse IPv6
en deux.
* -u 2 : le verdict, le score, les catégories, les balises et les marques sont
mis en évidence au lieu d'être affichés comme le type MIME, les valeurs passent à la ligne
au lieu de sortir de l'écran, et les dates du certificat sont
affichées en UTC au lieu des secondes epoch brutes. Le titre de la page n'est plus
coupé à 80 caractères.
* -u 1 : la note de fin est préfixée par « [+] », affichée comme un conseil
plutôt que comme un champ supplémentaire, et porte l'UUID de l'analyse
qui vient d'être soumise afin que la commande de récupération puisse être copiée.
* --correlate-hash, -wh 1 et -wh 2 renvoient leurs valeurs à la ligne, avec
les continuations alignées sous la première ligne. Un statut WHOIS atteignait
187 colonnes pour une règle de 100, et les identifiants ATT&CK d'un ensemble de pulses
atteignaient 200. Le SHA512 est réparti sur plusieurs lignes ; les enregistrements conservent
chaque valeur sur une seule ligne.
* --yara n'affiche plus les erreurs de compilation par fichier, qui sont une
propriété de l'ensemble de règles plutôt que des échantillons et poussaient le
rapport hors de l'écran. Le compte reste dans le résumé et le
détail est disponible avec --verbose. Les colonnes File et Rule sont
dimensionnées en fonction de leur contenu, car couper l'une ou l'autre rompt le lien
vers l'échantillon ou la règle.
* Le bloc de certificat de -v 1 et -v 8 passe à la ligne à 120 colonnes. Un
statut est une phrase par problème jointe par des virgules et atteignait
233 caractères sur une seule ligne.
* La sortie de --enrich passe à la ligne à la largeur de la règle au-dessus, avec
des continuations en retrait sous un marqueur de liste. Les enregistrements json et csv
conservent la réponse sans retour à la ligne.
* -y 1 rapporte son inventaire APK à la fin du tableau plutôt qu'au
dessus, préfixé par « [+] » dans la couleur neutre. Les lignes sont
imprimées par un thread par paquet et ces threads n'étaient jamais
joints hors de Windows, donc la ligne est maintenant imprimée après qu'ils le sont.
-y 2 et -y 3 sont traités de la même manière.
* -ip 3 et -ip 7 : les deux notes de renvoi sont préfixées par
« [+] », alors qu'elles se lisent comme partie des données au-dessus.
* Un fichier de règles YARA ignoré indique désormais pourquoi. Le chemin prenait toute
la ligne et la raison était coupée.
* La sortie json et csv de --correlate-hash, --extract-iocs et
--yara ne commence plus par une ligne vide.
* Les rapports ne sont plus imprimés sur la sortie standard en même temps
que le json ou le csv, ce qui rendait le résultat impossible à
analyser, et vingt-neuf fonctions ne terminent plus le programme avant
l'exportation. Le texte va vers l'erreur standard lorsqu'une commande
ne produit aucun enregistrement, afin qu'un échec puisse être distingué d'un résultat
vide.
* Le csv écrit sur la sortie standard sous Windows ne fait plus suivre
chaque ligne d'une ligne vide, et le json et le csv sont
écrits en UTF-8 plutôt que dans l'encodage de la console.
* Le csv écrit par « export csv » en mode interactif ne termine plus
chaque ligne par deux retours chariot sous Windows.
* Un certificat contenant des caractères que la console ne peut pas représenter ne
termine plus l'exécution avec UnicodeEncodeError.
* Une séquence d'échappement invalide dans la recherche de famille PolySwarm n'émet plus
de SyntaxWarning.
* Un cache ATT&CK tronqué ou corrompu ne plante plus avec « Error
while connecting to Virus Total! ». Il est détecté, téléchargé à nouveau
et écrit atomiquement.
* Une soumission Hybrid Analysis refusée ne s'arrête plus avec une
KeyError ; la raison donnée par le service est affichée.
* 43 gestionnaires autour d'une requête ne capturaient que ValueError, donc un échec
réseau pouvait encore atteindre l'utilisateur sous la forme d'un traceback Python. Ils
capturent désormais aussi les erreurs de requête et nomment le service et l'hôte.
Le message ne contient jamais le texte de l'exception, car MalShare
et Shodan portent la clé API dans l'URL.
* Sept de ces gestionnaires dans URLHaus étaient inaccessibles : un gestionnaire plus large
au-dessus d'eux attrapait l'échec en premier, n'imprimait rien et
sortait. -j 7 contre un service inaccessible imprimait un en-tête, une
règle et rien d'autre, ce qui ressemble exactement à une recherche qui n'a
rien trouvé.
* --defang neutralise désormais aussi la ligne Source du rapport d'extraction
d'IOC, afin que tout le rapport puisse être collé quelque part en sécurité. Un
chemin de fichier local est laissé intact, et l'enregistrement exporté conserve la
valeur réelle dans les deux cas.
* La liste SUBCOMMANDS de ce fichier annonçait « ip bgp », supprimé dans
cette version, omettait « ip batch » et « urlhaus batch », et listait une
sous-commande urlscanio qui n'a jamais existé. URLScan.io est
accessible via -u.
COULEURS
* Sur un fond clair, ni le cyan ni le bleu clair ne sont plus utilisés,
seulement le bleu. Sur un fond sombre, les deux restent utilisés. Cela a changé
298 endroits dans 16 fichiers, y compris la couleur partagée info().
* Un audit de l'ensemble du paquet a trouvé 26 autres endroits qui enfreignaient
la règle, certains dans un test d'arrière-plan et certains colorés une seule fois pour
les deux arrière-plans. Le vert sur fond sombre est maintenant vert clair.
* La couleur neutre n'était jamais appliquée sur Windows avec un fond sombre :
elle était écrite comme une échappée de couleur 256 étendue, que
le convertisseur utilisé par colorama ne comprend que les codes de base, donc elle
était ignorée et la couleur précédente restait en vigueur. Chaque règle de tableau,
en-tête de colonne et avis à puces était affecté.
* -x 8 et -x 9 : la colonne Tags est bleu clair sur fond sombre et bleu sur fond
clair. Elle utilisait la même teinte que la colonne Hash à côté.
* -b 1 : les étiquettes de champs sont cyan clair sur fond sombre et bleu sur fond clair,
comme tous les autres rapports ; le fond clair utilisait le vert.
* -j 8 : la colonne de hash est violet clair sur fond sombre et bleu sur fond clair.
La colonne de statut est grise jusqu'à ce qu'il y ait quelque chose à rapporter.
* -ab 1 : les étiquettes de champs sont bleu clair sur fond sombre et bleu sur fond clair.
* -y 1 : la colonne Package est bleu clair sur fond sombre.
* -y 2 et -y 3 : la colonne Hash est rose sur fond sombre et violet sur fond clair.
* -s 2 : la colonne Product est bleu clair sur fond sombre et cyan sur fond clair.
Les changements ci-dessous sont des correctifs de sécurité. Aucun d'eux ne modifie la syntaxe
d'une commande.
* Corrige l'injection de séquences d'échappement terminal provenant des réponses
de services (ÉLEVÉE). Les champs contrôlés par l'attaquant imprimés sur le
terminal (les données de comportement VirusTotal et les noms d'échantillons, les
noms de fichiers, signatures et balises Malware Bazaar et URLHaus, les
noms et descriptions de pulses AlienVault OTX, les champs ThreatFox et
Hybrid Analysis) pouvaient déplacer le curseur et écraser
un verdict déjà imprimé, définir le titre de la fenêtre, écrire dans le
presse-papiers ou effacer l'écran. Chaque réponse JSON est désormais assainie
dès qu'elle est analysée.
* Corrige la même injection de séquences d'échappement en mode graphique
(ÉLEVÉE). --tui analysait lui-même les réponses des services à seize
endroits, aucun n'étant assaini. Il n'analyse plus aucune réponse.
* Corrige l'injection de séquences d'échappement terminal provenant de la ligne
de commande et des fichiers d'entrée (MOYENNE). -B, -X, -TR, -S, -M, -L, -NIST
et les autres arguments de texte libre acceptaient ESC, le CSI 8 bits et
la touche retour arrière, et les validateurs renvoyaient une valeur rejetée au
terminal sans la nettoyer au préalable. Cela affectait uniquement Linux et macOS.
* Corrige l'injection de séquences d'échappement terminal provenant de trois autres sources
(MOYENNE) : les valeurs extraites par --extract-iocs, dont le motif d'URL
excluait les espaces mais pas les autres caractères de contrôle ; les champs WHOIS,
qui arrivent comme texte brut écrit par le bureau d'enregistrement et la
personne enregistrée ; et le sha256 lu depuis un appareil Android connecté en USB,
qui est désormais vérifié contre une liste autorisée de 64 caractères hexadécimaux.
* Corrige un déni de service dans --extract-iocs (MOYENNE). Le traitement HTML
supprimait les blocs script, style, svg et commentaire avec une expression
régulière paresseuse, qui est quadratique lorsque la balise ouvrante n'est
jamais fermée : 50 000 balises script non terminées dans 400 Ko prenaient 158
secondes, et l'option lit jusqu'à 10 Mo depuis une URL. Les blocs
sont désormais supprimés par un seul balayage avant.
* Corrige un possible déni de service dans l'extraction d'IOC
(FAIBLE/MOYENNE) : les expressions régulières de domaine et d'e-mail pouvaient prendre
beaucoup de temps sur un document conçu à cet effet. Le texte est désormais divisé en
jetons bornés avant la mise en correspondance, et les IOC extraits sont
inchangés.
* Corrige l'injection de formules CSV dans les rapports exportés (MOYENNE).
Les valeurs commençant par « = », « + », « - », « @ » ou une tabulation étaient interprétées comme des
formules par Excel et LibreOffice. Elles sont désormais préfixées par une
apostrophe, et les sauts de ligne intégrés sont supprimés.
* Corrige l'injection de formules CSV dans la ligne d'en-tête des rapports exportés
(FAIBLE). Les noms de colonnes sont tirés de la réponse du service
et étaient écrits sans la protection ci-dessus.
* Corrige les séquences d'échappement atteignant le terminal via un message
d'erreur dans les modes interactif et graphique (FAIBLE). Les deux imprimaient
le texte d'une exception non gérée sans le nettoyer.
* Corrige le rebinding DNS dans --extract-iocs (MOYENNE). L'adresse qui
était validée est désormais l'adresse à laquelle on se connecte, tandis que le nom d'hôte
est conservé dans l'en-tête Host et dans le SNI TLS. Les noms d'hôtes qui
ne peuvent pas être résolus sont refusés. Les requêtes faites via un proxy ne sont
pas épinglées.
* Corrige un contournement de la protection des adresses privées utilisant des adresses
IPv6 mappées IPv4 telles que ::ffff:127.0.0.1 (MOYENNE). Les adresses de multidiffusion et
non spécifiées sont également refusées désormais.* Corrige l'exposition des clés API dans les messages d'erreur (MOYEN). Les
clés Malshare et Shodan sont remplacées par [REDACTED], et les
erreurs de connexion Malshare sont gérées au lieu de lever une
exception.
* Ajoute un délai d'expiration par défaut de 15 secondes pour la connexion et
de 180 secondes pour la lecture sur chaque requête HTTP qui n'en définit pas
(MOYEN).
* Cesse d'envoyer le chemin local complet de l'échantillon à VirusTotal
(FAIBLE/MOYEN). Seul le nom du fichier est envoyé avec -v 9.








