Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
도구/GitHubGitHub/doctoreww/evilfonttool
Social EngineeringLearning & EducationRed TeamingAI SecurityAdversarial AttackLabs & Practice
GitHubdoctoreww/evilfonttool

EvilFontTool

레드 팀 활동, 보안 연구, 그리고 기타 모든 용도를 위한 폰트 기반 기만 도구입니다.

저장소 보기
2572011일 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
웹사이트

EvilFontTool

레드 팀 운영, 보안 연구, 그리고 그 외 다양한 용도를 위한 폰트 기반 기만 도구입니다.

EvilFontTool은 사람이 읽을 때 완전히 다른 텍스트를 표시하는 문서 안에 기계가 읽을 수 있는 텍스트를 숨깁니다. 이는 Evil Fonts를 사용하여 수행됩니다. Evil Fonts는 컴퓨터가 이해하는 문자와 다른 글자를 렌더링하여 보는 사람을 의도적으로 속이는 폰트입니다. 폰트 글리프를 재매핑함으로써 문서의 표시 문자는 사람에게는 한 가지를 보여주지만 터미널, AI 시스템, 클립보드 복사-붙여넣기에는 다른 내용으로 보입니다.

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 — DOCX를 PDF로 변환하기 위해 soffice --headless를 호출하는 pdf 명령에 필요합니다. pdf 명령은 Windows에서는 실험적이며 의도한 대로 작동하지 않을 수 있습니다.
    • Ubuntu/Debian: sudo apt install libreoffice
    • macOS: brew install --cask libreoffice
    • Windows: 설치 프로그램 다운로드
  • poppler-utils — pdf 명령을 위해 PDF 페이지를 렌더링하는 pdf2image에 필요합니다
    • Ubuntu/Debian: sudo apt install poppler-utils
    • macOS: brew install poppler
    • Windows: Windows용 poppler(Library\bin 폴더를 path에 추가) 또는 아래를 참조하세요.

Poppler 설치 Windows 도우미 스크립트

~\Documents\poppler에 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 명령은 다단(columns)과 같은 복잡한 Word 문서에서는 작동하지 않습니다. 정말 지원되길 원하는 기능이 있다면 이슈를 열어 주세요.
  • 폰트를 포함하려면 doc --ttf-dir <ttffonts_dir>을 사용하거나(EvilFontTool이 직접 포함) Windows의 Word를 사용하세요. LibreOffice 자체의 "글꼴 포함" 옵션은 Evil Fonts에는 작동하지 않습니다.

PDF의 문제점 설명

pdf 명령은 Evil Fonts에 전혀 의존하지 않습니다. DOCX를 이미지로 렌더링한 다음(따라서 보이는 페이지는 텍스트가 아닌 그림), 그 위에 실제 컴퓨터 텍스트를 완전히 보이지 않는 선택 가능한 텍스트로 그립니다. 복사-붙여넣기와 텍스트 추출은 대신 그 보이지 않는 레이어를 읽습니다. 이 작업을 수행할 수 있는 다른 도구도 몇 가지 있지만, 마음에 드는 DOCX가 이미 있을 때 pdf 명령만큼 쉬운 방법은 없습니다.

진정한 Evil Font PDF를 원한다면 보이지 않는 문자 없이 Word 문서를 만들어야 합니다(보이지 않는 문자는 PDF 변환 과정에서 유지되지 않습니다). 그런 다음 Word에서 직접 내보내거나 "PDF로 인쇄"를 사용하세요. 이렇게 하면 모든 것이 단일 레이어로 유지되어 pdf 명령이 사용하는 잘 알려진 2중 레이어 방식과는 다른 IOCs를 문서에 부여합니다. pdf 명령은 순전히 그 수동 과정이 번거롭고, 때로는 Word 문서의 빠른 PDF 사본이 필요하기 때문에 존재합니다.

