Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
EvilFontTool — Una herramienta de engaño basada en fuentes para red teaming, investigación de seguridad y cualquier otra cosa. | Kitploit
Herramientas/GitHubGitHub/doctoreww/evilfonttool
Ingeniería SocialAprendizaje y EducaciónRed TeamingSeguridad de IAAtaque AdversarioLabs y Práctica
GitHubdoctoreww/evilfonttool

EvilFontTool

Una herramienta de engaño basada en fuentes para red teaming, investigación de seguridad y cualquier otra cosa.

Ver Repositorio
25720hace 10 díasRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
Sitio web

EvilFontTool

Una herramienta de engaño basada en fuentes para red teaming, investigación de seguridad y lo que sea.

EvilFontTool oculta texto legible por máquina dentro de un documento que muestra un texto completamente distinto a un lector humano. Lo hace mediante Evil Fonts — fuentes que engañan deliberadamente al espectador renderizando una letra distinta de la que entiende el ordenador. Al reasignar los glifos de la fuente, los caracteres visibles del documento muestran a los humanos una cosa, mientras que terminales, sistemas de IA y copiar y pegar ven otra.

Demos/Labs de Evil Fonts ¡¡NO TE LO PIERDAS!!

  • Ver las Demos → Aquí

  • Ver los Evil Font Labs → Aquí

Las demos de Word docx NO funcionan en móviles debido a la forma en que los teléfonos móviles renderizan las fuentes.


Tabla de contenidos

  • Instalación
  • Consejos de uso
  • Explicación de los problemas con los PDF
  • Uso
  • Uso ético y descargo de responsabilidad
  • Cómo mantenerse a salvo de Evil Fonts
  • Contribuciones
  • ¡Ayuda, algo no funciona!

Instalación

root@kitploit:~
pip install evilfonttool

Desde el código fuente

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

Para desarrollo (instalación editable):

root@kitploit:~
pip install -e .

Dependencias

Se instalan automáticamente vía pip:

  • fonttools — análisis y manipulación de fuentes
  • brotli — compresión WOFF2 (usada por fonttools)
  • python-docx — generación de DOCX
  • reportlab — generación de PDF
  • pdf2image — conversión de PDF a imagen
  • pdfminer.six — extracción de texto/diseño de PDF
  • Pillow — manejo de imágenes para el pipeline de PDF

Requisitos del sistema (no los instala pip — deben estar en tu PATH):

  • LibreOffice — requerido para el comando pdf, que invoca a soffice --headless para convertir DOCX a PDF. El comando pdf es experimental en Windows y puede que no funcione como se espera.
    • Ubuntu/Debian: sudo apt install libreoffice
    • macOS: brew install --cask libreoffice
    • Windows: descargar instalador
  • poppler-utils — requerido por pdf2image para renderizar páginas PDF para el comando pdf
    • Ubuntu/Debian: sudo apt install poppler-utils
    • macOS: brew install poppler
    • Windows: poppler para Windows (añade la carpeta Library\bin a la ruta) O consulta abajo.

Script auxiliar para instalar poppler en Windows

Instala poppler en ~\Documents\poppler y añádelo a la ruta.

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"

¿Dónde puedo encontrar fuentes para usar?

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

Consejos de uso

  • Genera fuentes y PDFs en Linux. El comando pdf es experimental en Windows y puede que no funcione como se espera.
  • El comando pdf no funciona con documentos de Word complejos, p. ej. columnas. No dudes en abrir un issue si hay alguna característica que realmente quieras que admita.
  • Para incrustar fuentes, usa doc --ttf-dir <ttffonts_dir> (EvilFontTool las incrusta por sí mismo) o Word en Windows. La opción "incrustar fuentes" de LibreOffice no funciona con Evil Fonts.

Explicación de los problemas con los PDF

El comando pdf no depende en absoluto de Evil Fonts. Renderiza el DOCX a una imagen (de modo que la página visible es una imagen, no texto), y luego dibuja el texto real de la computadora encima como texto totalmente invisible y seleccionable. Copiar y pegar y la extracción de texto leen esa capa invisible en su lugar. Hay algunas otras herramientas que pueden hacer esto, pero ninguna tan fácil como el comando pdf cuando ya tienes un DOCX que te gusta.

