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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
autoharness — एक उपकरण जो लाइब्रेरी के आधार पर स्वचालित रूप से फ़ज़िंग हारनेस बनाता है | Kitploit
उपकरण/GitHubGitHub/parikhakshat/autoharness
भेद्यता विश्लेषणकोड विश्लेषणफज़िंगबाइनरी विश्लेषण
GitHubparikhakshat/autoharness

autoharness

एक उपकरण जो लाइब्रेरी के आधार पर स्वचालित रूप से फ़ज़िंग हारनेस बनाता है

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

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

सभी देखें →

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

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

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

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

AutoHarness

अक्षत पारीख द्वारा निर्मित

यह उपकरण क्या है?

AutoHarness एक उपकरण है जो स्वचालित रूप से आपके लिए फ़ज़िंग हार्नेस उत्पन्न करता है। यह विचार आज फ़ज़िंग कोडबेस में एक समवर्ती समस्या से उत्पन्न होता है: बड़े कोडबेस में हजारों फ़ंक्शन और कोड के टुकड़े होते हैं जिन्हें लाइब्रेरी में काफी गहराई तक एम्बेड किया जा सकता है। स्मार्ट फ़ज़र्स के लिए उस कोडपाथ तक पहुंचना बहुत कठिन या कभी-कभी असंभव भी होता है। यहां तक कि oss-fuzz जैसी बड़ी फ़ज़िंग परियोजनाओं के लिए भी, कोडबेस के कुछ हिस्से ऐसे हैं जो फ़ज़िंग में कवर नहीं होते हैं। इसलिए, यह प्रोग्राम कुछ हद तक इस समस्या को कम करने का प्रयास करता है, साथ ही सुरक्षा शोधकर्ताओं को एक कोड बेस का प्रारंभिक परीक्षण करने के लिए एक उपकरण प्रदान करता है। यह प्रोग्राम केवल उन कोड बेस को सपोर्ट करता है जो C और C++ में कोडित हैं।

सेटअप/प्रदर्शन

यह प्रोग्राम libfuzzer के लिए llvm और clang, फ़ंक्शन खोजने के लिए Codeql, और सामान्य प्रोग्राम के लिए python का उपयोग करता है। इस प्रोग्राम का परीक्षण llvm 12 और python 3 के साथ Ubuntu 20.04 पर किया गया था। यहाँ प्रारंभिक सेटअप है।

root@kitploit:~
sudo apt-get update;
sudo apt-get install python3 python3-pip llvm-12* clang-12 git;
pip3 install pandas lief subprocess os argparse ast;

Codeql के लिए इंस्टॉलेशन प्रक्रिया का पालन https://github.com/github/codeql पर करें। CLI टूल्स और लाइब्रेरीज़ को इंस्टॉल करना सुनिश्चित करें। मेरे परीक्षण के लिए, मैंने टूल्स और लाइब्रेरीज़ दोनों को एक फ़ोल्डर में संग्रहीत किया है। अंत में, इस रिपॉजिटरी को क्लोन करें या कोई रिलीज़ डाउनलोड करें। यहाँ nginx पर एकाधिक आर्गुमेंट मोड सेट के साथ चलाने के बाद प्रोग्राम का आउटपुट है। यह वह कमांड है जो मैंने उपयोग किया था।

root@kitploit:~
python3 harness.py -L /home/akshat/nginx-1.21.0/objs/ -C /home/akshat/codeql-h/ -M 1 -O /home/akshat/autoharness/ -D nginx -G 1 -Y 1 -F "-I /home/akshat/nginx-1.21.0/objs -I /home/akshat/nginx-1.21.0/src/core -I /home/akshat/nginx-1.21.0/src/event -I /home/akshat/nginx-1.21.0/src/http -I /home/akshat/nginx-1.21.0/src/mail -I /home/akshat/nginx-1.21.0/src/misc -I /home/akshat/nginx-1.21.0/src/os -I /home/akshat/nginx-1.21.0/src/stream -I /home/akshat/nginx-1.21.0/src/os/unix" -X ngx_config.h,ngx_core.h

