我正在尝试使用nmap查找网络中的实时主机。我正在使用命令sudo nmap -sP 192.168.2.1/24在Ubuntu中扫描网络。但是,我找不到实时主机。我只是实时获得自己PC的网络地址。当我通过浏览器看到DHCP客户端列表(可以使用网络IP通过浏览器访问路由器)时,网络上大约有10个活动主机。谁能告诉我发生这种情况的原因,以及如何在网络上找到实时主机?

评论

我通常会执行nmap -sn 192.168.2.0/24,sn =禁用端口扫描。

@HamZaDzCyber​​DeV是的,-sn是新的标准参数,但是它以前是-sP,因此@TheRookierLearner的命令应该仍然有效。

-sn与-sP相同,如下所述:github.com/nmap/nmap/blob/master/docs/nmap.1#L402

nmap -PR 10.0.1.0/24 -sn将执行网络的ARP扫描。 NMAP的网站上有有关nmap主机发现的详细信息。我强烈建议您将此作为参考。

@NadeemDouba nmap将自动检测它何时在局域网中,并为其探测选择ARP扫描。即使用户指定了不同的探针类型(例如-PE或-PS),情况也是如此。换句话说,如果OP实际上在LAN上,则-PR是不必要的。

#1 楼

这是使用nmap执行主机发现的最简单方法。

nmap -sP 192.168.2.1/24


为什么总是不能正常工作? nmap尝试对给定的IP地址范围执行ping操作,以检查主机是否还活着。如果ping失败,它将尝试将syn数据包发送到端口80(SYN扫描)。这不是百分百可靠的,因为现代的基于主机的防火墙会阻止ping和端口80。Windows防火墙默认会阻止ping。您网络上的主机正在阻止ping,端口80不接受连接。因此,nmap假定主机未启动。

那么是否有解决此问题的方法?

是。您拥有的选项之一是使用-P0标志,该标志跳过主机发现过程,并尝试对所有IP地址执行端口扫描(在这种情况下,甚至将扫描空的IP地址)。显然,即使您位于小型(20-50台主机)网络中,这也将花费大量时间来完成扫描。但它会为您提供结果。

更好的选择是指定要扫描的自定义端口。 Nmap允许您使用SYN / UDP数据包探测特定端口。通常建议探测常用端口,例如TCP-22(ssh)或TCP-3389(Windows远程桌面)或UDP-161(SNMP)。

sudo nmap -sP -PS22,3389 192.168.2.1/24 #custom TCP SYN scan
sudo nmap -sP -PU161 192.168.2.1/24 #custom UDP scan

即使指定了要扫描的自定义端口,您也可能无法获得活动主机。在很大程度上取决于主机的配置方式以及所使用的服务。因此,您只需继续使用不同的组合进行探测。请记住,请勿在未经适当授权的情况下在网络上执行扫描。

更新:扫描网络时,您永远无法确定特定的命令会给您所有想要的结果。该方法应该从基本的ping扫描开始,如果它不起作用,请尝试猜测主机上可能正在运行的应用程序,并探查相应的端口。使用Wireshark的想法也很有趣。您可能想尝试发送ACK数据包。

更新两个:标志-sP和-P0现在分别称为-sn和-Pn。但是,仍然发现较旧的标志在较新的版本中仍然有效。

评论


尽管我认为这是由于防火墙阻止了ping扫描,但上述命令并没有帮助。甚至-P0标志也不起作用。

–TheRookierLearner
13年5月19日在21:59

我真的不知道发生了什么,但是命令nmap -sP -PS 192.168.2.1/24可以工作(上面的命令也可以工作;因此可以接受答案),在Windows下也是如此。我不知道Ubuntu有什么问题。可能是我需要检查iptables。

–TheRookierLearner
13年5月20日下午4:08

值得注意的一件事是,当您与要扫描的主机位于同一广播域中时,nmap使用ARP而不是ICMP / SYN扫描

–罗里·麦库恩(Rory McCune)
13年5月20日在11:43