Si quieres un PDF con Evil Fonts de verdad, necesitas construir el documento de Word sin letras invisibles (las letras invisibles no sobreviven a la conversión a PDF). A partir de ahí, exporta directamente desde Word o usa "Imprimir a PDF". Esto mantiene todo en una sola capa, dando al documento IOCs distintos al conocido truco de dos capas usado por el comando pdf. El comando pdf existe únicamente porque ese proceso manual es tedioso, y a veces solo quieres una copia rápida en PDF de un documento de Word.

Resumen;

  • Opción 1: (la fácil) Usa el comando pdf → PDF de dos capas, mismo mecanismo que otras herramientas (más conocido/detectable).
  • Opción 2: (la de Evil Font real) Construye un documento de Word sin fuentes invisibles y luego conviértelo con Imprimir a PDF → más molesto, pero produce IOCs distintos a la Opción 1.

Si alguien descubre cómo lograr la Opción 2 con letras invisibles, te debo una bebida. Abre un issue y te daré crédito en el README.

Uso

Toda la funcionalidad se expone a través de una única CLI con cuatro subcomandos.

create — Genera la familia de fuentes para usar en archivos HTML o DOC

root@kitploit:~
evilfonttool create <reference_font> <output_dir> <font_name>
ArgumentoDescripción
reference_fontRuta a una fuente .ttf o .woff
output_dirDirectorio donde se escribirán las fuentes y el CSS

Ejemplo:

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

