Tcpdump的小经验

转载 2007年09月25日 02:53:00
原贴:http://blog.csdn.net/yeqihong/archive/2007/06/26/1667584.aspx

 Tcpdump的小经验
上的东西都是这样,介绍软件,参数的多,实例的很少。 
很多时候,我们有了软件的参数使用方法,但是还是不是很明白,领会。今天,我在用网路岗监控的时候,看到里面监控的仅仅是些常用的网络服务器形式,80,邮件,ftp,功能太下载。这个监控上网内容还可以,要分析些网络事件,无能为力了。 

于是,我想到,一般局域网中怕的就是木马,病毒,发送垃圾数据包,常常堵塞网络。 于是,我就想起用tcpdump来试试看,毕竟很多软件都是靠他来监控的。试试牛刀了 

先 tcpdump 一看,信息太多。 想了想我要做的是什么,主要是想看看,局域网中访问internet那些东西,跟那些机器有连接,而且要探测不明链接。从而可以发现是否有木马,病毒一些在作怪! 

tcpdump dst net not 192.168.123.0/24 不监视跟网内机子的链接,过滤很多信息。迅速进入主题, 不想看发邮件的情况,一般的80网页访问,domain访问,还有要排除网内已有服务器的一些端口。 

tcpdump dst net not 192.168.123.0/24 and dst port not /( www or 25 or 110 or 5000 or domain /) and src port ! /( 4011 or 4010 or 4009 /) 

这样的话看到的信息就相对少了很多,这个时候就可以看到一些不常见的链接了,对发现木马和病毒会有一定的帮助。 
相信大家看过tcpdump的用法,过滤表达式应该不难理解。 
我也就解释下吧,高手就不用看了。 

dst net not 192.168.123.0/24 不监视与网内机器的连接 
dst port not /( www or 25 or 110 or 5000 or domain /) 过滤与internet中运行 目标端口的连接,不显示访问网页,邮件,查询DNS的这些连接 
src port ! /( 4011 or 4010 or 4009 /) 这个主要是因为 装有虚拟局域网软件,网内服务器与外面分部的连接,不需要显示。 当然这里的端口可以根据实际情况换掉 

接 下来,我(隔了一天接着写)我从看到的信息里面发现有频繁连接外面5050的连接,google搜索了下5050是什么端口,发现跟dudu.com中的 一个软件有关系。接着我又开个term,tcpdump dst port 5050 ,这样又可以同时看到那些具体连接外面5050端口的机子。我的过 程中就发现只有一台机子更这个联系。最后在那台机子上果然发现以前安装的一个dudu校友录软件的服务在后台运行。 

通过这个经历,发现tcpdump果然很强大,只要灵活运用,作用还真的很大。虽然,我写的帖子没有什么深奥的地方,也很简单。 之所以写这个东西,不是来说明什么,只是想对一些想了解却总不明白的兄弟一点点启发。 要举一反三哦 

