Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
fisy-fuzz — यह पूर्ण फ़ाइल सिस्टम फ़ज़िंग ढाँचा है जिसे मैंने अप्रैल में हैक इन द बॉक्स 2020 लॉकडाउन संस्करण सम्मेलन में प्रस्तुत किया था। | Kitploit
उपकरण/GitHubGitHub/0xricksanchez/fisy-fuzz
भेद्यता विश्लेषणशोषणफज़िंग
GitHub0xricksanchez/fisy-fuzz

fisy-fuzz

यह पूर्ण फ़ाइल सिस्टम फ़ज़िंग ढाँचा है जिसे मैंने अप्रैल में हैक इन द बॉक्स 2020 लॉकडाउन संस्करण सम्मेलन में प्रस्तुत किया था।

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

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

सभी देखें →

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

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

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

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

FI(le) SY(stem) - FUZZer

यह पूर्ण फ़ाइल सिस्टम फ़ज़िंग फ्रेमवर्क है जिसे मैंने अप्रैल में Hack in the Box 2020 Lockdown Edition सम्मेलन में प्रस्तुत किया था।

  • सम्मेलन वार्ता
    • सम्मेलन वार्ता एकल वीडियो
  • सम्मेलन सामग्री

Framework overview

लक्ष्य

इस फ्रेमवर्क का उद्देश्य UNIX सिस्टमों पर कर्नेल सुरक्षा बग्स को उजागर करना है, जिसमें BSD सिस्टमों पर विशेष ध्यान दिया गया है। इसे FreeBSD, OpenBSD और NetBSD के विरुद्ध विकसित और भारी परीक्षण किया गया है, लेकिन Linux-आधारित होस्ट के लिए भी कुछ छोटा समर्थन पहले से मौजूद है। हम UFS और EXT आधारित फ़ाइल सिस्टमों के लिए 100 से अधिक अद्वितीय कर्नेल बग्स को सफलतापूर्वक उजागर करने में सक्षम हुए, साथ ही ZFS के हालिया जोड़ के बारे में भी बहुत अंतर्दृष्टि प्राप्त की।

परीक्षण मामला जनरेटर

makeFS2.py का उपयोग विभिन्न मान्य फ़ाइल सिस्टम उत्पन्न करने के लिए एक स्वतंत्र उपयोगिता के रूप में किया जा सकता है। उपयोग को सम्मेलन सामग्री रिपॉजिटरी में विस्तार से समझाया गया है

आवश्यकताएँ

फ्रेमवर्क का परीक्षण केवल Ubuntu 18.04 पर किया गया है। यह KVM, QEMU और libvirt पर निर्भर है। Requirements.sh सभी आवश्यक निर्भरताओं को स्थापित करता है। फ्रेमवर्क नवीनतम Ubuntu 20.04 रिलीज़ पर पूरी तरह कार्यात्मक हो सकता है। अन्य गैर-apt आधारित होस्ट सिस्टम को आसानी से समर्थित किया जा सकता है और केवल Requirements.sh में मामूली बदलाव की आवश्यकता है। एक बार आवश्यकताओं को पूरा करने के बाद आप सेटअप चरणों के साथ जारी रख सकते हैं!

सेटअप

कृपया SETUP.md देखें। यदि कुछ कदम अस्पष्ट हों तो कृपया संपर्क करें!

फ़ज़ करें!

फ़ज़र शुरू करने के लिए केवल निष्पादित करें: python3 run.py। आपके सेटअप के आधार पर आपको sudo विशेषाधिकारों की आवश्यकता हो सकती है। जब सब कुछ सफलतापूर्वक शुरू हो जाए, तो आप tmux फ़ज़िंग सत्र से जुड़ सकते हैं:

root@kitploit:~
(sudo) tmux attach-session -t fsfuzzer

कॉन्फ़िग

फ्रेमवर्क को स्क्रिप्ट src/config/fuzzing_config.py से कॉन्फ़िगर किया जा सकता है:

root@kitploit:~

# [fuzzing task specs]
# प्रत्येक फ़ज़िंग इंस्टेंस को निर्दिष्ट करने वाले शब्दकोशों की सूची
fuzzer = [
    {
        "name": "fuzz1",  # आंतरिक लेखांकन के लिए कुछ नाम
        "fs_creator_vm": "genBox",  # libvirt में फ़ाइल सिस्टम निर्माण को संभालने वाले VM के लिए नाम, सभी इंस्टेंस में समान हो सकता है
        "fuzzing_vm": "fuzzBox_0",  # libvirt में फ़ाइल सिस्टम निर्माण को संभालने वाले VM के लिए नाम
        "mutation_engine": "radamsa, 0",  # उपयोग करने के लिए म्यूटेशन इंजन, और म्यूटेशन का आकार (radamsa कोई आकार तर्क नहीं लेता)
        "target_fs": "ufs2",  # लक्ष्य फ़ाइल सिस्टम
        "target_size": 15,  # मेगाबाइट में अधिकतम फ़ाइल सिस्टम आकार
        "populate_with_files": 10,  # उत्पन्न होने वाली फ़ाइलों की संख्या
        "max_file_size": 1024,  # प्रत्येक उत्पन्न फ़ाइल के लिए बाइट्स में अधिकतम फ़ाइल आकार
        "enable_dyn_scaling": False,  # डायनामिक स्केलिंग समय-समय पर फ़ाइल सिस्टम आकार को बढ़ाएगा
    },
]

