sshkey-grab
यह स्क्रिप्ट ssh-agent में एक बग का उपयोग करती है जो इसे एजेंट में जोड़ी गई अंतिम कुंजी (key) को खींचने की अनुमति देती है। यह ssh-agent से ssh-add -t, -d, या -D के माध्यम से हटाई गई कुंजी को पुनर्प्राप्त करने की क्षमता प्रदान कर सकती है, बशर्ते कि ssh-agent को समाप्त न किया गया हो और पिछली कुंजी हटाए जाने के बाद कोई नई कुंजी न जोड़ी गई हो। यह बग रिपोर्ट किया जा चुका है और OpenSSH के नए संस्करणों में इसे ठीक किया जा सकता है, जिससे यह टूल काम नहीं करेगा।
आवश्यकताएँ
- grabagentmem.sh को ठीक से काम करने के लिए लक्ष्य मशीन पर रूट एक्सेस और gdb की आवश्यकता होती है
- parse_mem.py को pyasn1 पायथन मॉड्यूल स्थापित होने की आवश्यकता है
उपयोग
- grabagentmem.sh को लक्ष्य मशीन पर कॉपी करें।
- लक्ष्य मशीन पर रूट के रूप में grabagentmem.sh चलाएं। यह इस बॉक्स पर चल रही प्रत्येक ssh-agent प्रक्रिया के लिए स्टैक (stack) का मेमोरी डंप (memory dump) बनाएगा। डिफ़ॉल्ट रूप से उन्हें /tmp/SSHagent-$PID.stack नाम दिया जाएगा।
- स्टैक ट्रेस (stack traces) को उस मशीन पर कॉपी करें जहाँ parse_mem.py स्थापित है।
- parse_mem.py [स्टैक फ़ाइल] [कुंजी आउटपुट] चलाएं (उदाहरण: ./parse_mem.py /tmp/SSHagent-17019.stack /tmp/key)
- निकाली गई कुंजी फ़ाइल का परीक्षण करने के लिए ssh -i [कुंजी फ़ाइल] [उपयोगकर्ता]@[मशीन] का उपयोग करें।
RSA कुंजी निर्माण कोड का एक भाग Thialfihar के Fancy SSH Key Generator से लिया गया है: https://github.com/thialfihar/semantic-ssh-key/blob/master/generate_fancy_ssh_key.py