sshkey-grab
يستخدم هذا السكربت ثغرة في ssh-agent تسمح له بسحب آخر مفتاح تمت إضافته إلى الوكيل. قد يتيح ذلك القدرة على استعادة مفتاح تمت إزالته من ssh-agent عبر ssh-add -t أو -d أو -D، بشرط ألا يتم إنهاء ssh-agent ولم يتم إضافة مفتاح جديد منذ إزالة المفتاح السابق. تم الإبلاغ عن هذه الثغرة وقد يتم إصلاحها في الإصدارات الأحدث من OpenSSH، مما سيؤدي إلى تعطل هذه الأداة.
المتطلبات
- تتطلب grabagentmem.sh صلاحية الجذر وأداة gdb على الجهاز المستهدف لكي تعمل بشكل صحيح
- يتطلب parse_mem.py تثبيت وحدة pyasn1 الخاصة بلغة بايثون
الاستخدام
- انسخ grabagentmem.sh إلى الجهاز المستهدف.
- قم بتشغيل grabagentmem.sh على الجهاز المستهدف بصلاحية الجذر. سيؤدي ذلك إلى إنشاء تفريغ ذاكرة للمكدس لكل عملية ssh-agent تعمل على هذا الجهاز. سيتم تسميتها افتراضياً /tmp/SSHagent-$PID.stack.
- انسخ تتبعات المكدس إلى الجهاز الذي تم تثبيت parse_mem.py عليه.
- قم بتشغيل parse_mem.py [ملف المكدس] [مخرج المفتاح] (مثال: ./parse_mem.py /tmp/SSHagent-17019.stack /tmp/key)
- اختبر ما إذا كان ملف المفتاح المستخرج يعمل عن طريق استخدام ssh -i [ملف المفتاح] [المستخدم]@[الجهاز]
جزء من كود إنشاء مفتاح RSA مأخوذ من مولد مفاتيح SSH الفاخر لـ Thialfihar: https://github.com/thialfihar/semantic-ssh-key/blob/master/generate_fancy_ssh_key.py