一. tcpdump工具介绍
tcpdump就是:dump the traffice on anetwork,根据使用者的定义对网络上的数据包进行截获的包分析工具。作为互联网上经典的的系统管理员必备工具,tcpdump以其强大的功能,灵活的截取策略,成为每个高级的系统管理员分析网络,排查问题等所必备的东西之一。tcpdump就是一种免费的网络分析工具,尤其其提供了源代码,公开了接口,因此具备很强的可扩展性,对于网络维护和入侵者都是非常有用的工具。tcpdump存在于基本的FreeBSD系统中,由于它需要将网络界面设置为混杂模式,普通用户不能正常执行,但具备root权限的用户可以直接执行它来获取网络上的信息。
二.tcpdump工具命令详解
2.1 tcpdump 的语法
Usage: tcpdump [-aAdDefhIJKlLnNOpqRStuUvxX] [ -B size ] [ -c count ] [ -C file_size ] [ -E algo:secret ] [ -F file ] [ -G seconds ]
[ -i interface ] [ -j tstamptype ] [ -M secret ] [ -Q|-P in|out|inout ] [ -r file ] [ -s snaplen ] [ -T type ] [ -w file ] [ -W filecount ] [ -y datalinktype ]
[ -z command ] [ -Z user ] [ expression ]
2.2 tcpdump参数说明
tcp: 协议类型,用来过滤数据报的协议类型
-i bond0: 只抓取经过接口bond0的包
-tttt: 使用格式 2019-02-02 10:37:37.120297,便于分析
-s 0: 抓取数据包时默认抓取长度为68字节。加上-s 0 后可以抓到完整的数据包
-c 100: 只抓取100个数据包
dst port ! 22: 不抓取目标端口是22的数据包
src net 10.10.1.0/24: 数据包的源网络地址为10.10.1.0/24
-w 20190131.tcpdump: 保存成tcpdump文件中,方便使用wireshark分析抓包结果
-D: 列出所有可用的网络接口 -n: 禁用域名解析,让tcpdump直接输出IP地址.
-e: 每行的打印输出中将包括数据包的数据链路层头部信息
-X: 以16进制格式输出数据包的内容,不加该参数,会只输出iptcp/udp头部信息。加上该选项会将整个数据包输出。
-vvvv 该参数其实是-v与-vvv的组合。
-v会输出稍微详细一点的信息包括校验和ttl之类的;
-vvv会尝试解析应用层协议,输出详细信息。二者组合就能完整的详细信息。
-A:以ASCII值显示抓到的包,比如和MySQL的交互时,可以通过-A查看包的文本内容.
2.3 tcpdump使用例子
监听指定网络接口的数据包
tcpdump -i eth0
截获所有的主机收到和发出的所有数据包
tcpdump host 192.168.1.134
截获主机 192.168.0.212 和主机 192.168.1.134 或 192.168.1.135 的通信
tcpdump host 192.168.0.212 and (192.168.1.134 or 192.168.1.135 )
获取主机 192.168.0.212 除了和主机 192.168.1.134 之外所有主机通信的ip包,使用命令:
tcpdump ip host 192.168.0.212 and ! 192.168.1.134
截获主机hostname发送的所有数据
tcpdump -i eth0 src host 127.0.0.1
监视所有送到主机hostname的数据包
tcpdump -i eth0 dst host 127.0.0.1
获取主机192.168.1.134接收或发出的telnet包,使用如下命令
tcpdump tcp port 23 and host 192.168.1.134
对本机的udp 123 端口进行监视 123 为ntp的服务端口
tcpdump udp port 123
抓取经过所有eth0,且数据包源网络地址为192.168.1.0/24,不显示时间戳,除了 22 端口,保存为 target.cap
tcpdump tcp -i eth0 -t -s 0 -c 100 and dst port ! 22 and src net 192.168.1.0/24 -w ./target.cap
原创文章,作者:wure,如若转载,请注明出处:https://blog.ytso.com/270036.html