
KeePass मास्टर पासवर्ड निष्कर्षण PoC लिनक्स के लिए
इस भेद्यता को खोजने और जिम्मेदारी से रिपोर्ट करने के लिए vdohney का धन्यवाद, और महान ओपन सोर्स सॉफ्टवेयर और समस्या के त्वरित स्वीकार/समाधान के लिए Dominik Reichl का धन्यवाद।
शायद नहीं। इस एक्सप्लॉइट को /proc वर्चुअल फाइलसिस्टम तक पहुंच की आवश्यकता है। विशेष रूप से, proc/[pid]/mem।
proc मैनफाइल के अनुसार, इस फाइल तक पहुंच ptrace एक्सेस मोड, PTRACE_MODE_ATTACH_FSCREDS द्वारा नियंत्रित होती है, जो अधिकांश सिस्टम में रूट उपयोगकर्ता तक सीमित है।
यदि कोई दुर्भावनापूर्ण अभिनेता पहले से ही उन फाइलों तक पहुंच रखता है, तो आपको बड़ी चिंताएं होनी चाहिए।
कृपया KeePass 2.54 जारी होते ही (~जुलाई 2023) अपडेट करें, क्योंकि यह कुछ हद तक इस मुद्दे को कम करेगा। (फोरम)
पहले यह Keepass की प्रक्रिया मेमोरी को डंप करके शुरू करता है।
डिफ़ॉल्ट व्यवहार सभी /proc/<pid>/cmdline फाइलों को स्कैन करेगा और उन pid को संग्रहीत करेगा जिनके कमांडलाइन आर्गुमेंट में कीवर्ड KeePass होता है।
फिर यह /proc/<pid>/maps में उन मेमोरी मैप्स के पतों को प्राप्त करेगा जो सीधे किसी लाइब्रेरी से संबंधित नहीं हैं, अर्थात उनका खाली फाइल पथ होता है।
फिर यह /proc/<pid>/mem का लाभ उठाकर उन सभी मैप्स की मेमोरी को एक बफर में संग्रहीत करेगा। यह Linux पर किसी भी प्रक्रिया की मेमोरी को डंप करने का एक आदिम व्यवहार होगा।
यह मास्टर पासवर्ड टाइप करते समय बचे हुए स्ट्रिंग्स को खोजने के लिए मेमोरी को पार्स करेगा, ऐसे स्ट्रिंग्स जो इस तरह दिखते हैं •a, ••s, •••s, क्रम में। पहला अक्षर गायब होगा। कोड देखकर आप कुछ अन्य कार्यक्षमता पा सकते हैं।
gcc dump_pwd.c -o dump और आप जाने के लिए तैयार हैं।
