首页  ·  知识 ·  基础设施
端口·木马·安全·扫描应用知识概览
佚名  http://www.700net.com/  数据中心  编辑:dezai  图片来源:网络
到这个题目你也许有些奇怪,怎么把这几个词放在了一起,其实谈起端口和木马都是老生常谈了,但即使是常谈还有很多人的计算机被“冲击波”冲过之后又被“震荡波
到这个题目你也许有些奇怪,怎么把这几个词放在了一起,其实谈起端口和木马都是老生常谈了,但即使是常谈还有很多人的计算机被“冲击波”冲过之后又被“震荡波”狠狠地震了一下,看来很有必要再谈谈老话题,免得再被什么波温柔地扫过。其实说这些最终的目的就是为了保证计算机的上网安全。 

  一、 端口

  一)、端口的一般含义 

  说到端口,这确实是个老话题,但一切都是从它开始的,不得不说。何谓端口,打个比方,你住在一座房子里,想让别人来拜访你,得在房子上开个大门,你养了个可爱的小猫,为了它的进出,专门给它修了个小门,为了到后花园,又开了个后门……所有这些为了进到这所房子里而开的门我们叫它端口,这些为了别人进来而开的端口称它为'服务端口'。 

  你要拜访一个叫张三的人,张三家应该开了个允许你来的门____服务端口,否则将被拒之门外。去时,首先你在家开个'门',然后通过这个'门' 径直走进张三家的大门。为了访问别人而在自己的房子开的'门',我们称它为'客户端口'。它是随机开的而且是主动打开的,访问完就自行关闭了。它和服务端口性质是不一样的,服务端口是开了个门等着别人来访问,而客户端口是主动打开一个门去打开别人的门,这点一定要清楚。 

  下面我们从专业的角度再简单解释一下端口的概念。联网的计算机要能相互通信必须用同一种协议,协议就是计算机通信的语言,计算机之间必须说一种语言才能彼此通信,Internet的通用语言是TCP/TP,它是一组协议,它规定在网络的第四层运输层有两种协议TCP、UDP。端口就是这两个协议打开的,端口分为源端口和目的端口,源端口是本机打开的,目的端口是正在和本机通信的另一台计算机的端口,源端口分主动打开的客户端口和被动连接的服务端口两种。在Internet中,你访问一个网站时就是在本机开个端口去连网站服务器的一个端口,别人访问你时也是如此。也就是说计算机的通讯就像我们互相串门一样,从这个门走进哪个门。 

  当你装好系统后默认就开了很多'服务端口'。如何知道自己的计算机系统开了那些端口呢?这就是下面要说的: 

  二)、查看端口的方法 

  1、命令方式 

  下面以Windows XP为例看看新安装的系统都开了那些端口,也就是说都预留了那些门,不借助任何工具来查看端口的命令是netstat,方法如下: 

  a、在'开始'的'运行'处键入cmd,回车 

  b、在dos命令界面,键入netstat -na,Proto代表协议,有TCP和UDP两种协议。Local Address代表本机地址,该地址冒号后的数字就是开放的端口号。Foreign ress代表远程地址,如果和其它机器正在通信,显示的就是对方的地址,State代表状态,显示的 

  LISTENING表示处于侦听状态,就是说该端口是开放的,等待连接,但还没有被连接。就像你房子的门已经敞开了,但此时还没有人进来。以第一行为例看看它的意思。 

  TCP 0.0.0.0:135 0.0.0.0:0 LISTENING 

  这一行的意思是本机的135端口正在等待连接。注意:只有TCP协议的服务端口才能处于LISTENING状态。 

  2、用TCPView工具 

  为了更好的分析端口,最好用TCPView这个软件,该软件很小只有93KB,而且是个绿色软件,不用安装。 

  第一次显示时字体有些小,在'Options'->'Font'中将字号调大即可。TCPView显示的数据是动态的。Local Address显示的就是本机开放的哪个端口(:号后面的数字),TCPView可以看出哪个端口是由哪个程序发起的。445、139、1025、 135、5000等端口是开放的,445、139等端口都是system发起的,135等都是SVCHOST发起的。 

  三)、研究端口的目的: 

  1、知道本机开了那些端口,也就是可以进入到本机的'门'有几个,都是谁开的? 

  2、目前本机的端口处于什么状态,是等待连接还是已经连接,如果是已经连接那就要特别注意看连接是个正常连接还是非正常连接(木马等)? 

