您的当前位置:首页 > 电脑资讯

查看端口,让木马无处隐身

2020-08-01 05:43:04

 基本上所有的木马都是基于TCP/IP通讯的客户端/服务端结构的系统,服务端被安装后,会在被监控端打开一个监听端口等待客户端来连接,一般情况下,不同的木马,默认打开的监听端口不同,所以,查看你电脑上打开的监听端口,可以判断你的电脑是否中了木马以及中了何种木马。

  辨认系统的默认端口

  电脑上1024以下的端口一般被固定分配给一些服务,这些端口以及和它对应和服务已经“家喻户晓,妇孺皆知”,所以这些端口有叫公认端口,例如80端口被固定给Web服务,21端口被固定给FTP服务等,如果你的电脑安装并启用了这些服务,那么在你的电脑上这些端口应该是开放的。下面是常见的一些公认端口。

  80端口:超文本传输协议中定义的端口,用来提供网页(WEB)服务;

  21端口:文件传输协议中定义的端口,用来提供文件的上传与下载服务;

  23端口:远程登录协议中定义的端口,用来提供远程维护服务;

  25端口:简单邮件传输协议中定义的端口,用来提供邮件的发送服务;

  110端口:邮件接受协议中定义的端口,用来提供邮件的接收服务。

  提示:还有一些端口在Windows安装好后就会自动打开,笔者对这些端口做了一次调查,调查中发现,几乎所有的Windows系统中都要开放135、137、138和139端口,另外,在Windows 2000及以上的系统中445端口也是开放的。

  1024以上的端口系统一般不固定给某个服务,它是动态分配的,因而这类端口又叫做动态端口(有些文章认为从1024到49151的端口比较固定地分配给一些服务,因而它们把这些端口细分为“注册端口”,实际上,系统通常从1024起就开始动态分配端口了)。动态端口任何网络程序都可以使用,只要程序向系统提出访问网络的申请,那么系统就可以从这些端口中分配一个供该程序使用,访问结束后,所占用的端口也会被释放,当有其它程序访问网络时,这些端口有可能会被再次使用。需要指出的是,从理论上讲,动态端口不应用作服务端口,但是,还是有一部分正常程序和大多数木马程序的服务端固定使用了一个或几个这一范围内的端口(大多数木马所使用的监听端口都可以自定义,这里所说的端口是指它默认的监听端口)监听网络。下面列出一些常用程序和已知木马默认的监听端口。

  3389端口:Windows的终端服务或远程桌面默认的监听端口;

  7626端口:木马冰河服务端默认的监听端口;

  7306端口:木马网络精灵(NetSpy)服务端默认的监听端口;

  6267端口:木马广外女生服务端默认的监听端口;

  19191端口:木马蓝色火焰服务端默认的监听端口。

  由于已知的木马实在太多,所以我们在这里不能一一列出,你可以根据下面介绍的方法查出处于监听状态的端口,然后在网上搜索该端口号,查询它是否是木马造成的。

  利用Netstat命令查看端口

  一台机器要和另一台机器通讯,首先要明确四个要素,即本机的IP地址,远程主机的IP地址,本机使用的通讯端口,远程主机使用的通讯端口。使用Netstat命令就能够查清这四个要素。Netstat是Windows自带的网络检测工具,只要安装了TCP/IP协议,我们就可以使用该命令。

  Netstat命令格式和主要参数

  Netstat [-a] [-e] [-n] [-o] [-s][-p proto][-r] [interval]

  -a 该参数用来显示计算机包括LISTENIN状态的所有端口和全部连接;

  -n 以数字格式的形式显示计算机除LISTENING状态的端口和网络地址;

  -o 显示计算机除LISTENING状态的端口和网络地址,同时显示开启该端口进程的PID;

  -e 列出端口上的数据流量(一般与参数s共同使用),包括发送和接收的数据报的总字节数、错误数、删除数等;

  -s 按照各个协议分别显示其统计数据。

  端口的常见状态

  LISTENING——这就是我们常说的监听端口,这种状态的端口一般由某个服务程序打开,等待其它主机来连接,因而这种端口又叫做服务端口;

  ESTABLISHED——如果处于监听状态的端口已和其它主机建立了连接,那么端口的“LISTENING”状态就会变为“ESTABLISHED”状态;

  SYN_SENT——大多数情况下,我们的电脑会主动打开一个端口去连接其它机器,这时端口的状态就表现为“SYN_SENT”,这种端口一般是由客户端程序打开,所以这种端口也叫做客户端口。客户端口如果和服务端口建立了连接,那么端口的状态就会由“SYN_SENT”状态变为“ESTABLISHED”状态;

  TIME_WAIT——处于ESTABLISHED状态的端口,如果连接被结束,那么端口的状态就会变为TIME_WAIT状态。

  在上术参数中,我们经常使用的有三个:“Netstat -a”、“Netstat n”和“Netstat -o”

  ⒈“Netstat -a”主要用来查看本地计算机都开放了哪些监听端口,如图1所示,被监听的端口中出现了7626端口,那么我们初步可以断定,这台计算机可能被植入了冰河木马。

  ⒉“Netstat n”和“Netstat -o”(和Netstat –n命令相比,该命令虽然不解析地址,但可以查看发起连接进程的PID,知道了发起该连接进程的PID,借助其它一些软件,我们就可以知道该PID对应的应用程序)主要用来查看本机与外部的网络连接。和传统的木马相比,现在还有一种木马使用反弹端口,也就是说这种木马的服务端并不是开一个监听端口等待客户端来连接,而是服务端主动去连接客户端监听的端口,对付这种木马,我们就要使用“Netstat n”或“Netstat -o”查看本机与外部的网络连接状况。如图2所示,我没有使用IE等任何软件与外部发生连接,可电脑却长时间地与“211.99.188.167”主机的8000端口连接着,通过对PID的查询,发现这一连接竟然是IE浏览器发起的,通过其它一些手段,初步断定,我的电脑可能被植入了反弹端口的木马——灰鸽子。

  在常规的检查中,我们一般把参数“-a”和“-n”、“-o”联合起来使用。在命令提示符窗口中输入“Netstat –an”或“Netstat –ao”,这样,我们不仅能查看本机开放了哪些监听端口,还能以IP地址形式查看本机的网络程序都连接到哪些网络主机。

  使用软件扫描端口

  扫描端口的软件比较多,这里建议大家使用SuperScan,它是国外着名安全团体GoundStone推出的一款端口扫描工具,它不仅能够扫描端口,而且还内置了一个特洛伊木马的端口列表文件,利用该列表文件,我们就可以直接扫描自己的电脑是否中了木马。

  ⒈端口扫描:启动SuperScan单击“本机”或“网络”按钮,你的局域网IP或公网IP就填写到“起始IP”和“终止IP”文本框中了,接下来,选择“所有端口”单选框并在文本框中键入1到65535的所有端口,最后单击“开始”进行扫描。扫描结束后,下面的窗口中会列出你的系统中开放的全部监听端口,如果端口是木马开放的,它还能根据特洛伊木马的端口列表文件给出该木马的名称或描述(如图3)。

  ⒉扫描木马:上面介绍的方法我们由于要对全部端口进行扫描,所花费的时间比较长,如果你只扫描木马,可以使用特洛伊木马的端口列表文件。

  第一步:在SuperScan的界面上单击“端口设置”打开“编辑端口列表”对话框,在“端口列表清单”中选择“trojans.lst”文件(图4),在下面的窗口中列出了木马使用的端口号和木马的描述,你可以选择一部分端口进行扫描,也可心单击“全部选择”选择列表中的所有端口进行扫描。

  第二步:在SuperScan的界面上,点击“列表中的每个端口”扫描“trojans.lst”文件中列出的全部端口,“所有列表中选择的端口”只扫描在“trojans.lst”文件中选择的端口,你也可以键入一个起始端口号和结束端口号,然后选择“列表中的端口”扫描“trojans.lst”文件中这一范围内的端口

  第三步:选择好扫描的端口后,然后在“起始IP”和“终止IP”中输入自己的公网IP地址,单击“开始”就可以扫描木马了。

  小提示:在Internet上,新的木马层出不穷,为了能让SuperScan识别出这些木马,我们可以把新出现的木马加入到“trojans.lst”文件中。在“编辑端口列表”对话框上选择“trojans.lst”文件,在左侧“端口”的文本框中输入木马使用的默认端口号,在“形容”文本框中输入该木马的名称或说明,最后单击“添加”,新的木马就添加到右侧的端口列表中了,单击“保存”,我们可以把该列表另存为其它文件,但然也可以继续保存在“trojans.lst”文件中。