如何在Linux上使用nmap查看网络上的所有设备

以太网电缆插入路由器
sirtravelalot / Shutterstock.com

想想你知道什么连接到你的家庭网络? 你可能会感到惊讶。 了解如何在Linux上使用nmap进行检查,这样您就可以浏览连接到网络的所有设备。

您可能认为您的家庭网络非常简单,而且无需深入了解它就无法学到任何东西。 你可能是对的,但你可能会学到一些你不知道的东西。 随着物联网设备,手机和平板电脑等移动设备以及智能家居革命的激增,除了“普通”网络设备(如宽带路由器,笔记本电脑和台式电脑)之外,它可能会令人大开眼界。

如果需要,请安装nmap

我们将使用nmap命令。 根据您在计算机上安装的其他软件包,可能已经为您安装了nmap

如果没有,这是如何在Ubuntu中安装它。

  sudo apt-get install nmap 

sudo apt-get在终端窗口中安装nmap

这是如何在Fedora上安装它。

  sudo dnf安装nmap 

sudo dnf在终端窗口中安装nmap

这是如何在Manjaro上安装它。

  sudo pacman -Syu nmap 

sudo pacman -Syu nmap在终端窗口中

您可以使用Linux发行版的软件包管理器将其安装在其他版本的Linux上。

找到您的IP地址

第一项任务是发现Linux计算机的IP地址。 您的网络可以使用最小和最大IP地址。 这是网络的IP地址范围或范围。 我们需要为nmap提供IP地址或一系列IP地址,因此我们需要知道这些值是什么。

很简单,Linux提供了一个名为ip的命令, 它有一个名为addr (address) 的选项 输入ip ,space, addr ,然后按Enter键。

  ip addr 

ip addr在终端窗口中

在输出的底部,您将找到您的IP地址。 它前面是标签“inet”。

从终端窗口中的ip地址输出

该计算机的IP地址为“192.168.4.25”。 “/ 24”表示子网掩码中有三组连续的八个1。 (并且3 x 8 = 24。)

在二进制文件中,子网掩码是:

  11111111.11111111.11111111.00000000 

在十进制中,它是255.255.255.0。

子网掩码和IP地址用于指示IP地址的哪个部分标识网络,以及哪个部分标识设备。 此子网掩码通知硬件IP地址的前三个数字将标识网络,IP地址的最后一部分标识各个设备。 并且因为8位二进制数中可以容纳的最大数字是255,所以该网络的IP地址范围是192.168.4.0到192.168.4.255。

所有这些都封装在“/ 24”中。 令人高兴的是, nmap使用了这种表示法,因此我们需要开始使用nmap

相关: IP地址如何工作?

开始使用nmap

nmap是一种网络映射工具 它的工作原理是将各种网络消息发送到我们将要提供它的范围内的IP地址。 通过判断和解释它所获得的响应类型,它可以推断出它正在探测的设备。

让我们用nmap开始一个简单的扫描。 我们将使用-sn (扫描无端口)选项。 这告诉nmap现在不要探测设备上的端口。 它将进行轻量级,快速扫描。

即便如此, nmap也可能需要一些时间才能运行。 当然,您在网络上拥有的设备越多,所需的时间就越长。 它首先完成所有的探测和侦察工作,然后在第一阶段完成后呈现其发现。 如果一分钟左右没有任何可见的事情,请不要感到惊讶。

我们要使用的IP地址是我们之前使用ip命令获得的IP地址,但最终的数字设置为零。 这是该网络上第一个可能的IPAddress。 “/ 24”告诉nmap扫描整个网络范围。 参数“192.168.4.0/24”转换为“从IP地址192.168.4.0开始,直到所有IP地址,包括192.168.4.255”。

注意我们正在使用sudo

  sudo nmap -sn 192.168.4.0/24 

sudo nmap -sn 192.168.4.0/24在终端窗口中

短暂等待后,输出将写入终端窗口。

您可以在不使用sudo情况下运行此扫描,但使用sudo可确保它可以提取尽可能多的信息。 例如,如果没有sudo此扫描不会返回制造商信息。

终端窗口中的nmap输出

使用-sn选项的优势 - 以及快速轻量级扫描 - 它为您提供了一个整洁的实时IP地址列表。 换句话说,我们有一个连接到网络的设备列表及其IP地址。 在可能的情况下, nmap已经确定了制造商。 这对第一次尝试来说并不坏。

这是列表的底部。

终端窗口中的nmap输出