요약;

  • 옵션 1: (쉬운 방법) pdf 명령 사용 → 2중 레이어 PDF, 다른 도구와 동일한 메커니즘(더 잘 알려져 있고 탐지 가능).
  • 옵션 2: (진짜 Evil Font 방식) 보이지 않는 폰트 없이 Word 문서를 만든 다음 "PDF로 인쇄"로 변환 → 더 번거롭지만 옵션 1과는 다른 IOCs를 생성.

보이지 않는 문자를 포함한 옵션 2를 해내는 방법을 알아내는 분이 있으면 한잔 사겠습니다. 이슈를 열어 주시면 README에 크레딧을 남기겠습니다.

사용법

모든 기능은 4개의 하위 명령을 가진 단일 CLI로 제공됩니다.

create — HTML 또는 DOC 파일에서 사용할 폰트 패밀리 생성

root@kitploit:~
evilfonttool create <reference_font> <output_dir> <font_name>
인자설명
reference_font.ttf 또는 .woff 소스 폰트의 경로
output_dir폰트와 CSS를 작성할 디렉터리
font_name생성된 폰트 패밀리의 내부 이름 접두사

예시:

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 — Evil Font HTML 파일 생성

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

HTML 파일이 사용할 수 있도록 fonts.css와 생성된 폰트가 출력 디렉터리에 있어야 합니다(또는 HTML 파일에서 경로를 변경하세요).

인자설명
input_human_file사람 독자에게 보이는 텍스트. 여러 줄 가능
input_computer_file기계/AI에 보이는 텍스트. 여러 줄 가능
output_file생성된 HTML 파일의 경로

예시:

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

doc — Evil Font DOCX 파일 생성

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은 Word나 LibreOffice의 포함 기능에 전혀 의존하지 않고 폰트를 직접 .docx에 포함시킵니다.

예시:

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

pdf — Evil Font DOCX를 복사-붙여넣기 안전한 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]

LibreOffice로 DOCX를 렌더링하여 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로부터 안전하게 지내기

이 도구는 레드 팀이 자신의 조직에 대한 폰트 기반 공격의 위험을 검증할 수 있도록 돕기 위해 만들어졌습니다. 또한 블루 팀, 연구자, 시스템 소유자가 사용자가 제공한 폰트를 본질적으로 신뢰함으로써 발생하는 보안 공백을 이해할 수 있도록 만들어졌습니다. 아래는 현대 운영 체제와 애플리케이션에서 폰트가 제기하는 문제를 해결하거나 완화하기 위한 개인과 업계를 위한 실용적인 권장 사항입니다.

Evil Fonts에 대해 내가 할 수 있는 일은 무엇인가요?

  • 신뢰할 수 없는 출처에서 제공된 콘텐츠는 신뢰하지 마세요. 이메일 발신자와 도메인 이름을 확인하세요.
  • 붙여넣은 후, 실행하기 전에 명령을 확인하세요.
  • 이해하지 못하는 명령은 절대 실행하지 마세요.
  • curl 출력을 bash / Invoke-Expression로 직접 파이프하는 명령을 실행하지 마세요. 공격자가 파일을 다운로드하는 웹사이트를 바꿔치기하기 쉽습니다.
  • 신뢰할 수 없는 출처의 이메일 첨부 파일은 절대 열지 마세요.
  • Evil Fonts는 효과를 내기 위해 관찰자를 속이는 데 의존한다는 점을 기억하세요. Evil Fonts가 위험이 되려면 사용자가 어떤 행동을 취해야 합니다. 위험한 행동을 취하지 않는다면 Evil Fonts는 당신에게 영향을 미칠 수 없습니다.
  • 다른 사람이 만든 문서를 AI 도구에 업로드하지 마세요.

