CSDN|肝了三天,万字长文教你玩转 tcpdump,从此抓包不用愁( 七 )

capture-(hour).pcap , 每个文件大小不超过 200*1000000 字节:$ tcpdump -w /tmp/capture-%H.pcap -G 3600 -C 200这些文件的命名为 capture-{1-24}.pcap , 24 小时之后 , 之前的文件就会被覆盖 。 8.6 提取 HTTP POST 请求中的密码从 HTTP POST 请求中提取密码和主机名:$ tcpdump -s 0 -A -n -l | egrep -i "POST /|pwd=|passwd=|password=|Host:"8.7 提取 HTTP 请求的 URL$ tcpdump -s 0 -v -n -l | egrep -i "POST /|GET /|Host:"8.8 抓取 HTTP 有效数据包抓取 80 端口的 HTTP 有效数据包 , 排除 TCP 连接建立过程的数据包(SYN / FIN / ACK):$ tcpdump 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'8.9 结合 Wireshark 进行分析通常 Wireshark(或 tshark)比 tcpdump 更容易分析应用层协议 。 一般的做法是在远程服务器上先使用 tcpdump 抓取数据并写入文件 , 然后再将文件拷贝到本地工作站上用 Wireshark 分析 。 还有一种更高效的方法 , 可以通过 ssh 连接将抓取到的数据实时发送给 Wireshark 进行分析 。 以 MacOS 系统为例 , 可以通过 brew cask install wireshark 来安装 , 然后通过下面的命令来分析:$ ssh root@remotesystem 'tcpdump -s0 -c 1000 -nn -w - not port 22' | /Applications/Wireshark.app/Contents/MacOS/Wireshark -k -i -例如 , 如果想分析 DNS 协议 , 可以使用下面的命令:$ ssh root@remotesystem 'tcpdump -s0 -c 1000 -nn -w - port 53' | /Applications/Wireshark.app/Contents/MacOS/Wireshark -k -i -抓取到的数据:

CSDN|肝了三天,万字长文教你玩转 tcpdump,从此抓包不用愁
本文插图
-c 选项用来限制抓取数据的大小 。 如果不限制大小 , 就只能通过 ctrl-c 来停止抓取 , 这样一来不仅关闭了 tcpdump , 也关闭了 wireshark 。 到这里 , 我已经将我所知道的 tcpdump 的用法全部说了一遍 , 如果你有认真地看完本文 , 相信会有不小的收获 , 掌握一个上手的抓包工具 , 对于以后我们学习网络、分析网络协议、以及定位网络问题 , 会很有帮助 , 而 tcpdump 是我推荐的一个抓包工具 。
你点的每个“在看” , 我都认真当成了喜欢


推荐阅读