परिणाम: image संकलन को और डीबग करके, अधिक हेडर फ़ाइलें जोड़कर इत्यादि द्वारा सफलता को बढ़ाना निश्चित रूप से संभव है। ध्यान दें कि nginx प्रोजेक्ट में संकलन के बाद कोई शेयर्ड ऑब्जेक्ट नहीं है। हालाँकि, इस प्रोग्राम में एक सुविधा है जो PIE एक्ज़ीक्यूटेबल्स को शेयर्ड लाइब्रेरीज़ में बदल सकती है।

नियोजित सुविधाएँ (प्रगति के क्रम में)

  1. Struct Fuzzing

एकाधिक आर्गुमेंट वाले फ़ंक्शन को फ़ज़ करने के लिए प्रोग्राम में वर्तमान में लागू विधि fuzzing data provider का उपयोग करती है। इस एकीकरण में कुछ सुधार किए जाने हैं; हालाँकि, मेरा मानना है कि मैं इस सुविधा को डेटा संरचनाओं के साथ शामिल कर सकता हूँ। इसे कोड करते समय एक समस्या जो मुझे आती है वह है codeql और नेस्टेड स्ट्रक्ट्स के साथ। बिना कई क्वेरी लिखे जो प्रत्येक फ़ंक्शन के लिए भिन्न हों, यह विशेष रूप से कठिन हो जाता है। संक्षेप में, इस सुविधा पर और काम करने की आवश्यकता है। मैं protobufs का उपयोग करके एक सरल समाधान के बारे में भी सोच रहा था।

  1. कार्यान्वयन-आधारित हार्नेस निर्माण

Codeql का उपयोग करके, एक कंट्रोल फ़्लो ग्राफ़ उत्पन्न करना संभव है जो मैप करता है कि किसी फ़ंक्शन में पैरामीटर कैसे इनिशियलाइज़ किए जाते हैं। उस जानकारी का उपयोग करके, हम एक बेहतर हार्नेस बना सकते हैं। दूसरा तरीका है कि लाइब्रेरी में मौजूद फ़ंक्शन के कार्यान्वयन को देखें और उस जानकारी का उपयोग करके हार्नेस के रूप में फ़ंक्शन के कार्यान्वयन पर एक शिक्षित अनुमान लगाएं। इसके साथ मेरी वर्तमान समस्याएं codeql के साथ कंट्रोल फ़्लो ग्राफ़ उत्पन्न करना हैं।

  1. समानांतर फ़ज़िंग/गलत सकारात्मक का पता लगाना

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

योगदान/बग

यदि आपको इस प्रोग्राम में कोई बग मिलता है, तो कृपया एक issue बनाएँ। मैं एक समाधान लाने का प्रयास करूँगा। साथ ही, यदि आपके पास किसी नई सुविधा या प्रदर्शन उन्नयन या वर्तमान नियोजित सुविधाओं को लागू करने के तरीके के बारे में कोई विचार है, तो कृपया टैग (contribution) के साथ एक pull request या issue बनाएँ।

PSA

यह उपकरण कुछ गलत सकारात्मक उत्पन्न करता है। कृपया पहले क्रैश का विश्लेषण करें और देखें कि यह एक वैध बग है या केवल एक कार्यान्वयन बग। इसके अलावा, यदि कुछ फ़ंक्शन संकलित नहीं हो रहे हैं तो आप डीबग मोड को सक्षम कर सकते हैं। इससे आपको यह समझने में मदद मिलेगी कि क्या कुछ हेडर फ़ाइलें गायब हैं या कोई लिंकेज समस्या है। यदि आप जिस प्रोजेक्ट पर काम कर रहे हैं उसमें शेयर्ड लाइब्रेरीज़ नहीं हैं बल्कि एक एक्ज़ीक्यूटेबल है, तो सुनिश्चित करें कि एक्ज़ीक्यूटेबल को PIE रूप में संकलित करें ताकि यह प्रोग्राम इसे शेयर्ड लाइब्रेरी में बदल सके।

संदर्भ

  1. https://lief.quarkslab.com/doc/latest/tutorials/08_elf_bin2lib.html
टूल डाउनलोड करें