我们已经建立了连接网络设备的列表,因此我们知道它们中有多少个。 有15个设备已打开并连接到网络。 我们了解其中一些制造商。 或者,正如我们将要看到的,我们已经尽可能地将nmap报告为制造商。

查看结果时,您可能会看到您识别的设备。 可能有一些你没有。 这些是我们需要进一步调查的。

其中一些设备对我来说很清楚。 Raspberry Pi Foundation不言自明。 亚马逊技术设备将成为我的Echo Dot。 我唯一的三星设备是激光打印机,因此缩小了一个。 有几种设备列为戴尔制造的。 这些都很简单,那就是PC和笔记本电脑。 Avaya设备是IP语音电话,为我提供总部电话系统的扩展。 这让他们更容易在家里纠缠我,所以我很清楚这个设备。

但我仍然有问题。

有几个设备的名称对我来说没有任何意义。 例如,Liteon技术和Elitegroup计算机系统。

我有(方式)不止一个Raspberry PI。 有多少人连接到网络总是会有所不同,因为他们在重新成像和重新定位时会不断地进行交换。 但绝对应该出现不止一个。

有几个设备被标记为未知。 显然,他们需要调查。

执行更深入的扫描

如果我们删除-sn选项, nmap也会尝试探测设备上的端口 端口是设备上网络连接的编号端点。 考虑一个公寓楼。 所有公寓都有相同的街道地址(相当于IP地址),但每个公寓都有自己的号码(相当于端口)。

设备中的每个程序或服务都有一个端口号。 网络流量传递到IP地址和端口,而不仅仅是IP地址。 某些端口号已预先分配或保留。 它们始终用于承载特定类型的网络流量。 例如,端口22 保留用于SSH连接 ,端口80保留用于HTTP Web流量。

我们将使用nmap扫描每个设备上的端口并告知哪些端口是打开的。

nmap 192.168.4.0/24

nmap 192.168.4.0/24在终端窗口中

这次我们将获得每个设备的更详细的摘要。 我们被告知网络上有13个有源设备。 等一下; 我们刚才有15台设备。

运行这些扫描时,设备数量可能会有所不同。 这可能是由于移动设备到达和离开房屋,或设备被打开和关闭。 此外,请注意,当您打开已关闭电源的设备时,它可能与上次使用时的IP地址不同。 它可能,但它可能不会。

终端窗口中的nmap输出

有很多输出。 让我们再次这样做并将其捕获到一个文件中。

  nmap 192.168.4.0/24> nmap-list.txt 

nmap 192.168.4.0/24>终端窗口中的nmap-list.txt

现在我们可以用less的文件列出文件,如果我们愿意,可以搜索它。

 少了nmap-list.txt 

在终端窗口中减去nmap-list.txt

当您滚动浏览nmap报告时,您正在寻找任何您无法解释或看起来不寻常的内容。 查看列表时,请记下您希望进一步调查的任何设备的IP地址。

根据我们之前生成的列表,192.168.4.10是一个Raspberry Pi。 它将运行一个Linux发行版或另一个。 那么什么是端口445? 它被描述为“microsoft-ds”。 微软,在运行Linux的Pi上? 我们当然会调查这一点。

192.168.4.11在早期扫描中被标记为“未知”。 它有很多端口开放; 我们需要知道那是什么。

终端窗口中的nmap输出

192.168.4.18也被确定为Raspberry Pi。 但是Pi和设备192.168.4.21都打开了端口8888,这被描述为由“sun-answerbook”使用。 Sun AnswerBook是一个多年退休(初级)文档检索系统。 不用说,我没有安装任何地方。 这需要看。

终端窗口中的nmap输出

设备192.168.4.22之前被识别为三星打印机,此处通过标记“打印机”进行验证。 引起我注意的是HTTP端口80存在并打开。 此端口保留用于网站流量。 我的打印机是否包含网站?

nmap结果在终端窗口中显示三星打印机

据报道,设备192.168.4.31由名为Elitegroup Computer Systems的公司制造。 我从来没有听说过它们,并且该设备有很多端口打开,所以我们将调查它。

设备打开的端口越多,网络犯罪分子进入该端口的可能性就越大 - 如果它直接暴露在互联网上的话。 这就像一所房子。 你拥有的门窗越多,窃贼就越有可能进入。

终端窗口中的英特尔NUC的nmap输出

我们排除了犯罪嫌疑人; 让我们谈谈吧

设备192.168.4.10是一个端口445打开的Raspberry Pi,它被描述为“microsoft-ds。”快速的Internet搜索显示端口445通常与Samba相关联。 Samba是Microsoft的服务器消息块协议(SMB)的免费软件实现 SMB是一种通过网络共享文件夹和文件的方法。

这是有道理的; 我使用特定的Pi作为一种迷你网络附加存储设备(NAS)。 它使用Samba,以便我可以从网络上的任何计算机连接到它。 好的,这很容易。 一个下来,还有几个去。

相关: 如何将Raspberry Pi转变为低功耗网络存储设备

具有许多开放端口的未知设备

IP地址为192.168.4.11的设备有一个未知的制造商和许多端口打开。

我们可以更积极地使用nmap来尝试从设备中获取更多信息。 -A (主动扫描)选项强制nmap使用操作系统检测,版本检测,脚本扫描和traceroute检测。

-T (时序模板)选项允许我们指定0到5之间的值。这设置了一种时序模式。 计时模式有很多名字:偏执(0),偷偷摸摸(1),礼貌(2),正常(3),激进(4)和疯狂(5)。 数字越小, nmap对带宽和其他网络用户的影响就越小。

请注意,我们没有为nmap提供IP范围。 我们将nmap集中在单个IP地址上,该IP地址是相关设备的IP地址。

  sudo nmap -A -T4 192.168.4.11 

sudo nmap -A -T4 192.168.4.11在终端窗口中

在用于研究本文的机器上, nmap花了9分钟来执行该命令。 如果您在看到任何输出之前需要等待一段时间,请不要感到惊讶。

终端窗口中的nmap输出

不幸的是,在这种情况下,输出并没有给我们提供我们希望的简单答案。

我们学到的另一件事是它运行的是Linux版本。 在我的网络上并不是一个惊喜,但这个版本的Linux很奇怪。 它看起来很古老。 Linux几乎在所有物联网设备中使用,因此可能是一个线索。

在输出nmap向下进一步向我们提供了设备的媒体访问控制地址 (MAC地址)。 这是分配给网络接口的唯一引用。

MAC地址的前三个字节称为组织唯一标识符 (OUI)。 这可用于识别网络接口的供应商或制造商。 如果你碰巧是一个将35,909个数据库组合在一起的极客,那就是。

ms在终端窗口中查找Google设备的mac地址

我的实用程序说它属于Google。 由于之前关于Linux的特殊版本的问题以及可能是物联网设备的怀疑,这使得我的Google Home迷你智能音箱完全正确地指出了这一点。

您可以使用Wireshark制造商查找页面在线进行相同类型的OUI查找。

Wireshark MAC地址查找网页

令人鼓舞的是,这符合我的结果。

确定设备ID的一种方法是执行扫描,关闭设备并再次扫描。 第二组结果中现在缺少的IP地址将是您刚刚关闭的设备。

Sun AnswerBook?

下一个谜团是Raspberry Pi的“sun-answerbook”描述,IP地址为192.168.4.18。 该设备在192.168.4.21处出现了相同的“sun-answerbook”描述。 设备192.168.4.21是Linux台式计算机。

nmap最好地猜测了已知软件关联列表中端口的使用。 当然,如果这些端口关联中的任何一个不再适用 - 也许该软件已不再使用且已经过时 - 您可能会在扫描结果中获得误导性的端口描述。 这可能就是这种情况,Sun AnswerBook系统的历史可以追溯到1990年代早期,对于那些甚至听过它的人而言,它只不过是一段遥远的记忆。

那么,如果它不是一些古老的Sun Microsystems软件,那么Raspberry Pi和桌面这两个设备有什么共同之处呢?

互联网搜索没有带回任何有用的东西。 有很多热门歌曲。 似乎任何带有Web界面的东西都不想使用端口80似乎选择端口8888作为后备。 因此,下一个合乎逻辑的步骤是尝试使用浏览器连接到该端口。

我在浏览器中使用192.168.4.18:8888作为地址。 这是在浏览器中指定IP地址和端口的格式。 使用冒号:将IP地址与端口号分开。

浏览器中的Resilio同步门户

一个网站确实开放了。

它是运行Resilio Sync的任何设备的管理门户。

我总是使用命令行,所以我完全忘记了这个设施。 因此,Sun AnswerBook条目列表是一个完整的红色鲱鱼,并且已经确定了端口8888后面的服务。

隐藏的Web服务器

我记录的下一个问题是打印机上的HTTP端口80。 我再次从nmap结果中获取IP地址,并将其用作浏览器中的地址。 我不需要提供端口; 浏览器默认为端口80。

三星打印机嵌入式Web服务器在浏览器窗口中

瞧瞧 我的打印机里面有一个嵌入式Web服务器。

现在我可以看到通过它的页数,碳粉水平以及其他有用或有趣的信息。

另一个未知设备

192.168.4.24的设备没有向我们迄今为止尝试的任何nmap扫描显示任何内容。

我添加了-Pn (无ping)选项。 这会导致nmap假定目标设备已启动并继续执行其他扫描。 这对于没有按预期做出反应的设备非常有用,并且会让nmap认为它们处于离线状态。

  sudo nmap -A -T4 -Pn 192.168.4.24 

sudo nmap -A -T4 -Pn 192.168.4.24在终端窗口中

这确实检索了信息转储,但没有任何东西可以识别设备。

据报道,它正在运行Mandriva Linux的Linux内核。 Mandriva Linux是一个在2011停产的发行版 继承了一个支持它的新社区,如OpenMandriva

可能是另一种物联网设备? 可能不是 - 我只有两个,他们都被考虑了。

终端窗口中的nmap输出

一个房间的步行穿过和一个物理设备计数让我一无所获。 让我们查看MAC地址。

华为手机查找MAC地址

所以,事实证明这是我的手机。

请记住,您可以使用Wireshark制造商查找页面在线进行这些查找。

Elitegroup计算机系统

我最后两个问题是关于两个带有制造商名称但我不认识的设备,即Liteon和Elitegroup Computer Systems。

让我们改变策略。 另一个用于确定网络上设备身份的命令是arp arp用于处理Linux计算机中的地址解析协议表。 它用于从IP地址(或网络名称)转换为MAC地址

如果您的计算机上未安装arp则可以像这样安装它。

在Ubuntu上,使用apt-get

  sudo apt-get install net-tools 

sudo apt-get在终端窗口中安装net-tools

在Fedora上使用dnf

  sudo dnf安装网络工具 

sudo dnf在终端窗口中安装网络工具

关于Manjaro使用pacman

  sudo pacman -Syu网络工具 

sudo pacman -Syu网络工具在终端窗口

要获取设备及其网络名称的列表 - 如果已为它们分配了一个 - 只需键入arp并按Enter键。

这是我的研究机器的输出:

arp输出在终端窗口中

第一列中的名称是已分配给设备的计算机名称(也称为主机名或网络名称)。 我设置了其中一些(例如NostromoCloudbaseMarineville ),有些已经由制造商设置(例如Vigor.router)。

输出为我们提供了两种使用nmap的输出交叉引用它的方法。 由于列出了设备的MAC地址,我们可以参考nmap的输出来进一步识别设备。

此外,因为您可以使用带有ping的计算机名称,并且因为ping显示基础IP地址,所以您可以依次对每个名称使用ping ,将计算机名称交叉引用到IP地址。

例如,让我们ping Nostromo.local并找出它的IP地址。 请注意,计算机名称不区分大小写。

  ping nostromo.local 

在终端窗口中ping nostromo.local

您必须使用Ctrl + C来停止ping

在终端窗口中输出ping

输出显示它的IP地址是192.168.4.15。 这恰好是使用Liteon作为制造商在第一次nmap扫描中出现的设备。

Liteon公司生产许多计算机制造商使用的计算机组件。 在这种情况下,它是华硕笔记本电脑内的Liteon Wi-Fi卡。 因此,正如我们前面提到的, nmap返回的制造商名称只是它的最佳猜测。 nmap如何知道Liteon Wi-Fi卡适用于华硕笔记本电脑?

最后。 Elitegroup Computer Systems制造的设备的MAC地址与我命名为LibreELEC.local的设备的arp列表中的MAC地址相匹配。

这是英特尔NUC ,运行LibreELEC媒体播放器 所以这个NUC有一个来自Elitegroup计算机系统公司的主板。

我们在那里,所有的奥秘都解决了。

全部计入

我们已经确认此网络上没有无法解释的设备。 您可以使用此处描述的技术来调查您的网络。 您可以出于兴趣而这样做 - 以满足您的内心极客 - 或者让您自己确信与您的网络相关的所有内容都有权在那里。

请记住,连接的设备有各种形状和大小。 我花了一些时间绕圈子试图追踪一个奇怪的设备,然后才意识到它实际上是我手腕上的智能手表。

赞 (1)
分享到:更多 ()