执行式样比对
使用 ngrep 拦截网络资料往来很简单。然而,分析捕捉到的资料并从中抽取 URL 则略具难度。因为 ngrep 将资料输出拆成一行一行的,所以我们必须额外耗费很多力气,去重组输出的资料,并将该资料中的 URL 与已知的网络攻击行为模式做比对。
『Snarf』那些 URL
此时,我们也该介绍另一个用来监测网页传送的犀利工具软件了。这个软件就叫做 urlsnarf,它是由 Dug Song 写成的dsniff 工具软件套件
的一部份。urlsnarf 从所拦截的网络资料传送中,捕捉所有的 HTTP 回询,并且将结果以共享日志文件格式(Common Log Format
,CLF)显示出来,这种格式就跟市面上的网页服务器,诸如 Apache 或者是 IIS 所用的格式一样。
跟当初我们用 ngrep 的方式一样,我们使用 urlsnarf 并且在 10.0.0.1 的服务器上执行 Whisker,所得到的结果如下:
# urlsnarf
urlsnarf: listening on eth0
10.0.0.11 - - [16/Nov/2000:03:58:43 +0530] "HEAD http://10.0.0.1/
HTTP/1.0" - - "http://10.0.0.1/" "Mozilla/5.0 [en] (Win95;
U)"
10.0.0.11 - - [16/Nov/2000:03:58:43 +0530] "GET http://10.0.0.1/cfdocs/
HTTP/1.0" - - "http://10.0.0.1/" "Mozilla/5.0 [en] (Win95;
U)"
10.0.0.11 - - [16/Nov/2000:03:58:45 +0530] "GET http://10.0.0.1/scripts/
HTTP/1.0" - - "http://10.0.0.1/" "Mozilla/5.0 [en] (Win95;
U)"
10.0.0.11 - - [16/Nov/2000:03:58:45 +0530] "GET http://10.0.0.1/scripts/cfcache.map
HTTP/1.0" - - "http://10.0.0.1/" "Mozilla/5.0 [en] (Win95;
U)"
10.0.0.11 - - [16/Nov/2000:03:58:48 +0530] "GET http://10.0.0.1/cfcache.map
HTTP/1.0" - - "http://10.0.0.1/" "Mozilla/5.0 [en] (Win95;
U)"
10.0.0.11 - - [16/Nov/2000:03:58:50 +0530] "GET http://10.0.0.1/cfide/Administrator/startstop.html
HTTP/1.0" - - "http://10.0.0.1/" "Mozilla/5.0 [en] (Win95;
U)"
10.0.0.11 - - [16/Nov/2000:03:58:52 +0530] "GET http://10.0.0.1/cfappman/index.cfm
HTTP/1.0" - - "http://10.0.0.1/" "Mozilla/5.0 [en] (Win95;
U)"
使用 urlsnarf 唯一的缺点是,它现在的程序是写死的,只监听 TCP 通讯端口 80(纯文字 HTTP),3128(MS-proxy)以及 8080(generic/squid proxy)。从其它通讯端口传输的 HTTP 协议资料则完全被忽略。要想改变这种限制,你必须在 urlsnarf 的原始程序代码中做一些小小的改变。然而,光是 urlsnarf 所提供的功能,就已经远远的超过它所给我们的限制了。因为 urlsnarf 以 CLF 格式产生日志,我们可以将它的输出结果,转送到任何在网页服务器上使用 CLF 格式分析日志的日志分析软件。