zoukankan      html  css  js  c++  java
  • linux下的抓包工具tcpdump

    1.由netstat查看网络情况,引出的TCP建立连接、终止连接过程,以及TCP状态分析;

    2.Soap=XML+HTTP引出的HTTP协议分析;

    3.Soap(Simple Object Access Protocol)简单对象访问协议分析及应用;

    4.番外一:awk的使用

    5.番外二:Linux下抓包工具

    --------------------------篇四-------------------------------------

    这篇讲linux下的抓包工具。

    抓包工具比较好用的有两个,一个是snort,一个是tcpdump,这次不说snort了,觉得这个工具虽然很强大,但是比较复杂,还是tcpdump比较简单。tcpdump windows、linux版本均有。linux版本可以在以下网站下载:www.tcpdump.org.

    安装好tcpdump之后,运行tcpdump:

    1. tcpdump -D 获取网络适配器列表,以下是在windows上获取到的结果:


    1.DevicePssdkLoopback (PSSDK Loopback Ethernet Emulation Adapter)
    2.Device{CF587901-C85F-4FD6-896F-D977DEFE76EC} (Intel(R) PRO/100 VE Network Co
    nnection) 


    2. tcpdump -i <需要监控的网络适配器编号>,例如我想监控lo(127.0.0.1),即上面列表中的1.DevicePssdkLoopback: (windows上特有的,linux不适用)


    tcpdump -i 1 


    如果不使用-i来定义监控适配器的话,默认使用列表中的第一个;

    3. 监控主机为192.9.200.59上8000端口的tcp协议:


    tcpdump host 192.9.200.59 and tcp port 8000 


    4. 如果想要显示数据包的内容,需要使用-X参数,如,我想要显示捕获的http数据包http header的内容:


    tcpdump -X host 192.9.200.59 and tcp port 8000 


    显示结果如下:


    22:13:19.717472 IP testhost59.12535 > liujuan59.8000: . 1:330(329) ack 1 win 327
    8
            0x0000:  4500 0171 e616 0000 8006 cb2b 0000 0000  E..q.......+....
            0x0010:  c009 c83b 30f7 1f40 0000 0002 0000 0002  ...;0..@........
            0x0020:  5010 8000 b066 0000 504f 5354 202f 2048  P....f..POST./.H
            0x0030:  5454 502f 312e 310d 0a43 6f6e 7465 6e74  TTP/1.1..Content
            0x0040:  2d54 7970 653a 2074 6578 742f 786d 6c3b  -Type:.text/xml;
            0x0050:  2063                                     .c 


    可以看到该结果只显示了http头的一部分,没有显示全,是因为tcpdump默认将显示的数据长度截断了,可以使用-s后面加数据长度,来设置数据显示长度:


    tcpdump -X -s 0 host 192.9.200.59 and tcp port 8000 


    以上的例子中,-s 0 表示自动设置长度使其能够显示所有数据。

    5. 捕获的数据太多,不断刷屏,可能需要将数据内容记录到文件里,需要使用-w参数:


    tcpdump -X -s 0 -w aaa host 192.9.200.59 and tcp port 8000 


    则将之前显示在屏幕中的内容,写入tcpdump可执行文件同级目录下的aaa文件中。

    文件查看方式如下,需要使用-r参数:


    tcpdump -X -s 0 -r aaa host 192.9.200.59 and tcp port 8000 


    如果这样写:


    tcpdump -r aaa 


    则只能看到最简单的数据传输交互过程,看不到数据包内容,查看时也需要使用相应的参数。

    6.总结

    总结一下,tcpdump的参数分两个部分,选项(Options)和表达式(expression):

    tcpdump[-adeflnNOpqRStuvxX] [-ccount]
                   [-Cfile_size] [-Ffile]
                   [-iinterface] [-mmodule] [-rfile]
                   [-ssnaplen] [-Ttype] [-wfile]
                   [-Ealgo:secret] [expression]

  • 相关阅读:
    *ecshop 首页促销价显示倒计时
    *ecshop 限制文章帮助文章显示条数
    maven编码 gbk 的不可映射字符
    Java通过httpclient获取cookie模拟登录
    分布式系统session一致性问题
    分布式Session的几种实现方式
    httpclient 登录成功后返回的cookie值访问下一页面
    HttpClient使用GET方式通过代理服务器读取页面的例子
    HTTP请求如何带参
    JAVA的array中indexOf
  • 原文地址:https://www.cnblogs.com/shengs/p/10724907.html
Copyright © 2011-2022 走看看