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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
TriforceOpenBSDFuzzer — TriforceAFL (अर्थात AFL और QEMU) का उपयोग करके OpenBSD amd64 की सिस्टम कॉल फ़ज़िंग | Kitploit
उपकरण/GitHubGitHub/nccgroup/triforceopenbsdfuzzer
गतिशील विश्लेषण (सैंडबॉक्सिंग)भेद्यता विश्लेषणफज़िंग
GitHubnccgroup/triforceopenbsdfuzzer

TriforceOpenBSDFuzzer

TriforceAFL (अर्थात AFL और QEMU) का उपयोग करके OpenBSD amd64 की सिस्टम कॉल फ़ज़िंग

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

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

सभी देखें →

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

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

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

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

TriforceOpenBSDSyscallFuzzer

  • 20160825
  • https://github.com/nccgroup/TriforceOpenBSDFuzzer
  • Jesse Hertz [email protected]
  • Tim Newsham [email protected]

यह TriforceAFL (अर्थात AFL और QEMU) का उपयोग करके OpenBSD amd64 के सिस्टम कॉल फ़ज़िंग (system call fuzzing) के लिए उपयोग की जाने वाली फ़ाइलों का एक संग्रह है। इसे उपयोग करने के लिए आपको TriforceAFL (https://github.com/nccgroup/TriforceAFL), FlashRD 2.0 डिस्ट्रीब्यूशन (http://www.nmedia.net/flashrd/), ड्राइवर और डिस्क इमेज बनाने के लिए एक OpenBSD मशीन, तथा फ़ज़र चलाने के लिए एक Linux होस्ट मशीन की आवश्यकता होगी (अन्य फ़ज़र होस्ट भी काम कर सकते हैं, हमने TriforceAFL को केवल Linux होस्ट से चलाया है, विशेष रूप से Debian/Ubuntu)।

हम OpenBSD मशीन पर सब कुछ root के रूप में करेंगे, क्योंकि इस मशीन का उपयोग केवल हमारे वातावरण को बूटस्ट्रैप करने के लिए किया जा रहा है। यदि आपके पास पहले से कोई OpenBSD मशीन है, तो बेझिझक इसमें से कम काम root के रूप में करें। यदि आप एक अनुभवी OpenBSD उपयोगकर्ता हैं, तो इसका अधिकांश भाग अनावश्यक रूप से विस्तृत लगेगा। खैर, आगे बढ़ते हैं!

OpenBSD मशीन पर:

root@kitploit:~
export PKG_PATH=http://mirrors.sonic.net/pub/OpenBSD/$(uname -r)/packages/$(uname -m)/
pkg_add git
pkg_add python # pick python 2.7

इसके बाद आपको OpenBSD सोर्स और कर्नेल सोर्स डाउनलोड करने होंगे, और फिर उन्हें अनपैक करना होगा:

root@kitploit:~
cd ~
ftp http://mirrors.sonic.net/pub/OpenBSD/5.9/src.tar.gz 
ftp http://mirrors.sonic.net/pub/OpenBSD/5.9/sys.tar.gz
cd /usr/src; tar -xzpf $HOME/src.tar.gz; tar -xzpf $HOME/sys.tar.gz;

यदि आपके पास पहले से कोई इंस्टॉल CD है, तो निम्नलिखित फ़ाइलों को डाउनलोड करने की आवश्यकता नहीं है (क्योंकि वे $CDMOUNT/5.9/amd64/*.tgz में मौजूद होंगी)। आपको केवल $DISTDIR को उचित रूप से सेट करने की आवश्यकता होगी। अन्यथा...

root@kitploit:~
cd ~
ftp http://mirrors.sonic.net/pub/OpenBSD/5.9/amd64/base59.tgz
ftp http://mirrors.sonic.net/pub/OpenBSD/5.9/amd64/man59.tgz
ftp http://mirrors.sonic.net/pub/OpenBSD/5.9/amd64/comp59.tgz
ftp http://mirrors.sonic.net/pub/OpenBSD/5.9/amd64/game59.tgz
export DISTDIR=~

अब हमारे पास आवश्यक निर्भरताएँ (dependencies) इंस्टॉल हैं, और हम चीज़ें बनाना शुरू कर सकते हैं।

TriforceOpenBSDFuzzer डायरेक्टरी में प्रवेश करें। इसमें अलग-अलग डायरेक्टरी हैं जिनमें OpenBSD फ़ाइलें (targ) और फ़ज़र होस्ट फ़ाइलें (fuzzHost) मौजूद हैं।

ड्राइवर और इनपुट बनाना

किसी OpenBSD होस्ट पर, targ डायरेक्टरी में प्रवेश करें और make चलाएँ। आपको इसी डायरेक्टरी से इनपुट फ़ाइलें भी बनानी चाहिए

root@kitploit:~
    mkdir inputs
    ./gen.py                   # build simple tests
    ./genTempl.py templ.txt    # build most syscall tests
    ./gen2.py                  # build complex syscall tests
    tar -czf ../inputs.tgz inputs

डिस्क इमेज बनाना

आगे, आपको FlashRD डिस्ट्रीब्यूशन (http://www.nmedia.net/flashrd/) का उपयोग करके ड्राइवर के साथ एक डिस्क इमेज बनानी होगी। OpenBSD होस्ट पर (ऊपर दिए गए अनुभाग के अनुसार /usr/src में सोर्स और /usr/src/sys में कर्नेल सोर्स के साथ), हम अब कई चीज़ें करेंगे:

  • flashrd-2.0 निकालें
  • flashrd को पैच करें
  • एक obsd डायरेक्टरी बनाएँ, और उसे चीज़ों से भरें!
root@kitploit:~
    cd ~ #make sure this is on your /home parition, you will need significant disk space for this
    ftp http://www.nmedia.net/flashrd/flashrd-2.0.tar.gz
    tar xzf flashrd-2.0.tar.gz
    cd flashrd-2.0
    patch -p1 < $FUZZER/image-diff.txt #set $FUZZER to where you cloned TriforceOpenBSDFuzzer
    mkdir obsd
    cd obsd

    tar xzpf $DISTDIR/base59.tgz
    tar xzpf $DISTDIR/man59.tgz
    tar xzpf $DISTDIR/comp59.tgz
    tar xzpf $DISTDIR/game59.tgz
    tar xzpf /var/sysmerge/etc.tgz
    cp $FUZZER/image-etc-rc etc/rc
    cp $FUZZER/targ/inputs/ex1 root/ex1
    cd ..

आप अब इन कमांड्स को चलाकर एक इमेज बना सकते हैं:

root@kitploit:~
    cp $FUZZER/targ/driver obsd/bin/driver
    ./flashrd obsd
    mv flashimg* $FUZZER/flashimg.bin
    mv bsd.gdb $FUZZER/bsd.gdb

flashimg.bin और bsd.gdb की एक प्रति सहेज लें। फ़ज़र होस्ट पर आपको उनकी आवश्यकता होगी।

आप डिबगिंग के लिए एक दूसरी इमेज बनाना चाह सकते हैं जो आपको एक इंटरैक्टिव शेल चलाने की सुविधा देती है। obsd/etc/rc को संपादित करें और /bin/driver -v को /bin/sh -i से बदलें, और एक दूसरी इमेज बनाएँ। फिर हम बाद में उपयोग के लिए flashimg-sh.bin और bsd-sh.gdb की एक प्रति सहेज लेंगे।

root@kitploit:~
    ./flashrd obsd
    mv flashimg* $FUZZER/flashimg-sh.bin
    mv bsd.gdb $FUZZER/bsd-sh.gdb

अब हम OpenBSD मशीन छोड़ सकते हैं, और अपने फ़ज़ होस्ट पर लौट सकते हैं ($FUZZER को बाहर कॉपी करना सुनिश्चित करें, ताकि हम इसे फ़ज़ होस्ट पर उपयोग कर सकें)।

फ़ज़िंग

हम फ़ज़र को Linux होस्ट पर चलाते हैं (यह किसी भी होस्ट पर काम करना चाहिए जहाँ TriforceAFL बिल्ड और रन होता है, लेकिन आपका अनुभव भिन्न हो सकता है (YMMV), विशेष रूप से गैर-Linux होस्ट पर)। फ़ज़र होस्ट पर, TriforceAFL को ../TriforceAFL में इंस्टॉल करें। flashimg*.bin और bsd*.gdb को fuzzhost डायरेक्टरी में कॉपी करें, और इनपुट को fuzzHost डायरेक्टरी में अनपैक करें:

root@kitploit:~
    cd TriforceOpenBSDFuzzer # this should now have the files we made on the BSD host in it
    cp flashimg* fuzzHost/
    cp bsd* fuzzHost/
    cd fuzzhost
    tar xzf ../inputs.tgz

अब हम फ़ज़ करने के लिए तैयार हैं! fuzzHost डायरेक्टरी में प्रवेश करें और ./runFuzz -M M0 के साथ फ़ज़र शुरू करें।

ध्यान दें कि runFuzz स्क्रिप्ट एक master या slave नाम की अपेक्षा करती है, क्योंकि यह हमेशा master/slave मोड में चलती है। अधिक उपयोग जानकारी के लिए runFuzz स्क्रिप्ट देखें।

पुनरुत्पादन (Reproducing)

टेस्ट केसों (जैसे क्रैश) को पुनरुत्पादित करने के लिए, फ़ज़र होस्ट पर चलाएँ:

root@kitploit:~
  ./runTest inputs/ex1
  ./runTest outputs/crashes/id*

आप ड्राइवर को इम्यूलेटेड वातावरण से बाहर भी चला सकते हैं -t विकल्प के साथ, -vv के साथ विस्तृत (verbose) लॉगिंग के साथ और -x के साथ वास्तव में सिस्टम कॉल किए बिना। उदाहरण के लिए, OpenBSD होस्ट पर चलाएँ:

root@kitploit:~
  ./driver -tvvx < inputs/ex1
  ktrace ./driver -t < inputs/ex1

कभी-कभी कर्नेल को बूट करना और इंटरैक्टिव रूप से टेस्ट चलाना उपयोगी होता है। आप एक इंटरैक्टिव शेल में बूट करने के लिए ./runSh चला सकते हैं।

आप शायद परीक्षण के लिए flashimg-sh.bin फ़ाइल में अतिरिक्त फ़ाइलें (जैसे टेस्ट केस) जोड़ना चाहेंगे। ऐसा करने के लिए, OpenBSD होस्ट पर अतिरिक्त फ़ाइलों को flashrd-2.0/obsd/root में कॉपी करें और फ्लैश इमेज को फिर से बनाएँ। फ़ाइलों को वापस अपने फ़ज़र होस्ट पर स्थानांतरित करें और फिर से runSh चलाएँ। आपको अतिरिक्त फ़ाइलें /root डायरेक्टरी में मिलेंगी। आप इसे बनाने के बाद, OpenBSD होस्ट पर root के रूप में फ्लैश इमेज में फ़ाइलें भी जोड़ सकते हैं:

root@kitploit:~
    vnconfig vnd0 ./flashimg.bin
    mount /dev/vnd0a /mnt
    cp file /mnt
    umount /mnt
    vnconfig -u vnd0

यहाँ जोड़ी गई फ़ाइलें इमेज बूट होने पर /flash में दिखाई देंगी

डिबगिंग

पहले flashrd डिस्ट्रीब्यूशन पर लागू किए गए पैच कर्नेल बनाते समय डिबगिंग सक्षम करेंगे और ऑप्टिमाइज़ेशन अक्षम करेंगे। इससे डिबगिंग बहुत आसान हो जाती है।

fuzzHost से कर्नेल को डिबग करने के लिए, अपने OpenBSD होस्ट से /usr/src/sys की एक प्रति बनाएँ, और bsd-sh.gdb को sys/x/x/x/x में कॉपी करें। एक विंडो में ./runSh चलाएँ और सिस्टम बूट होने के बाद चलाएँ

root@kitploit:~
    cd sys
    mkdir -p x/x/x/x
    cd x/x/x/x
    cp $FUZZER/bsd-sh.gdb .
    gdb -ex "target remote :1234" ./bsd-sh.gdb
टूल डाउनलोड करें