如何查找连接到本地网络的其他机器

tsh*_*ang 26 networking

如何查看我所在的 LAN 上可用的所有计算机的列表。

str*_*ika 27

您对所讨论的 LAN 了解多少?我假设您只是插入电缆或连接到 wifi 什么都不知道。

  1. 尝试使用 DHCP 请求 IP 地址。你得到一个吗?那么你已经知道了一些事情:网关 IP、DHCP 服务器 IP、子网掩码,也许还有 DNS 服务器。
  2. 如果你没有得到,要么没有 DHCP 服务器,要么网络被 MAC 过滤。
  3. 无论哪种方式,开始使用wireshark捕获数据包。如果您使用无线网络或连接到集线器,这很容易。如果您连接到交换机,您可以尝试MAC 泛洪将其切换回“集线器模式”,但更智能的交换机只会禁用您的端口。如果您无论如何都想尝试一下,ettercap可以为您做到这一点。(或 macchanger 和 shell 脚本 :) )
  4. 查看数据包,您可以找到 IP 地址,但最重要的是,您可以猜测网络参数。如果您怀疑 MAC 过滤在离开后将您的 MAC 地址更改为观察到的地址之一(暂时不发送任何内容)。
  5. 当您对网络配置(网络掩码、网关等)有一个很好的了解时,请使用 nmap 进行扫描。Nmap 可以做的比-sP某些主机不响应 ping 的情况要多得多(查看文档)。只有当您的网络设置和路由正确时,nmap 才起作用,这一点很重要。
  6. 您可以使用 nmap 的idle scan找到更多主机。

一些(大多数?)系统管理员不喜欢上面的一些方法,所以请确保它被允许(例如它是你的网络)。另请注意,您自己的防火墙可以阻止其中一些方法(甚至使用 DHCP 获取 IP),因此请先检查您的规则。

地图

以下是如何使用 nmap进行基本的主机发现。正如我所说,当您尝试此操作时,您的网络配置应该是正确的。假设您是 192.168.0.50,您位于 /24 子网上。你的 MAC 地址是允许连接的东西,等等。我喜欢运行 wireshark 来看看我在做什么。

首先我喜欢尝试列表扫描,它只尝试解析 DNS 中指定 IP 地址的 PTR 记录。它不会向主机发送任何内容,因此无法保证它确实已连接或已打开,但很有可能。这种模式显然需要一个愿意与您交谈的 DNS 服务器。

nmap -vvv -sn -sL 192.168.1.0/16
Run Code Online (Sandbox Code Playgroud)

这可能什么也找不到,或者它可能会告诉您每个 IP 都已启动。

然后我通常去进行ARP扫描。它发送 ARP 请求(您"Who has <target IP>? Tell <your IP>"在wireshark 中看到它们)。这是非常可靠的,因为没有人过滤或伪造 ARP。主要缺点是它仅适用于您的子网。

nmap -vvv -sn -PR 192.168.1.0/24
Run Code Online (Sandbox Code Playgroud)

如果您想扫描路由器或防火墙后面的内容,请使用 SYN 和 ACK 扫描。SYN 启动 TCP 连接,您将收到 RST 或 SYNACK 作为响应。无论哪种方式,主机都已启动。如果有防火墙,您可能会禁止 ICMP 通信或类似的情况。大多数情况下,如果防火墙过滤了您的数据包,您将一无所获。某些类型的防火墙仅过滤 TCP SYN 数据包,并让所有其他 TCP 数据包通过。这就是 ACK 扫描有用的原因。如果主机已启动,您将收到 RST 作为响应。由于您不知道什么防火墙到位,请尝试两者。

nmap -vvv -sn -PS 10.1.2.0/24
nmap -vvv -sn -PA 10.1.2.0/24
Run Code Online (Sandbox Code Playgroud)

那么当然你可以使用基于 ICMP 的扫描和 -PE -PP -PM。

另一个有趣的方法是带有不存在的协议号的 -PO。通常防火墙只考虑 TCP 和 UDP,没有人测试当你尝试一些未知协议时会发生什么。如果主机已启动,您将无法访问 ICMP 协议。

nmap -vvv -sn -PO160 10.1.2.0/24
Run Code Online (Sandbox Code Playgroud)

您还可以告诉 nmap 跳过主机发现 (-Pn) 并在每个主机上执行端口扫描。这非常慢,但您可能会发现主机发现由于某种原因而遗漏的其他主机。

  • @Tshepang:我添加了一些 nmap 示例,但我希望您考虑阅读文档。Nmap 是最好的网络工具之一,文档写得很好,值得花时间。 (5认同)

Kei*_*ith 8

安装nmap并运行nmap -sP <mynetwork>.

  • 我应该用什么替换 &lt;mynetwork&gt;? (3认同)

xen*_*ide 8

我喜欢ip neighIpRoute2 附带的命令。

ip neigh
192.168.1.1 dev eth0 lladdr 00:1d:7e:f8:21:66 REACHABLE
Run Code Online (Sandbox Code Playgroud)

但是,我认为它仅适用于arp-able 节点。