木马查杀及后门
转自互联网
0x00 木马及后门学习
后门木马又称特洛伊木马,英文叫做“Trojan horse”,其名称取自希腊神话的特洛伊木马记,它是一种基于远程控制的黑客工具。在黑客进行的各种攻击行为中,木马都起到了开路先锋的作用。
1、特洛伊木马
特洛伊木马属于客户/服务模式。它分为两大部分,即客户端和服务端。
其原理是一台主机提供服务(服务器),另一台主机接受服务(客户机),作为服务器的主机一般会打开一个默认的端口进行监听。如果有客户机向服务器的这一端口提出连接请求,服务器上的相应程序就会自动运行,来应答客户机的请求。这个程序被称为守护进程。以大名鼎鼎的木马冰河为例,被控制端可视为一台服务器,控制端则是一台客户机,服务端程序G_Server.exe是守护进程,G_Client.exe是客户端应用程序。
2、Shell
Shell的中文意思为“壳”,它管理着用户与操作系统之间的交互,可以把它理解为一个命令解释器。它接收用户命令,然后调用相关的应用程序来执行。
3、CmdShell
CmdShell在这里可以称做系统后门,是黑客利用溢出或其他手段,获取目标计算机命令行的远程控制的权利。(Cmd即:用户在运行中输入“cmd”出现的命令行)
CmdShell大多是当用户计算机存在漏洞时,黑客利用攻击工具进行远程进攻,导致计算机崩溃,从而丢失系统的控制权限(即CmdShell)。
4、双关联木马
木马在运行后生成两套完全相同的程序(名称和大小不一定一样),文中的“wlloginproxy.exe”程序和 “services.exe”程序会互相扫描(每0.1秒扫描一次),如果发现对方没有启动或者运行时错误,其中一个木马程序会将自身复制,从新制造一个新的木马运行,导致用户无法完全删除。
5、木马的隐藏方式
为进一步了解木马,我们来看看它们的隐藏方式,木马隐藏方法主要有以下几种:
- 在任务栏里隐藏
这是最基本的。如果在windows的任务栏里出现一个莫名其妙的图标,傻子都会明白怎么回事。在VB中,只要把form的Viseble属性设置为False,ShowInTaskBar设为False程序就不会出现在任务栏里了。
- 在任务管理器里隐藏
查看正在运行的进程最简单的方法就是按下ctrl+alt+del时出现的任务管理器。如果你按下ctrl+alt+del后可以看见一个木马程序在运行,那么这肯定不是什么好的木马。所以,木马千方百计的伪装自己,使自己不出现在任务管理器里。木马发现把自己设为“系统服务”就可以轻松的骗过去。因此希望通过按ctrl+alt+del发现木马是不大现实的。
一台机器由65536个端口,你会注意这么多端口么?而木马就很注意你的端口。如果你稍微留意一下,不难发现,大多数木马使用的端口在1024以上,而且呈越来越大的趋势。当然也有占用1024以下端口的木马。但这些端口是常用端口,占用这些端口可能会造成系统不正常。这样的话,木马就会很容易暴露。也许你知道一些木马占用的端口,你或许会经常扫描这些端口,但现在的木马都提供端口修改功能,你有时间扫描65536个端口么?
- 木马的加载方式隐蔽
木马加载的方式可以说千奇百怪,无奇不有。但殊途同归,都为了达到一个共同的目的,那就是使你运行木马的服务端程序。如果木马不加任何伪装。就告诉你这是木马,你会运行它才怪呢。而随着网站互动化进程的不断进步,越来越多的东西可以成为木马的传播介质,JavaScript、VBScript、ActiveX、XLM……。3-几乎www每一个新功能都会导致木马的快速进化。
- 木马的命名
木马服务端程序的命名也有很大的学问。如果你不做任何修改的话,就使用原来的名字。谁不知道这是个木马程序呢?所以木马的命名也是千奇百怪。不过大多是改为和系统文件名差不多的名字,如果你对系统文件不够了解,那可就危险了。例如有的木马把名字改为window.exe,如果不告诉你这是木马的话,你敢删除么?还有的就是更改一些后缀名,比如把dll改为dl等,你不仔细看的话,你会发现么?
- 最新隐身技术
目前,除了以上所常用的隐身技术,又出现了一种更新、更隐蔽的方法。那就是修改虚拟设备驱动程序(vxd)或修改动态连接库(DLL)。这种方法与一般方法不同,它基本上摆脱了原有的木马模式—监听端口,而采用替代系统功能的方法(改写vxd或DLL文件),木马会将修改后的DLL替换系统已知的DLL,并对所有的函数调用进行过滤。对于常用的调用,使用函数转发器直接转发给被替换的系统DLL,对于一些事先约定好的特种情况,DLL会执行一些相应的操作。实际上这样的木马多只是使用DLL进行监听,一旦发现控制端的连接请求就激活自身,绑在一个进程上进行正常的木马操作。这样做的好处是没有增加新的文件,不需要打开新的端口,没有新的进程,使用常规的方法监测不到它,在正常运行时木马几乎没有任何症状,而一旦木马的控制端向被控制端发出特定的信息后,隐藏的程序就立即开始运作。
0x01 木马查杀方法
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、运行任务管理器,杀掉木马进程。
(一)、检查注册表中RUN、RUNSERVEICE等几项,先备份,记下可以启动项的地址, 再将可疑的删除。
(二)、删除上述可疑键在硬盘中的执行文件。
(三)、一般这种文件都在WINNT,SYSTEM,SYSTEM32这样的文件夹下,他们一般不会单独存在,很可能是有某个母文件复制过来的,检查C、D、E等盘符下有没有可疑的.exe,.com或.bat文件,有则删除之。
(四)、检查注册表
HKEY_LOCAL_MACHINE和HKEY_CURRENT_USER\SOFTWARE\Microsoft\Internet Explorer\Main
中的几项(如Local Page),如果被修改了,改回来就可以。
(五)、检查 HKEY_CLASSES_ROOT\txtfile\shell\open\command 和 HKEY_CLASSES_ROOTxtfileshellopencommand 等几个常用文件类型的默认打开程序是否被更改。这个一定要改回来。 很多病毒就是通过修改.txt文件的默认打开程序让病毒在用户打开文本文件时加载的。
6、利用工具
查杀木马的工具有LockDown、The Clean、木马克星、金山木马专杀、木马清除大师、木马分析专家等,其中有些工具,如果想使用全部功能,需要付一定的费用,木马分析专家是免费授权使用。
0x02 如何查找电脑内的木马?
1、集成到程序中
其实木马也是一个服务器-客 户端程序,它为了不让用户能轻易地把它删除,就常常集成到程序里,一旦用户激活木马程序,那么木马文件和某一应用程序捆绑在一起,然后上传到服务端覆盖原 文件,这样即使木马被删除了,只要运行捆绑了木马的应用程序,木马又会被安装上去了。绑定到某一应用程序中,如绑定到系统文件,那么每一次Windows启动均会启动木马。
2、隐藏在配置文件中
木马实在是太狡猾,知道多数用户平时使用的是图形化界面的操作系统,对于那些已经不太重要的配置文件大多数是不闻不问了,这正好给木马提供了一个藏身之 处。而且利用配置文件的特殊作用,木马很容易就能在大家的计算机中运行、发作,从而偷窥或者监视大家。不过,现在这种方式不是很隐蔽,容易被发现,所以在Autoexec.bat和Config.sys中加载木马程序的并不多见,但也不能因此而掉以轻心哦。
3、潜伏在Win.ini中
木马要想达到控制或者监视计算机的目的,必须要运行,然而没有人会傻到自己在自己的计算机中运行这个该死的木马。当然,木马也早有心理准备,知道用户不会帮助它工作,因此它必须找一个既安全又能在系统启动时自动运行的地方,于是潜伏在Win.ini中是木马感觉比较惬意的地方。大家不妨打开Win.ini来看看,在它的[windows]字段中有启动命令“load=”和 “run=”,在一般情况下“=”后面是空白的,如果有后跟程序,比方说是这个样子:run=c:windows ile.exe load=c:windows ile.exe这时你就要小心了,这个file.exe很可能是木马哦。
4、伪装在普通文件中
这个方法出现得比较晚,不过现在很流行,对于不熟练的windows操作者,很容易上当。
具体方法是把可执行文件伪装成图片或文本----在程序中把图标改成Windows的默认图片图标, 再把文件名改为*.jpg.exe, 由于Win98默认设置是"不显示已知的文件后缀名",文件将会显示为*.jpg, 不注意的人一点这个图标就中木马了(如果你在程序中嵌一张图片就更完美了)。
5、内置到注册表中
上面的方法让木马着实舒服了一阵,既没有人能找到它,又能自动运行,真是快哉!然而好景不长,人类很快就把它的马脚揪了出来,并对它进行了严厉的惩罚!但 是它还心有不甘,总结了失败教训后,认为上面的藏身之处很容易找,现在必须躲在不容易被人发现的地方,于是它想到了注册表!的确注册表由于比较复杂,木马 常常喜欢藏在这里快活,赶快检查一下,有什么程序在其下,睁大眼睛仔细看:
HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersion下所有以run开头的键值;
HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersion下所有以run开头的键值;
HKEY-USERS.DefaultSoftwareMicrosoftWindowsCurrentVersion下所有以run开头的键值。