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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
snapshot-demo — CVE-2022-27499 | Kitploit
उपकरण/GitHubGitHub/web-logs2/snapshot-demo
एन्क्रिप्शन/डिक्रिप्शन उपकरणभेद्यता विश्लेषणशोषणपेनिट्रेशन टेस्टिंगहार्डवेयर सुरक्षारेड टीमिंग
GitHubweb-logs2/snapshot-demo

snapshot-demo

CVE-2022-27499

रिपॉजिटरी देखें
3 साल पहलेअभी तक समीक्षित नहीं

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

सभी देखें →

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

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

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

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

Snapshot Attack Demo

यह हमारे द्वारा खोजे गए अप्रत्याशित Snapshot Attack का मूल डेमो है। Intel के सुरक्षा सलाहकार के लिए धन्यवाद।

डेमो बनाएं

Intel SGX SDK और Occlum स्थापित करें

सबसे पहले, डेमो चलाने के इच्छुक किसी भी व्यक्ति को Intel SGX SDK और Occlum स्थापित करना होगा (आप हमारे संशोधित SGX SDK का उपयोग करना चुन सकते हैं)। हम तेज Occlum/SDK स्थापना के लिए एक Dockerfile प्रदान करते हैं। संशोधित SGX SDK हमलावर को समय निर्धारित करने में मदद करने के लिए है।

