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

你认为你知道什么连接到你的家庭网络吗?你可能会大吃一惊。了解如何在Linux上使用nmap进行检查,这将允许您浏览连接到网络的所有设备。

您可能认为您的家庭网络非常简单,深入研究它不会学到任何东西。你可能是对的,但你很有可能会学到一些你不知道的东西。随着物联网设备、手机和平板电脑等移动设备的激增,以及智能家居革命--除了宽带路由器、笔记本电脑和台式电脑等“普通”网络设备--这可能会让人大开眼界。

如果需要,请安装nmap

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

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

sudo apt-get install nmap

以下是如何在Fedora上安装它。

sudo dnf install nmap

这就是如何在Manjaro上安装它。

sudo pacman -Syu nmap

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

查找您的IP地址

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

Linux很方便地提供了一个名为ip的命令,它有一个名为addr(地址)的选项。键入ip、空格、addr、1,然后按Enter键。

ip addr

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

这台计算机的IP地址是“192.168.4.25”。“/24”表示子网掩码中有三组连续的8个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地址。“/24”告诉nmap扫描此网络的整个范围。参数“192.168.4.0/24”翻译为“从IP地址192.168.4.0开始,一直工作到192.168.4.255(包括192.168.4.255)的所有IP地址”。

请注意,我们使用的是sudo。

sudo nmap -sn 192.168.4.0/24

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

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

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

这是名单的最后一位。

我们已经建立了连接的网络设备的列表,因此我们知道它们的数量。有15台设备已打开并连接到网络。我们知道其中一些的制造商。或者,正如我们将看到的,我们有nmap所报告的制造商,尽其所能。

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

我很清楚这些设备中的一些是什么。覆盆子派基金会是不言而喻的。亚马逊技术公司的设备将成为我的回声点(Echo Dot)。我唯一的三星设备是一台激光打印机,这样就缩小了范围。列出的设备中有几个是戴尔制造的。这些都很简单,那是一台个人电脑和笔记本电脑。Avaya设备是IP语音电话,为我提供总部电话系统的分机。这可以让他们更容易在家里纠缠我,所以我很清楚那个设备。

但我还是有很多问题要问。

有几个设备的名字对我来说都没有任何意义。例如,Liteon Technology和Eliteggroup计算机系统。

我有(方式)不止一个覆盆子PI。有多少人连接到网络总是不同的,因为当他们被重新成像和重新调整用途时,他们不断地被调入和调出工作岗位。但肯定会有不止一个人出现。

有几个设备标记为未知。很明显,他们需要调查一下。

执行更深层次的扫描

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

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

我们将使用nmap扫描每台设备上的端口,并告知哪些端口处于打开状态。

NMAP 192.168.4.0/24

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

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

有很多的产出。让我们再做一次,并将其捕获到一个文件中。

nmap 192.168.4.0/24 > nmap-list.txt

现在,我们可以列出包含较少内容的文件,如果愿意,还可以对其进行搜索。

less nmap-list.txt

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

根据我们前面生成的列表,192.168.4.10是Raspberry PI。它将运行一个或另一个Linux发行版。那么端口445使用的是什么?它被描述为“Microsoft-DS”。微软,在运行Linux的PI上?我们一定会调查这件事的。

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

192.168.4.18也被鉴定为覆盆子PI。但是PI和设备192.168.4.21都有打开的8888端口,这被描述为“Sun-Answerbook”使用的端口。Sun AnswerBook是一个退役多年的(初级)文献检索系统。不用说,我没有把它安装在任何地方。这需要看一看。

设备192.168.4.22早些时候被识别为三星打印机,在这里通过标有“打印机”的标签进行验证。吸引我眼球的是HTTP端口80存在并打开。此端口是为网站流量保留的。我的打印机是否包含网站?

据报道,设备192.168.4.31是由一家名为Elitegroup Computer Systems的公司制造的。我从来没有听说过它们,而且这款设备有很多开放的端口,所以我们会调查这一点。

设备打开的端口越多,网络罪犯进入它的机会就越大-如果它直接暴露在互联网上的话。它就像一座房子。你的门窗越多,窃贼的潜在入口点就越多。

我们已经把嫌疑犯排好队,让他们谈谈

设备192.168.4.10是一个Raspberry PI,端口445打开,描述为“Microsoft-DS”。在Internet上快速搜索一下就会发现,端口445通常与Samba相关联。Samba是微软服务器消息块协议(SMB)的免费软件实现。SMB是在网络中共享文件夹和文件的一种方式。

