增加抓包时间戳
四、条件过滤1. 过滤:指定需要抓取的协议tcpdump可以只抓某种协议的包,支持指定以下协议:「ip,ip6,arp,tcp,udp,wlan」等 。
命令:
tcpdump udptcpdump icmptcpdump tcptcpdump arp2. 过滤:指定协议的端口号使用port参数,用于指定端口号 。
命令:tcpdump tcp port 80
使用portrange参数,用于指定端口范围 。
命令:tcpdump tcp portrange 1-1024
3. 过滤:指定源与目标src 表示源 。
dst 表示目标 。
命令:
tcpdump src port 8080
tcpdump dst port 80
4. 过滤:指定特定主机的消息包使用host指定需要监听的主机 。
命令:
tcpdump host 192.168.1.113注意:若使用了host参数使用了计算机名或域名 。例tcpdump host shi-pc ,则无法再使用-n选项 。
5. 过滤:指定数据包大小使用greater(大于)与less(小于)可以指定数据包大小的范围 。
「例:只抓取大于1000字节的数据包 。」
命令:
tcpdump greater 1000「例:只抓取小于10字节的数据包 。」
命令:
tcpdump less 10五、 逻辑表达式使用基本逻辑组合拼装出更精细的过滤条件 。
1. 逻辑与逻辑与关系,使用and 。
命令:
tcpdump tcp and host 192.168.1.112tcpdump tcp and src 192.168.1.112 and port 80802. 逻辑或逻辑或关系,使用or 。
命令:
tcpdump host 192.168.1.112 or 192.168.1.1133. 逻辑非逻辑非关系,使用not,也可以使用 !。
若使用 ! 必须与其后面的字符隔开一个空格 。
例:当通过ssh协议远程使用tcpdump时,为了避免ssh的数据包的输出,所以一般需要禁止ssh数据包的输出 。
命令:
tcpdump not tcp port 22tcpdump ! tcp port 224. 括号括号需要使用在引号内,或转意使用 。否则会报错 。
例:抓取非22端口,且主机为192.168.1.112 和 192.168.1.113的TCP数据包 。
命令:
tcpdump not tcp port 22 and host 192.168.1.112or192.168.1.113tcpdump "not tcp port 22 and host (192.168.1.112 or 192.168.1.113)"tcpdump not tcp port 22 and host "(192.168.1.112 or 192.168.1.113)"六、其他实例1. 打印所有进入或离开sundown的数据包.tcpdump host sundown2. 截获主机210.27.48.1 和主机210.27.48.2 或210.27.48.3的通信tcpdump host 210.27.48.1 and (210.27.48.2 or 210.27.48.3 ) 3. 如果想要获取主机210.27.48.1除了和主机210.27.48.2之外所有主机通信的ip包,使用命令:tcpdump ip host 210.27.48.1 and ! 210.27.48.24. 监视所有送到主机hostname的数据包tcpdump -i eth0 dst host hostname5. 获取主机210.27.48.1接收或发出的telnet包23为telnet的端口
tcpdump tcp port 23 and host 210.27.48.16. 监视本机的udp 123 端口123 为ntp的服务端口
tcpdump udp port 123 7. 使用tcpdump抓取HTTP包tcpdump -XvvennSs 0 -i eth0 tcp[20:2]=0x4745 or tcp[20:2]=0x4854
- 0x4745 为"GET"前两个字母"GE",
- 0x4854 为"HTTP"前两个字母"HT" 。
显然这不利于分析网络故障,通常的解决办法是先使用带**-w参数的tcpdump 截获数据并保存到文件中**,然后再使用其他程序(如Wireshark)进行解码分析 。当然也应该定义过滤规则,以避免捕获的数据包填满整个硬盘 。
六、查看数据包完整内容tcpdump默认不显示数据包的详细内容 。
方法一:使用-A参数能以ASCII码显示数据包 。
例:只抓取1个数据包,并显示其内容 。
命令:
tcpdump -c 1 -A
文章插图
方法二:使用-X参数能16进制数与ASCII码共同显示数据包 。
例:只抓取1个数据包,并显示其内容 。
命令:
tcpdump -c 1 -X
推荐阅读
- 2021年云计算面临的5大网络安全威胁
- 全球13台根服务器,中国没有任何一台,一旦断网中国网络会瘫痪吗
- Python网络编程实现自动化,简化Telnet网络配置工作
- 家里无线网络每天不定时段出现网速很慢或者直接无连接,这是怎么回事?
- 为什么黑客总是能赢得“网络战争”?
- 连上 Wi-Fi 就能上网了吗?健全家庭网络需要这些设备
- 利用网络引爆传播的方法
- IT外包浅谈应对SolarWinds的网络安全技巧
- 如何利用网络搭建“零信任”?4个窍门帮你搞定!
- FreakOut 僵尸网络分析