Linux下网络分析例解 
Linux作为网络服务器,特别是作为路由器和网关时,数据的采集和分析是必不可少的。所以,今天我们就来看看Linux中强大的网络数据采集分析工具 ——TcpDump。 
顾 名思义,TcpDump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、  or、not等逻辑语句来帮助你去掉无用的信息。和Linux终端状态下的其他软件一样,TcpDump也是依靠参数来工作,本文将结合实例来说明。数 据过滤不带任何参数的TcpDump将搜索系统中所有的网络接口,并显示它截获的所有数据,这些数据对我们不一定全都需要,而且数据太多不利于分析。所 以,我们应当先想好需要哪些数据,TcpDump提供以下参数供我们选择数据: 
-b 在数据-链路层上选择协议,包括ip、arp、rarp、ipx都是这一层的。 
例如:tcpdump -b arp 将只显示网络中的arp即地址转换协议信息。 
-i 选择过滤的网络接口,如果是作为路由器至少有两个网络接口,通过这个选项,就可以只过滤指定的接口上通过的数据。例如: tcpdump -i eth0 只显示通过eth0接口上的所有报头。 
src、  dst、port、host、net、ether、gateway这几个选项又分别包含src、dst 、port、host、net、ehost等附 加选项。他们用来分辨数据包的来源和去向,src host 192.168.0.1指定源主机IP地址是192.168.0.1, dst net 192.168.0.0/24指定目标是网络192.168.0.0。以此类推,host是与其指定主机相关无论它是源还是目的,net 是与其指定网络相关的,ether后面跟的不是IP地址而是物理地址,而gateway则用于网关主机。可能有点复杂,看下面例子就知道了:  tcpdump src host 192.168.0.1 and dst net 192.168.0.0/24 过滤的是源主机为 192.168.0.1与目的网络为192.168.0.0的报头。 tcpdump ether src 00:50:04:BA: 9B and dst…… 过滤源主机物理地址为XXX的报头(为什么ether src后面没有host或者net?物理地址当然不可能有网络喽)。  Tcpdump src host 192.168.0.1 and dst port not telnet 过滤源主机192.168.0.1和目 的端口不是telnet的报头。 ip icmp arp rarp 和 tcp、udp、icmp这些选项等都要放到第一个参数的位置,用来过滤数据报 的类型。例如: tcpdump ip src…… 只过滤数据-链路层上的IP报头。  tcpdump udp and src host 192.168.0.1 只过滤源主机192.168.0.1的所有udp报头。 数据显示/输入 输出 TcpDump提供了足够的参数来让我们选择如何处理得到的数据,如下所示: 
-l 可以将数据重定向。 如tcpdump -l >tcpcap.txt将得到的数据存入tcpcap.txt文件中。 
-n  不进行IP地址到主机名的转换。如果不使用这一项,当系统中存在某一主机的主机名时,TcpDump会把IP地址转换为主机名显示,就像这样:eth0  < ntc9.1165> router.domain.net.telnet,使用-n后变成了:eth0 < 192.168.0.9.1165 >  192.168.0.1.telnet。 
-nn 不进行端口名称的转换。 上面这条信息使用-nn后就变成了:eth0 < ntc9.1165 > router.domain.net.23。 
-N 不打印出默认的域名。 还是这条信息-N 后就是:eth0 < ntc9.1165 > router.telnet。 -O 不进行匹配代码的优化。 
-t 不打印UNIX时间戳,也就是不显示时间。 
-tt 打印原始的、未格式化过的时间。 
-v 详细的输出,也就比普通的多了个TTL和服务类型。好了,说了这么多,是不是觉得TcpDump这个工具很好?它还有好多功能限于篇幅不能一一介绍,多读一读“帮助”都会有很大的收获,这也算是进入 Linux世界的一条捷径吧。 
 

Oracle的一些小经验

  • 2014年03月17日 10:01
  • 442B
  • 下载

操作系统小经验

  • 2014年04月09日 18:31
  • 11KB
  • 下载

android开发小经验总结

1、TextView中的getTextSize返回值是以像素(px)为单位的,而setTextSize()是以sp为单位的。   所以如果直接用返回的值来设置会出错,解决办法是用setT...

cmake的一些小经验

  • 2014年12月04日 13:19
  • 266KB
  • 下载

大神总结的Android小经验

做Android久了,就会踩很多坑,被坑的多了就有经验了,闲暇之余整理了部分,现挑选一些重要或者偏门的“小”经验做个记录。 查看SQLite日志 adb she...

CAXA编程助手应用小经验

  • 2011年06月22日 08:19
  • 246KB
  • 下载

iPhone4 的67条使用小经验

  • 2013年05月20日 13:53
  • 172KB
  • 下载

java 实习遇到的问题和一些小经验(第一个月)

都是随手记录的可能比较乱;但记录我的成长 2.Toggle();如果被选元素可见,则隐藏这些元素,如果被选元素隐藏,则显示这些元素。(jquery) 3.Strut请求的跳转; 4.前台...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章: Tcpdump的小经验
举报原因:
原因补充:

(最多只允许输入30个字)