如何解决CreateRemoteThread与PROCESS_QUERY_LIMITED_INFORMATION一起使用
最近,我研究了使用CreateRemoteThread的dll注入技术,发现了一些有趣的东西。我刚刚使用PROCESS_QUERY_LIMITED_INFORMATION打开了该进程,并使用其句柄调用了CreateRemoteThread。令人惊讶的是它起作用了。有趣的是,我尝试用另一个函数NtCreateThreadEx创建远程线程,该函数是CreateRemoteThread的内部函数,但没有用,我不明白这里发生了什么。代码如下:
void Create_Remote_Thread()
{
HMODULE ntdll,kernel32;
HANDLE hCurrp = nullptr;
ntdll = GetModuleHandle(L"ntdll.dll");
kernel32 = LoadLibrary(L"kernel32.dll");
FARPROC lpfnLoadLibrary = NULL;
_NtGetNextProcess nextProc = (_NtGetNextProcess)GetProcAddress(ntdll,"NtGetNextProcess");
lpfnLoadLibrary = GetProcAddress(kernel32,"LoadLibraryA");
char buf[MAX_PATH];
//while (nextProc(hCurrp,PROCESS_QUERY_LIMITED_INFORMATION,&hCurrp) == 0) {
while (nextProc(hCurrp,PROCESS_ALL_ACCESS,&hCurrp) == 0) {
GetModuleFileNameExA(hCurrp,buf,MAX_PATH);
HANDLE hThread = NULL;
if (strstr(buf,"notepad.exe") != NULL) {
hThread = CreateRemoteThread(hCurrp,NULL,(LPTHREAD_START_ROUTINE)lpfnLoadLibrary,NULL);
}
}
}
然后,可以仅以较低的特权创建远程线程吗?如果有人知道这一点,请通知我。谢谢。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。