企业信息公示系统年报,常德seo排名,建设工程中标信息查询,北海网站建设网一 BPF高级过滤条件
高级filter官方地址 常见需求案例汇总 过滤的目的#xff1a;获取最精细、准确的数据思考#xff1a; 抓取更精确的包?1) tcp/ip 报文结构要精通,这样才能知道如何获取自己想要的信息 - 偏移量2) tcpdump 的synax语法要精通,要正确写对3) 多练习…一 BPF高级过滤条件
高级filter官方地址 常见需求案例汇总 过滤的目的获取最精细、准确的数据思考 抓取更精确的包?1) tcp/ip 报文结构要精通,这样才能知道如何获取自己想要的信息 - 偏移量2) tcpdump 的synax语法要精通,要正确写对3) 多练习,任何东西不是一蹴而就的,保持好耐心,熟练
如何抓取到更精确的包
① 多条件过滤规则组合 通过命令选项的不同组合 使用 逻辑运算符 完成更复杂的任务说明 以下两种符号通用and 所有的条件都需要满足,也可以表示为 or 只要有一个条件满足就可以,也可以表示为 ||not 取反,也可以使用 !优先级 取反操作有最高优先级,或操作和and操作有相同的优先级,运算时从左到右结合 细节 由于()在tcpdump和shell中都有特殊含义,避免被shell转义,需要加\推荐 使用()、单引号增加read 可读性 ② 条件判断 判断二者相等 判断二者相等! 判断二者不相等补充 是位操作符、和 是移位操作符
③ 基于包大小进行过滤 ④ 根据 mac 地址进行过滤
其中 ehost 是记录在 /etc/ethertypes 里的 name -- 未验证tcpdump ether host [ehost]tcpdump ether dst [ehost]tcpdump ether src [ehost]
⑤ 数据包标志位
tcpdump 支持我们根据数据包的标志位进行过滤 -- 抓取指定TCP标识位的数据包语法 proto[expr:size]1) proto可以是熟知的协议之一 -- 如ip,arp,tcp,udp,icmp,ipv6等强调 并不局限于tcp[tcpflags]形式2) expr 可以是数值,也可以是一个表达式,表示与指定的协议头开始处的字节偏移量补充 还可以是别名常量形式强调 后续需要充分理解tcp/ip协议簇才能理解和书写正确的偏移量 -- 字节3) size 是optional 可选的,表示从字节偏移量开始取的字节数量count补充 对于 proto[expr:size] z 形式1) 当z为一个字节时,z为10进制2) 当z为多字节时,z为16进制用0x开头
⑥ tcp[13]由来
分析 编号从0开始算,TCP控制标志位于13字节,分析编号13的字节强调 需要理解bytes、bit 含义 -- 1 bytes 8bit TCP包里有个flags字段表示包的类型,tcpdump可以根据该字段抓取相应类型的包tcp[13] 就是 TCP flags (URG,ACK,PSH,RST,SYN,FIN),按照这个计算标志位置位后的数值
tcp[tcpflags] 等价 tcp[13] 编号13的字节 tcp[13]详解
⑦ 根据 tcpflags 进行过滤
tcp-fin, tcp-syn, tcp-rst, tcp-push, tcp-ack, tcp-urg 可以理解为别名常量强调 由于数字不好记忆,所以一般使用这样的别名常量表示 二进制按位与运算符 : 000; 010 111运算规则如果两个二进制数的同一个位数上的数都为1,则当前位为1,否则为0 分割线 补充 全数值的形式,二者也可以混合使用tcpdump tcp[13] 32!0 所有 URGENT ( URG ) 包tcpdump tcp[13] 16!0 所有 ACKNOWLEDGE ( ACK ) 包tcpdump tcp[13] 8!0 所有 PUSH ( PSH ) 包tcpdump tcp[13] 4!0 所有 RESET ( RST ) 包tcpdump tcp[13] 2!0 所有 SYNCHRONIZE ( SYN ) 包tcpdump tcp[13] 1!0 所有 FINISH ( FIN ) 包tcpdump tcp[13]18 所有 SYNCHRONIZE/ACKNOWLEDGE ( SYNACK ) 包 ⑧ 其它高级