Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
TriforceAFL — AFL/QEMU फज़िंग, पूर्ण-सिस्टम इम्यूलेशन के साथ। | Kitploit
उपकरण/GitHubGitHub/nccgroup/triforceafl
गतिशील विश्लेषण (सैंडबॉक्सिंग)भेद्यता विश्लेषणफज़िंगपेनिट्रेशन टेस्टिंगबाइनरी विश्लेषण
GitHubnccgroup/triforceafl

TriforceAFL

AFL/QEMU फज़िंग, पूर्ण-सिस्टम इम्यूलेशन के साथ।

रिपॉजिटरी देखें
644137179 साल पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

नया: जो लोग TriforceAFL और TLSF के साथ प्रयोग करना चाहते हैं, उनके लिए Richard Johnson ने एक Dockerfile बनाई है जो दोनों को इंस्टॉल करती है (और आपके लिए Linux कर्नेल भी बनाती है)। यह यहाँ उपलब्ध है https://hub.docker.com/r/moflow/afl-triforce/tags/।

एक और नई बात: afl-tmin अब forkserver के साथ काम करता है!

https://github.com/nccgroup/TriforceAFL Jesse Hertz [email protected] Tim Newsham [email protected]

यह AFL का एक पैच किया हुआ संस्करण है जो QEMU का उपयोग करके पूर्ण-सिस्टम फ़ज़िंग का समर्थन करता है। शामिल QEMU को अपडेट किया गया है ताकि x86_64 के लिए सिस्टम इम्यूलेटर चलाते समय branch ट्रेसिंग की जा सके। AFL के forkserver को शुरू करने, फ़ज़ सेटिंग्स बनाने, और टेस्ट केस के आरंभ और समाप्ति को चिह्नित करने के लिए अतिरिक्त निर्देश जोड़े गए हैं।

नोट: सभी AFL टूल्स का नए बदलावों के साथ परीक्षण नहीं किया गया है। इन टूल्स का कुछ परीक्षण किया गया है:

  • afl-fuzz - -QQ समर्थन के लिए पैच किया गया
  • afl-showmap - -QQ और forkserver समर्थन के लिए पैच किया गया (batching के साथ)
  • afl-cmin - -QQ समर्थन और forkserver उपयोग के लिए पैच किया गया, stdin अब समर्थित नहीं है
  • afl-analyze - -QQ समर्थन के लिए पैच किया गया
  • afl-tmin - -QQ समर्थन के लिए पैच किया गया, लेकिन forkserver का समर्थन नहीं करता!

निर्माण के लिए:

make


कवरेज मैप प्राप्त करने के लिए:

echo hello > /tmp/hello ./afl-showmap -o coverage.txt -QQ --
./afl-qemu-system-trace -kernel ../bzImage
-initrd ../initramfs.cpio.gz -m 1G -nographic
-append "console=ttyS0" -aflFile /tmp/hello cat coverage.txt


फ़ज़ करने के लिए:

figure out what addrs to use below...

egrep ' (panic|log_store)$' ../mykern/kallsyms ffffffff8108e570 t log_store ffffffff8181064b T panic

mkdir inputs echo hello > inputs/hello ./afl-fuzz -i inputs -o outputs -QQ --
afl-qemu-system-trace -kernel bzImage -initrd root.cpio.gz
-m 1G -nographic -append "console=ttyS0"
-aflPanicAddr ffffffff8181064b -aflDmesgAddr ffffffff8108e570
-aflFile @@

(नोट: "-Q" विकल्प का उपयोग करते समय के विपरीत, "-QQ" विकल्प का उपयोग करते समय आपको afl-qemu-system-trace की पूरी कमांड लाइन निर्दिष्ट करनी होगी)।

AFL के इस संशोधित संस्करण का उपयोग कैसे करें, इसके अधिक विवरण के लिए, हमारा Linux syscall फ़ज़र देखें: https://github.com/nccgroup/TriforceLinuxSyscallFuzzer.


नए AFL फ़्लैग: -QQ - user-mode (-Q) के बजाय पूर्ण-सिस्टम इम्यूलेशन में qemu का उपयोग करें

