
रेड टीमिंग, सुरक्षा अनुसंधान और बाकी सब कुछ के लिए एक फ़ॉन्ट-आधारित छल उपकरण।
लाल टीमिंग, सुरक्षा अनुसंधान और बाकी सबके लिए एक फ़ॉन्ट-आधारित धोखा उपकरण।
EvilFontTool एक दस्तावेज़ के अंदर मशीन-पठनीय टेक्स्ट छुपाता है जो मानव पाठक को पूरी तरह से अलग टेक्स्ट प्रदर्शित करता है। यह Evil Fonts का उपयोग करके ऐसा करता है — ऐसे फ़ॉन्ट जो जानबूझकर दर्शक को धोखा देते हैं, कंप्यूटर द्वारा समझे गए अक्षर से अलग अक्षर प्रदर्शित करके। फ़ॉन्ट ग्लिफ़्स को रीमैप करके, दस्तावेज़ के दृश्य वर्ण मनुष्यों को एक चीज़ दिखाते हैं जबकि टर्मिनल, AI सिस्टम और क्लिपबोर्ड कॉपी-पेस्ट कुछ और देखते हैं।
वर्ड docx डेमो मोबाइल पर काम नहीं करते, क्योंकि मोबाइल फ़ोन फ़ॉन्ट रेंडर करने का तरीका अलग होता है।
pip install evilfonttool
git clone https://github.com/DoctorEww/EvilFontTool.git
cd EvilFontTool
pip install .
विकास के लिए (एडिटेबल इंस्टॉल):
pip install -e .
pip के माध्यम से स्वचालित रूप से स्थापित:
fonttools — फ़ॉन्ट पार्सिंग और हेरफेरbrotli — WOFF2 कम्प्रेशन (fonttools द्वारा उपयोग किया जाता है)python-docx — DOCX निर्माणreportlab — PDF निर्माणpdf2image — PDF-से-छवि रूपांतरणpdfminer.six — PDF टेक्स्ट/लेआउट निष्कर्षणPillow — PDF पाइपलाइन के लिए छवि प्रबंधनसिस्टम आवश्यकताएँ (pip द्वारा स्थापित नहीं — आपके PATH पर होनी चाहिए):
pdf कमांड के लिए आवश्यक, जो DOCX को PDF में बदलने के लिए soffice --headless को बुलाता है। pdf कमांड विंडोज़ पर प्रयोगात्मक है और इच्छित रूप से काम नहीं कर सकता है।
sudo apt install libreofficebrew install --cask libreofficepdf कमांड के लिए PDF पृष्ठों को रेंडर करने हेतु pdf2image द्वारा आवश्यक
sudo apt install poppler-utilsbrew install popplerpoppler को ~\Documents\poppler में स्थापित करें और path में जोड़ें।
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"
/usr/share/fontsC:\Windows\Fontspdf कमांड विंडोज़ पर प्रयोगात्मक है और इच्छित रूप से काम नहीं कर सकता है।pdf कमांड जटिल वर्ड दस्तावेज़ों (जैसे कॉलम) पर काम नहीं करता। यदि आप वास्तव में कोई ऐसी सुविधा चाहते हैं जिसे वह समर्थन दे तो बेझिझक एक issue खोलें।doc --ttf-dir <ttffonts_dir> का उपयोग करें (EvilFontTool उन्हें स्वयं एम्बेड करता है) या विंडोज़ पर Word का उपयोग करें। LibreOffice का अपना "embed fonts" विकल्प Evil Fonts के लिए काम नहीं करता।pdf कमांड Evil Fonts पर बिल्कुल भी निर्भर नहीं करता। यह DOCX को एक छवि में रेंडर करता है (इसलिए दृश्य पृष्ठ एक चित्र है, टेक्स्ट नहीं), फिर वास्तविक कंप्यूटर टेक्स्ट को पूरी तरह से अदृश्य, चयन योग्य टेक्स्ट के रूप में ऊपर खींचता है। कॉपी-पेस्ट और टेक्स्ट निष्कर्षण उस अदृश्य परत को पढ़ते हैं। कुछ अन्य उपकरण भी ऐसा कर सकते हैं, लेकिन जब आपके पास पहले से एक पसंदीदा DOCX हो तो pdf कमांड जितना आसान कुछ नहीं है।
यदि आप एक वास्तविक Evil Font PDF चाहते हैं, तो आपको वर्ड दस्तावेज़ को अदृश्य अक्षरों के बिना बनाना होगा (अदृश्य अक्षर PDF रूपांतरण में बच नहीं पाते)। वहाँ से, सीधे Word से निर्यात करें या "Print to PDF" का उपयोग करें। यह सब कुछ एक ही परत में रखता है, जिससे दस्तावेज़ को pdf कमांड द्वारा उपयोग की जाने वाली प्रसिद्ध दो-परत चाल से अलग IOC मिलते हैं। pdf कमांड केवल इसलिए मौजूद है क्योंकि वह मैन्युअल प्रक्रिया थकाऊ है, और कभी-कभी आप Word दस्तावेज़ की एक त्वरित PDF प्रति चाहते हैं।
TLDR;
यदि किसी को पता चलता है कि अदृश्य अक्षरों के साथ विकल्प 2 कैसे पूरा किया जाए, तो मैं आपको एक ड्रिंक दूँगा। एक issue खोलें और मैं आपको README में श्रेय दूँगा।
सभी कार्यक्षमता चार उप-कमांड वाले एकल CLI के माध्यम से उपलब्ध है।
create — HTML या DOC फ़ाइलों में उपयोग के लिए फ़ॉन्ट परिवार उत्पन्न करेंevilfonttool create <reference_font> <output_dir> <font_name>
| तर्क | विवरण |
|---|---|
reference_font | स्रोत .ttf या .woff फ़ॉन्ट का पथ |
output_dir | फ़ॉन्ट और CSS लिखने के लिए निर्देशिका |
उदाहरण:
evilfonttool create fonts/Arial.ttf output/ 'Arial'
आउटपुट:
output/fonts/*.woff — वेब फ़ॉन्ट, प्रति वर्ण एकoutput/ttffonts/*.ttf — दस्तावेज़ एम्बेडिंग के लिए TTF फ़ॉन्टoutput/fonts.css — वेब उपयोग के लिए @font-face घोषणाएँ.txt फ़ाइलें।computer_file में प्रत्येक पंक्ति human_file की संगत पंक्ति के बराबर या लंबी होनी चाहिए।web — एक Evil Font HTML फ़ाइल उत्पन्न करेंevilfonttool web <human_file> <computer_file> <output_file>
HTML फ़ाइल उपयोग कर सके इसके लिए
fonts.cssऔर उत्पन्न फ़ॉन्ट को आउटपुट निर्देशिका में होना आवश्यक है (या HTML फ़ाइल में पथ बदलें)।
| तर्क | विवरण |
|---|---|
input_human_file | मानव पाठकों को दिखाई देने वाला टेक्स्ट। कई पंक्तियाँ हो सकती हैं |
input_computer_file | मशीनों / AI को दिखाई देने वाला टेक्स्ट। कई पंक्तियाँ हो सकती हैं |
output_file | उत्पन्न HTML फ़ाइल का पथ |
उदाहरण:
evilfonttool web human.txt computer.txt output/index.html
doc — एक Evil Font DOCX फ़ाइल उत्पन्न करेंevilfonttool doc <human_file> <computer_file> <output_file> <font_name> [--author AUTHOR] [--ttf-dir DIR]
font_nameकोcreateचरण में उपयोग किए गए नाम से मेल खाना चाहिए। धोखे के सही ढंग से रेंडर होने के लिए TTF फ़ॉन्ट सिस्टम पर स्थापित होने चाहिए,--ttf-dirके माध्यम से एम्बेड किए जाने चाहिए, या Word में मैन्युअल रूप से एम्बेड किए जाने चाहिए (file -> options -> save -> embed fonts)।
Word का अपना "embed fonts" सेव विकल्प ठीक काम करता है, लेकिन LibreOffice का नहीं — मैं इसे कभी Evil Fonts को सही ढंग से एम्बेड नहीं करवा सका। इसके बजाय --ttf-dir पास करें: EvilFontTool फ़ॉन्ट को स्वयं, सीधे .docx में एम्बेड करता है, बिना Word या LibreOffice की एम्बेडिंग पर निर्भर हुए।
उदाहरण:
evilfonttool doc human.txt computer.txt output/secret.docx MyFont --author "Finance Team" --ttf-dir output/ttffonts
pdf — एक Evil Font DOCX को कॉपी-पेस्ट-सुरक्षित PDF में बदलें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 दस्तावेज़ के समान दिखे, फिर छिपे हुए पेलोड को एक अदृश्य कॉपी परत के रूप में ऊपर रखता है ताकि यह हर व्यूअर में कॉपी-पेस्ट में बचा रहे।
विंडोज़: यह कमांड विंडोज़ पर प्रयोगात्मक है और इच्छित रूप से काम नहीं कर सकता है।
LibreOffice (
soffice) औरpoppler-utilsकी आवश्यकता है — निर्भरताएँ देखें।
उदाहरण:
evilfonttool pdf output/secret.docx output/secret.pdf --ttf-dir output/fonts/ttffonts --title secret
आप इस उपकरण का उपयोग कैसे करते हैं, इसके लिए आप जिम्मेदार हैं। बिना स्पष्ट प्राधिकरण के सिस्टम या व्यक्तियों के खिलाफ इस तकनीक को तैनात करना अनैतिक है और अवैध हो सकता है। लेखक यह उपकरण रक्षकों को इस प्रकार की भेद्यता को समझने और परीक्षण करने में मदद करने के लिए प्रदान करते हैं — हमलों को सक्षम करने के लिए नहीं।
यह उपकरण लाल टीमरों को उनके संगठनों के खिलाफ फ़ॉन्ट-आधारित हमलों के जोखिमों को मान्य करने में मदद करने के लिए बनाया गया था। इसे नीली टीमरों, शोधकर्ताओं और सिस्टम मालिकों को उपयोगकर्ता-आपूर्ति फ़ॉन्ट पर आंतरिक रूप से भरोसा करने से बची सुरक्षा की खामियों को समझने में मदद करने के लिए भी बनाया गया था। आधुनिक ऑपरेटिंग सिस्टम और अनुप्रयोगों में फ़ॉन्ट समस्या को संबोधित करने या कम करने के लिए व्यक्तियों और उद्योग के लिए नीचे कुछ व्यावहारिक सिफारिशें दी गई हैं।
curl आउटपुट को सीधे bash / Invoke-Expression में पाइप करते हैं। हमलावर के लिए आपके द्वारा डाउनलोड की जा रही वेबसाइट को बदलना आसान है।Win + R का उपयोग करने वाले उपयोगकर्ताओं को पहली बार ऐसा करने पर एक डरावने पॉपअप के साथ चेतावनी दें कि यह बहुत जोखिम भरा है (मुझे नहीं पता यह अभी तक एक चीज़ क्यों नहीं है...)।योगदान का स्वागत है। यदि आपने एक नई हमले की सतह, फ़ॉन्ट निर्माण पाइपलाइन में सुधार, या दस्तावेज़ीकरण के लायक एक बचाव तकनीक पाई है, तो कृपया एक issue या PR खोलें।
git checkout -b feature/my-feature)वर्ड दस्तावेज़ों, पीडीएफ और फ़ॉन्ट की जटिलता के कारण इस उपकरण का परीक्षण करना वास्तव में कठिन है। यदि आपको कोई दोहराने योग्य समस्या मिलती है तो कृपया एक GitHub issue खोलें और मैं जल्द से जल्द उस पर ध्यान दूँगा।
कृपया issue में निम्नलिखित शामिल करें:
mismatch चेतावनियाँ)।.docx / इनपुट जो इसे पुनः उत्पन्न करता है, यदि आप साझा कर सकते हैं।font_name | उत्पन्न फ़ॉन्ट परिवार के लिए आंतरिक नाम उपसर्ग |
| तर्क | विवरण |
|---|
input_human_file | मानव पाठकों को दिखाई देने वाला टेक्स्ट। कई पंक्तियाँ हो सकती हैं |
input_computer_file | मशीनों / AI को दिखाई देने वाला टेक्स्ट। कई पंक्तियाँ हो सकती हैं |
output_file | उत्पन्न DOCX फ़ाइल का पथ |
font_name | फ़ॉन्ट परिवार का नाम (create चरण से मेल खाना चाहिए) |
--author | DOCX दस्तावेज़ लेखक मेटाडेटा (डिफ़ॉल्ट: कोई नहीं) |
--ttf-dir | Evil Font TTF की निर्देशिका (जैसे <output_dir>/ttffonts)। यदि दिया गया है, तो वास्तव में उपयोग किए गए फ़ॉन्ट सीधे .docx में एम्बेड हो जाते हैं, इसलिए धोखा उन्हें सिस्टम-व्यापी स्थापित किए बिना सही ढंग से रेंडर होता है। केवल मानव फ़ाइल में शामिल अक्षरों को एम्बेड करता है। |
| तर्क | विवरण |
|---|
input_docx | Evil Font DOCX का पथ (doc चरण से) |
output_file | उत्पन्न PDF फ़ाइल का पथ |
--ttf-dir | Evil Font TTF की निर्देशिका (जैसे <output_dir>/ttffonts), LibreOffice को उजागर की जाती है ताकि भेष रेंडर हो सके। केवल तभी छोड़ें यदि फ़ॉन्ट सिस्टम-व्यापी स्थापित हैं या फ़ाइल में एम्बेडेड हैं |
--dpi | दृश्य परत की रैस्टराइज़ेशन गुणवत्ता (डिफ़ॉल्ट: 200) |
--soffice | LibreOffice बाइनरी का पथ (डिफ़ॉल्ट: soffice) |
--ink-font | अदृश्य कॉपी परत के लिए TTF (डिफ़ॉल्ट: एक सिस्टम सैन्स) |
--title | PDF दस्तावेज़ शीर्षक मेटाडेटा (डिफ़ॉल्ट: Untitled) |
--author | PDF दस्तावेज़ लेखक मेटाडेटा (डिफ़ॉल्ट: कोई नहीं) |
--subject | PDF दस्तावेज़ विषय मेटाडेटा (डिफ़ॉल्ट: कोई नहीं) |
--producer | PDF दस्तावेज़ निर्माता मेटाडेटा (डिफ़ॉल्ट: कोई नहीं) |