Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
EvilFontTool — Инструмент обмана на основе шрифтов для red teaming, исследований в области безопасности и всего остального. | Kitploit
Инструменты/GitHubGitHub/doctoreww/evilfonttool
Социальная инженерияОбучение и ОбразованиеRed TeamingБезопасность ИИСостязательная АтакаЛаборатории и Практика
GitHubdoctoreww/evilfonttool

EvilFontTool

Инструмент обмана на основе шрифтов для red teaming, исследований в области безопасности и всего остального.

Репозиторий
2572011 дней назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Сайт

EvilFontTool

Инструмент обмана на основе шрифтов для red teaming, исследований безопасности и всего остального.

EvilFontTool скрывает машиночитаемый текст внутри документа, который отображает человеку совершенно другой текст. Это достигается с помощью Evil Fonts — шрифтов, которые намеренно обманывают зрителя, отображая другую букву, чем понимает компьютер. Переопределяя глифы шрифта, видимые символы документа показывают человеку одно, а терминалы, ИИ-системы и копирование/вставка из буфера обмена видят другое.

Демо и лабораторные работы Evil Font !!НЕ ПРОПУСТИТЕ!!

  • Посмотреть демо → Здесь

  • Посмотреть лабораторные работы Evil Font → Здесь

Демо-файлы Word docx НЕ работают на мобильных устройствах из-за того, как мобильные телефоны отображают шрифты.


Содержание

  • Установка
  • Советы по использованию
  • Объяснение проблем с PDF
  • Использование
  • Этическое использование и отказ от ответственности
  • Как защититься от Evil Fonts
  • Участие в разработке
  • Помогите, что-то не работает!

Установка

root@kitploit:~
pip install evilfonttool

Из исходников

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

Для разработки (устанавливаемый режим):

root@kitploit:~
pip install -e .

Зависимости

Устанавливаются автоматически через pip:

  • fonttools — разбор и манипуляция шрифтами
  • brotli — сжатие WOFF2 (используется fonttools)
  • python-docx — генерация DOCX
  • reportlab — генерация PDF
  • pdf2image — преобразование PDF в изображения
  • pdfminer.six — извлечение текста/макета из PDF
  • Pillow — обработка изображений для PDF-конвейера

Системные требования (не устанавливаются через pip — должны быть в вашем PATH):

  • LibreOffice — требуется для команды pdf, которая вызывает soffice --headless для преобразования DOCX в PDF. Команда pdf является экспериментальной в Windows и может работать некорректно.
    • Ubuntu/Debian: sudo apt install libreoffice
    • macOS: brew install --cask libreoffice
    • Windows: скачать установщик
  • poppler-utils — требуется pdf2image для рендеринга страниц PDF для команды pdf
    • Ubuntu/Debian: sudo apt install poppler-utils
    • macOS: brew install poppler
    • Windows: poppler for Windows (добавьте папку Library\bin в PATH) Или см. ниже.

Вспомогательный скрипт установки Poppler в Windows

Устанавливает poppler в ~\Documents\poppler и добавляет в PATH.

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"

Где взять шрифты для использования?

  • Ubuntu: /usr/share/fonts
  • Windows: C:\Windows\Fonts
  • https://fonts.google.com/
  • Интернет??

Советы по использованию

  • Генерируйте шрифты и PDF в Linux. Команда pdf является экспериментальной в Windows и может работать некорректно.
  • Команда pdf не работает со сложными документами Word, например с колонками. Не стесняйтесь открывать issue, если вам нужна функция, которую вы действительно хотите.
  • Для встраивания шрифтов используйте doc --ttf-dir <ttffonts_dir> (EvilFontTool встраивает их сам) или Word в Windows. Собственная опция LibreOffice «встраивать шрифты» не работает для Evil Fonts.

Объяснение проблем с PDF

Команда pdf вообще не полагается на Evil Fonts. Она преобразует DOCX в изображение (таким образом, видимая страница — это картинка, а не текст), затем поверх наносит настоящий компьютерный текст как полностью невидимый выделяемый текст. Копирование/вставка и извлечение текста читают этот невидимый слой. Есть несколько других инструментов, которые умеют это делать, но ни один не так прост, как команда pdf, если у вас уже есть подходящий DOCX.