# [credentials]
# VM के रूट उपयोगकर्ता के लिए क्रेडेंशियल्स
# यह अपेक्षित है कि ये सभी इंस्टेंस में समान हों, लेकिन आवश्यक नहीं कि रूट ही हो
user = "root"
pw = "root"

उपलब्ध म्यूटेशन इंजन हैं:

  • radamsa
  • byte_flip_seq
  • byte_flip_rnd
  • metadata

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

शेष कॉन्फ़िग पैरामीटर स्वयं-व्याख्यात्मक होने चाहिए।

PoC

नीचे दिया गया वीडियो एक त्वरित डेमो दिखाता है जहाँ दो फ़ज़िंग इंस्टेंस दोनों FreeBSD को radamsa-म्यूटेटेड UFS2 और एक यादृच्छिक बाइट फ़्लिप किए गए EXT फ़ाइल सिस्टम के साथ लक्षित करते हैं। म्यूटेटेड UFS फ़ाइल सिस्टम सीधे एक क्रैश की ओर ले जाता है जो दर्शाता है कि आप कितनी जल्दी एक कर्नेल को क्रैश कर सकते हैं।

asciicast

fuzz_example

सुविधा सेट

  • FFS, UFS, EXT और ZFS फ़ाइल सिस्टमों के लिए पूर्ण समर्थन
    • APFS के लिए आंशिक समर्थन
  • FreeBSD, NetBSD और OpenBSD के लिए पूर्ण समर्थन
    • Ubuntu (और संभवतः अन्य Debian-आधारित डेरिवेटिव) के लिए प्रायोगिक समर्थन
  • म्यूटेशन के माध्यम से
    • radamsa
    • वैश्विक यादृच्छिक बाइट फ्लिप
    • वैश्विक यादृच्छिक बाइट अनुक्रम परिवर्तन
    • केवल सुपरब्लॉक परिवर्तन
  • टूटे हुए लेकिन माउंटेड फ़ाइल सिस्टम तक पहुँचने/बदलने के लिए पूरी तरह से यादृच्छिक उपयोगकर्ता अनुकरण
  • क्रैश डेटाबेस
  • क्रैश सत्यापन
  • स्नैपशॉट के माध्यम से VM रीसेट
  • पूरी तरह से स्वचालित फ़ज़िंग प्रक्रिया
  • कमांडलाइन पर उचित उपयोगकर्ता इंटरफ़ेस

भविष्य के कार्य

  • अधिक/विभिन्न म्यूटेशन इंजनों का समर्थन
  • स्वचालित VM सेटअप
  • उपलब्ध स्नैपशॉट की जाँच करें और यदि गायब हैं तो फ़ज़िंग से पहले कुछ लें
  • macOS के लिए समर्थन
  • प्रदर्शन सुधार
    • फ्रेमवर्क को async बनाएं
      • फ़ज़िंग रन की प्रतीक्षा किए बिना निरंतर नमूना निर्माण
    • नया नमूना उत्पन्न करने से पहले एक ही नमूने को विभिन्न म्यूटेशनों के साथ उपयोग करें
    • गति के लिए एल्गोरिदम/इंटरैक्शन को फिर से काम करें
  • कोड सफाई और रीफैक्टरिंग
    • लॉगिंग वर्बोसिटी को टॉगल करने योग्य बनाएं

ट्रॉफियाँ

इस सेटअप के साथ मैं FreeBSD, NetBSD और OpenBSD में UFS और EXT आधारित फ़ाइल सिस्टमों के लिए > 100 अद्वितीय कर्नेल बग्स खोजने में सक्षम था। इन क्रैशों में मेरे पास कई बहुत रोचक क्रैश थे:

  • आउट ऑफ बाउंड्स रीड
  • आउट ऑफ बाउंड्स राइट
  • EXT में डबल फॉल्ट
  • UFS में ट्रिपल फॉल्ट
  • 6 अद्वितीय कोर डंप के साथ गैर-नियतात्मक कर्नेल बग

अधिकांश क्रैश कर्नेल DoS थे। इसके अलावा, सामने आए अधिकांश क्रैश आज भी (मई 2020) ठीक नहीं हुए हैं। तो फ़ाइल सिस्टम कार्यान्वयन में कर्नेल बग्स खोजने का प्रयास करें :)

अस्वीकरण

यह पूरी चीज़ 'ट्रस्ट ड्रिवेन डेवलपमेंट' के साथ बनाई गई थी, जिसका अर्थ है कि यह एक अकेले PoC विचार से बहुत तेज़ी से बहुत बड़ी हो गई। इसलिए, कोई परीक्षण भी नहीं हैं और सबसे अधिक संभावना है कुछ बग्स। यदि आप ऐसे क्रैश में भागते हैं (जो कर्नेल पैनिक से संबंधित नहीं हैं) तो मुझे खेद है, लेकिन बेझिझक PR बनाएँ या मुझसे संपर्क करें और मैं ASAP चीज़ें ठीक कर दूँगा!

संपर्क

ट्विटर: @0xricksanchez

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