使用wireshark抓netlink包问题

如何抓

网上的抓包方法如下:

modprobe nlmon
ip link add nlmon0 type nlmon
ip link set dev nlmon0 up
# 必须使用-w保存到文件
tcpdump -i nlmon0 -w netlinik.pcap

注意:tcpdump时必须使用-w保存到文件,然后通过wireshark分析。不支持tcpdump内直接分析。

抓不到?

将抓到的报文用wireshark打开,看到确实可以解析,一阵窃喜

但找了一番,并未找到自己想要的包。
并且可以笃定没抓到自己发送的netlink消息。
结合网上的分析,以及看代码,可以得出结论,并不是所有NETLINK包都能抓到,仅支持如下协议的netlink包:

  • NETLINK_ROUTE
  • NETLINK_USERSOCK
  • NETLINK_SOCK_DIAG
  • NETLINK_NFLOG
  • NETLINK_XFRM
  • NETLINK_FIB_LOOKUP
  • NETLINK_NETFILTER
  • NETLINK_GENERIC

而我想要抓的netlink协议号是自定义的。所以抓不到。

netlink tap口函数大致调用流程

af_netlink.c中
__netlink_sendskb -> netlink_deliver_tap -> __netlink_deliver_tap
__netlink_deliver_tap时调用过滤器函数,不支持的协议会进行过滤

static bool netlink_filter_tap(const struct sk_buff *skb)
{struct sock *sk = skb->sk;/* We take the more conservative approach and* whitelist socket protocols that may pass.*/switch (sk->sk_protocol) {case NETLINK_ROUTE:case NETLINK_USERSOCK:case NETLINK_SOCK_DIAG:case NETLINK_NFLOG:case NETLINK_XFRM:case NETLINK_FIB_LOOKUP:case NETLINK_NETFILTER:case NETLINK_GENERIC:return true;}return false;
}

如何改进代码

使用NETLINK_GENERIC来进行通信。

NETLINK的协议号本就只支持32个,已经使用了20来个了,也经不起我们一个进程跟内核通信就造一个协议号。因此可以使用NETLINK_GENERIC,也可满足需求。
这样还能抓包多好。

使用wireshark抓netlink包问题相关推荐

  1. python怎么编写wireshark抓的包_使用Wireshark 抓取数据包

    Wireshark 是一个网络封包分析软件.网络封包分析软件的功能是获取网络封包,并尽可能显示出最为详细的网络封包资料.Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换. 一  ...

  2. wireshark网卡权限_设置网卡属性用wireshark抓VLAN包

    Wireshark 软件分析 8021p 数据包 问题描述: 开始在用 WireShark 软件抓包分析数据时,发现看不到 802.1Q 的相关信息,包括 8021p 优先级及报文 VLAN ID . ...

  3. wireshark抓tcp包并分析

    抓包分析 抓包 分析 抓包 首先是去下载一个wireshark,这里就不放连接了(很久前下载的,网址不记得了). 启动之后,选择自己要抓包的网络: 我电脑连的是wifi,所以我这里抓包选的是WLAN. ...

  4. 使用 wireshark 抓本地包

    一般而言 windows 系統本地到本地ip 的傳輸不會經過網卡,因此無法由 wireshark 捕捉解析,本文介紹 wireshark 同步安裝 Npcap方式,藉此loopback本地ip 到 本 ...

  5. wireshark抓的包中文显示点点....

    默认可能是ACKII 修改抓包数据显示类型:

  6. wireshark 抓 grpc 包

    2019独角兽企业重金招聘Python工程师标准>>> Grpc server 端 暴露 9898端口 1.过滤9898端口 2.找到psh 追踪流 3. tcp 追踪流分析 5.获 ...

  7. Wireshark 抓包分析 RTSP/RTP/RTCP 基本工作过程

    整体而言,RTSP 通常工作于可靠的传输协议 TCP 之上,就像 HTTP 那样,用于发起/结束流媒体传输,交换流媒体元信息.RTP 通常工作于 UDP 之上,用于传输实际的流媒体数据,其中的载荷格式 ...

  8. Wireshark抓包原理(ARP劫持、MAC泛洪)及数据流追踪和图像抓取(二)

    [网络安全自学篇] 十三.Wireshark抓包原理(ARP劫持.MAC泛洪)及数据流追踪和图像抓取(二) 2019年09月22日 21:55:44 Eastmount 阅读数 3515 文章标签:  ...

  9. Wireshark抓包——TCP协议分析

    一. 实验目的 通过本次实验,掌握使用Wireshark抓取TCP/IP协议数据包的技能,能够深入分析TCP帧格式及"TCP三次握手".通过抓包和分析数据包来理解TCP/IP协议, ...

最新文章

  1. linux平台软件动态分析工具valgrind系列工具及其可视化
  2. 【C 语言】二级指针作为输入 ( 自定义二级指针内存 | 二级指针 排序 | 通过 交换指针方式 进行排序 )
  3. JS在火狐浏览器下如何关闭标签?
  4. 异步清零和同步置数/清零的区别
  5. 主成分分析和因子分析区别与联系
  6. 一般一个前端项目完成需要多久_制作分销小程序最快要多久
  7. 谷歌A/B实验——重叠实验基础设施解读
  8. 黑客攻防技术宝典Web实战篇第2版—第6章 攻击验证机制
  9. 中英文混合字符串长度的获取
  10. python - 机器学习lightgbm相关实践
  11. win10怎样获得计算机管理员权限,详解Win10获取管理员权限的具体方法
  12. ps界面为啥突然变大了_PS如何用快速蒙版抠图,超实用的技巧!!!
  13. 【已解决】瞎设置代理服务器后IE浏览器上不了网
  14. Bootstrap相关整理、免费主题整理
  15. 44.git仓库账号或着密码修改之后需要重新配置SSH公钥
  16. Heartbleed心脏出血原理及漏洞复现(CVE-2014-0106)
  17. 基于C#的Modbus的(NModbus)研究(DTS686电表)——实现TCP通信连接(二)
  18. 写作分析——缓和说教内容
  19. 德国为新能源付出了哪些巨大的代价?
  20. 动森大头菜价格变化分析(1)——不同价格走势的变换

热门文章

  1. 新大陆java工程师笔试题_完美世界,中兴,新大陆支付面经
  2. php如何查询mysql数据库字符集_修改及查看mysql数据库的字符集_MySQL
  3. jenkins触发构建后一直重复构建
  4. 浅谈电子数字取证技术
  5. jQuery-点击按钮页面滚动到顶部,底部,指定位置
  6. GnuPG 的PGP使用
  7. nginx的addition模块在响应的前后报文添加内容与变量的运行原理
  8. np.array的shape的区别
  9. table设置width无效
  10. Guacamole 介绍以及架构