Если вам нужен настоящий PDF на основе Evil Font, нужно создать документ Word без невидимых букв (невидимые буквы не переживают преобразование в PDF). Затем экспортируйте напрямую из Word или используйте «Печать в PDF». Это сохраняет всё в одном слое, давая документу другие IOCs, чем известный двухслойный трюк, используемый командой pdf. Команда pdf существует именно потому, что ручной процесс утомителен, и иногда нужно просто быстро получить PDF-копию документа Word.

Короче;

  • Вариант 1: (простой) Используйте команду pdf → двухслойный PDF, тот же механизм, что и в других инструментах (более известный/обнаруживаемый).
  • Вариант 2: (настоящий Evil Font) Создайте документ Word без невидимых шрифтов, затем конвертируйте через «Печать в PDF» → более муторно, но даёт другие IOCs, чем Вариант 1.

Если кто-нибудь разберётся, как выполнить Вариант 2 с невидимыми буквами, я ставлю вам выпивку. Откройте issue, и я укажу вас в README.

Использование

Все функции доступны через единый CLI с четырьмя подкомандами.

create — Создание семейства шрифтов для использования в HTML или DOC-файлах

root@kitploit:~
evilfonttool create <reference_font> <output_dir> <font_name>
АргументОписание
reference_fontПуть к исходному шрифту .ttf или .woff
output_dirКаталог для записи шрифтов и CSS

Пример:

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