नए QEMU फ़्लैग: -aflFile - फ़ज़र इनपुट वाली फ़ाइल का नाम -aflPanicAddr - panic पहचान के लिए कर्नेल panic एड्रेस का पता -aflDmesgAddr - लॉगिंग का पता लगाने और लॉग संदेशों को इंटरसेप्ट करने के लिए dmesg लॉगिंग फ़ंक्शन का Linux कर्नेल एड्रेस

नए QEMU निर्देश: 0f 24 - aflCall edi=1 startForkserver(esi=enableTicks) AFL का fork server शुरू करें। इस बिंदु के बाद प्रत्येक टेस्ट एक अलग forked child में चलेगा। यदि enableTicks गैर-शून्य है, तो QEMU child को fork करने के बाद CPU का टाइमर फिर से सक्षम करेगा, अन्यथा इसे सक्षम नहीं किया जाएगा। edi=2 getWork(esi=ptr, edx=sz) ptr[0..sz] को अगले इनपुट टेस्ट केस से भरें। भरा गया वास्तविक आकार लौटाता है (<= sz)। edi=3 startWork(esi=ptr) AFL को ट्रेसिंग शुरू करने के लिए कहें। तर्क एक बफर की ओर इशारा करता है जिसमें दो quadwords हैं जो ट्रेस किए जाने वाले कोड के आरंभ और समाप्ति एड्रेस देते हैं। इस सीमा के बाहर के निर्देश ट्रेस नहीं किए जाते हैं। edi=4 doneWork(esi=exitCode) AFL को बताएं कि टेस्ट केस पूरा हो गया है। यदि panic का पता चलता है, तो AFL टेस्ट केस को तुरंत रोक देगा। अन्यथा यह doneWork कॉल होने तक चलता रहेगा। निर्दिष्ट exitCode AFL को लौटा दिया जाता है। (कोड सभी exit codes में 64 मान OR कर सकता है, हालाँकि वर्तमान में ऐसा नहीं करता, यदि टेस्ट केस के दौरान कोई dmesg लॉग पाया गया हो।)

नया QEMU ब्लॉक ड्राइवर: -drive filename=privmem: यह ब्लॉक ड्राइवर ड्राइव की इमेज को copy-on-write मेमोरी में रखता है ताकि परिवर्तन कभी डिस्क पर सहेजे न जाएँ। एक टेस्ट केस द्वारा किए गए परिवर्तन अन्य टेस्ट केसों से अलग रखे जाते हैं।

================== american fuzzy lop

Michal Zalewski [email protected] द्वारा लिखित और अनुरक्षित

कॉपीराइट 2013, 2014, 2015, 2016 Google Inc. सर्वाधिकार सुरक्षित। Apache License, Version 2.0 की शर्तों और नियमों के अंतर्गत जारी।

नए संस्करणों और अतिरिक्त जानकारी के लिए देखें: http://lcamtuf.coredump.cx/afl/

अन्य उपयोगकर्ताओं से विचारों का आदान-प्रदान करने या प्रमुख नई सुविधाओं के बारे में सूचित होने के लिए, [email protected] पर मेल भेजें।

** यदि आपके पास इस फ़ाइल को पढ़ने का समय नहीं है तो QuickStartGuide.txt देखें। **

  1. निर्देशित फ़ज़िंग की चुनौतियाँ

फ़ज़िंग वास्तविक दुनिया के सॉफ़्टवेयर में सुरक्षा समस्याओं की पहचान करने के लिए सबसे शक्तिशाली और सिद्ध रणनीतियों में से एक है; यह आज तक सुरक्षा-महत्वपूर्ण सॉफ़्टवेयर में पाए गए रिमोट कोड एक्ज़ीक्यूशन और प्रिविलेज एस्केलेशन बगों के विशाल बहुमत के लिए ज़िम्मेदार है।

दुर्भाग्य से, फ़ज़िंग अपेक्षाकृत उथली भी है; अंधा, यादृच्छिक उत्परिवर्तन परीक्षण किए जा रहे कोड में कुछ कोड पथों तक पहुँचने की संभावना को बहुत कम कर देते हैं, जिससे कुछ कमज़ोरियाँ इस तकनीक की पहुँच से पूरी तरह बाहर रह जाती हैं।

