Tcpdump安装使用 |
您所在的位置:网站首页 › tcpdump保存到文件 › Tcpdump安装使用 |
本来想安装wireshark yum install wireshark 命令行下使用,包含抓包的基本功能 yum install wireshark-gnome 提供wireshark(UI)工具,依赖wireshark RPM root@localhost: wireshark wireshark: symbol lookup error: wireshark: undefined symbol: gtk_combo_box_text_new_with_entry不能启动图形界面,所以采用linux下流量监控及抓包工具tcpdump
安装:yum install tcpdump 截获某IP的主机的网络数据包: tcpdump host 192.168.0.120TCP协议要建立连接要经过3次“握手”,截取的数据包也是从3次握手开始,可以看到前三个包的状态(Flags)分别是: [S]、[S.]、[.] 首先是客户端向服务端发送一个10位的序号给服务端;服务端收到后把它+1再返回回去;客户端检查返回来的序号是对的,就返回给服务端一个1。根据上面的描述,知道这三个包满足:第一个包的seq+1=第二个包的ack;第三个包的ack=1 注意:开始发送时,发送方是按三次握手完成时定下的序列号和ack来进行通信的,客户端一直在发,客户端的seq不断的按发送字节数在累加,而服务器是应答端,seq始终不变。同理若客户端作为应答端的话,它的seq也是不变的 TCP协议要断开连接要经过4次“挥手”,上面数据包的最后3条就是挥手的过程。细心的朋友会发现前面说的4次挥手,却只有3个包,这不是笔误。 最后三个包的状态分别是: [F.]、[F.]、[.] ACK延迟发送机制,如果系统禁用了延迟发送,就会看到4个包了
cron可以定时执行抓包的时间 抓包命令: tcpdump -c 100000 -w /home/kang/Desktop/test.txt -n 注释:抓10万个包,存在test.txt文件里,-n的意思是不对原地址和目的地址进行DNS查询
读文件命令: tcpdump -r /home/kang/Desktop/test.txt -X -vv 注释:-r是读文件,-X是以ASCII码显示内容。-VV是以详细的报文信息显示 -x是以十六进制打印,-X是以十六进制和ASCII同时打印,都不包含数据链路头部,-xx -XX 包含数据链路层的头部,其余的一样。 总共打印的数据大小不会超过整个数据包的大小与snaplen中的最小值,如果高层协议数据没有snaplen那么长,则Ethernet层的填充数据也会被打 详细参数参考这里
查看txt编码::set fileencodin 转编码:iconv -f GBK -t UTF-8 file1 -o file2iconv -f gbk -t utf8 file1 .txt > file2.txt 打印结果:部分是解析的结果,部分是十六进制,显示的比较乱,转换格式也没有用 原因:tcpdump对截获的数据并没有进行彻底解码,数据包内的大部分内容是使用十六进制的形式直接打印输出的,所以通常的解决办法是显示用带-w的tcpdump保存到i文件中,再使用wireshark进行解码分析,并且定义过滤规则,以避免捕获的数据包铺满整个硬盘。
tcpdump为了方便wireshark工具认识,保存的文件名最好是xx.pcap后缀。例如: tcpdump -nn -s 0 host 192.168.0.120 and port -80 -w wireshark.pcap -s 设置捕获数据包的长度,抓取数据包时原来默认长度是68字节,加上-S 0后可以抓到完整的数据包
使用tcpdump只抓取http包: tcpdump -XvvennSs 0 -i eth0 tcp[20:2]=0x4745 or tcp[20:2]=0x4854 0x4745为“GET”前两个字母“GE”,0x4854为“HTTP”前两个字母“HT” 101.227.172.51.80115.25.210.10.8061.135.132.59.80222.23.55.208.8061.135.132.59220.181.11.98ip/dns解析:http://dns.aizhan.com/,查询到DNS解析的URL和地址
tcpdump抓取具体某个网页的数据包: tcpdump -s 0 tcp port 80 -w sohu1.cap 在打开firefox之后,输入www.sohu.com。先别运行,先运行以上命令,再刷新页面(之前做过测试,firefox没有输入任何命令时,抓取的数据包为0) 再用wireshark——open打开,并用statistic来统计,参考一站式学习wireshark:http的统计
如果单独是tcpdump,默认情况下,tcpdump会选择第一块网卡,也就是eth0,进行抓包 tcpdump是基于Unix系统的命令行式的数据包嗅探工具。如果要使用tcpdump抓取其他主机MAC地址的数据包,必须开启网卡混杂模式,所谓混杂模式,用最简单的语言就是让网卡抓取任何经过它的数据包,一般而言,Unix不会让普通用户设置混杂模式,因为这样可以看到别人的信息,比如telnet的用户名和密码,开启混杂模式的命令是:ifconfig eth0 promisc, eth0是你要打开混杂模式的网卡
过滤器(BPF语言)的使用 tcpdump tcp -i eth0 -t -s 0 and port 8080 -w ./bb.cap tcpdump host 192.168.0.148 and tcp port 22 tcpdump host 210.27.48.1 and \ (210.27.48.2 or 210.27.48.3 \) 截获主机210.27.48.1 和主机210.27.48.2 或210.27.48.3的通信 tcpdump ip host 210.27.48.1 and ! 210.27.48.2 获取主机210.27.48.1除了和主机210.27.48.2之外所有主机通信的ip包 tcpdump 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)2)) != 0)' 详情可参考tcpdump详细参数
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |