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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
sandsifter — x86 प्रोसेसर फ़ज़र | Kitploit
उपकरण/GitHubGitHub/xoreaxeaxeax/sandsifter
भेद्यता विश्लेषणरिवर्स इंजीनियरिंगफज़िंगहार्डवेयर सुरक्षाबाइनरी विश्लेषण
GitHubxoreaxeaxeax/sandsifter

sandsifter

x86 प्रोसेसर फ़ज़र

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

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

सभी देखें →

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

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

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

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

s a n d s i f t e r

: x86 प्रोसेसर फज़र

अवलोकन

sandsifter x86 प्रोसेसरों में छिपे हुए निर्देशों और हार्डवेयर बगों का ऑडिट करता है, व्यवस्थित रूप से मशीन कोड उत्पन्न करके प्रोसेसर के निर्देश सेट में खोज करता है, और निष्पादन में विसंगतियों की निगरानी करता है। Sandsifter ने हर प्रमुख विक्रेता से गुप्त प्रोसेसर निर्देशों का पता लगाया है; डिसअसेंबलरों, असेंबलरों और एमुलेटरों में व्यापक सॉफ्टवेयर बग; एंटरप्राइज़ हाइपरवाइज़रों में दोष; और x86 चिप्स में सौम्य और सुरक्षा-महत्वपूर्ण दोनों तरह के हार्डवेयर बग।

मौजूद x86 प्रोसेसरों की भीड़ को देखते हुए, इस उपकरण का उद्देश्य उपयोगकर्ताओं को अपने स्वयं के सिस्टम में छिपे निर्देशों और बगों की जाँच करने में सक्षम बनाना है।

अपने प्रोसेसर पर एक बुनियादी ऑडिट चलाने के लिए:

root@kitploit:~
sudo ./sifter.py --unk --dis --len --sync --tick -- -P1 -t

demo_sandsifter

कंप्यूटर को व्यवस्थित रूप से विसंगतिपूर्ण निर्देशों के लिए स्कैन किया जाता है। ऊपरी आधे भाग में, आप उन निर्देशों को देख सकते हैं जिनका sandsifter वर्तमान में प्रोसेसर पर परीक्षण कर रहा है। निचले आधे भाग में, sandsifter उन विसंगतियों की रिपोर्ट करता है जो वह पाता है।

खोज में कुछ घंटों से लेकर कुछ दिनों तक का समय लग सकता है, जो आपके प्रोसेसर की गति और जटिलता पर निर्भर करता है। जब यह पूर्ण हो जाए, तो परिणामों का सारांश बनाएं:

root@kitploit:~
./summarize.py data/log

demo_summarizer

आमतौर पर, आपके प्रोसेसर पर कई लाख अनिर्दिष्ट निर्देश पाए जाएंगे, लेकिन ये आम तौर पर कुछ अलग-अलग समूहों में आते हैं। विसंगतियों को वर्गीकृत करने के बाद, summarize उपकरण प्रत्येक निर्देश को एक समस्या श्रेणी में निर्दिष्ट करने का प्रयास करता है:

  • सॉफ्टवेयर बग (उदाहरण के लिए, आपके हाइपरवाइज़र या डिसअसेंबलर में एक बग),
  • हार्डवेयर बग (आपके CPU में एक बग), या
  • अनिर्दिष्ट निर्देश (एक निर्देश जो प्रोसेसर में मौजूद है, लेकिन निर्माता द्वारा स्वीकार नहीं किया गया है)

सिस्टम स्कैन का एक टेक्स्ट-आधारित सारांश प्राप्त करने के लिए 'Q' दबाएं:

स्कैन के परिणामों को कभी-कभी उपकरणों द्वारा स्वचालित रूप से वर्गीकृत करना कठिन हो सकता है, और मैन्युअल विश्लेषण की आवश्यकता हो सकती है। अपने परिणामों का विश्लेषण करने में सहायता के लिए, बेझिझक ./data/log फ़ाइल को [email protected] पर भेजें। इस लॉग में प्रोसेसर के निर्माता, मॉडल और रेविज़न (/proc/cpuinfo से) के अलावा कोई व्यक्तिगत जानकारी शामिल नहीं है।

परिणाम

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

परिणामों के विवरण परियोजना श्वेतपत्र में पाए जा सकते हैं।

(TODO: यहाँ विस्तृत परिणामों की गणना)

निर्माण

Sandsifter के लिए पहले Capstone डिसअसेंबलर को स्थापित करना आवश्यक है: http://www.capstone-engine.org/। Capstone को आमतौर पर इस प्रकार स्थापित किया जा सकता है:

root@kitploit:~
sudo apt-get install libcapstone3 libcapstone-dev
sudo pip install capstone

Sandsifter को इस प्रकार बनाया जा सकता है:

root@kitploit:~
make

और फिर इसे इस प्रकार चलाया जाता है:

root@kitploit:~
sudo ./sifter.py --unk --dis --len --sync --tick -- -P1 -t

फ़्लैग

फ़्लैग्स को --flag के साथ sifter को, और -- -f के साथ injector को पास किया जाता है।

उदाहरण:

root@kitploit:~
sudo ./sifter.py --unk --dis --len --sync --tick -- -P1 -t

Sifter फ़्लैग्स:

root@kitploit:~
--len
	सभी निर्देशों में लंबाई के अंतर खोजें (वे निर्देश जो डिसअसेंबलर की अपेक्षा से
	भिन्न निष्पादित हुए, या वे जो डिसअसेंबलर की अपेक्षा होने पर मौजूद नहीं थे)

--dis
	मान्य निर्देशों में लंबाई के अंतर खोजें (वे निर्देश जो डिसअसेंबलर की अपेक्षा से
	भिन्न निष्पादित हुए)

--unk
	अज्ञात निर्देश खोजें (वे निर्देश जिनके बारे में डिसअसेंबलर नहीं जानता
	लेकिन सफलतापूर्वक निष्पादित होते हैं)

--ill
	--unk का उलटा, अमान्य डिसअसेंबली खोजें (वे निर्देश जो सफलतापूर्वक
	निष्पादित नहीं होते लेकिन डिसअसेंबलर उन्हें स्वीकार करता है)

--tick
	समय-समय पर वर्तमान निर्देश को डिस्क पर लिखें

--save
	बाहर निकलने पर खोज प्रगति सहेजें

--resume
	अंतिम सहेजी गई स्थिति से खोज फिर से शुरू करें

--sync
	खोज परिणामों को ढूंढते ही डिस्क पर लिखें

--low-mem
	परिणामों को मेमोरी में संग्रहीत न करें

Injector फ़्लैग्स:

root@kitploit:~
-b
	मोड: ब्रूट फोर्स

-r
	मोड: रैंडमाइज़्ड फ़ज़िंग

-t
	मोड: टनल्ड फ़ज़िंग

-d
	मोड: बाह्य निर्देशित फ़ज़िंग

-R
	रॉ आउटपुट मोड

-T
	टेक्स्ट आउटपुट मोड

-x
	समय-समय पर प्रगति को stderr पर लिखें

-0
	नल डीरेफरेंस की अनुमति दें (sudo आवश्यक)

-D
	डुप्लिकेट प्रीफ़िक्स की अनुमति दें

-N
	कोई NX बिट समर्थन नहीं

-s seed
	रैंडम खोज में, बीज मान

-B brute_depth
	ब्रूट खोज में, अधिकतम खोज गहराई

-P max_prefix
	खोज करने के लिए प्रीफ़िक्स की अधिकतम संख्या

-i instruction
	वह निर्देश जिससे खोज शुरू करनी है (सम्मिलित)

-e instruction
	वह निर्देश जिस पर खोज समाप्त करनी है (अनन्य)

-c core
	वह कोर जिस पर खोज करनी है

-X blacklist
	निर्दिष्ट निर्देश को ब्लैकलिस्ट करें

-j jobs
	एक साथ चलने वाले कार्यों की संख्या

-l range_bytes
	प्रत्येक उपश्रेणी में बेस निर्देश बाइट्स की संख्या

कुंजियाँ

m: मोड - sifter के लिए खोज मोड बदलें (ब्रूट फोर्स, रैंडम, या टनल)

q: छोड़ें - sifter से बाहर निकलें

p: रोकें - खोज को रोकें या फिर से शुरू करें

एल्गोरिदम

स्कैनिंग चार अलग-अलग खोज एल्गोरिदम का समर्थन करती है, जिन्हें कमांड लाइन पर सेट किया जा सकता है, या हॉटकी के माध्यम से चक्रित किया जा सकता है।

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