3、目前本机是不是正在和其它计算机交换数据,是正常的程序防问到一个正常网站还是访问到一个陷阱? 

  当你上网时就是本机和其它机器传递数据的过程,要传递数据必须要用到端口,即使是有些非常高明的木马利用正常的端口传送数据也不是了无痕迹的,数据在开始传输、正在传输和结束传输的不同阶段都有各自的状态,要想搞明白上述3个问题,就必须清楚端口的状态变化。下面结合实例先分析服务端口的状态变化。只有TCP协议才有状态,UDP协议是不可@@传输,是没有状态的。 

  四)、服务端口的状态变化 

  先在本机(IP地址为:192.168.1.10)配置FTP服务,然后在其它计算机(IP地址为:192.168.1.1)访问FTP服务,从TCPView看看端口的状态变化。 

  下面是从TCPView中截取的部分。 

  1、LISTENING状态 

  FTP服务启动后首先处于侦听(LISTENING)状态。 

  State显示是LISTENING时表示处于侦听状态,就是说该端口是开放的,等待连接,但还没有被连接。就像你房子的门已经敞开的,但还没有人进来。 

从TCPView可以看出本机开放FTP的情况。它的意思是:程序inetinfo.exe开放了21端口,FTP默认的端口为21,可见在本机开放了FTP服务。目前正处于侦听状态。

  inetinfo.exe:1260 TCP 0.0.0.0:21 0.0.0.0:0 LISTENING

  2、ESTABLISHED状态

  现在从192.168.1.1这台计算机访问一下192.168.1.10的FTP服务。在本机的TCPView可以看出端口状态变为ESTABLISHED。

  ESTABLISHED的意思是建立连接。表示两台机器正在通信。

  下面显示的是本机的FTP服务正在被192.168.1.1这台计算机访问。

  inetinfo.exe:1260 TCP 192.168.1.10:21 192.168.1.1:3009 ESTABLISHED

  注意:处于ESTABLISHED状态的连接一定要格外注意,因为它也许不是个正常连接。后面我们要讲到这个问题。

  3、 TIME_WAIT状态

   现在从192.168.1.1这台计算机结束访问192.168.1.10的FTP服务。在本机的TCPView可以看出端口状态变为TIME_WAIT。

  TIME_WAIT的意思是结束了这次连接。说明21端口曾经有过访问,但访问结束了。

  [System Process]:0 TCP 192.168.1.10:21 192.168.1.1:3009 TIME_WAIT

  4、小技巧

  a、可以telnet一个开放的端口,来观察该端口的变化。比如看1025端口是开放的,在命令状态运行:  telnet 192.168.1.10 1025

  b、从本机也可以测试,只不过显示的是本机连本机

  c、在Tcpview中双击连接可看出程序的位置,右键点击该连接,选择End Process即可结束该连接

      五)、客户端口的状态变化

  客户端口实际上就是从本机访问其它计算机服务时打开的源端口,最多的应用是上网,下面就以访问baidu.com为例来看看端口开放以及状态的变化情况。

  1、SYN_SENT状态

  SYN_SENT状态表示请求连接,当你要访问其它的计算机的服务时首先要发个同步信号给该端口,此时状态为SYN_SENT,如果连接成功了就变为ESTABLISHED,此时SYN_SENT状态非常短暂。但如果发现SYN_SENT非常多且在向不同的机器发出,那你的机器可能中了冲击波或震荡波之类的病毒了。这类病毒为了感染别的计算机,它就要扫描别的计算机,在扫描的过程中对每个要扫描的计算机都要发出了同步请求,这也是出现许多 SYN_SENT的原因。

  下面显示的是本机连接baidu.com网站时的开始状态,如果你的网络正常的,那很快就变为ESTABLISHED的连接状态。

  IEXPLORE.EXE:2928 TCP 192.168.1.10:1035 202.108.250.249:80 SYN_SENT

  2、ESTABLISHED状态

  下面显示的是本机正在访问baidu.com网站。如果你访问的网站有许多内容比如访问www.yesky.com,那会发现一个地址有许多ESTABLISHED,这是正常的,网站中的每个内容比如图片、flash等都要单独建立一个连接。看ESTABLISHED状态时一定要注意是不是IEXPLORE.EXE程序(IE)发起的连接,如果是EXPLORE.EXE之类的程序发起的连接,那也许是你的计算机中了木马了。IEXPLORE.EXE:3120 TCP 192.168.1.10:1045 202.108.250.249:80 ESTABLISHED

  3、TIME_WAIT状态

  如果浏览网页完毕,那就变为TIME_WAIT状态。

  [System Process]:0 TCP 192.168.1.10:4259 202.108.250.249:80 TIME_WAIT

  七)、要点

  一般用户一定要熟悉(再啰嗦几句):

  1、服务端口重点要看的是LISTENING状态和ESTABLISHED状态,LISTENING是本机开了哪些端口,ESTABLISHED是谁在访问你的机器,从哪个地址访问的。

  2、客户端口的SYN_SENT状态和ESTABLISHED状态,SYN_SENT是本机向其它计算机发出的连接请求,一般这个状态存在的时间很短,但如果本机发出了很多SYN_SENT,那可能就是中毒了。看ESTABLISHED状态是要发现本机正在和哪个机器传送数据,主要看是不是一个正常程序发起的。

