原文地址:http://dogdogcom.blog.51cto.com/2402458/490398

tcpdump

   -a    将网络地址和广播地址转变成名字;

   -d    将匹配信息包的代码以人们可以理解的汇编格式给出;

   -dd     将匹配信息包的代码以c语言程序段的格式给出;

   -ddd   将匹配信息包的代码以十进制的形式给出;

   -e    在输出行打印出数据链路层的头部信息;

   -f     将外部的Internet地址以数字的形式打印出来。

   -l     使标准输出变为缓冲行形式;

   -n    不把网络地址转换成名字;

   -t     在输出的每一行不打印时间戳;

   -v    输出一个略微具体的信息。比如在ip包中能够包含ttl和服务类型的信息;

   -vv     输出具体的报文信息;

   -c    在收到指定的包的数目后。tcpdump就会停止;

   -F      从指定的文件里读取表达式,忽略其他的表达式;

   -i     指定监听的网络接口。

   -r    从指定的文件里读取包(这些包一般通过-w选项产生);

   -w     直接将包写入文件里,并不分析和打印出来;

   -T     将监听到的包直接解释为指定的类型的报文,常见的类型有rpc(远程过程调用)和snmp(简单网络管理协议)

          -p           指定协议tcp,udp,icmp,arp

          -s           指定捕获数包字的大小,单位byte,默认96最大65536





可使用keyword:

协议,-p tcp,udp,icmp,arp等

数据包:dst,src,port,dst port,src port,host

运算符:or and not(!)

多条件:dst \(172.16.1.1 or 172.16.1.13 \) 用括号及\转义

在进行嗅探的时候,必须置于混杂模式才干嗅探,系统会有日志记录

grep "promiscuous" /var/log/messages //混杂模式

用TCPDUMP捕获的TCP包的一般输出信息是:

  src.port > dst.port: flags data-Seq ack win urgent options

  src.port > dst.port: 源地址.源端口 到 目的地址.目的端口

       flags:                 TCP包中的标志信息,S 是SYN标志, F (FIN), P (PUSH)

                           R (RST) "." (没有标记)

    

      data-Seq:      是数据包中Sequence number(顺序号码)

      ack:              Acknowledge number(确认号码) 

      window是接收缓存的窗体大小, 

      urgent表明数据包中是否有紧急指针.

注tcp标志位:

SYN(synchronous建立联机) ACK(acknowledgement 确认)

PSH(push传送) FIN(finish结束) RST(reset重置) URG(urgent紧急)

查看icmp包:

1,tcpdump -i eth0 -p icmp    (and src 192.168.1.xxx)

查看广播包:

2,tcpdump -i eth0 -p broadcast

查看arp包

3,tcpdump -i eth0 -p arp

4,tcpdump -X -i eth0 -p tcp port 21 //嗅探21端口数据并解包

获取ftppassword实例:

tcpdump -X -i eth0 -p tcp port 21 > 21.log &

cat 21.log | grep "USER\."

cat 21.log | grep "PASS\."

更精确的嗅探:

嗅探从172.16.1.1到172.16.1.2port为21的数据包:

tcpdump -i eth0 -X -tnn -p tcp and src 172.16.1.1 and dst 172.16.1.2 and port 21

5.tcpdump -X -n -p tcp dst port 80 //嗅探80端口数据,并解包 (加-t就不显示时间)

6.tcpdump -i eth0 host 202.96.128.68 //指定主机

7,//嗅探从172.16.1.2到172.16.1.1 或者172.16.1.13的数据包

tcpdump -i eth0 -tnn src 172.16.1.2 and dst \(172.16.1.1 or 172.16.1.13 \)

8,利用tcpdump统计各类数据包:

//统计1000个数据包中的ip连接量,并按从多到少的顺序排序,列出前3名

tcpdump -i ethp -tnn -c 1000 | awk -F "." "{print $1"."$2"."$3"."$4}' | sort | uniq -c |sort -nr | head -n 3//按从大到小的顺

序排序并列出并三名

tcpdump -i ethp -tnn -c 1000 | awk -F "." "{print $1"."$2"."$3"."$4}' | sort | uniq -c | awk '$1 > 100'//显示大于100数据包

sort:排序 -nr 从大到小 -rn 从小到大

uniq -c:过滤反复并在前面打印反复的行数

awk '$1 > 100':假设$1參数(数字)大于100

head -n 3:显示头3行

9,tcpdump -i eth0 -tnn host 192.168.1.100 and -p tcp or udp or icmp    //嗅探全部 tcp,udp,icmp消息所不转换网络名称(加高速度)

10,嗅探dhcpserver的ip(捕获非法DHCP Server):

tcpdump -i eth0 -tnn port 67

然后dhclient eth0进行dhcp请求,抓住dhcp server的ip地址

