Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
msidump — MSI Dump - un outil qui analyse les paquets d'installation MSI malveillants, extrait les fichiers, les flux, les données binaires et intègre le scanner YARA. | Kitploit
Outils/GitHubGitHub/mgeeky/msidump
Analyse StatiqueAnalyse ForensiqueAnalyse de MalwareAnalyse de Binaires
GitHubmgeeky/msidump

msidump

MSI Dump - un outil qui analyse les paquets d'installation MSI malveillants, extrait les fichiers, les flux, les données binaires et intègre le scanner YARA.

Voir le dépôt
23220il y a 3 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
Site web

msidump

MSI Dump - un outil qui analyse les packages d'installation MSI malveillants, extrait les fichiers, les flux, les données binaires et intègre un scanner YARA.

Sur les documents Office avec macros activées, nous pouvons rapidement utiliser oletools mraptor pour déterminer si le document est malveillant. Si nous voulons le disséquer plus en détail, nous pouvons faire appel à oletools olevba ou oledump.

Pour disséquer les fichiers MSI malveillants, nous n'avions jusqu'à présent qu'un seul outil, mais fiable et digne de confiance : lessmsi. Cependant, lessmsi n'implémente pas les fonctionnalités que je recherchais :

  • tri rapide
  • extraction de données binaires
  • analyse YARA

C'est là que msidump entre en jeu.

Features

Cet outil aide à la fois au tri rapide et à l'examen détaillé de corpus de MSI malveillants. Il nous permet :

  • Déterminer rapidement si un fichier est suspect ou non.
  • Lister toutes les tables MSI ainsi qu'extraire des enregistrements spécifiques
  • Extraire les données binaires, tous les fichiers des CAB, les scripts des CustomActions
  • Analyser toutes les données internes et les enregistrements avec des règles YARA
  • Utiliser la déduction de type file/MIME pour déterminer le type de données internes

Il a été créé comme un outil compagnon pour l'article de blog que j'ai publié ici :

  • MSI Shenanigans. Part 1 - Offensive Capabilities Overview

Limitations

  • Le programme est encore dans une version alpha précoce, il est prévu que des choses cassent et que la logique de tri/analyse change
  • En raison de la forte dépendance de cet outil sur les interfaces Win32 COM WindowsInstaller.Installer, actuellement il n'est pas possible de supporter les plateformes Linux natives. Peut-être que wine python msidump.py pourrait aider, mais je n'ai pas encore essayé.

Use Cases

  1. Effectuer un tri rapide d'un MSI suspect avec une règle YARA :
root@kitploit:~
cmd> python msidump.py evil.msi -y rules.yara

1.png

Ici, nous pouvons voir que le MSI en entrée est injecté avec un VBScript suspect et contient de nombreux exécutables.

  1. Maintenant, nous voulons examiner de plus près ce VBScript en extrayant uniquement cet enregistrement.

Nous voyons dans le tableau de tri qu'il était présent dans la table Binary. Extrayons-le :

root@kitploit:~
python msidump.py putty-backdoored.msi -l binary -i UBXtHArj

Nous pouvons spécifier quel enregistrement extraire soit par son nom/ID soit par son numéro d'index (ici ce serait 7).

2.png

Jetons un coup d'œil à un autre exemple. Cette fois, il y a un exécutable stocké dans la table Binary qui sera exécuté pendant l'installation :

3.png

Pour extraire ce fichier, nous allons utiliser

root@kitploit:~
python msidump.py evil2.msi -x binary -i lmskBju -O extracted

Où

  • -x binary indique d'extraire le contenu de la table Binary
  • -i lmskBju spécifie exactement quel enregistrement extraire
  • -O extracted définit le répertoire de sortie

4.png

Pour une meilleure expérience de sortie, exécutez l'outil dans une fenêtre de console maximisée ou redirigez la sortie vers un fichier :

root@kitploit:~
python msidump.py [...] -o analysis.log

Full Usage

root@kitploit:~
PS D:\> python .\msidump.py --help
options:
  -h, --help            show this help message and exit

Required arguments:
  infile                Input MSI file (or directory) for analysis.

Options:
  -q, --quiet           Surpress banner and unnecessary information. In triage mode, will display only verdict.
  -v, --verbose         Verbose mode.
  -d, --debug           Debug mode.
  -N, --nocolor         Dont use colors in text output.
  -n PRINT_LEN, --print-len PRINT_LEN
                        When previewing data - how many bytes to include in preview/hexdump. Default: 128
  -f {text,json,csv}, --format {text,json,csv}
                        Output format: text, json, csv. Default: text
  -o path, --outfile path
                        Redirect program output to this file.
  -m, --mime            When sniffing inner data type, report MIME types

Analysis Modes:
  -l what, --list what  List specific table contents. See help message to learn what can be listed.
  -x what, --extract what
                        Extract data from MSI. For what can be extracted, refer to help message.

Analysis Specific options:
  -i number|name, --record number|name
                        Can be a number or name. In --list mode, specifies which record to dump/display entirely. In --extract mode dumps only this particular record to --outdir
  -O path, --outdir path
                        When --extract mode is used, specifies output location where to extract data.
  -y path, --yara path  Path to YARA rule/directory with rules. YARA will be matched against Binary data, streams and inner files

------------------------------------------------------

- What can be listed:
    --list CustomAction     - Specific table
    --list Registry,File    - List multiple tables
    --list stats            - Print MSI database statistics
    --list all              - All tables and their contents
    --list olestream        - Prints all OLE streams & storages.
                              To display CABs embedded in MSI try: --list _Streams
    --list cabs             - Lists embedded CAB files
    --list binary           - Lists binary data embedded in MSI for its own purposes.
                              That typically includes EXEs, DLLs, VBS/JS scripts, etc

- What can be extracted:
    --extract all           - Extracts Binary data, all files from CABs, scripts from CustomActions
    --extract binary        - Extracts Binary data
    --extract files         - Extracts files
    --extract cabs          - Extracts cabinets
    --extract scripts       - Extracts scripts

------------------------------------------------------

TODO

  • La logique de tri est encore un peu instable, je n'en suis pas très fier. Elle sera donc sujette à des refontes constantes et à des ramifications supplémentaires
  • Tester sur un corpus d'échantillons plus large
  • Ajouter la prise en charge des archives ZIP avec mot de passe en entrée
  • Ajouter la prise en charge de l'ingestion d'un répertoire entier de règles YARA au lieu de travailler avec un seul fichier
  • Actuellement, l'outil détecte les types CustomAction malveillants en évaluant leurs numéros, ce qui peut être contourné.
    • Il doit être retravaillé pour consommer correctement le numéro de Type et le décomposer en drapeaux

Tool's Name

Apparemment, en nommant mon outil, je n'ai pas pensé à vérifier s'il était déjà pris. Il existe un autre outil nommé msidump faisant partie du paquet GNU msitools :

  • msidump

☕ Montrez votre soutien ☕

Ce projet et d'autres sont le fruit de nuits blanches et de beaucoup de travail acharné. Si vous aimez ce que je fais et appréciez que je donne toujours en retour à la communauté, Envisagez de m'offrir un café (ou mieux une bière) juste pour dire merci ! 💪


root@kitploit:~
Mariusz Banach / mgeeky, (@mariuszbit)
<mb [at] binary-offensive.com>
Télécharger l’outil