[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
远程注入法,简单写了一个:
  1. #include <windows.h>
  2. #include <stdio.h>
  3. #include <tchar.h>
  4. #include <assert.h>
  5. #include <tlhelp32.h>
  6. DWORD GetParentProcessId(DWORD pid)
  7. {
  8.     DWORD ppid = (DWORD)(-1);
  9.     HANDLE hProcessSnap;
  10.     PROCESSENTRY32 pe32;
  11.     hProcessSnap = CreateToolhelp32Snapshot( TH32CS_SNAPPROCESS, 0 );
  12.     assert(hProcessSnap != INVALID_HANDLE_VALUE);
  13.     pe32.dwSize = sizeof( PROCESSENTRY32 );
  14.     BOOL bResult = Process32First( hProcessSnap, &pe32 );
  15.     assert(bResult != FALSE);
  16.     do
  17.     {
  18.         if (pid == pe32.th32ProcessID)
  19.         {
  20.             ppid = pe32.th32ParentProcessID;
  21.             break;
  22.         }
  23.     } while( Process32Next( hProcessSnap, &pe32 ) );
  24.     CloseHandle( hProcessSnap );
  25.     return( ppid );
  26. }
  27. DWORD ppid(VOID)
  28. {
  29.     return GetParentProcessId( GetCurrentProcessId() );
  30. }
  31. typedef struct _RemoteParam {
  32.     DWORD funcptr;
  33.     BYTE Param1[64];
  34.     BYTE Param2[64];
  35. } RemoteParam, *PRemoteParam;
  36. typedef int  (WINAPI *PFN_MessageBox)(HWND, LPCTSTR, LPCTSTR, DWORD);
  37. typedef BOOL (WINAPI *PFN_SetEnvironmentVariable)(LPCTSTR, LPCTSTR);
  38. DWORD WINAPI threadProc(LPVOID lpParam)
  39. {
  40.     RemoteParam *pRP = (RemoteParam *)lpParam;
  41.     PFN_SetEnvironmentVariable pfnSetEnvironmentVariable = (PFN_SetEnvironmentVariable)pRP[0].funcptr;
  42.     pfnSetEnvironmentVariable(pRP[0].Param1, pRP[0].Param2);
  43.     PFN_MessageBox pfnMessageBox = (PFN_MessageBox)pRP[1].funcptr;
  44.     pfnMessageBox(NULL, pRP[1].Param1, pRP[1].Param2, 0);
  45.     return 0;
  46. }
  47. int main(int argc, char *argv[])
  48. {
  49.     DWORD dwProcessId = ppid();
  50.     assert(dwProcessId != (DWORD)(-1));
  51.     HANDLE hTargetProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, dwProcessId);
  52.     assert(hTargetProcess != NULL);
  53.     DWORD dwMemSize = 4096;
  54.     LPVOID pRemoteThread = VirtualAllocEx(hTargetProcess, 0, dwMemSize, MEM_COMMIT, PAGE_EXECUTE_READWRITE) ;
  55.     assert(pRemoteThread != NULL);
  56.     BOOL bResult = WriteProcessMemory(hTargetProcess, pRemoteThread, threadProc, dwMemSize, NULL) ;
  57.     assert(bResult != FALSE);
  58.     RemoteParam RemoteParams[2] = {{0}};
  59.     HMODULE hUser32 = LoadLibrary("User32.dll");
  60.     HMODULE hKernel32 = LoadLibrary("Kernel32.dll");
  61.     RemoteParams[0].funcptr = (DWORD)GetProcAddress(hKernel32, "SetEnvironmentVariableA");
  62.     strcpy(RemoteParams[0].Param1, "__var");
  63.     strcpy(RemoteParams[0].Param2, "hello");
  64.     RemoteParams[1].funcptr = (DWORD)GetProcAddress(hUser32, "MessageBoxA");
  65.     strcpy(RemoteParams[1].Param1, "www.bathome.net");
  66.     strcpy(RemoteParams[1].Param2, "hello");
  67.     dwMemSize = sizeof(RemoteParams);
  68.     LPVOID pRemoteParam = VirtualAllocEx(hTargetProcess, 0, dwMemSize, MEM_COMMIT, PAGE_READWRITE);
  69.     assert(pRemoteParam != NULL);
  70.     bResult = WriteProcessMemory(hTargetProcess, pRemoteParam, RemoteParams, dwMemSize, NULL) ;
  71.     assert(bResult != FALSE);
  72.     HANDLE hRemoteThread = CreateRemoteThread(hTargetProcess, NULL, 0, pRemoteThread, pRemoteParam, 0, NULL);
  73.     assert(hRemoteThread != NULL);
  74.     CloseHandle(hRemoteThread);
  75.     CloseHandle(hTargetProcess);
  76.     return 0;
  77. }
