木马自诞生以来,一直在不断的“变形”之中。现在的木马已今非昔比了,说它拥有七十二般变化一点也不分。阴魂不散、隐藏之术、毁尸灭迹……各种木马技术层出不穷,让人防不胜防;有句俗话:您有您的千条计,我有我的老主意。木马不是来无踪,去无影的神,虽然它能“画皮”,擅于伪装,但我们总能找出防范它的一般方法。本文将向您全面介绍木马利用的端口、扫描端口的软件及防范木马的策略。相信定能助您斩断木马的“黑手”。
基本上所有的木马都是基于TCP/IP通讯的客户端/服务端结构的系统,服务端被安装后,会在被监控端打开一个监听端口等待客户端来连接,一般情况下,不同的木马,默认打开的监听端口不同,所以,查看您电脑上打开的监听端口,可以判断您的电脑是否中了木马以及中了何种木马。
常见端口
电脑上1024以下的端口一般被固定分配给一些服务,这些端口以及和它对应和服务已经“家喻户晓、妇孺皆知”了,所以这些端口有些叫公认端口,例如80端口被固定给Web服务,21端口被固定给FTP服务等,如果您的电脑安装并启用了这些服务,那么在您的电脑上这些端口应该是开放的。下面是常见的一些公认端口。
80端口:超文本传输协议(HTTP)中定义的端口,用来提供网页(Web)服务;
21端口:文件传输协议(FTP)中定义的端口,用来提供文件的上传与下载服务;
23端口:远程登录协议(Telent)中定义的端口,用来提供远程维护服务;
25端口:简单邮件传输协议(SMTP)中定义的端口,用来提供邮件的发送服务;
110端口:邮件接受协议(POP)中定义的端口,用来提供邮件的接收服务。
提示:还有一些端口在Windows安装好后就会自动打开,笔者对这些端口做了一次调查,调查中发现,几乎所有的Windows系统中都要开放135、137、138和139端口,另外,在Windows 2000及以上的系统中445端口也是开放的。
1024以上的端口系统一般不固定给某个服务,它是动态分配的,因而这类端口又叫做动态端口(有些文章认为从1024到49151的端口比较固定地分配给一些服务,因而它们把这些端口有细分为“注册端口”,实际上,系统通常从1024起就开始动态分配端口了)。动态端口任何网络程序都可以使用,只要程序向系统提出访问网络的申请,那么系统就可以从这些端口中分配一个供该程序使用,访问结束后,所占用的端口也会被释放,当有其它程序访问网络时,这些端口有可能会被再次使用。需要指出的是,从理论上讲,动态端口不应用作服务端口。但是,还是有一部分正常程序和大多数木马程序的服务端固定使用了一个或几个这一范围内的端口(大多数木马所使用的监听端口都可以自定义,这里所说的端口是指它默认的监听端口)监听网络。下面列出一些常用程序和已知木马默认的监听端口。
3389端口:Windows的终端服务或远程桌面默认的监听端口;
7626端口:木马冰河服务端默认的监听端口;
7306端口:木马网络精灵(NetSpy)服务端默认的监听端口;
6267端口:木马广外女生服务端默认的监听端口;
19191端口:木马蓝色火焰服务端默认的监听端口。
由于已知的木马实在太多,所以笔者在这里不能一一列出,您可以根据下面介绍的方法查出处于监听状态的端口,然后打开网页http://edu.cnzz.cn/show_9221.html(该网页列出了绝大多数木马默认使用的监听端口)去对照,或者在搜索框中输入监听端口的端口号,利用搜索引擎查询。
利用Netstat命令查看端口
Netstat命令能干些什么呢?一台机器要和另一台机器通讯,首先要明确四个要素,即本机的IP地址、远程主机的IP地址、本机使用的通讯端口、远程主机使用的通讯端口。
Netstat是Windows自带的网络检测工具,只要安装了TCP/IP协议,我们就可以使用该命令。下面是该命令的格式和一些主要参数的介绍。
Netstat [-a] [-e] [-n] [-o] [-s][-p proto][-r] [interval]
-a 该参数用来显示计算机包括LISTENIN状态的所有端口和全部连接;
-n 以数字格式的形式显示计算机除LISTENING状态的端口和网络地址;
-o 显示计算机除LISTENING状态的端口和网络地址,同时显示开启该端口进程的PID;
-e 列出端口上的数据流量(一般与参数s共同使用),包括发送和接收的数据报的总字节数、错误数、删除数等;
-s 按照各个协议分别显示其统计数据。
在上述参数中,我们经常使用的有三个:“Netstat -a”、“Netstat -n”和“Netstat -o”
1.“Netstat -a”主要用来查看本地计算机都开放了哪些监听端口,被监听的端口中出现了7626端口,那么我们初步可以断定,这台计算机可能被植入了冰河木马。
2.“Netstat -n”和“Netstat -o”主要用来查看本机与外部的网络连接。和传统的木马相比,现在还有一种木马使用反弹端口,也就是说这种木马的服务端并不是开一个监听端口等待客户端来连接,而是服务端主动去连接客户端监听的端口,对付这种木马,我们就要使用“Netstat -n”或“Netstat -o”查看本机与外部的网络连接状况。
在常规的检查中,一般把参数“-a”和“-n”、“-o”联合起来使用。在命令提示符窗口中输入“Netstat -an”或“Netstat -ao”,这样,我们不仅能查看本机开放了哪些监听端口,还能以IP地址形式查看本机的网络程序都连接到哪些网络主机。
使用软件扫描端口
扫描端口的软件比较多,这里建议大家使用SuperScan,它是国外著名安全团体GoundStone推出的一款端口扫描工具,它不仅能够扫描端口,而且还内置了一个特洛伊木马的端口列表文件,利用该列表文件,我们就可以直接扫描自己的电脑是否中了木马。
SuperScan小档案
软件版本:SuperScan v3.00
软件大小:202KB
软件性质:免费软件
适用平台:Windows 9x/NT/2000/XP/2003
⒈端口扫描:启动SuperScan,单击“本机”或“网络”按钮,您的局域网IP或公网IP就填写到“起始IP”和“终止IP”文本框中了,接下来,选择“所有端口”单选框并在文本框中键入1到65535的所有端口,最后单击“开始”进行扫描。扫描结束后,下面的窗口中会列出您的系统中开放的全部监听端口,如果端口是木马开放的,它还能根据特洛伊木马的端口列表文件给出该木马的名称或描述。
⒉扫描木马:上面介绍的方法我们由于要对全部端口进行扫描,所以花费的时间比较长,如果您只扫描木马,可以使用特洛伊木马的端口列表文件。
第一步:在SuperScan的界面上单击“端口设置”打开“编辑端口列表”对话框,在“端口列表清单”中选择“trojans.lst”文件,在下面的窗口中列出了木马使用的端口号和木马的描述,您可以选择一部分端口进行扫描,也可心单击“全部选择”选择列表中的所有端口进行扫描。
第二步:在SuperScan的界面上,“列表中的每个端口”扫描“trojans.lst”文件中列出的全部端口,“所有列表中选择的端口”只扫描在“trojans.lst”文件中选择的端口,您也可以键入一个起始端口号和结束端口号,然后选择“列表中的端口”扫描“trojans.lst”文件中这一范围内的端口
第三步:选择好扫描的端口后,然后在“起始IP”和“终止IP”中输入自己的公网IP地址,单击“开始”就可以扫描木马了。
小提示:在Internet上,新的木马层出不穷,为了能让SuperScan识别出这些木马,我们可以把新出现的木马加入到“trojans.lst”文件中。在“编辑端口列表”对话框上选择“trojans.lst”文件,在左侧“端口”的文本框中输入木马使用的默认端口号,在“形容”文本框中输入该木马的名称或说明,最后单击“添加”,新的木马就添加到右侧的端口列表中了,单击“保存”,我们可以把该列表另存为其它文件,但然也可以继续保存在“trojans.lst”文件中。
撕破木马画皮,浅析防范策略
以上为您介绍了木马常用的端口及扫描端口的软件。木马层出不穷,但并不是不可战胜的,以下将为您介绍木马常见伪装方法及防范策略。
常见伪装方法
⒈程序图标:现在大多数木马都提供了选择服务端安装程序图标的功能,单击“选择图标”,黑客就可以轻松地为服务端安装程序选择任何图标。
⒉文件改名:一些木马服务端安装程序会在您的电脑上伪装成图片格式,如果您把它当作一个图像文件来打开的话,那么在欣赏图片时,木马也就在您的电脑中“安营扎寨”了。
⒊文件捆绑:“千万不要下载和运行来历不明的可执行文件”是一些安全类文章最爱唠叨的一句话,今天,笔者在这里也凑个热闹:千万不要运行一些网络游戏的免费外挂。免费的网络游戏外挂中绝大多数都捆绑了不良木马,当您运行了这个外挂,那么捆绑在这个外挂中的木马也就偷偷地植入了您的电脑。
⒋出错显示:既然是木马,那么它在安装时就不会出现任何界面和提示,因此,一个程序双击后如果看不到任何反应,那么聪明的网民就会怀疑它是木马。为了消除这部分人心中的疑虑,一些木马会打开一个图片,还有些木马会设计一个错误提示对话框,而且对话框的内容也可以自定义。比如,有些木马安装时会弹出一个对话框提示:“文件已损坏,无法打开”。这样的程序,您还会怀疑它是木马吗?
⒌自我销毁:大多数木马是通过自我复制的方法安装的,也就是说,它的安装程序其实就是木马服务端程序,当您双击了一个木马的安装程序后,它会把自己拷贝到系统目录或其它目录,因此,一些有经验的网民如果怀疑一个程序是木马,它会根据安装程序的大小在硬盘上搜索相同大小的文件。为了防止这部分网民删除木马,一些木马设计了自我销毁的功能,当它把自己拷贝到系统目录或其它目录后,它会把自己删除,这样既达到了隐匿自己的效果,而且还会让您无据可查。
⒍木马更名:木马是一个程序,是程序就会有一个文件名。按照文件名在硬盘上进行搜索,然后把搜索到的文件进行删除就能彻底删除木马,这是删除木马最理想的方法。但实际情况却是我们根本就无法确定木马的文件名,这是因为木马的文件名是易变的。现在大多数木马在配置服务端程序时都允许自定义木马的文件名,不仅如此,木马的安装路径、进程名称等都可以允许黑客自定义,如图1所示。
⒎文件关联:但您正在为手工删除了木马文件而沾沾自喜时,说不定阴魂未散的木马会再次光临,为什么木马会起死回生呢?这是因为木马使用了文件关联的技术,这种木马一般会安装两个可执行文件,一个就是我们所说的木马服务端文件,另一个相当于木马的安装程序。安装时,木马会把这个程序和一些常用文件类型,比如TXT或EXE文件关联,当木马的服务端被删除后,一当您运行TXT或EXE文件,该程序就会被激活而再次安装木马服务端,这样,被删除的木马就又复活了。
防范策略
(1)在“文件夹选项”对话框中取消“隐藏已知文件类型的扩展名”选项
首先要明确,不论木马如何伪装自己的图标和文件名,它的后缀部分必须是一个可执行文件的扩展名,比如EXE、COE、BAT等,否则木马不会运行自己的代码,但遗憾的是Windows在默认的设置下会隐藏已知文件的扩展名,这样,如果木马把自己的文件名改成了“XXX.bmp.exe”这个样子,扩展名“.exe”隐藏后,木马的文件名就会变成“XXX.bmp”,再给这个文件配一个图像文件的图标,这个文件就会变成一个“披着羊皮的狼”。所以笔者建议,在“文件夹选项”对话框中取消“隐藏已知文件类型的扩展名”选项。
(2)检查“未知”监听端口
有些木马防范的文章和软件会根据一些特定的端口来判断电脑是否中了木马和种了何种木马,比如一见电脑开了7626端口就认为电脑中子冰河(冰河的默认端口号为7626)。实际上这种方法早就行不通了,因为没有哪一个黑客会使用默认端口作为冰河的端口,现在绝大多数木马都允许黑客自定义端口,所以这种方法只有教学或理论上的价值而没有任何实用价值。不过,木马要和客户端通信肯定会打开一个监听端口这倒是事实。所以,查看您电脑上“未知”的监听端口,可以判断您的电脑是否中了木马。
为什么要检查“未知”监听端口呢?这是因为Windows安装后会自动打开一些监听端口以保证它自己提供的一些服务能够正常通讯。另外,一些正常的服务端程序也会打开一些监听端口,所以,我们不能“谈端口就变色”,还要分得清那些是正常的监听端口,那些是木马端口。一般情况下,1024以下的端口都为公认的端口,这些端口系统都会保留给自己以提供一些常用的网络服务,木马一般不会使用这部分端口,所以,检查端口时,重点要放在1024以上的监听端口上,如果您的电脑开了这样的端口,那您就要注意了。
(3)检查自启动位置
和其它程序一样,木马也是Windows上的一个应用程序,为了达到远程控制被控端的目的,大多数木马会选择随系统一同启动。除了“开始”菜单上的“启动”组外,Windows中还有很多地方能够加载程序,经常检查这些位置,可以有效地防止木马在您的系统中运行。
在一些防范木马的文章中介绍了很多木马的自启动位置,这些位置主要是注册表键项,因为这种方法要操作注册表,还要记忆大量的注册表主键,所以笔者不建议使用这种方法。在这里我给大家推荐Autoruns,该软件不仅能够显示Windows所有的自启动位置,而且还能直接禁用自启动项的加载,如图2所示,清除选择框中的小钩,该自启动项就不能随系统一同启动了。不仅如此,该软件还能隐藏已签证的微软自启动项,利用这一功能,我们还可以在众多的Windows服务中找出把自己注册为服务的木马(Windows的大多数服务都是自带的,也就是说都是经过微软认证的,而注册为服务的木马则不会被微软认证)。例如,选择“选项→隐藏已签证的微软自启动项”,当已签证的微软自启动项隐藏以后,把自己注册为自启动服务的灰鸽子就豁然在目了。
(4)使用木马捆绑克星检查下载的文件
很多安全类文章告诫我们,不要运行来历不明的软件,但在很多情况下,往往就是朋友发给我们的文件中捆绑有木马;有些安全专家告诉我们,不要下载无名小站上的软件,但常常是知名大站上的软件木马最多。所以,不要因为安全而裹足不前,不要因为害怕木马而不敢下载软件,正确的态度是不要把重要的文件保存在上网的电脑上(任何安全都是相对的,在网络上,没有攻而不破的电脑),然后使用荣成文件捆绑克星大胆下载软件。
小提示:荣成文件捆绑克星能检测出捆绑在一个可执行文件中的其它程序,而且还能把捆绑在其中的程序分离出来,如图3所示。
(5)使用网络防火墙拦截木马的通讯
木马不是来无踪,去无影的神,它要和客户端也就是控制端的电脑通讯,就必须在客户端和服务端之间架起一道“通讯电缆”,使用网络防火墙就可以“掐断”这根电缆。网络防火墙虽然不能解决所有的安全问题,但是它确实能够拦截大部分木马的通讯,如果您使用的好,它还能揪出远在千里之外的黑客,所以笔者建议在经济条件许可的情况下,给自己的电脑安装一款专业网络防火墙。
(6)及时升级杀马软件和杀毒软件
虽然杀马软件(专业的查找和清除木马的软件,比如木马克星)和杀毒软件在剿杀木马和病毒方面总是滞后的,但是这些年来杀马软件和杀毒软件在网络信息安全方面确实功不可灭。现在,任何人都可心在网络上随便下载木马,如果说只有高手才能制作病毒的话,那么木马制作人人都会,而且现在的木马大都可以自定义服务端,所以手工查杀木马基本不可能。因此,笔者还是那句话,在经济条件允许的条件下,给自己的电脑也安装一款杀马软件和杀毒软件,并把它们及时升级到最新版。
(7)不要把重要的文件保存在网络上的电脑中
笔者在前面说过一句话:“任何安全都是相对的,在网络上,没有攻而不破的电脑”。也许您会说我是在危言耸听、哗众取宠,但如果您精通系统漏洞和玩过木马(这种木马不是网络上随处可见的已被杀马软件和杀毒软件列在黑名单上的已公开木马),那么您就会深深地体会到:网络上根本无安全可言。笔者曾把一款木马的服务端伪装成一本电子书共享在某P2P上,不到一下午功夫,中马者竟有20多人,笔者不仅能够任意下载文件和操作他们的电脑,而且还通过该木马的摄像头监控功能窥到了对方。所以笔者在文章的最后忠告大家:不要把重要的文件保存在网络上的电脑中。