tcpdump详解

tcpdump能够分析网络行为,性能和应用产生或接收网络流量。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息,从而使用户能够进一步找出问题的根源。

也可以使用 tcpdump 的实现特定目的,例如在路由器和网关之间拦截并显示其他用户或计算机通信。通过 tcpdump 分析非加密的流量,如Telnet或HTTP的数据包,查看登录的用户名、密码、网址、正在浏览的网站内容,或任何其他信息。因此系统中存在网络分析工具主要不是对本机安全的威胁,而是对网络上的其他计算机的安全存在威胁

权限要求

一些类Unix操作系统,用户有必须拥有超级用户权限方可使用 tcpdump,因为在这些系统需要使用超级用户权限将网络界面设置为混杂模式。用最简单的语言就是让网卡抓取任何经过它的数据包,不管这个数据包是不是发给它或者是它发出的。一般而言,Unix不会让普通用户设置混杂模式,因为这样可以看到别人的信息,比如telnet的用户名和密码,这样会引起一些安全上的问题,所以只有root用户可以开启混杂模式,开启混杂模式的命令是:ifconfig eth0 promisc, eth0是你要打开混杂模式的网卡。

指令解释

-i eth0   #-i 指定指定监听的网络接口。如果不指定网卡,默认tcpdump只会监视第一个网络接口eth0。
-s 0      #-s 指定从每个数据包中 获取snaplen字节的数据,而不是默认的 262144 字节。
由于快照有限而被截断的数据包在输出中用``[| 表示 proto ]'',其中proto 是发生截断的协议级别的名称。请注意,拍摄更大的快照既会增加处理数据包所需的时间,也能有效地减少数据包缓冲量。这可能会导致数据包丢失。另请注意,拍摄较小的快照将丢弃来自传输层以上协议的数据,这会丢失可能很重要的信息。例如,NFS 和 AFS 请求和回复非常大,如果选择的快照长度太短,则大部分细节将不可用。
如果您需要将快照大小降低到默认值以下,您应该将snaplen限制为将捕获您感兴趣的协议信息的最小数字。将snaplen设置 为 0 会将其设置为默认值 262144
-l   #使 stdout 行缓冲。如果您想在捕获数据时查看数据,则很有用
-nn #指定将每个监听到的数据包中的域名转换成IP、端口从应用名称转换成端口号后显示
-nnA #抓取包详情
-A #以 ASCII 格式打印每个数据包(减去其链接级标头)。方便捕捉网页。
-n 表示不要解析域名,直接显示 ip。
-X 同时用 hex 和 ascii 显示报文的内容。
-XX 同 -X,但同时显示以太网头部。
-S 显示绝对的序列号(sequence number),而不是相对编号。
-v, -vv, -vvv:显示更多的详细信息
-c number: 截取 number 个报文,然后结束
tcp port 80 #如果只包含HTTP请求,将上面命令中的“tcp port 80”修改为“tcp dst port 80

下面是一个写好的表达式

tcpdump -A -s 0 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'

我上面的拆分开解释

tcp[((tcp[12:1] & 0xf0) >> 2):4]
&           #是按位与运算。
>> 			#表示按位右移。
>tcp[12
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值