或者看看直接登录它cat /var/messages | grep "DHCPACK from"

tcpdump参数及使用介绍(转)的更多相关文章

  1. (转) tcpdump参数解析及使用详解

    tcpdump介绍 原文:http://blog.csdn.net/hzhsan/article/details/43445787 tcpdump 是一个运行在命令行下的抓包工具.它允许用户拦截和显示 ...

  2. ORACLE推导参数Derived Parameter介绍

    Oracle的推导参数(Derived Parameters)其实是初始化参数的一种.推导参数值通常来自于其它参数的运算,依赖其它参数计算得出.官方文档关于推导参数(Derived Parameter ...

  3. tcpdump参数应用

    详细参数: http://www.cnblogs.com/ggjucheng/archive/2012/01/14/2322659.html 我用到的参数: 一 tcpdump重要参数 -i 指定监听 ...

  4. Linux(Centos)中tcpdump参数用法详解(转)

    在linux下进行编程开发的人尤其是网络编程的人会经常需要分析数据包,那么一定会用到tcpdump,下面就是关于tcpdump的使用方法说明(1). tcpdump的选项 -a       将网络地址 ...

  5. [na]tcpdump参数应用参考

    详细参数参考,我记得之前有个ppt关于这个写的不错. 说实话,这玩意用的时候直接gg了. 常用应用: 过滤物理口 过滤某个port/ip/mac 过滤协议 显示ip/mac/port不解析等 一 tc ...

  6. tcpdump 参数详解及使用案例

    参数 -A 以ASCII码方式显示每一个数据包(不会显示数据包中链路层头部信息). 在抓取包含网页数据的数据包时, 可方便查看数据(nt: 即Handy for capturing web pages ...

  7. SpringMVC七种参数绑定简单介绍

    a. 默认支持的类型:        httpServletRequest, httpservletresponse, httpsession, model        看自己需要, 如果需要用就加 ...

  8. Inf2Cat应用的参数使用详细介绍

    http://msdn.microsoft.com/zh-cn/subscriptions/ff547089   Inf2Cat Inf2Cat (Inf2Cat.exe) 是一个命令行工具,该工具确 ...

  9. layer弹出框插件参数及方法介绍

    layerui下载:http://www.layui.com 更多参数请阅读开发文档:http://www.layui.com/doc/modules/layer.html Layui 是一款采用自身 ...

随机推荐

  1. Android-->发送短信页面实现(短信发送以及群发和从电话本中选择联系人)-----------》2

    分析下怎么写 首先,我们需要一个输入框,可以手动的输入手机号码, 其次,很少有人愿意手动输入,那么我们需要提供一个按钮来给我们的用户选择自己电话本中的联系人(一次可以选择多个即群发) 然后,我们需要一 ...

  2. coding 除了托管外,还能进行团队协作.

    coding 除了托管外,还能进行团队协作. oschina 也是非常不错的.

  3. cowboy rest

    REST Flowcharts 这章节将通过一些列不同的流程图来介绍REST处理状态机. 一个请求主要有四条路线,一个是方法OPTIONS. 一个是方法GET和HEAD.一个是PUT.POST和PAT ...

  4. DOM解析XML文件实例

    XML文件: response: <?xml version="1.0"?> <soap:Envelope xmlns:soap="http://www ...

  5. libgdx如何调用android平台内容

    使用libgdx已经有一段时间了.最近经常有朋友问我如何在libgdx中调用android的内容. 正常来说libgdx是跨平台的,gdx中的代码是不允许有任何其他平台的相关代码,但实际使用时经常会有 ...

  6. Android Graphics专题(1)--- Canvas基础

    作为Android Graphics专题的开篇.毫无疑问,我们将讨论Android UI技术的核心概念--Canvas. Canvas是Android UI框架的基础,在Android的控件体系中.全 ...

  7. pygame各个模块概述

    在pygame中,有很多模块,每个模块对应着不同的功能,如果我们知道这些模块是做什么的,那么,对我们的游戏开发会起到关键性的作用. 我们就说说pygame中的各个模块吧!!! #pygame modu ...

  8. 批处理程序:自动上传FTP,再登陆linux服务器执行更新

    ----转载请注明出处:博客园-邦邦酱好 最近在学批处理程序,一直没找到能够结合工作来使用它的地方,前几天测试服务端的时候突然想到可以这样做: 写一个批处理程序,自动通过FTP上传软件包到指定的地方, ...

  9. Objective-C Json 使用

    Objective-c json ];   for(int i  = 0;i<myProduct.count;++i) {       //NSLog(@"-------------- ...

  10. 《Javascript高级程序设计》读书笔记之继承

    1.原型链继承 让构造函数的原型对象等于另一个类型的实例,利用原型让一个引用类型继承另一个引用类型的属性和方法 function SuperType() { this.property=true; } ...