是否有可能在没有事先了解的情况下找出网络上可用的网关?

是否有可能在没有事先了解的情况下找出网络上可用的网关?

我和一位同事都认为这是一个明确的“不”但不可否认的是,我们的网络知识有限。

有没有可能,在不了解网络配置的情况下(即没有 DHCP 或静态 IP 配置),您可以找出网络的网关?如果确实可能,怎么做?

答案1

首先,我大胆猜测,90% 的时间它是您子网中的第一个 IP 地址(因此,10.10.5.0/24,它将是10.10.5.1) - 尽管我的网络有一个.17,一个.23(并且 上根本没有.1);所以您可以随意理解。

如果它是一个 wifi 网络,您可以在混杂模式下监听并查看外部流量的最常见目的地是什么,如果其他人正在使用网关,您可以从那里推断出来(通过大大减少要检查的 IP 数量)。

如果它是一个完全交换的网络,事情就会变得更加困难,但我过去所做的就是观察 ARP 请求并系统地检查广告最多的 ARP 设备。

但这还只是个长话短说,没有办法 100% 确定网络网关的 IP 地址,或者网络是否一个门户。


实际示例:我曾经继承了一台 Watchguard 防火墙,我有它的密码,但不知道它在监听哪个网络,这很像你理论上的困境。我最终做的是启动 Wireshark 并开始捕获 ARP 流量。过了一会儿,Watchguard 盒子的 MAC 地址开始出现在全局广播流量中,执行无偿 ARP,寻找某个未知的、预配置设备的 IP 地址。从那里开始,我就可以很容易地将自己设置在正确的子网上并找到它的 IP 地址。


Al West 提出了一个有趣的观点 - 如果 IPv6 网关使用自动配置,则很容易找到 - 每个路由器都会通过 RA 进行自我宣传,您只需监听它们即可。如果是 DHCP 网络,或者没有自动配置或 DHCP 的网络,则适用与上述相同的规则

答案2

我认为我不得不反对@Mark Henderson。除了我认为的极端情况:

  • 策略控制子网(VACL、MAC 过滤)。这将阻止您联系路由器,即使您能弄清楚它是什么。
  • 802.1x 环境。这种类型的安全措施旨在防止人们插入物理端口并获得访问权限。因此,802.1x 环境实际上可能会提示您路由器是什么,以便您进行身份验证,但您无法将其用于任何类型的流量。
  • 非广播网络这实际上是不可能的。

除此之外,这是可能的。但这并不简单,而且可能需要大量时间。我已经编写了执行此操作的脚本来测试未记录网络中的路由调查。您必须先解决几个问题:

  • 你所连接的网络的子网是什么
  • 您的网络上有哪些设备可用
  • 如果您通过其中一个设备设置路由,您是否可以 ping 一个您知道已启动的远程设备,并且您可以通过“已知良好”的互联网路径访问它。

要解决第一部分,您可以查看tcpdump接口,它会显示一些流量,希望是一些广播或 arp 流量。通常最好尝试 DHCP,但如果这不起作用,您可以监听一个小时,然后选择一个在您看到的范围内的 IP 地址。此外,如果您在此网络上频繁看到 arp 请求,则可能是路由器发出的。这意味着您应该先将这些请求的来源作为网关进行测试,然后再测试其他可用主机。

要解决第二部分,在获得分配的 IP 地址后,运行nmapstrobe并找出网络上还有哪些其他设备。

要解决最后一部分,请使用命令设置静态路由route到默认 IP (0.0.0.0) 或某个特定 IP,然后查看是否可以 ping 外部测试主机。这可以是一个简单的 ICMP 测试,或者我建议使用 HTTP 请求,该请求具有一个 CGI,可返回您的源 IP,这样您就可以知道您被 NAT 到了哪里。

答案3

正如马克和 poly 在他们的回答中所说,这也许是可以做到的,但这并不是一件容易的事,而且它需要依赖于一定程度的猜测和假设。

假设:您可以将笔记本电脑接入网络并运行数据包捕获程序。至少您将获取一些广播流量(ARP、NetBIOS 等)。这将允许您确定网络上正在使用的 IP 地址(但它不会告诉您正在使用的子网掩码)。然后,您可以在网络上正在使用的范围内选择一个随机 IP 地址(您必须对子网掩码做出有根据的猜测,并且您必须希望该地址尚未被使用)。然后,您可以使用 ARP 扫描程序在网络上运行 ARP 扫描,并希望该程序能够准确识别响应 ARP 扫描的设备,如果可以,您可以从设备标识中猜测哪个设备可能是路由器,您也可以通过查看 MAC 地址的前 3 个八位字节(标识制造商)自行推断,然后在此查找它们OUI 列表找到可能是 DG 的设备。例如,在 99% 的情况下,发现的任何 Cisco 设备都是交换机或路由器。然后,就需要猜测和假设 ARP 扫描返回的 IP 地址,以确定哪一个是 DG。

正如您所看到的,这种方法(我相信还有其他方法可以实现这一目标)几乎不科学,而且很难保证产生万无一失的结果。

答案4

由于每个连接的节点上都配置了一个 (IP) 网关,而不是实际网络配置的一部分,因此网络本身不可能告诉您“网关”是什么 - 根本没有这样的怪物。
但是,通过一些混杂的 ARP 嗅探,您可以找出所有其他节点都在哪个节点使用作为他们的网关,并假设这也适合您。

相关内容