Salidas:

  • output/fonts/*.woff — fuentes web, una por carácter
  • output/ttffonts/*.ttf — fuentes TTF para incrustar en documentos
  • output/fonts.css — declaraciones @font-face para uso web

Formato de archivo de entrada

  • Archivos .txt planos.
  • Cada línea de computer_file debe ser igual o más larga que la línea correspondiente en human_file
  • Las líneas se emparejan por posición (línea 1 con línea 1, etc.)

web — Genera un archivo HTML con Evil Font

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

Requiere que fonts.css y las fuentes generadas estén en el directorio de salida para que el archivo HTML pueda usarlas (o cambia la ruta en el archivo HTML).

ArgumentoDescripción
input_human_fileTexto visible para los lectores humanos. Puede tener varias líneas
input_computer_fileTexto visible para máquinas / IA. Puede tener varias líneas
output_fileRuta para el archivo HTML generado

Ejemplo:

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

doc — Genera un archivo DOCX con Evil Font

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

El font_name debe coincidir con el nombre usado en el paso create. Las fuentes TTF deben estar instaladas en el sistema, incrustadas mediante --ttf-dir, o incrustadas manualmente en Word (archivo -> opciones -> guardar -> incrustar fuentes) para que el engaño se renderice correctamente.

La opción "incrustar fuentes" al guardar de Word funciona bien, pero la de LibreOffice no — nunca logré que incrustara Evil Fonts correctamente. Usa --ttf-dir en su lugar: EvilFontTool incrusta las fuentes por sí mismo, directamente en el .docx, sin depender de la incrustación de Word ni de LibreOffice.

Ejemplo:

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

pdf — Convierte un DOCX con Evil Font en un PDF seguro para copiar y pegar

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]

Renderiza el DOCX con LibreOffice para que el PDF se vea idéntico al documento y luego superpone la carga útil oculta como una capa de copia invisible, de modo que sobrevive al copiar y pegar en cualquier visor.

Windows: Este comando es experimental en Windows y puede que no funcione como se espera.

Requiere LibreOffice (soffice) y poppler-utils — consulta Dependencias.

Ejemplo:

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

Uso ético y descargo de responsabilidad

Eres responsable de cómo uses esta herramienta. Desplegar esta técnica contra sistemas o individuos sin autorización explícita no es ético y puede ser ilegal. Los autores proporcionan esta herramienta para ayudar a los defensores a comprender y probar esta clase de vulnerabilidad — no para habilitar ataques.


Cómo mantenerse a salvo de Evil Fonts

Esta herramienta fue creada para ayudar a los red teamers a validar los riesgos de los ataques basados en fuentes contra sus organizaciones. También fue creada para ayudar a los blue teamers, investigadores y propietarios de sistemas a comprender las brechas de seguridad que deja confiar intrínsecamente en fuentes proporcionadas por el usuario. A continuación se presentan algunas recomendaciones prácticas para individuos y para la industria con el fin de abordar o mitigar el problema que las fuentes plantean en los sistemas operativos y aplicaciones modernos.

¿Qué puedo hacer contra Evil Fonts?

  • No confíes en ningún contenido proporcionado por fuentes no confiables. Verifica los remitentes de correo y comprueba los nombres de dominio.
  • Verifica los comandos después de pegarlos, antes de ejecutarlos.
  • Nunca ejecutes comandos que no entiendas.
  • No ejecutes comandos que canalicen la salida de curl directamente a bash / Invoke-Expression. Es fácil para un atacante cambiar el sitio web del que estás descargando.
  • Nunca abras adjuntos de correo de fuentes no confiables.
  • Recuerda que Evil Fonts dependen de engañar a un observador para ser efectivas. Un usuario debe realizar una acción para que Evil Fonts supongan un riesgo. Sin realizar una acción arriesgada, Evil Fonts no pueden afectarte.
  • No subas documentos creados por otra persona a herramientas de IA.

¿Qué puede hacer la industria para protegerse contra Evil Fonts?

  • No permitir que las fuentes personalizadas se rendericen en Vista Protegida (Microsoft Office Suite).
  • No permitir que los usuarios introduzcan fuentes personalizadas, o limitar el número de fuentes personalizadas.
  • Tratar un gran número de fuentes personalizadas en una página web o documento de Word como una señal de malware.
  • Advertir a los usuarios que usan Win + R con un popup aterrador que diga lo arriesgado que es la primera vez que lo hacen (no sé cómo esto no existe ya...).
  • Al procesar documentos con IA, renderizar el documento a una imagen y extraer el texto con OCR. Esto tiene el beneficio adicional de proteger contra imágenes que contienen texto.
  • No ignorar las fuentes proporcionadas por el usuario en los modelos de amenazas.
  • Tratar las fuentes proporcionadas por el usuario como lo que son: entrada de usuario no confiable.

Contribuciones

Las contribuciones son bienvenidas. Si has encontrado una nueva superficie de ataque, una mejora al pipeline de generación de fuentes o una técnica de defensa que valga la pena documentar, abre un issue o un PR.

  1. Haz un fork del repositorio
  2. Crea una rama de funcionalidad (git checkout -b feature/my-feature)
  3. Haz commit de tus cambios
  4. Abre un pull request con una descripción clara de qué cambió y por qué

¡Ayuda, algo no funciona!

Esta herramienta es muy difícil de probar debido a la complejidad de los documentos de Word, PDFs y fuentes. Si encuentras un problema reproducible, abre un issue en GitHub y lo atenderé tan pronto como pueda.

Por favor incluye lo siguiente en el issue:

  • Sistema operativo + versión de LibreOffice, y dónde estás viendo el archivo (Word / LibreOffice / algún otro).
  • Si las fuentes están instaladas, incrustadas o ninguna de las dos.
  • El comando exacto que ejecutaste y cualquier salida de terminal (especialmente advertencias de mismatch).
  • Un .docx / entrada mínimo que lo reproduzca, si puedes compartirlo.
  • Cualquier otra cosa que pudiera estar causando los problemas.
Descargar herramienta
font_namePrefijo del nombre interno para la familia de fuentes generada
ArgumentoDescripción
input_human_fileTexto visible para los lectores humanos. Puede tener varias líneas
input_computer_fileTexto visible para máquinas / IA. Puede tener varias líneas
output_fileRuta para el archivo DOCX generado
font_nameNombre de la familia de fuentes (debe coincidir con el paso create)
--authorMetadatos del autor del documento DOCX (por defecto: ninguno)
--ttf-dirDirectorio de TTFs de Evil Font (p. ej. <output_dir>/ttffonts). Si se indica, las fuentes realmente usadas se incrustan directamente en el .docx, de modo que el engaño se renderice correctamente sin instalarlas en todo el sistema. Solo incrusta letras incluidas en el archivo human.
ArgumentoDescripción
input_docxRuta al DOCX con Evil Font (del paso doc)
output_fileRuta para el archivo PDF generado
--ttf-dirDirectorio de TTFs de Evil Font (p. ej. <output_dir>/ttffonts), expuesto a LibreOffice para que el disfraz se renderice. Omítelo solo si las fuentes están instaladas en todo el sistema o incrustadas en el archivo
--dpiCalidad de rasterización de la capa visible (por defecto: 200)
--sofficeRuta al binario de LibreOffice (por defecto: soffice)
--ink-fontTTF para la capa de copia invisible (por defecto: una sans del sistema)
--titleMetadatos del título del documento PDF (por defecto: Untitled)
--authorMetadatos del autor del documento PDF (por defecto: ninguno)
--subjectMetadatos del asunto del documento PDF (por defecto: ninguno)
--producerMetadatos del productor del documento PDF (por defecto: ninguno)