Результаты:

  • output/fonts/*.woff — веб-шрифты, по одному на символ
  • output/ttffonts/*.ttf — TTF-шрифты для встраивания в документы
  • output/fonts.css — объявления @font-face для веб-использования

Формат входного файла

  • Обычные файлы .txt.
  • Каждая строка в computer_file должна быть не короче соответствующей строки в human_file.
  • Строки сопоставляются позиционно (строка 1 с строкой 1 и т.д.)

web — Создание HTML-файла с Evil Font

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

Требуется, чтобы fonts.css и созданные шрифты находились в выходном каталоге, чтобы HTML-файл мог их использовать (или измените путь в HTML-файле).

АргументОписание
input_human_fileТекст, видимый человеку. Может быть многострочным
input_computer_fileТекст, видимый машинам / ИИ. Может быть многострочным
output_fileПуть для создаваемого HTML-файла

Пример:

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

doc — Создание DOCX-файла с Evil Font

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

font_name должен совпадать с именем, использованным на шаге create. TTF-шрифты должны быть установлены в системе, встроены через --ttf-dir или встроены вручную в Word (файл -> параметры -> сохранение -> встроить шрифты), чтобы обман отображался корректно.

Собственная опция сохранения Word «встроить шрифты» работает нормально, а у LibreOffice — нет; мне так и не удалось заставить его правильно встраивать Evil Fonts. Вместо этого используйте --ttf-dir: EvilFontTool встраивает шрифты сам, прямо в .docx, вообще не полагаясь на встраивание Word или LibreOffice.

Пример:

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

pdf — Преобразование DOCX с Evil Font в PDF, безопасный для копирования и вставки

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]

Преобразует DOCX с помощью LibreOffice, поэтому PDF выглядит идентично документу, затем накладывает скрытую полезную нагрузку в виде невидимого слоя для копирования, чтобы она сохранялась при копировании/вставке в любом просмотрщике.

Windows: Эта команда экспериментальна в Windows и может работать некорректно.

Требует LibreOffice (soffice) и poppler-utils — см. Зависимости.

Пример:

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

Этическое использование и отказ от ответственности

Вы несёте ответственность за то, как вы используете этот инструмент. Применение этой техники к системам или лицам без явного разрешения неэтично и может быть незаконным. Авторы предоставляют этот инструмент, чтобы помочь защитникам понять и протестировать этот класс уязвимостей, а не для организации атак.


Как защититься от Evil Fonts

Этот инструмент был создан, чтобы помочь специалистам red team проверить риски атак на основе шрифтов против их организаций. Он также был создан, чтобы помочь специалистам blue team, исследователям и владельцам систем понять пробелы в безопасности, которые остаются из-за доверия к пользовательским шрифтам. Ниже приведены практические рекомендации для частных лиц и индустрии по устранению или смягчению проблемы, которую шрифты представляют в современных операционных системах и приложениях.

Что я могу сделать против Evil Fonts?

  • Не доверяйте любому содержимому из ненадёжных источников. Проверяйте отправителей электронных писем и доменные имена.
  • Проверяйте команды после вставки, перед выполнением.
  • Никогда не запускайте команды, которых не понимаете.
  • Не запускайте команды, которые передают вывод curl напрямую в bash / Invoke-Expression. Злоумышленнику легко подменить сайт, с которого вы загружаете.
  • Никогда не открывайте вложения электронных писем из ненадёжных источников.
  • Помните, что Evil Fonts действуют за счёт обмана наблюдателя. Пользователь должен совершить действие, чтобы Evil Fonts стали риском. Без рискованного действия Evil Fonts не могут на вас повлиять.
  • Не загружайте документы, созданные кем-то другим, в ИИ-инструменты.

Что может сделать индустрия для защиты от Evil Fonts?

  • Не разрешайте отображение пользовательских шрифтов в защищённом просмотре (Microsoft Office Suite).
  • Не разрешайте пользователям приносить собственные шрифты или ограничьте количество пользовательских шрифтов.
  • Считайте большое количество пользовательских шрифтов на веб-странице или в документе Word признаком вредоносного ПО.
  • Предупреждайте пользователей, использующих Win + R, пугающим всплывающим окном о том, что это очень рискованно, при первом использовании (понятия не имею, почему этого ещё нет...).
  • При обработке документов с помощью ИИ преобразуйте документ в изображение и извлекайте текст с помощью OCR. Это дополнительно защищает от изображений с текстом.
  • Не игнорируйте пользовательские шрифты в моделях угроз.
  • Относитесь к пользовательским шрифтам как к тому, чем они являются: недоверенный пользовательский ввод.

Участие в разработке

Вклад приветствуется. Если вы нашли новую поверхность атаки, улучшение конвейера генерации шрифтов или технику защиты, которую стоит задокументировать, пожалуйста, откройте issue или PR.

  1. Сделайте форк репозитория
  2. Создайте ветку функции (git checkout -b feature/my-feature)
  3. Зафиксируйте свои изменения
  4. Откройте pull request с чётким описанием того, что изменилось и почему

Помогите, что-то не работает!

Этот инструмент очень сложно тестировать из-за сложности документов Word, PDF и шрифтов. Если вы нашли воспроизводимую проблему, пожалуйста, откройте issue на GitHub, и я займусь ею как можно скорее.

Пожалуйста, укажите в issue следующее:

  • ОС + версия LibreOffice и где вы просматриваете файл (Word / LibreOffice / что-то ещё).
  • Установлены ли шрифты в системе, встроены или ни то, ни другое.
  • Точная команда, которую вы запускали, и любой вывод терминала (особенно предупреждения mismatch).
  • Минимальный .docx / вводные данные, воспроизводящие проблему, если вы можете их предоставить.
  • Всё остальное, что может вызывать проблемы.
Скачать инструмент
font_name
Префикс внутреннего имени для создаваемого семейства шрифтов
АргументОписание
input_human_fileТекст, видимый человеку. Может быть многострочным
input_computer_fileТекст, видимый машинам / ИИ. Может быть многострочным
output_fileПуть для создаваемого DOCX-файла
font_nameНазвание семейства шрифтов (должно совпадать с шагом create)
--authorМетаданные автора документа DOCX (по умолчанию: нет)
--ttf-dirКаталог TTF-шрифтов Evil Font (например, <output_dir>/ttffonts). Если указан, фактически используемые шрифты встраиваются непосредственно в .docx, так что обман отображается корректно без установки в системе. Встраиваются только буквы, входящие в human-файл.
АргументОписание
input_docxПуть к DOCX с Evil Font (из шага doc)
output_fileПуть для создаваемого PDF-файла
--ttf-dirКаталог TTF-шрифтов Evil Font (например, <output_dir>/ttffonts), доступный LibreOffice, чтобы маскировка отображалась. Опускайте, только если шрифты установлены в системе или встроены в файл
--dpiКачество растеризации видимого слоя (по умолчанию: 200)
--sofficeПуть к исполняемому файлу LibreOffice (по умолчанию: soffice)
--ink-fontTTF для невидимого слоя копирования (по умолчанию: системный шрифт без засечек)
--titleМетаданные заголовка PDF-документа (по умолчанию: Untitled)
--authorМетаданные автора PDF-документа (по умолчанию: нет)
--subjectМетаданные темы PDF-документа (по умолчанию: нет)
--producerМетаданные производителя PDF-документа (по умолчанию: нет)