업계는 Evil Fonts로부터 보호하기 위해 무엇을 할 수 있나요?

  • 보호된 보기(Microsoft Office 제품군)에서 사용자 지정 폰트가 렌더링되지 않도록 하세요.
  • 사용자가 사용자 지정 폰트를 가져오지 못하게 하거나 사용자 지정 폰트 수를 제한하세요.
  • 웹페이지나 Word 문서의 다수의 사용자 지정 폰트를 악성코드 신호로 취급하세요.
  • Win + R을 사용하는 사용자에게 처음 사용 시 이것이 매우 위험하다는 무서운 팝업으로 경고하세요(이미 구현되어 있지 않은 게 이상할 정도로...).
  • AI로 문서를 처리할 때는 문서를 이미지로 렌더링하고 OCR로 텍스트를 추출하세요. 이는 텍스트가 포함된 이미지로부터 보호하는 추가 이점도 있습니다.
  • 위협 모델에서 사용자 제공 폰트를 무시하지 마세요.
  • 사용자 제공 폰트를 있는 그대로 취급하세요: 신뢰할 수 없는 사용자 입력.

기여

기여는 언제나 환영합니다. 새로운 공격 표면, 폰트 생성 파이프라인의 개선, 또는 문서화할 가치가 있는 방어 기법을 발견했다면 이슈나 PR을 열어 주세요.

  1. 저장소를 포크하세요
  2. 기능 브랜치를 만드세요(git checkout -b feature/my-feature)
  3. 변경 사항을 커밋하세요
  4. 무엇이 변경되었고 왜 변경되었는지 명확히 설명하는 풀 리퀘스트를 여세요

문제가 해결되지 않아요!

이 도구는 Word 문서, PDF, 폰트의 복잡성 때문에 테스트하기가 매우 어렵습니다. 반복 가능한 문제를 발견하면 GitHub 이슈를 열어 주시면 최대한 빨리 처리하겠습니다.

이슈에 다음 사항을 포함해 주세요:

  • OS + LibreOffice 버전, 그리고 파일을 보는 위치(Word / LibreOffice / 기타).
  • 폰트가 설치되어 있는지, 포함되어 있는지, 아니면 둘 다 아닌지.
  • 실행한 정확한 명령과 모든 터미널 출력(특히 mismatch 경고).
  • 문제를 재현할 수 있는 최소한의 .docx / 입력 파일(공유할 수 있다면).
  • 문제를 일으킬 수 있는 다른 모든 것.
도구 다운로드
인자설명
input_human_file사람에게 보이는 텍스트. 여러 줄 가능
input_computer_file기계/AI에 보이는 텍스트. 여러 줄 가능
output_file생성된 DOCX 파일의 경로
font_name폰트 패밀리 이름(create 단계와 일치해야 함)
--authorDOCX 문서 작성자 메타데이터(기본값: 없음)
--ttf-dirEvil Font TTF 디렉터리(예: <output_dir>/ttffonts). 지정하면 실제 사용된 폰트가 .docx에 직접 포함되어 시스템 전체에 설치하지 않아도 기만이 올바르게 렌더링됩니다. human 파일에 포함된 글자만 포함합니다.
인자설명
input_docxEvil Font DOCX 경로(doc 단계에서 생성된 파일)
output_file생성된 PDF 파일의 경로
--ttf-dirEvil Font TTF 디렉터리(예: <output_dir>/ttffonts). 위장이 렌더링되도록 LibreOffice에 노출됩니다. 폰트가 시스템 전체에 설치되었거나 파일에 포함된 경우에만 생략하세요
--dpi표시되는 레이어의 래스터화 품질(기본값: 200)
--sofficeLibreOffice 바이너리 경로(기본값: soffice)
--ink-font보이지 않는 복사 레이어용 TTF(기본값: 시스템 산세리프 폰트)
--titlePDF 문서 제목 메타데이터(기본값: Untitled)
--authorPDF 문서 작성자 메타데이터(기본값: 없음)
--subjectPDF 문서 주제(subject) 메타데이터(기본값: 없음)
--producerPDF 문서 생성자(producer) 메타데이터(기본값: 없음)