网络监听的目的
/ns/cn/jc/data/20020806023829.htm
(摘自cpcw, 作者不详)
截获通信的内容
首先,这些工具对网络上主机间的通信,能给出一个详细的,逐包的统计信息。入侵者可以选择某一台主机,看看它正在同那些主机进行通信,使用了哪些协议(通过端口号可以区分出来),传输一些针么内容。
对于这类工具,常常可以设置详细的过滤条件,可以针对信息的源主机、目的主机、使用的协议、使用的端口以及包的长度来设置过滤条件,也可以是这些条件的逻辑组合。
下面是使用snoop发现的主机asy&.vineyard.net和主机next之间后段对话:
#snoop
asy8.vineyard.netànext SMTP C port=1974
asy8.vineyard.netànsxt SMTP C port=1974 MALL FROM: next àasy8.vineyard.net SMTP C PORT=1974 250 Asy8.net à SMTP C port=1974
Asy8.vineyard.net à next SMTP C port=1974 RCPT TO: Nextàasy8.vineyard.net SMTP C port=1974 250 Asy8.vineyard.net ànext SMTP C port=1974.
Asy.vineyard.netànext SMPT C port=1974 DATA .
Next àasy8.vineyard.net SMTP c PORT =1974 354 Enter mail,end.
在这个例子中,一个邮件消息在从asy8.vineyard.net到计算机next的传播过程中被监听。如上所述,它能给出一个详细的报告,诸如系统中各个用户都在干什么。
对于入侵者来说,最喜欢的莫过于用户的口令。其实,在大多数情况下,监听到的包中,用户的口令也就像上面的“DATA rN“一样,完全是明文形式,并且很容易找出来,因为人们没有采取任何形式的加密措施。而且口令往往是在一次通信的最开始的几个数据包中,只要找到了两台主机间连接的开始,便很容易找到认证用的口令。
6.2.2 对协议分析
所有的监听软件都可以对数据包进行详细分析,直到每一个字段的含义。
这是Solaris中的snoop使用的一个例子。这一命令监听网络接口/dev/le,
将监听到的数据包存于文件saved中。
# snoop -o saved
Using device /dev/le (promiscuous mode)
23 c
在监听了23个包之后,中断了监听。然后,可以使用snoop读取文件saved中的信息,并按照协议的格式,详细地输出包头的信息。这个命令监听不到包中传输的信息(被子该命令有意过滤掉了)。因此,这一命令是学习TCP/IP的一个最好的实例,读者不妨详细研究一下不同协议层次,不同协议中的数据包的内容和格式。
# snoop -I saved -tr -v
ETHER:------------Ether Header------
ETHER:
ETHER: Packet 21 arrived at 17:02:;29.70
ETHER: packet size =85 bytes
ETHER: Desstination =0:20:af:3b:bb:8f,
ETHER: Source =8:0:3e:30:28:87,Motorola VME bus processor
Module
ETHER: Ethertype =0800 (Ip)
ETHER:
包的最外部分是以太帧头。
IP:-----------IP Header ----------
IP:
IP: Version =4
IP: Header length =20 bytes
IP: Type of service =0x00
Ip: xxx……..=0 (precedence)
IP: …0…=normal delay
IP: ….0...=normal throughput
IP: …..0.. =normal rellability
IP: Total length =71 bytes
IP: Tdentification =2014
IP: Flags =0x0
IP: .0……=may fragment
IP: ..0….. =last fragment
IP: Fragment offest =0 bytes
IP: Time to live =30 seconds/hops
IP: Protocol =17 (UDP)
IP: Header checksum =0714
IP: Source address =11.22.33.41, source.host
IP: Destination address =192.33.4.12, c.root ?servers.ndt
IP: No options
IP:
紧跟着以太帧头的是IP分组的头部信息。
UDP:-----------UDP Header--------
UDP:
UDP: Source port =53
UDP: Destination port =53 (DNS)
UDP: Length =51
UDP: Checksum =2167
UDP:
IP是网络层,网络层之上是传输层。这个包在传输层使用了UDP协议。
DNS:---------DNS:--------
DNS:
DNS: “ “
DNS:
使用应用层的是域名解析服务。
这是一个在网络上传输的一个包的信息分解。实妹的包由于使用的是流协议,许多翻译片信息是用一些位来表示的。并不能直接阅读和理解。从上面的解释得知,这是个DNS解析的数据包,传输层使用的是UDP协议,应用层使用了DNS服务。该协议将一个主机名映射为IP地址。
让我们来看另一个监听的数据包:
ETHER: ---------Ehter Header ------
ETHER:
ETHER: Packet 55 arrived at 17:02:31.14
ETHER: Packet size =64 bytes
ETHER: Destination =0:a0:c9:49:cc:a5’
ETHER: Source =0:20:af:3b:bb:8f,
ETHER: Ethertype =0880(IP)
ETHER:
IP:--------IP Header-------
Ip:
Ip: Version =4
IP:Header length =20 bytes
IP:Type of service =0x00
IP: xxx…..=0 (precedence)
IP: …0… =normal delay
IP: …..0…normal throughput
IP: ……..0..=normal rellability
IP: Total length =44 bytes
iP: Identication =12513
IP: Flags =0x0
IP: .0……=may fragmrnt
IP: …0……=last fragment
IP: Fragment offest =0 bytes
IP: Time to live =59 seconds/hops
IP: Protocol =6 (tcp)
IP: Header checksum =bc42
IP: Source addrees =11.22.33.42, gaper
IP: Destination address ==11.22.41.18, butterfly
IP: No options
IP:
Tcp: -----tcp Header -------
TCP:
TCP: Source port =2927
TCP: Destination port =25 (SMTP)
TCP: Sequence number =950073857
TCP: Acknowledgement number =0
TCP: Data offset =24 bytes
TCP: Flags =0x02
TCP: ..0…..=No urgent pointer
TCP: …0….=No acknowledgement
TCP: ….0……=No push
TCP: ……0……=No reset
TCP: ………1. =Syn
TCP: …………0 =No FIN
TCP: Window =16384
TCP: Checkwum =0x8753
TCP: Urgrnt pointer =0
TCP: Options: (4 bytes)
TCP: -Maximum segment size =1460 bytes
TCP:
SMTP:---------SMT0:-----
SMTP:
SMTP: “ ‘
SMTP:
http://www.linuxaid.com.cn: http://www.linuxaid.com.cn/support/showfom.jsp?i=290