二、木马 

  什么是木马,简单的说就是在未经你许可偷偷在你的计算机中开个后门,木马开后门主要有两种方式。 

  1、有服务端口的木马,这类木马都要开个服务端口的后门,成功后该后门处于LISTENING状态,它的端口号可能固定一个数,也可能变化,还有的木马可以与正常的端口合用,例如你开着正常的80端口(WEB服务),木马也用80端口。这种木马最大的特点就是有端口处于LISTENING状态,需要远程计算机连接它。这种木马对一般用户比较好防范,将防火墙设为拒绝从外到内的连接即可。比较难防范的是反弹型木马。 

  2、反弹型木马,反弹型木马是从内向外的连接,它可以有效的穿透防火墙,而且即使你使用的是内网IP,他一样也能访问你的计算机。这种木马的原理是服务端主动连接客户端(黑客)地址。木马的服务端软件就像你的Internet Explorer一样,使用动态分配端口去连接客户端的某一端口,通常是常用端口,像端口80。而且会使用隐避性较强的文件名,像 iexpiore.exe、explorer(IE的程序是IEXPLORE.EXE)。如果你不仔细看,你可能会以为是你的Internet Explorer。这样你的防火墙也会被骗过。如果你在TcpView中看到下面这样的连接一定要注意,很有可能是种木马了。 iexpiore.exe 192.168.1.10(本机IP):1035(你的端口) Y.Y.Y.Y(远程IP):80(远程端口) 

  或 Rundll32.exe 192.168.1.10(本机IP):1035(你的端口) Y.Y.Y.Y(远程IP):80(远程端口) 

  或 explorer.exe 192.168.1.10(本机IP):1035(你的端口) Y.Y.Y.Y(远程IP):80(远程端口) 本文作者:佚名 来源:http://www.700net.com/
CIO之家 www.ciozj.com 微信公众号:imciow
    >>频道首页  >>网站首页   纠错  >>投诉
版权声明:CIO之家尊重行业规范,每篇文章都注明有明确的作者和来源;CIO之家的原创文章,请转载时务必注明文章作者和来源;
延伸阅读
也许感兴趣的
我们推荐的
主题最新
看看其它的