सुझाव

  • sudo

    सर्वोत्तम परिणामों के लिए, उपकरण को रूट उपयोगकर्ता के रूप में चलाया जाना चाहिए। यह आवश्यक है ताकि प्रक्रिया पते 0 पर एक पेज को मेमोरी में मैप कर सके, जिसके लिए रूट अनुमतियों की आवश्यकता होती है। यह पेज कई निर्देशों को मेमोरी एक्सेस पर सेग-फॉल्ट होने से रोकता है, जो अधिक सटीक फॉल्ट विश्लेषण की अनुमति देता है।

  • प्रीफ़िक्स (Prefixes)

    निर्देश खोज की गहराई के लिए प्राथमिक सीमा प्रीफ़िक्स बाइट्स की संख्या है जिसे खोजा जाना है, प्रत्येक अतिरिक्त प्रीफ़िक्स बाइट खोज स्थान को लगभग 10 के कारक से बढ़ाता है। प्रीफ़िक्स बाइट्स को -P फ़्लैग से सीमित करें।

  • रंग

    sifter का इंटरफ़ेस 256 रंग के टर्मिनल के लिए डिज़ाइन किया गया है। जबकि विवरण आपके टर्मिनल के आधार पर बहुत भिन्न होते हैं, इसे मोटे तौर पर इस प्रकार प्राप्त किया जा सकता है:

    root@kitploit:~
    export TERM='xterm-256color'
    
  • GUI

    इंटरफ़ेस मान लेता है कि टर्मिनल कम से कम एक निश्चित आकार का है; यदि इंटरफ़ेस ठीक से प्रस्तुत नहीं हो रहा है, तो टर्मिनल का आकार बढ़ाने का प्रयास करें; यह अक्सर टर्मिनल फ़ॉन्ट आकार को कम करके किया जा सकता है।

    कुछ मामलों में, ग्राफ़िकल फ्रंट एंड के बिना उपकरण चलाना वांछनीय या आवश्यक हो सकता है। यह injector को सीधे चलाकर किया जा सकता है:

    root@kitploit:~
    sudo ./injector -P1 -t -0
    

    प्रत्यक्ष injector आह्वान के परिणामों को फ़िल्टर करने के लिए, grep का उपयोग किया जा सकता है। उदाहरण के लिए,

    root@kitploit:~
    sudo ./injector -P1 -r -0 | grep '\.r' | grep -v sigill
    

    उन निर्देशों की खोज करता है जिनके लिए प्रोसेसर और डिसअसेंबलर निर्देश लंबाई पर असहमत थे (grep '.r'), लेकिन निर्देश सफलतापूर्वक निष्पादित हुआ (grep -v sigill)।

  • लक्षित फ़ज़िंग

    कई मामलों में, फ़ज़र को किसी विशिष्ट लक्ष्य पर निर्देशित करना मूल्यवान होता है। उदाहरण के लिए, यदि आपको संदेह है कि किसी एमुलेटर में दोहराए गए 'lock' प्रीफ़िक्स (0xf0) के आसपास खामियाँ हैं, तो आप -i और -e फ़्लैग्स के साथ फ़ज़र को निर्देश स्थान के इस क्षेत्र की खोज करने का निर्देश दे सकते हैं:

    root@kitploit:~
    sudo ./sifter.py --unk --dis --len --sync --tick -- -t -i f0f0 -e f0f1 -D -P15
    
  • लीगेसी सिस्टम

    बहुत पुराने सिस्टम (i586 वर्ग के प्रोसेसर, कम मेमोरी वाले सिस्टम) को स्कैन करने के लिए, sifter को --low-mem फ़्लैग और injector को -N फ़्लैग पास करें:

    root@kitploit:~
    sudo ./sifter.py --unk --dis --len --sync --tick --low-mem -- -P1 -t -N
    

    यदि आप देखते हैं कि आपके स्कैन बहुत जल्दी पूरे हो रहे हैं (उदाहरण के लिए, एक स्कैन सेकंड में पूरा होता है), तो यह आमतौर पर इसलिए है क्योंकि आपके द्वारा स्कैन किए जा रहे प्रोसेसर के लिए ये फ़्लैग्स आवश्यक हैं।

  • 32 बनाम 64 बिट

    डिफ़ॉल्ट रूप से, sandsifter होस्ट ऑपरेटिंग सिस्टम की बिटनेस को लक्षित करने के लिए बनाया गया है। हालांकि, कुछ निर्देशों का व्यवहार 32 बिट प्रक्रिया में चलाए जाने पर 64 बिट प्रक्रिया में चलाए जाने से भिन्न होता है। इन परिदृश्यों का पता लगाने के लिए, कभी-कभी 64 बिट सिस्टम पर 32 बिट sandsifter चलाना मूल्यवान होता है।

    64 बिट सिस्टम पर 32 बिट sandsifter बनाने के लिए, Capstone को 32 बिट के रूप में स्थापित किया जाना चाहिए; इसके निर्देश http://www.capstone-engine.org/ पर पाए जा सकते हैं।

    फिर sandsifter को 32 बिट आर्किटेक्चर के लिए बनाया जाना चाहिए:

    root@kitploit:~
    make CFLAGS=-m32
    

    इसके साथ, 64 बिट सिस्टम पर 32 बिट निर्देश स्थान का पता लगाया जा सकता है।

संदर्भ

  • तकनीकों और परिणामों की चर्चा Black Hat प्रस्तुति में पाई जा सकती है।
  • तकनीकी विवरण श्वेतपत्र में वर्णित हैं।
  • Black Hat प्रस्तुति की स्लाइड्स यहाँ हैं।

लेखक

sandsifter Christopher Domas (@xoreaxeaxeax) का एक शोध प्रयास है।

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