【问题标题】:network sniffer - detect subnet mask in non-DHCP network网络嗅探器 - 检测非 DHCP 网络中的子网掩码
【发布时间】:2022-01-30 22:54:05
【问题描述】:

我正在编写一个简单的网络嗅探器,它应该能够重建网络结构。

当接口设置了 DHCP 后,我可以通过捕获 DHCP 数据包并对其进行分析,轻松读取接口设置,例如客户端 IP 地址、子网掩码、DNS 服务器等。

当接口具有静态 IP 时,我会捕获 ARP 公告数据包以获取静态 IP 地址,然后从网关发出 ARP 请求,以获取 geteway IP 地址。我也在保存 MAC 地址。

我的问题是:如何从网络中的一个或多个静态 IP 和网关地址获取子网掩码。或者通过缓存一些数据包。我没有看到可能包含此类信息的数据包。 我还需要 DNS 地址,但没那么重要。

该程序应在 OpenWRT (C++) 中运行。

【问题讨论】:

  • 你到底想做什么? OpenWRT 设备已经知道自己的子网掩码。
  • @Alnitak 我猜 OpenWRT 盒子的目的是用作嗅探器,而不是实际的路由器。

标签: networking ip openwrt subnet dhcp


【解决方案1】:

我的问题是:如何从网络中的一个或多个静态 IP 和网关地址获取子网掩码。

可能,你不能。

如果被嗅探的网络使用 DHCP,那么您可以监控 DHCP 请求(应该被广播)的 subnet maskrouter 字段,这些字段反映了服务器的报价。

如果没有 DHCP,您所能做的就是进行有根据的猜测。如果您的被动嗅探器注册从地址 192.168.1.1 到 192.168.1.29 的广播,则您知道前缀长度最多 /27。它也可以更短,低至 /16,潜在地址(当前)不存在或保持沉默。如果网络管理员忽略 RFC 1918,前缀甚至可能比 /16 还要短。使用公共地址,您主要是靠自己。

如果您可以主动扫描,您可以发送 ARP 请求并查看哪些请求得到响应 - 您还会看到不发起任何流量/广播的节点。

网关也只是一个猜测。在以 Internet 绑定流量为主的网络中,默认网关很可能是最常被 ARPed 的网关。如果网络流量主要以服务器为中心,则对其地址的 ARP 请求数量超过任何网关的请求数量。

当您的嗅探器仅连接到交换机并仅侦听广播数据包时,它会受到严重限制。如果嗅探器设法侦听网络上的所有流量(通过监控/镜像交换机端口),那么您可以通过发送任意 IP 地址的数据包的 MAC 地址轻松识别网关,反之亦然反之亦然。

如上所述,如果您可以主动发送探测数据包,您可以使用网关接受(并希望转发)和拒绝哪些数据包来测试网关。

【讨论】:

  • 感谢您的回答,我意识到我只有 IP,甚至没有默认网关,但我使用您的方法搜索默认网关,它似乎有效
猜你喜欢
  • 2016-05-28
  • 1970-01-01
  • 2014-11-05
  • 2013-03-18
  • 2011-07-10
  • 1970-01-01
  • 1970-01-01
  • 2015-04-11
  • 1970-01-01
相关资源
最近更新 更多