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
EvilFontTool — Un outil de déception basé sur les polices de caractères pour le red teaming, la recherche en sécurité, et tout le reste. | Kitploit
Outils/GitHubGitHub/doctoreww/evilfonttool
Ingénierie SocialeApprentissage et ÉducationRed TeamingSécurité de l'IAAttaque AdversarialeLabs et Pratique
GitHubdoctoreww/evilfonttool

EvilFontTool

Un outil de déception basé sur les polices de caractères pour le red teaming, la recherche en sécurité, et tout le reste.

Voir le dépôt
25720il y a 11 joursVé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

EvilFontTool

Un outil de déception basé sur les polices pour le red teaming, la recherche en sécurité, et tout le reste.

EvilFontTool dissimule du texte lisible par machine dans un document qui affiche un texte complètement différent au lecteur humain. Pour ce faire, il utilise des Evil Fonts — des polices qui trompent intentionnellement l'observateur en affichant une lettre différente de celle comprise par un ordinateur. En remappant les glyphes de la police, les caractères visibles du document montrent une chose aux humains tandis que les terminaux, les systèmes d'IA et le copier-coller en voient une autre.

Démos/Labos Evil Font !!À NE PAS MANQUER!!

  • Voir les démos → ici

  • Voir les labos Evil Font → ici

Les démos au format Word docx ne fonctionnent PAS sur mobile à cause de la manière dont les téléphones mobiles rendent les polices.


Table des matières

  • Installation
  • Conseils d'utilisation
  • Explication des problèmes de PDF
  • Utilisation
  • Utilisation éthique et avertissement
  • Se protéger contre les Evil Fonts
  • Contribuer
  • Aide, quelque chose ne fonctionne pas !

Installation

root@kitploit:~
pip install evilfonttool

Depuis la source

root@kitploit:~
git clone https://github.com/DoctorEww/EvilFontTool.git
cd EvilFontTool
pip install .

Pour le développement (installation éditable) :

root@kitploit:~
pip install -e .

Dépendances

Installées automatiquement via pip :

  • fonttools — parsing et manipulation de polices
  • brotli — compression WOFF2 (utilisé par fonttools)
  • python-docx — génération de DOCX
  • reportlab — génération de PDF
  • pdf2image — conversion PDF vers image
  • pdfminer.six — extraction de texte/disposition PDF
  • Pillow — traitement d'images pour le pipeline PDF

Exigences système (non installées par pip — doivent être dans votre PATH) :

  • LibreOffice — requis pour la commande pdf, qui fait appel à soffice --headless pour convertir le DOCX en PDF. La commande pdf est expérimentale sous Windows et peut ne pas fonctionner comme prévu.
    • Ubuntu/Debian : sudo apt install libreoffice
    • macOS : brew install --cask libreoffice
    • Windows : télécharger l'installateur
  • poppler-utils — requis par pdf2image pour rendre les pages PDF de la commande pdf
    • Ubuntu/Debian : sudo apt install poppler-utils
    • macOS : brew install poppler
    • Windows : poppler pour Windows (ajouter le dossier Library\bin au chemin) Ou voir ci-dessous.

Script d'aide pour l'installation de poppler sous Windows

Installez poppler dans ~\Documents\poppler et ajoutez-le au chemin.