इस समस्या को हल करने के कई प्रयास हुए हैं। शुरुआती दृष्टिकोणों में से एक

  • जिसे Tavis Ormandy ने अग्रणी बनाया - corpus आसवन (corpus distillation) है। यह विधि उम्मीदवार फ़ाइलों के एक विशाल, उच्च-गुणवत्ता वाले corpus से दिलचस्प सीड्स का एक उपसमुच्चय चुनने के लिए कवरेज संकेतों पर निर्भर करती है, और फिर उन्हें पारंपरिक तरीकों से फ़ज़ करती है। यह दृष्टिकोण असाधारण रूप से अच्छा काम करता है, लेकिन इसके लिए ऐसा corpus आसानी से उपलब्ध होना आवश्यक है। इसके अलावा, ब्लॉक कवरेज माप प्रोग्राम स्थिति की केवल एक बहुत ही सरल समझ प्रदान करते हैं, और लंबी अवधि में फ़ज़िंग प्रयास को निर्देशित करने के लिए कम उपयोगी होते हैं।

अन्य, अधिक परिष्कृत शोध ने प्रोग्राम फ़्लो विश्लेषण ("concolic execution"), प्रतीकात्मक निष्पादन (symbolic execution), या स्थैतिक विश्लेषण जैसी तकनीकों पर ध्यान केंद्रित किया है। ये सभी विधियाँ प्रयोगात्मक सेटिंग्स में अत्यंत आशाजनक हैं, लेकिन व्यावहारिक उपयोगों में विश्वसनीयता और प्रदर्शन समस्याओं से ग्रस्त होती हैं - और वर्तमान में "डंब" फ़ज़िंग तकनीकों का कोई व्यवहार्य विकल्प प्रदान नहीं करती हैं।

  1. afl-fuzz दृष्टिकोण

American Fuzzy Lop एक brute-force फ़ज़र है जो एक अत्यंत सरल लेकिन अत्यंत मज़बूत instrumentation-निर्देशित आनुवंशिक एल्गोरिदम से जुड़ा है। यह प्रोग्राम नियंत्रण प्रवाह में सूक्ष्म, स्थानीय-स्तरीय परिवर्तनों को सहजता से पकड़ने के लिए एज कवरेज के एक संशोधित रूप का उपयोग करता है।

थोड़ा सरल करते हुए, समग्र एल्गोरिदम को इस प्रकार संक्षेपित किया जा सकता है:

  1. उपयोगकर्ता-आपूर्ति किए गए प्रारंभिक टेस्ट केसों को क्यू में लोड करें,

  2. क्यू से अगली इनपुट फ़ाइल लें,

  3. टेस्ट केस को सबसे छोटे आकार में trim करने का प्रयास करें जो प्रोग्राम के मापे गए व्यवहार को नहीं बदलता,

  4. पारंपरिक फ़ज़िंग रणनीतियों की एक संतुलित और सुशोधित विविधता का उपयोग करके फ़ाइल को बार-बार उत्परिवर्तित करें,

  5. यदि उत्पन्न उत्परिवर्तनों में से कोई भी instrumentation द्वारा दर्ज की गई नई स्थिति संक्रमण का परिणाम देता है, तो उत्परिवर्तित आउटपुट को क्यू में एक नई प्रविष्टि के रूप में जोड़ें।

  6. चरण 2 पर जाएँ।

खोजे गए टेस्ट केसों को समय-समय पर समाप्त भी किया जाता है ताकि उन्हें हटाया जा सके जो नए, उच्च-कवरेज खोजों द्वारा अप्रचलित हो गए हैं; और कई अन्य instrumentation-संचालित प्रयास न्यूनीकरण चरणों से गुजरते हैं।

फ़ज़िंग प्रक्रिया के एक पार्श्व परिणाम के रूप में, टूल दिलचस्प टेस्ट केसों का एक छोटा, स्व-निहित corpus बनाता है। ये अन्य श्रम- या संसाधन-गहन परीक्षण व्यवस्थाओं को सीड करने के लिए अत्यंत उपयोगी हैं - उदाहरण के लिए, ब्राउज़रों, ऑफ़िस अनुप्रयोगों, ग्राफ़िक्स सुइट्स, या बंद-स्रोत टूल्स का स्ट्रेस-टेस्टिंग करने के लिए।

टूल डाउनलोड करें