这是有意义的;我将该特定的PI用作一种小型网络附加存储设备(NAS)。它使用Samba,因此我可以从网络上的任何计算机连接到它。好的,这很简单。一人倒下了,还有几个人要走。

相关:如何将树莓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地址。

sudo nmap -A -T4 192.168.4.11

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

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

我们了解到的另一件事是,它运行的是Linux版本。在我的网络上,这并不令人惊讶,但是这个版本的Linux很奇怪。它似乎很旧了。几乎所有的物联网设备都使用Linux,因此这可能是一个线索。

再往下看,输出nmap为我们提供了设备的介质访问控制地址(MAC地址)地址。这是分配给网络接口的唯一引用。

MAC地址的前三个字节称为组织唯一标识符(OUI)。它可以用来识别网络接口的供应商或制造商。如果你碰巧是一个极客,他已经建立了一个包含35,909个供应商或制造商的数据库,也就是说,你可以用它来识别网络接口的供应商或制造商,也就是说,如果你碰巧是一个极客,他已经建立了一个包含35,909个供应商或制造商的数据库。

我的公用事业公司说它属于谷歌。随着早先关于Linux奇特版本的问题,以及它可能是物联网设备的怀疑,这公平而直截了当地将矛头指向了我的谷歌家庭迷你智能扬声器。

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

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

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

太阳回答书?

下一个谜团是对IP地址为192.168.4.18的树莓PI的“SUN-Answerbook”描述。同样的“SUN-Answerbook”描述也出现在192.168.4.21的设备上。设备192.168.4.21是一台Linux台式计算机。

nmap从已知软件关联列表中对端口的使用进行最佳猜测。当然,如果这些端口关联中的任何一个不再适用-也许该软件不再使用,并且已经报废-你的扫描结果中可能会出现误导性的端口描述。在这里,Sun AnswerBook系统很可能就是这种情况,可以追溯到20世纪90年代初,对于那些甚至听说过它的人来说,它只是一个遥远的记忆。

那么,如果不是一些古老的Sun Microsystems软件,那么树莓PI和台式机这两个设备有什么共同之处呢?

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

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

一个网站确实开通了。

它是运行弹性同步的所有设备的管理门户。

我总是使用命令行,所以我完全忘记了这个工具。因此,Sun AnswerBook条目列表完全是在转移注意力,端口8888后面的服务已经被识别。

一种隐藏的Web服务器

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

你瞧,我的打印机里确实有一个嵌入式Web服务器。

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

另一台未知设备

到目前为止,位于192.168.4.24的设备没有向我们尝试过的任何nmap扫描显示任何内容。

我添加了-pn(无ping)选项。这会导致nmap假定目标设备已启动,并继续进行其他扫描。这对于未按预期做出反应并使nmap误以为它们处于脱机状态的设备很有用。

sudo nmap -A -T4 -Pn 192.168.4.24

这确实检索到了转储信息,但没有任何标识该设备的信息。

据报道,它运行的是Mandriva Linux的Linux内核。Mandriva Linux是一个发行版,早在2011年就停产了。它继续生活在一个新的社区的支持下,名为OpenMandriva。

可能是另一个物联网设备?可能没有-我只有两个,而且他们都被计算在内了。

一间接一间的走访和物理设备的清点对我一无所获。让我们查找MAC地址。

所以,原来是我的手机。

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

Eliteggroup计算机系统

我最后两个问题是关于两台设备,它们的制造商名称我都认不出来,分别是Liteon和Elitegroup computer Systems。

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

如果您的计算机上没有安装ARP,您可以这样安装。

在Ubuntu上,使用apt-get:

sudo apt-get install net-tools

在Fedora上使用DNF:

sudo dnf install net-tools

关于Manjaro使用吃豆人:

sudo pacman -Syu net-tools

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

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

第一列中的名称是已分配给设备的计算机名(也称为主机名或网络名)。其中一些是我设置的(例如,Nostromo、Cloudbase和Mareville),还有一些是由制造商设置的(比如Vigor.outer)。

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

此外,由于您可以将机器名与ping一起使用,并且ping会显示底层IP地址,因此您可以通过依次对每个名称使用ping来交叉引用机器名与IP地址。

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

ping nostromo.local

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

输出显示其IP地址为192.168.4.15。这恰好是第一次nmap扫描中显示的设备,制造商是Liteon。

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

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

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

我们到了,所有的谜团都解开了。

全部都记下来了

我们已验证此网络上没有令人费解的设备。您也可以使用此处介绍的技术来调查您的网络。你这样做可能是出于兴趣--满足你内心的极客--或者让你自己确信,所有与你的网络相连的东西都有权留在那里。

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

相关文章