root@kitploit:~
irm (irm https://api.github.com/repos/oschwartz10612/poppler-windows/releases/latest).assets[0].browser_download_url -OutFile ~\Documents\poppler.zip
Expand-Archive ~\Documents\poppler.zip ~\Documents\poppler -Force
$bin = (gci ~\Documents\poppler -Recurse -Filter pdftotext.exe)[0].DirectoryName
[Environment]::SetEnvironmentVariable('Path', [Environment]::GetEnvironmentVariable('Path','User') + ";$bin", 'User'); $env:Path += ";$bin"

Où trouver des polices à utiliser ?

  • Ubuntu : /usr/share/fonts
  • Windows : C:\Windows\Fonts
  • https://fonts.google.com/
  • Internet ??

Conseils d'utilisation

  • Générez les polices et les PDF sous Linux. La commande pdf est expérimentale sous Windows et peut ne pas fonctionner comme prévu.
  • La commande pdf ne fonctionne pas avec les documents Word complexes, ex. les colonnes. N'hésitez pas à ouvrir une issue si vous voulez vraiment qu'une fonctionnalité soit prise en charge.
  • Pour intégrer les polices, utilisez doc --ttf-dir <ttffonts_dir> (EvilFontTool les intègre lui-même) ou Word sous Windows. L'option "intégrer les polices" de LibreOffice ne fonctionne pas avec les Evil Fonts.

Explication des problèmes de PDF

La commande pdf ne repose pas du tout sur les Evil Fonts. Elle convertit le DOCX en image (la page visible est donc une image, pas du texte), puis dessine le vrai texte machine par-dessus sous forme de texte entièrement invisible et sélectionnable. Le copier-coller et l'extraction de texte lisent cette couche invisible à la place. Il existe quelques autres outils capables de faire cela, mais rien d'aussi simple que la commande pdf quand vous avez déjà un DOCX qui vous convient.

Si vous voulez un véritable PDF Evil Font, vous devez créer le document Word sans lettres invisibles (les lettres invisibles ne survivent pas à la conversion PDF). Ensuite, exportez directement depuis Word ou utilisez "Imprimer au format PDF". Cela conserve tout sur une seule couche, donnant au document des IOC différents du célèbre truc à deux couches utilisé par la commande pdf. La commande pdf existe uniquement parce que ce processus manuel est fastidieux, et parfois vous voulez juste une copie PDF rapide d'un document Word.

TLDR;

  • Option 1 : (la plus simple) Utilisez la commande pdf → PDF à deux couches, même mécanisme que les autres outils (plus connu/détectable).
  • Option 2 : (la vraie Evil Font) Créez un document Word sans polices invisibles, puis convertissez via Imprimer au format PDF → plus pénible, mais produit des IOC différents de l'option 1.

Si quelqu'un trouve comment réussir l'option 2 avec des lettres invisibles, je lui dois un verre. Ouvrez une issue et je vous créditerai dans le README.

Utilisation

Toutes les fonctionnalités sont exposées via une seule interface CLI avec quatre sous-commandes.

create — Générer la famille de polices pour une utilisation dans les fichiers HTML ou DOC

root@kitploit:~
evilfonttool create <reference_font> <output_dir> <font_name>
ArgumentDescription
reference_fontChemin vers une police source .ttf ou .woff
output_dirRépertoire dans lequel écrire les polices et le CSS

Exemple :

root@kitploit:~
evilfonttool create fonts/Arial.ttf output/ 'Arial'

Sorties :

  • output/fonts/*.woff — polices web, une par caractère
  • output/ttffonts/*.ttf — polices TTF pour l'intégration dans les documents
  • output/fonts.css — déclarations @font-face pour une utilisation web

Format du fichier d'entrée

  • Fichiers .txt simples.
  • Chaque ligne du computer_file doit être égale ou plus longue que la ligne correspondante du human_file
  • Les lignes sont appariées par position (ligne 1 avec ligne 1, etc.)

web — Générer un fichier HTML Evil Font

root@kitploit:~
evilfonttool web <human_file> <computer_file> <output_file>

Nécessite que fonts.css et les polices générées soient dans le répertoire de sortie pour que le fichier HTML puisse les utiliser (ou modifiez le chemin dans le fichier HTML).

ArgumentDescription
input_human_fileTexte visible par les lecteurs humains. Peut comporter plusieurs lignes
input_computer_fileTexte visible par les machines / l'IA. Peut comporter plusieurs lignes
output_fileChemin du fichier HTML généré

Exemple :

root@kitploit:~
evilfonttool web human.txt computer.txt output/index.html

doc — Générer un fichier DOCX Evil Font

root@kitploit:~
evilfonttool doc <human_file> <computer_file> <output_file> <font_name> [--author AUTHOR] [--ttf-dir DIR]

Le font_name doit correspondre au nom utilisé à l'étape create. Les polices TTF doivent être installées sur le système, intégrées via --ttf-dir, ou intégrées manuellement dans Word (fichier -> options -> enregistrement -> intégrer les polices) pour que la tromperie s'affiche correctement.

L'option d'enregistrement "intégrer les polices" de Word fonctionne bien, mais celle de LibreOffice non — je n'ai jamais réussi à lui faire intégrer correctement les Evil Fonts. Utilisez plutôt --ttf-dir : EvilFontTool intègre lui-même les polices, directement dans le .docx, sans dépendre du tout de l'intégration de Word ou de LibreOffice.

Exemple :

root@kitploit:~
evilfonttool doc human.txt computer.txt output/secret.docx MyFont --author "Finance Team" --ttf-dir output/ttffonts

pdf — Convertir un DOCX Evil Font en un PDF sûr pour le copier-coller

root@kitploit:~
evilfonttool pdf <input_docx> <output_file> [--ttf-dir DIR] [--dpi DPI] [--soffice PATH] [--ink-font FONT] [--title TITLE] [--author AUTHOR] [--subject SUBJECT] [--producer PRODUCER]

Convertit le DOCX avec LibreOffice pour que le PDF soit identique au document, puis superpose la charge utile cachée en couche de copie invisible afin qu'elle survive au copier-coller dans tous les lecteurs.

Windows : Cette commande est expérimentale sous Windows et peut ne pas fonctionner comme prévu.

Nécessite LibreOffice (soffice) et poppler-utils — voir Dépendances.

Exemple :

root@kitploit:~
evilfonttool pdf output/secret.docx output/secret.pdf --ttf-dir output/fonts/ttffonts --title secret

Utilisation éthique et avertissement

Vous êtes responsable de l'utilisation que vous faites de cet outil. Déployer cette technique contre des systèmes ou des individus sans autorisation explicite est contraire à l'éthique et peut être illégal. Les auteurs fournissent cet outil pour aider les défenseurs à comprendre et tester cette classe de vulnérabilité — pas pour faciliter des attaques.


Se protéger contre les Evil Fonts

Cet outil a été créé pour aider les red teamers à valider les risques des attaques basées sur les polices contre leurs organisations. Il a également été créé pour aider les blue teamers, les chercheurs et les propriétaires de systèmes à comprendre les failles de sécurité laissées par la confiance intrinsèque accordée aux polices fournies par l'utilisateur. Voici quelques recommandations pratiques destinées aux individus et à l'industrie pour traiter ou atténuer les problèmes que les polices posent dans les systèmes d'exploitation et applications modernes.

Que puis-je faire contre les Evil Fonts ?

  • Ne faites pas confiance aux contenus provenant de sources non fiables. Vérifiez les expéditeurs des e-mails et les noms de domaine.
  • Vérifiez les commandes après les avoir collées, avant de les exécuter.
  • N'exécutez jamais de commandes que vous ne comprenez pas.
  • N'exécutez pas de commandes qui envoient la sortie de curl directement dans bash / Invoke-Expression. Il est facile pour un attaquant de détourner le site à partir duquel vous téléchargez.
  • N'ouvrez jamais les pièces jointes d'e-mails provenant de sources non fiables.
  • Rappelez-vous que les Evil Fonts reposent sur la tromperie d'un observateur pour être efficaces. Un utilisateur doit effectuer une action pour que les Evil Fonts présentent un risque. Sans action risquée, les Evil Fonts ne peuvent pas vous affecter.
  • Ne téléversez pas de documents créés par quelqu'un d'autre dans des outils d'IA.

Que peut faire l'industrie pour se protéger contre les Evil Fonts ?

  • N'autorisez pas les polices personnalisées à s'afficher en Affichage protégé (suite Microsoft Office).
  • N'autorisez pas les utilisateurs à apporter des polices personnalisées, ou limitez le nombre de polices personnalisées.
  • Considérez un grand nombre de polices personnalisées dans une page web ou un document Word comme un signal de logiciel malveillant.
  • Avertissez les utilisateurs qui utilisent Win + R avec un popup effrayant indiquant à quel point c'est risqué la première fois qu'ils le font (je ne sais pas pourquoi ça n'existe pas déjà...).
  • Lors du traitement de documents avec l'IA, convertissez le document en image et extrayez le texte par OCR. Cela a l'avantage supplémentaire de protéger contre les images contenant du texte.
  • N'ignorez pas les polices fournies par l'utilisateur dans les modèles de menaces.
  • Traitez les polices fournies par l'utilisateur pour ce qu'elles sont : des entrées utilisateur non fiables.

Contribuer

Les contributions sont les bienvenues. Si vous avez trouvé une nouvelle surface d'attaque, une amélioration du pipeline de génération de polices, ou une technique de défense qui mérite d'être documentée, veuillez ouvrir une issue ou une PR.

  1. Forkez le dépôt
  2. Créez une branche de fonctionnalité (git checkout -b feature/my-feature)
  3. Committez vos modifications
  4. Ouvrez une pull request avec une description claire de ce qui a changé et pourquoi.

Aide, quelque chose ne fonctionne pas !

Cet outil est vraiment difficile à tester en raison de la complexité des documents Word, des PDF et des polices. Si vous rencontrez un problème reproductible, veuillez ouvrir une issue GitHub et je m'en occuperai dès que possible.

Veuillez inclure les éléments suivants dans l'issue :

  • OS + version de LibreOffice, et l'endroit où vous visualisez le fichier (Word / LibreOffice / autre chose).
  • Si les polices sont installées, intégrées, ou ni l'un ni l'autre.
  • La commande exacte que vous avez exécutée et toute sortie de terminal (en particulier les avertissements mismatch).
  • Un .docx / une entrée minimale qui reproduit le problème, si vous pouvez en partager un.
  • Tout autre élément qui pourrait être à l'origine des problèmes.
Télécharger l’outil
font_namePréfixe de nom interne pour la famille de polices générée
ArgumentDescription
input_human_fileTexte visible par les lecteurs humains. Peut comporter plusieurs lignes
input_computer_fileTexte visible par les machines / l'IA. Peut comporter plusieurs lignes
output_fileChemin du fichier DOCX généré
font_nameNom de la famille de polices (doit correspondre à l'étape create)
--authorMétadonnée d'auteur du document DOCX (par défaut : aucune)
--ttf-dirRépertoire des TTF Evil Font (ex. <output_dir>/ttffonts). S'il est fourni, les polices réellement utilisées sont intégrées directement dans le .docx, afin que la tromperie s'affiche correctement sans les installer à l'échelle du système. N'intègre que les lettres présentes dans le fichier humain.
ArgumentDescription
input_docxChemin vers le DOCX Evil Font (issu de l'étape doc)
output_fileChemin du fichier PDF généré
--ttf-dirRépertoire des TTF Evil Font (ex. <output_dir>/ttffonts), exposé à LibreOffice pour que le déguisement s'affiche. À omettre uniquement si les polices sont installées à l'échelle du système ou intégrées dans le fichier
--dpiQualité de rastérisation de la couche visible (par défaut : 200)
--sofficeChemin vers le binaire LibreOffice (par défaut : soffice)
--ink-fontTTF pour la couche de copie invisible (par défaut : une sans-serif système)
--titleMétadonnée de titre du document PDF (par défaut : Untitled)
--authorMétadonnée d'auteur du document PDF (par défaut : aucune)
--subjectMétadonnée de sujet du document PDF (par défaut : aucune)
--producerMétadonnée de producteur du document PDF (par défaut : aucune)