From 03fe454eb35c83d8e14b2017c67d15b3ac6c60fa Mon Sep 17 00:00:00 2001 From: pingujwal <60282207+pingujwal@users.noreply.github.com> Date: Wed, 18 Oct 2023 14:44:24 +0000 Subject: [PATCH] Added initial test for technique T1553.003 (#2573) Co-authored-by: unknown --- atomics/T1553.003/T1553.003.yaml | 32 +++++ atomics/T1553.003/bin/GTSIPProvider.dll | Bin 0 -> 119808 bytes atomics/T1553.003/src/GTSIPProvider.c | 150 ++++++++++++++++++++++++ 3 files changed, 182 insertions(+) create mode 100644 atomics/T1553.003/T1553.003.yaml create mode 100644 atomics/T1553.003/bin/GTSIPProvider.dll create mode 100644 atomics/T1553.003/src/GTSIPProvider.c diff --git a/atomics/T1553.003/T1553.003.yaml b/atomics/T1553.003/T1553.003.yaml new file mode 100644 index 00000000..9b5b3470 --- /dev/null +++ b/atomics/T1553.003/T1553.003.yaml @@ -0,0 +1,32 @@ +attack_technique: T1553.003 +display_name: 'Subvert Trust Controls: SIP and Trust Provider Hijacking' +atomic_tests: +- name: SIP (Subject Interface Package) Hijacking via Custom DLL + auto_generated_guid: e12f5d8d-574a-4e9d-8a84-c0e8b4a8a675 + description: | + Registers a DLL that logs signature checks, mimicking SIP hijacking. This test uses a DLL from + https://github.com/gtworek/PSBits/tree/master/SIP and registers it using regsvr32, thereby causing + the system to utilize it during signature checks, and logging said checks. + supported_platforms: + - windows + input_arguments: + dll_payload: + description: Path to GTSIPProvider.dll + type: path + default: PathToAtomicsFolder\T1553.003\bin\GTSIPProvider.dll + dependency_executor_name: powershell + dependencies: + - description: | + GTSIPProvider.dll must exist on disk at specified location (#{dll_payload}) + prereq_command: | + if (Test-Path "#{dll_payload}") {exit 0} else {exit 1} + get_prereq_command: | + New-Item -Type Directory (split-path "#{dll_payload}") -ErrorAction ignore | Out-Null + Invoke-WebRequest "https://github.com/gtworek/PSBits/raw/2aa885c7d09f7f100997bfa5ee0c404084177f24/SIP/GTSIPProvider.dll" -OutFile "#{dll_payload}" + executor: + command: | + regsvr32.exe #{dll_payload} + cleanup_command: | + regsvr32.exe /u #{dll_payload} + name: command_prompt + elevation_required: true \ No newline at end of file diff --git a/atomics/T1553.003/bin/GTSIPProvider.dll b/atomics/T1553.003/bin/GTSIPProvider.dll new file mode 100644 index 0000000000000000000000000000000000000000..8afea8c6da1589fe76aef45efae8e2998eaeb5a7 GIT binary patch literal 119808 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 literal 0 HcmV?d00001 diff --git a/atomics/T1553.003/src/GTSIPProvider.c b/atomics/T1553.003/src/GTSIPProvider.c new file mode 100644 index 00000000..2d6c3f69 --- /dev/null +++ b/atomics/T1553.003/src/GTSIPProvider.c @@ -0,0 +1,150 @@ +#pragma comment(lib, "Crypt32.lib") +#include +#include +#include +#include + +#define DLLEXPORT __declspec(dllexport) + +GUID guid_GTSIP = +{ + 0x00000000, 0xDEAD, 0xBEEF, {0xDE, 0xAD, 0xDE, 0xAD, 0xBA, 0xBE, 0xCA, 0xFE} +}; + + +DLLEXPORT +STDAPI +DllRegisterServer(VOID) +{ + TCHAR strMsg[1024]; + + _stprintf_s(strMsg, _countof(strMsg), TEXT("[GTSIP] %hs."), __func__); + OutputDebugString(strMsg); + + TCHAR szFilePath[MAX_PATH]; + + GetModuleFileName(GetModuleHandle(TEXT("GTSIPProvider.dll")), szFilePath, MAX_PATH); + + _stprintf_s(strMsg, _countof(strMsg), TEXT("[GTSIP] %hs says DLL = %s."), __func__, szFilePath); + OutputDebugString(strMsg); + + SIP_ADD_NEWPROVIDER sProv = {0}; + sProv.cbStruct = sizeof(SIP_ADD_NEWPROVIDER); + sProv.pgSubject = (GUID*)&guid_GTSIP; + sProv.pwszDLLFileName = szFilePath; + sProv.pwszMagicNumber = NULL; + sProv.pwszIsFunctionName = NULL; // L"GtSipIs"; + sProv.pwszGetFuncName = L"GtSipGet"; + sProv.pwszPutFuncName = L"GtSipPut"; + sProv.pwszCreateFuncName = L"GtSipCreate"; + sProv.pwszVerifyFuncName = L"GtSipVerify"; + sProv.pwszRemoveFuncName = L"GtSipRemove"; + sProv.pwszIsFunctionNameFmt2 = L"GtSipIsFmt2"; + sProv.pwszGetCapFuncName = L"GtSipGetCap"; + + if (!CryptSIPAddProvider(&sProv)) + { + return HRESULT_FROM_WIN32(GetLastError()); + } + + return S_OK; +} + + +DLLEXPORT +STDAPI +DllUnregisterServer(VOID) +{ + TCHAR strMsg[1024]; + _stprintf_s(strMsg, _countof(strMsg), TEXT("[GTSIP] %hs."), __func__); + OutputDebugString(strMsg); + CryptSIPRemoveProvider(&guid_GTSIP); + return S_OK; +} + + +DLLEXPORT +BOOL +WINAPI +GtSipIs( + HANDLE hFile, + GUID* pgSubject +) +{ + TCHAR strMsg[1024]; + TCHAR szFilePath[MAX_PATH]; + + GetFinalPathNameByHandle(hFile, szFilePath, MAX_PATH, FILE_NAME_NORMALIZED); + + _stprintf_s(strMsg, _countof(strMsg), TEXT("[GTSIP] %hs obtained %s as a parameter."), __func__, szFilePath); + OutputDebugString(strMsg); + + SetLastError(0); + return FALSE; +} + + +DLLEXPORT +BOOL +WINAPI +GtSipIsFmt2( + WCHAR* pwszFileName, + GUID* pgSubject +) +{ + TCHAR strMsg[1024]; + _stprintf_s(strMsg, _countof(strMsg), TEXT("[GTSIP] %hs obtained %ws as a parameter."), __func__, pwszFileName); + OutputDebugString(strMsg); + + SetLastError(0); + return FALSE; +} + + +DLLEXPORT +BOOL +WINAPI +GtSipGetCap( + SIP_SUBJECTINFO* pSubjectInfo, + SIP_CAP_SET* pCaps) +{ + TCHAR strMsg[1024]; + _stprintf_s(strMsg, _countof(strMsg), TEXT("[GTSIP] %hs obtained %ws as a parameter."), __func__, + pSubjectInfo->pwsFileName); + OutputDebugString(strMsg); + + pCaps->dwVersion = 2; + pCaps->isMultiSign = 1; + pCaps->dwReserved = 0; + return TRUE; +} + + +BOOL APIENTRY DllMain(HMODULE hModule, + DWORD ul_reason_for_call, + LPVOID lpReserved +) +{ + TCHAR strMsg[1024] = {0}; + TCHAR szFilePath[MAX_PATH]; + + switch (ul_reason_for_call) + { + case DLL_PROCESS_ATTACH: + GetProcessImageFileName(GetCurrentProcess(), szFilePath, MAX_PATH); + _stprintf_s(strMsg, _countof(strMsg), TEXT("[GTSIP] %hs says EXE = %s"), __func__, szFilePath); + break; + case DLL_THREAD_ATTACH: + break; + case DLL_THREAD_DETACH: + break; + case DLL_PROCESS_DETACH: + break; + default: + break; + } + + OutputDebugString(strMsg); + + return TRUE; +}