有没有先前的知识可以找出networking上可用的网关?

我和一个同事都推测这是一个明确的“否”,但是,不可否认,我们的networking知识是有限的。

如果不事先了解networkingconfiguration(即没有DHCP或静态IPconfiguration),甚至有可能找出networking的网关? 如果确实有可能,怎么样?

首先,我猜测有90%的时间是你的子网中的第一个IP地址(所以, 10.10.5.0/24 ,这将是10.10.5.1 ) – 虽然我的networking有一个在.17和一个.23 (在.1上什么也没有); 所以你要做什么。

如果它是一个wifinetworking,你可以听取promiscious模式,并看看什么是最常见的外部stream量目的地,如果其他人使用的网关,你可以从那里推断出来(通过大大减lessIP的数量来检查)。

如果这是一个完全交换的networking,事情变得更加困难,但是我过去所做的就是观察ARP请求,并系统地通过最广泛的ARP设备。

但是,说“ 不”的方式还有很长的路要走,networking网关所在的IP地址,networking甚至是网关,都无从确知。


实际的例子:我曾经inheritance过一个守卫防火墙,我有它的口令,但不知道它在听什么networking,这很像你的理论困境。 我最终做的是开发Wireshark并开始捕获ARPstream量。 过了一段时间,watchguard的MAC地址开始出现在全球的广播stream量中,做了无情的ARP,寻找某个未知的预configuration设备的IP地址。 从那里设置自己的子网并find它的IP地址非常简单。


Al West提出了一个有趣的观点 – 如果使用自动configuration,IPv6网关是相当容易find的 – 每个路由器(通过RA)宣传自己,您可以只听它们。 如果是DHCPnetworking,或者没有自动configuration或DHCP的networking,则应用上述相同的规则

我想我不得不在这里不同意@马克·亨德森。 除了我认为的边缘情况:

  • 策略控制的子网(VACL,MAC过滤)。 即使您可以弄清楚它是什么,这也会阻止您能够联系路由器。
  • 802.1x环境。 这种安全意图是为了防止人们插入物理端口并获得访问权限。 所以802.1x环境可能会给你提示路由器是什么,所以你可以进行身份​​validation,你将无法使用它的任何types的stream量。
  • 非广播networking,这实际上是不可能的。

除此之外,这是可能的。 但这不是微不足道的,可能需要很长时间。 我已经构build了脚本来testing无证networking中的路由调查。 你必须先解决一些问题:

  • 什么是您连接到的networking的子网
  • 哪些设备在您的networking上可用
  • 如果您通过这些设备之一设置路由,则可以ping通您知道已启动的远程设备,并且可以通过“已知良好”Internetpath进行连接。

为了解决第一部分你可以tcpdump的接口,它会显示一些stream量,希望一些广播或ARPstream量。 通常最好是尝试使用DHCP,但如果这样做不起作用,您可以只听一小时,然后select一个您所看到的范围内的IP地址。 另外,如果你在这个networking上经常看到arp请求,那么它可能就是路由器。 这意味着在testing其他可用主机之前,您应该首先将这些源作为网关进行testing。

为了解决第二部分,在得到一个分配了IP地址的节点运行nmap或者strobe并且找出networking上的其他设备。

要解决最后一块使用route命令设置一个静态路由到默认(0.0.0.0)或某些特定的IP,看看你是否可以ping你的外部testing主机。 这可以是一个简单的ICMPtesting,或者我会build议一个具有CGI的HTTP请求,它返回你的源IP地址,这样你就可以知道你的NAT了。

正如马克和波利斯在答案中所说的那样,它可能可以做到,但这不是微不足道的,它将依赖于一定数量的幸运猜测和假设。

作为一个假设的例子:您可以将一台笔记本电脑插入networking并运行一个数据包捕获程序。 至less你会拿起一些广播stream量(ARP,NetBIOS等)。 这将允许你确定在networking上使用的IP地址(但它不会告诉你使用的是什么子网掩码)。 然后你可以在networking中select一个随机的IP地址(你必须对子网掩码作出有根据的猜测,并且你必须希望这个地址还没有被使用)。 然后,您可以使用ARP扫描程序在networking上运行ARP扫描,并希望程序能够准确地识别响应ARP扫描的设备,如果有,您可以从设备标识中确定哪个设备可能是路由器,您也可以通过查看识别制造商的MAC地址的前3个八位位组,并在这个OUI列表中查找它们来找出可能是DG的设备。 例如,发现的任何思科设备都将成为99%的案例中的交换机或路由器。 从那里猜测和猜测关于在ARP扫描中返回的关于哪一个ID是DG的IP地址。

正如你所看到的,这种方法(我相信还有其他方法可以解决这个问题)几乎不科学,也难以保证产生确定的结果。

由于(IP)网关是在每个连接的节点上configuration的,而不是实际networkingconfiguration的一部分,networking本身不可能告诉你“网关”是什么 – 没有这样的野兽。
但是,通过一些混杂的ARP嗅探,你可以找出所有其他节点正在使用哪个节点作为它们的网关,并假定这也适用于你。