आप होस्ट मशीन पर भी Occlum स्थापित कर सकते हैं। (कृपया अधिक स्थापना विवरण के लिए https://github.com/occlum/occlum देखें।) किसी भी तरह से, आपको पहले अपने होस्ट पर Intel SGX ड्राइवर स्थापित करना होगा, या इन-कर्नेल SGX ड्राइवर का उपयोग करना होगा।

root@kitploit:~
(sudo) docker build -t $Your_Image_Name .

इमेज बनने के बाद, चलाएँ:

root@kitploit:~
(sudo) docker run -it --privileged -p $Redis_Server_Port:6379 -v $Host_SGX_Driver_Path:/dev/sgx --name "snapshot-demo" $Your_Image_Name

यहाँ $Redis_Server_Port होस्ट पोर्ट नंबर है जिसे आप कंटेनर के अंदर Redis सर्वर के लिए एक्सपोज़ करना चाहेंगे, जबकि $Host_SGX_Driver_Path आपके स्थापित SGX ड्राइवर का उपर्युक्त डिवाइस पथ है।

लक्ष्य प्रोग्राम बनाएं

लक्ष्य प्रोग्राम bash_redis फ़ोल्डर में है।

पीड़ित प्रोग्राम एक bash-shell स्क्रिप्ट (occlum_bash.sh) चला रहा है। यह पहले एक प्रावधानित पासवर्ड प्राप्त करता है, ताकि एक अनुकूलित Redis कॉन्फ़िगरेशन फ़ाइल उत्पन्न की जा सके, जिसमें "requirepass" प्रविष्टि भरी गई हो। फिर यह अनुकूलित config फ़ाइल के अनुसार एक Redis सर्वर को आमंत्रित करता है।

config जनरेशन प्रोग्राम बनाने के लिए, make चलाएँ। Redis सर्वर बनाने के लिए, निम्नलिखित कमांड चलाएँ।

root@kitploit:~
cd bash_redis
./download_and_build_redis_glibc.sh

डेमो चलाएं

सुनिश्चित करें कि पीड़ित Redis प्रोग्राम काम करता है

पीड़ित के लिए एक टर्मिनल खोलें। run_redis.sh चलाएँ, जाँचें कि Redis सर्वर ठीक से काम कर रहा है या नहीं।

यह सत्यापित करने के लिए कि config फ़ाइल में पासवर्ड (admin123456) सेट किया गया है या नहीं, कमांड redis-cli -h $Redis_Server_IP -p $Redis_Server_Port -a admin123456 का उपयोग करें।

Redis सर्वर को समाप्त करने के लिए ctrl + C दबाएँ।

स्नैपशॉट कैप्चर

2 टर्मिनल तैयार करें, एक पीड़ित के लिए और एक हमलावर के लिए। यदि पीड़ित के लिए पहले से एक टर्मिनल खोला गया है, तो आप केवल एक और टर्मिनल (हमलावर के लिए) खोल सकते हैं।

पीड़ित टर्मिनल पर फिर से run_redis.sh चलाएँ। यह स्क्रिप्ट लक्ष्य प्रोग्राम शुरू करेगी।

हमलावर को एक स्नैपशॉट लेने की आवश्यकता है ( ./take_snapshot_step-1.sh का उपयोग करके) जब वह निर्धारित कर सके कि स्नैपशॉट फ्लश हो रहा है। डेमो में, हमलावर को पीड़ित के टर्मिनल से निम्नानुसार स्पष्ट सूचना मिल सकती है।

root@kitploit:~
...
Run ./take_snapshot_step-1.sh NOW!
line 4522: # passwords, then flags, or key patterns. However note that the additive
line 4523: # and subtractive rules will CHANGE MEANING depending on the ordering.
line 4524: # For instance see the following example:
...

हमलावर के टर्मिनल पर ./take_snapshot_step-1.sh स्क्रिप्ट लॉन्च करें।

यदि आप हमारे संशोधित SGX SDK के साथ Occlum बनाते हैं, तो आपको अधिक संकेत संदेश दिखाई देंगे। ऐसा इसलिए है क्योंकि हमने Intel SGX SDK के अविश्वसनीय भाग को संशोधित किया है, जो हमलावर को समय निर्धारित करने में सुविधा प्रदान करने के लिए सहायक संदेश मुद्रित करता है। हमलावर की सुविधा के लिए, हम समय स्लॉट आरक्षित करते हैं ताकि हमलावर ./take_snapshot_step-1.sh चला सके। वास्तव में, होस्ट रूट विशेषाधिकार वाला हमलावर enclave निष्पादन को रोक सकता है और SGX SDK के अविश्वसनीय भाग को संशोधित करके कोई भी स्नैपशॉट कैप्चर कर सकता है।

एक बार Redis सर्वर ऊपर और चल रहा है, तो स्नैपशॉट संग्रह पूरा करने के लिए ./take_snapshot_step-2.sh चलाएँ।

Enclave रीप्ले

हमलावर हमारे एकत्रित स्नैपशॉट का उपयोग करके enclave को रीप्ले करने के लिए replay_redis.sh निष्पादित करता है। कोई भी क्लाइंट प्रमाणीकरण के बिना Redis सर्वर पर लॉग ऑन कर सकता है।

Redis क्लाइंट के लिए उदाहरण कमांड:

root@kitploit:~
redis-cli -h $Redis_Server_IP -p $Redis_Server_Port
keys *

यदि (error) NOAUTH Authentication required. का संदेश दिखाई देता है, तो इसका मतलब है कि आपको Redis सर्वर तक पहुँचने के लिए एक पासवर्ड की आवश्यकता होगी। प्रमाणीकरण पास करने के लिए auth $Your_Password टाइप करें। इस डेमो में auth admin123456 का उपयोग करें।

यदि (empty array) का संदेश दिखाई देता है, तो इसका मतलब है कि आपको Redis सर्वर तक पहुँचने के लिए पासवर्ड की आवश्यकता नहीं है।

नोट

कभी-कभी डेमो Occlum की अखंडता जांच के कारण विफल हो जाता है। आप शायद निम्नलिखित संदेश देखेंगे।

root@kitploit:~
Replaying ...
~/snapshot-demo/bash_redis_replay/occlum_instance ~/snapshot-demo/bash_redis_replay
In: writing meta-data in write_all_changes_to_disk
In: writing meta-data in write_all_changes_to_disk
Error: Os { code: 22, kind: InvalidInput, message: "Invalid argument" }
[ERROR] occlum-pal: The init process exit with code: 1 (line 59, file src/pal_api.c)
[ERROR] occlum-pal: Failed to run the init process: EINVAL (line 129, file src/pal_api.c)

बस डेमो को फिर से चलाएँ (रिकॉर्ड चरण से), तो त्रुटि हमेशा के लिए गायब हो जाएगी।

GL & HF!

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