复制代码
E:\Projects\Inject>set
ALLUSERSPROFILE=D:\Documents and Settings\All Users
APPDATA=D:\Documents and Settings\root\Application Data
CLIENTNAME=Console
CommonProgramFiles=D:\Program Files\Common Files
COMPUTERNAME=POWERPC
ComSpec=D:\WINDOWS\system32\cmd.exe
FP_NO_HOST_CHECK=NO
HOMEDRIVE=D:
HOMEPATH=\Documents and Settings\root
LOGONSERVER=\\POWERPC
NUMBER_OF_PROCESSORS=4
OS=Windows_NT
Path=D:\WINDOWS\system32;D:\WINDOWS;D:\WINDOWS\System32\Wbem;E:\MinGW\bin
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH
PROCESSOR_ARCHITECTURE=x86
PROCESSOR_IDENTIFIER=x86 Family 6 Model 37 Stepping 5, GenuineIntel
PROCESSOR_LEVEL=6
PROCESSOR_REVISION=2505
ProgramFiles=D:\Program Files
PROMPT=$P$G
SESSIONNAME=Console
SystemDrive=D:
SystemRoot=D:\WINDOWS
TEMP=D:\DOCUME~1\root\LOCALS~1\Temp
TMP=D:\DOCUME~1\root\LOCALS~1\Temp
USERDOMAIN=POWERPC
USERNAME=root
USERPROFILE=D:\Documents and Settings\root
windir=D:\WINDOWS

E:\Projects\Inject>gcc -o conset.exe conset.c

E:\Projects\Inject>conset

E:\Projects\Inject>set
ALLUSERSPROFILE=D:\Documents and Settings\All Users
APPDATA=D:\Documents and Settings\root\Application Data
CLIENTNAME=Console
CommonProgramFiles=D:\Program Files\Common Files
COMPUTERNAME=POWERPC
ComSpec=D:\WINDOWS\system32\cmd.exe
FP_NO_HOST_CHECK=NO
HOMEDRIVE=D:
HOMEPATH=\Documents and Settings\root
LOGONSERVER=\\POWERPC
NUMBER_OF_PROCESSORS=4
OS=Windows_NT
Path=D:\WINDOWS\system32;D:\WINDOWS;D:\WINDOWS\System32\Wbem;E:\MinGW\bin
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH
PROCESSOR_ARCHITECTURE=x86
PROCESSOR_IDENTIFIER=x86 Family 6 Model 37 Stepping 5, GenuineIntel
PROCESSOR_LEVEL=6
PROCESSOR_REVISION=2505
ProgramFiles=D:\Program Files
PROMPT=$P$G
SESSIONNAME=Console
SystemDrive=D:
SystemRoot=D:\WINDOWS
TEMP=D:\DOCUME~1\root\LOCALS~1\Temp
TMP=D:\DOCUME~1\root\LOCALS~1\Temp
USERDOMAIN=POWERPC
USERNAME=root
USERPROFILE=D:\Documents and Settings\root
windir=D:\WINDOWS
__var=hello

E:\Projects\Inject>
2

评分人数

    • CrLf: 膜拜技术 + 1
    • plp626: 这里卧虎藏龙啊,感谢分享。。PB + 10 技术 + 1
我不知道

TOP

返回列表