-P0不会“尝试扫描系统的所有端口以检查系统是否启动”。相反,它将跳过主机发现,将一切报告为up,并在每个IP上执行您请求的任何端口扫描。同样,如@RoryMcCune所述,Nmap应该发送针对此类扫描的ARP请求。使用nmap --iflist检查Nmap对路由表的看法;可能会感到困惑,并且没有发送正确的探针。如果无法从IP收到ARP答复,则也不能发送TCP或UDP数据包。

–bonsaiviking
13年5月20日在14:32

我猜@ Mayank-Sharma的意思不是-P0,而是-PO,它发送IGMP,ICMP和IP-in-IP数据包,而不扫描所有端口。但是,我不确定。

–TheRookierLearner
13年5月20日在18:26

#2 楼

最简单的检查方法是使用nmap执行ping扫描后验证ARP表:

那些过滤ICMP的。

评论


该命令的结果将根据当前现有的ARP条目而有所不同。

–绝对ƵERØ
13年5月19日在21:33

在检查arp表之前,是否使用nmap进行ping扫描?如果没有,主机可能会丢失。当您执行ping扫描时,网络中的每个节点都至少应回答ARP请求。

– Teun Vink
13年5月19日在21:48

像Tivo这样的设备无法响应ping。如果iPad,iPhone和iPod等设备的屏幕被锁定,它们可能无法响应ping扫描。另外,运行除TCP / IP之外的内容的设备将不会响应ping扫描。 Wireshark仍将显示流量(如IPX)。此外,还将显示不同的子网。

–绝对ƵERØ
13年5月19日在22:27



Nmap已经使用此方法来“ ping”广播本地网段的扫描。以root特权运行,并使用-v进行详细输出,您将看到“正在启动ARP Ping扫描”。 nmap.org/book/man-host-discovery.html

–bonsaiviking
13年5月20日在14:35

如果您的设备无法响应arp请求,那么您就很不走运。检测不响应arp请求的设备的唯一方法是侦听网关上的流量。

–sk0yern
13年5月20日在15:21

#3 楼

Wireshark也很酷。

您可能想看看Wireshark。它记录本地网络上的所有流量。它将告诉您正在广播的节点。您还可以查看正在传输的内容。它可以在Ubuntu软件中心中获得。

此外,这里还有一个有关通过命令行在Ubuntu上安装Wireshark的链接。

关于DHCP路由表中显示的流量,请记住许多虚拟机将在列表中显示为单独的计算机。通常在默认的24小时租赁时间内(对于大多数WiFi路由器),通常在默认的24小时租赁时间内连接到网络的所有内容仍会显示在列表中。您可能要检查路由器中租约的期限。它可能会告诉您是否有人隔夜在您的网络上。在某些具有双NIC或NIC和无线网卡的设备上,如果同时启用了两个接口,它们将显示两次。 />

管理型交换机
某些打印机
服务器远程管理卡
手机
Tivo和其他DVR
Apple TV
某些电视
DVD播放器
网络A / V接收器
Playstations,XBox等
便携式游戏设备
iPad和其他平板电脑
iPod和音乐播放器
PDAs
Magic Jack Plus等IP电话

大约6年前,在办公室中,由于所有多余的流量,我在3mb的小连接中工作的时间降到了128k。业主想知道是否有可能看到正在发生的事情。这位兼职的IT老手耸了耸肩,因为并不是所有的流量都通过他们的Windows 2000 Server。他检查了服务器中的路由表和流量日志,却一无所获。他们没有足够奇怪地使用路由器,因此网络上的任何东西都可以从调制解调器获得地址。他在服务器中查看的路由表仅用于几年前已存在的静态映射。我注意到它们不在同一子网中。然后,我向他们显示DHCP未在服务器中打开。我的一位同事在不知不觉中在他的机器上托管了一个日本色情网站。攻击者在他安装了后门以及高端视频编辑软件的破解版后,才将他的机器扎根。我们还发现它们在不同时间在不同部门的各种机器上运行TordemonoidbitTorrent。 Wireshark找到了一切。第二天,互联网达到了全速。我们还安装了路由器。

如果您不喜欢Wireshark,也可以尝试tcpdump

评论


尽管我当然同意Wireshark是一个了不起的工具,但要解决这种情况,它并不是最佳选择,尤其是在流量很大的情况下,很难找到所有唯一的主机。

– Teun Vink
13年5月19日在21:14

@TeunVink有关查找唯一主机的注释。 ask.wireshark.org/questions/4827/…

–绝对ƵERØ
13年5月19日在21:37



@AbsoluteƵERØ-确实是非常有价值的输入。我实际上使用Wireshark来检查nmap尝试发送的数据包是否到达网络或被Windows防火墙阻止。事实证明,它们没有在Windows上被阻止。我必须尝试在Ubuntu上。

–TheRookierLearner
13年5月20日在18:30

→Teun:乍一看,wireshark似乎是一个沉重的工具。但总而言之,要通过nmap进行完整的网络审核还需要大量运行:使用不同的端口,一天中的不同时间,使用不同的协议…

– dan
2014年8月28日15:34



我可以为研究目的而链接到该日本性爱网站吗?

–user195198
4月19日14:12

#4 楼

该bash脚本将输出网络上所有活动主机的IP地址。

#!/bin/bash

nmap  -n -sP | grep report | awk '{print }'


示例用法

rwilson@rwilson-Aspire-E5-521:~/Scripts/Utils$ 
Mon Jul 27 06:41 AM> ./livehosts.sh 192.168.1.1/24
192.168.1.1
192.168.1.11
192.168.1.12
192.168.1.13
192.168.1.14
192.168.1.15
192.168.1.118
192.168.1.122
192.168.1.123
192.168.1.126
192.168.1.129
192.168.1.133
192.168.1.134
192.168.1.156
192.168.1.159
192.168.1.168
192.168.1.170


评论


这与OP所做的有何不同?看来您要做的只是添加grep和awk来简化输出。

– schroeder♦
15年7月27日在15:53

#5 楼

拥有管理员权限(即root)后,可以将netdiscover(8)-r标志一起使用以指定不同的类和掩码。默认情况下,它使用网络类C / 24。

例如:

$ sudo netdiscover -r 172.16.17.0/24


输出将是这样的:

 Currently scanning: Finished!   |   Screen View: Unique Hosts                                                                                     

 3 Captured ARP Req/Rep packets, from 3 hosts.   Total size: 180                                                                                   
 _____________________________________________________________________________
   IP            At MAC Address     Count     Len  MAC Vendor / Hostname      
 -----------------------------------------------------------------------------
 172.16.17.1    00:50:56:c0:00:08      1      60  VMware, Inc.                                                                                    
 172.16.17.2    00:50:56:f9:b9:b6      1      60  VMware, Inc.                                                                                    
 172.16.17.254  00:50:56:fc:e4:76      1      60  VMware, Inc.                                                                                    


#6 楼

有时arp -a -n不会获取IP地址。
执行nmap -sP 192.168.1.1/24将检索实时主机,然后,如果再次尝试arp,它将显示实时主机。那就是它在Linux Mint中对我有用的方式。但是您可以随时依靠nmap

#7 楼

在网络上查找主机的示例:
arp-scan 192.168.12.0/24   # if vlan tagged interface use -Q vlanid

etherape(GUI)显示网络活动图。

上面提到的其他一些工具也是。

评论


根据我在局域网中的测试,arp-scan的速度比netdiscover和nmap -sn的主机发现速度更快

– Sabrina
6月6日9:02



#8 楼

如果您还需要主机指纹识别,并且不介意使用免费但封闭的源代码工具,则fing是另一种选择:还尝试从MAC地址中检测设备制造商。 ),该工具可能在后台进行。我已经使用他们的移动应用程序在我的LAN上查找IP,并发现它很有用。