|
在系统管理员看来,网络监听的主要用途是进行数据包分析,通过网络监听软件,管理员可以观测分析实时经由的数据包,从而快速的进行网络故障定位。
我们可以举个例子: server是邮件服务器,下面带了很多的client用户,邮件服务器收发邮件工作正常,但下面的client用户总是抱怨发邮件时连接到邮件服务器后要等待很久的时间才能开始发送工作,问题出在哪里呢?
在server上使用tcpdump对来自其中的一个client的数据包进行捕获分析,看看结果如何?
server#tcpdump host client
tcpdump: listening on hme0
19:04:30.040578 client.1065 > server.smtp: S 1087965815:1087965815(0)
win 64240 <mss 1460,nop,wscale 0,nop,nop,timestamp[|tcp]> (DF)
19:04:30.040613 server.smtp > client.1065: S 99285900:99285900(0)
ack 1087965816 win 10136 <nop,nop,timestamp 20468779 0,nop,[|tcp]> (DF)
19:04:30.040960 client.1065 > server.smtp: .
ack 1 win 64240 <nop,nop,timestamp 167656 20468779> (DF)
client连接服务器的25端口,三次握手正常,没有问题,我们再往下看
19:04:30.048862 server.33152 > client.113: S 99370916:99370916(0) win 8760 <mss 1460> (DF)
19:04:33.411006 server.33152 > client.113: S 99370916:99370916(0) win 8760 <mss 1460> (DF)
19:04:40.161052 server.33152 > client.113: S 99370916:99370916(0) win 8760 <mss 1460> (DF)
19:04:56.061130 server.33152 > client.113: R 99370917:99370917(0) win 8760 (DF)
19:04:56.070108 server.smtp > client.1065:
P 1:109(108) ack 1 win 10136 <nop,nop,timestamp 20471382 167656> (DF)
这里有问题了,我们看到server端试图连接client的113认证端口,然而client端并不会去回应它,server端从19点04分30秒到19点04分56秒尝试3次,费时26秒后,才放弃认证尝试,主动reset了client端的113端口,开始push后面的数据,而正是在这个过程中所花费的时间,使用户发送邮件时产生了漫长的等待。
问题找到了,下面的工作就好办了,通过修改服务器端的软件配置,使它不再进行113端口的认证,看看这个问题解决了么?不用问client用户,再抓包如下:
server# tcpdump host client
tcpdump: listening on hme0
19:06:45.775516 client.1066 > server.smtp:
S 1119047365:1119047365(0) win 64240 <mss 1460,nop,wscale 0,nop,nop,timestamp[|tcp]> (DF)
19:06:45.775546 server.smtp > client.1066:
S 116566929:116566929(0) ack 1119047366 win 10136 <nop,nop,timestamp 20482353 0,nop,[|tcp]> (DF)
19:06:45.775776 client.1066 > server.smtp:
. ack 1 win 64240 <nop,nop,timestamp 169013 20482353> (DF)
19:06:45.789316 server.smtp > client.1066:
P 1:109(108) ack 1 win 10136 <nop,nop,timestamp 20482354 169013> (DF)
19:06:45.796767 client.1066 > server.smtp:
P 1:11(10) ack 109 win 64132 <nop,nop,timestamp 169013 20482354> (DF)
我们看到,server不再进行113端口的认证尝试,直接push数据,问题应该解决,到client试验,果然延迟现象消失!
由这个试验,我们可以看到,网络监听手段,对网络的系统管理员是非常有价值的。
然而,对入侵者呢?与管理员感兴趣的是对数据包进行分析不同,入侵者,感兴趣的是数据包的内容,尤其是账号,口令等敏感内容。
我们模仿入侵者在主机上跑一个上面提到的sniffit软件,监听本机发出去的所有telnet数据,如下:
server#./sniffit -A . -p 23 -s server
同时,我们模仿一个用户yiming登录一台client机器,
server@yiming#telnet client
Trying 192.168.1.1...
Connected to 192.168.1.1
Escape character is '^]'.
login: yiming
Password:
Sun Microsystems Inc. SunOS 5.7 Generic October 1998
$ ls
bak lost+found project wangguan
libcap nms snmp wglist
$ pwd
/yiming
$
我们看到这个用户telnet到client机器,输入账号口令,执行了ls,pwd命令,
此时看看sniffit的记录文件记录了什么,
server# more server.32780-client.23
........... ..!.."..'.......h.7....#..$....VT100....'.........yiming..Power^man!..ls ..pwd..
我们看到了账号yiming,密码Power^man!,还有登录后操作的命令。请注意一点,yiming这个用户尽管设置了非常复杂的密码,但对网络监听而言,是没有丝毫意义的。
其实除了截获telnet密码这样的功能外,专用的网络监听软件从密码到邮件,浏览的网页等内容,无所不包,但由于本文不是介绍网络监听软件用途的,因此这里不详细叙述各种监听软件的使用方法,有兴趣的读者可以参照各个软件的readme等文件,很简单。 |
|