有没有办法从手机或笔记本电脑等设备或使用接入点获取附近无线设备的 MAC 地址和信号强度?
答案1
好吧,每个人都只回答了 Windows 平台的问题。所以,我认为回答 Linux 平台的问题也会很有用。在 Linux 上,您可以执行以下操作:
获取网络中连接的设备的 MAC 地址
您可以使用多种工具来完成此任务,例如 Netdiscover、arp-scan、nmap 甚至 WireShark。这些工具主要用于无线网络的渗透测试,可用于通过了解 IP 地址和 MAC 地址来了解网络中的人员。
ARP(地址解析协议)用于将 MAC 地址映射到内部网络上的 IP 地址。路由器和交换机向网络上的所有 MAC 地址发送广播 ARP 请求,要求它们使用其 IP 地址进行响应。然后,每个系统将使用其 IP 地址进行响应,然后交换机或其他设备将创建一个小型数据库,将 MAC 映射到 IP 地址,以便它知道“谁是谁”。这两种工具都使用 ARP 数据包来获取此信息。
使用
Netdiscover
Netdiscover 用于对没有 DHCP 服务器的无线网络进行主动或被动扫描。它还可以用于扫描集线器/交换网络。
netdiscover -i eth0 -r 192.168.2.0/24
其中
-i
表示接口(这里是 eth0)&-r
表示要测试的 IP 范围。使用
arp-scan
arp-scan(也称为 ARP 扫描或 MAC 扫描仪)是一款非常快速的 ARP 数据包扫描器,可显示网络中的每个活动 IPv4 设备。由于 ARP 不可路由,因此它仅在本地 LAN(本地子网或网络段)中工作。它显示所有活动设备,即使它们有防火墙。
arp-scan --interface=wlan0 [ --localnet ] 192.168.0.1/24
获取未连接到网络的设备的 MAC 地址
好吧,这部分是对你的关于附近设备的 MAC 地址和信号的问题的准确回答。为此,我们可以使用 Airmon-ng 工具设置无线监视器,然后使用 Airodump-ng 将无线信号从监视器转储到屏幕。这两个工具都是 Aircrack-ng 的一部分,同样是一组用于无线网络渗透测试的工具。这是一个完美的工具,可以满足您的需求。
使用 Aircrack-ng Suite 并不容易,但值得花时间和精力。将所有命令都写在答案中会很无聊,因此命令的简短步骤如下
检查接口状态:
airmon-ng
检查任何可能对 Airmon-ng 造成麻烦的进程并终止它们:
airmon-ng check kill
在给定的无线接口(wlan0)上启用监控模式(启动)
airmon-ng start wlan0
其中
wlan0
是无线接口的名称。iwconfig
在终端输入以获取计算机上无线设备的无线接口名称。启动 Airodump-ng 以转储来自 Wireless Monitor 的数据包
airodump-ng mon0
mon0
监视器在接口上启动的位置wlan0
。现在您将清楚地查看您附近的所有设备以及每个人的 MAC 地址和信号强度也。完成后按Ctrl+C停止监控。最后停止接口上的监控模式
airmon-ng stop wlan0
注意:使用 Airmon-ng 时,您是否连接到无线网络并不重要。唯一的问题是,使用 Airmon-ng 命令需要将无线接口(在您的设备上)置于监控模式,因此您将断开与任何无线网络的连接,但其余一切都可以满足您的需要。
答案2
如何获取附近无线设备的 MAC 地址和信号强度?
通过 Windows PC,您可以:
WifiChannelMonitor 是一款适用于 Windows 的实用程序,它使用 Microsoft Network Monitor 捕获驱动程序在监控模式下捕获您选择的通道上的 wifi 流量,并显示有关接入点及其连接的 wifi 客户端的大量信息。WifiChannelMonitor 还允许您查看有关未连接到任何接入点的 wifi 客户端的信息,包括它们尝试连接的 SSID(网络名称)列表。
笔记:
- 此应用程序需要安装Microsoft 网络监视器
示例输出:
WifiInfoView 扫描您所在区域的无线网络并显示有关它们的详细信息,包括:网络名称(SSID)、MAC 地址、PHY 类型(802.11g 或 802.11n)、RSSI、信号质量、频率、信道号、最大速度、公司名称、路由器型号和路由器名称(仅适用于提供此信息的路由器)等等……
当您在此工具的上部窗格中选择一个无线网络时,下部窗格将以十六进制格式显示从该设备接收的 Wi-Fi 信息元素。
WifiInfoView 还具有摘要模式,显示所有检测到的无线网络的摘要,按频道号、制造路由器的公司、PHY 类型或最大速度分组。
示例输出:
netsh
3.从shell 中使用cmd
:
netsh wlan show networks mode=bssid
示例输出:
> netsh wlan show networks mode=bssid
Interface name : Wireless Network Connection
There are 19 networks currently visible.
SSID 1 : TP-LINK_6A7CD0
Network type : Infrastructure
Authentication : WPA2-Personal
Encryption : CCMP
BSSID 1 : e8:94:f6:6a:7c:d0
Signal : 24%
Radio type : 802.11g
Channel : 4
Basic rates (Mbps) : 1 2 5.5 11
Other rates (Mbps) : 6 9 12 18 24 36 48 54
SSID 2 : Virgin Media
Network type : Infrastructure
Authentication : WPA2-Enterprise
Encryption : CCMP
BSSID 1 : d2:05:c2:fb:7d:89
Signal : 26%
Radio type : 802.11g
Channel : 6
Basic rates (Mbps) : 1 2 5.5 11
Other rates (Mbps) : 6 9 12 18 24 36 48 54
BSSID 2 : 52:0d:10:91:50:d9
Signal : 18%
Radio type : 802.11g
Channel : 6
Basic rates (Mbps) : 1 2 5.5 11
Other rates (Mbps) : 6 9 12 18 24 36 48 54
...
进一步阅读
免责声明
我不隶属于尼尔软件无论如何,我只是他们软件的最终用户。
答案3
谷歌附近可用于查找 WiFi 和蓝牙设备。还有其他执行扫描的实用程序任何支持 WiFi 的设备。
Nirsoft 的“无线网络监测器是一个小型实用程序,可扫描您的无线网络并显示当前连接到您的网络的所有计算机和设备的列表”,显示 MAC 地址和其他信息,并且有其他选择。
对于 Linux,尝试林SSID。注意:,它必须以超级用户身份运行。例如在 Ubuntu 中,您可以创建一个启动文件:
gnome 终端 -e “sudo linssid”
答案4
您可以使用名为 kismet 的工具来实现这一点。您将能够发现所有启用了 wifi 的设备,甚至可以获取 MAC ID、RSSI 和其他有用信息。要在 kismet 中执行扫描,您需要先将卡置于监控模式。您可以使用以下命令执行此操作:
airmon-ng start wlan0
Wlan0 是您的接口名称然后您可以使用以下命令启动 kismet:
kismet -c wlan0mon
wlan0mon 是启用监控模式后的接口名称 然后,您可以将 Web 指向 kismet 指定的地址以查看设备。您可以使用 kismet 提供的 REST 端点提取设备列表。