推荐一款功能强大的局域网扫描工具?

所谓局域网设备扫描软件就是能将这个局域网的所有设备的名称、ip地址和mac地址都扫描出来,包括pc、平板和手机等等。

Nmap是一款网络扫描和主机检测的非常有用的工具。Nmap是不局限于仅仅收集信息和枚举,同时可以用来作为一个漏洞探测器或安全扫描器。它可以适用于winodws,linux,mac等操作系统

Nmap是一款非常强大的实用工具,可用于:检测活在网络上的主机(主机发现)检测主机上开放的端口(端口发现或枚举)检测到相应的端口(服务发现)的软件和版本检测操作系统,硬件地址,以及软件版本检测脆弱性的漏洞(Nmap的脚本)Nmap是一个非常普遍的工具,它有命令行界面和图形用户界面。

Nmap包含四项基本功能:

主机发现(Host Discovery)

端口扫描(Port Scanning)

版本侦测(Version Detection)

操作系统侦测(Operating System Detection)

1. NMap

(1)NMap 介绍:

NMap(Network Mapper)是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端。确定哪些服务运行在哪些连接端,并且推断计算机运行哪个操作系统。它是网络管理员必用的软件之一,以及用以评估网络系统安全。

其基本功能有三个:

1. 是扫描主机端口,嗅探所提供的网络服务;

2. 是探测一组主机是否在线;

3. 还可以推断主机所用的操作系统,到达主机经过的路由,系统已开放端口的软件版本;

(2)NMap端口状态:

当nmap向目标主机发送报文并根据返回报文从而认定端口的6种状态。(注意:这六种状态只是namp认为的端口状态,例如:有些主机或者防火墙会返回一些不可靠的报文从而妨碍nmap对端口开放问题的确认)。

Open(开放的):端口处于开放状态,意味着目标机器上的应用程序正在该端口监听连接/报文;

Closed(关闭的):端口处于关闭状态。这里我们值得注意的是关闭的端口也是可访问的,只是该端口没有应用程序在它上面监听,但是他们随时可能开放;

Filtered(过滤的):由于包过滤阻止探测报文到达端口, Nmap 无法确定该端口是否开放。过滤可能来自专业的防火墙设备,路由器规则或者主机上的软件防火墙;

Unfiltered(未被过滤的):意味着端口可访问,但 Nmap 不能确定它是开放还是关闭。

这种状态和filtered的区别在于:unfiltered的端口能被nmap访问,但是nmap根据返回的报文无法确定端口的开放状态,而filtered的端口直接就没能够被nmap访问。端口被定义为Unfilterd只会发生在TCP ack扫描类型时当返回RST的报文。而端口被定义为filtered 状态的原因是是报文被防火墙设备,路由器规则,或者防火墙软件拦截,无法送达到端口,这通常表现为发送NMAP的主机收到ICMP报错报文,或者主机通过多次重复发送没有收到任何回应)。

Open|filtered状态:这种状态主要是nmap无法区别端口处于open状态还是filtered状态。这种状态只会出现在open端口对报文不做回应的扫描类型中,如:udp,ip protocol ,TCP null,fin,和xmas扫描类型。

Closed|filtered状态:这种状态主要出现在nmap无法区分端口处于closed还是filtered时。

2. 主机发现

主机发现就是显示某个 IP 地址是否是活动的(正在被某主机或者网络设备使用)。 在许多网络上,在给定的时间,往往只有小部分的 IP地址是活动的。判断主机活跃一般有三种方式,三种方式有一种得到回应则可以证明主机活跃;

nmap发送一个ICMP回声请求目标主机;

TCP ACK 报文连接80端口和443端口;

基于ICMP报文的时间戳请求目标主机;

(1)nmap ip

1.1> 先主机发现,如果主机不存在则不会回应;(1.2.3.4为不活跃的主机)

1.2> 如果主机活跃则扫描1000个常用的TCP端口;(183.232.231.173为活跃的主机)

1.3> 针对活跃的主机,我们打开Wireshark进行抓包查看;首先是检测目的主机是否活跃,然后扫描1000个常用的端口;

(2)Nmap -sP ip(ping扫描)

该选项告诉Nmap仅仅进行ping扫描 (主机发现),没有进一步的测试 (如端口扫描或者操作系统探测)。

2.1> 先进行内网IP的扫描(arp扫描)可以看到目的主机的MAC地址;

2.2> 抓包结果如下所示:

2.3> 然后进行外网ip的扫描;

2.4> 使用Wireshark抓包可以查看相关信息:可以看到抓取的数据包只有关于主机发现的数据,得到目标主机存活之后也没有进行下一步测试(端口扫描或者操作系统探测)。

(3)Namp -P0 ip(无ping)

3.1> 使用-P0禁止主机发现,使 Nmap对每一个指定的目标IP地址进行高强度的扫描。

3.2> 通过Wireshark抓包查看:-P0选项禁止主机发现,而是直接对主机进行高强度的扫描;

(4)Nmap -PS ip (TCP SYN 扫描)

1. 主机发现只连接目标主机TCP的80 端口,不使用ICMP,连接时发送SYN标志位的空TCP报文;

SYN 标志位告诉对方您正试图建立一个连接。通常目标端口是关闭的,一个 RST (复位) 包会发回来;

2. 如果碰巧端口是开放的,目标会进行 TCP 三步握手的第二步,回应 一个SYN/ACK TCP 报文。

3. 然后运行 Nmap 的机器则会扼杀这个正在建立的连接,发送一个 RST而非 ACK 报文,否则,一个完全的连接将会建立。 RST 报文是运行 Nmap 的机器而不是Nmap 本身响应的,因为它对收到 的 SYN/ACK 感到很意外。

4. Nmap 并不关心端口开放还是关闭。 无论 RST 还是 SYN/ACK 响应都告诉 Nmap 该主机正在运行。

4.1> 示例如下:nmap -PS 183.232.231.173;

4.2> 使用Wireshark抓包查看,不使用ICMP,连接时发送SYN标志位的空TCP报文;

4.3> nmap -PS ip 也可以指定端口

(5)nmap -PA ip(TCP ACK扫描)

1. TCP ACK 扫描和刚才讨论的TCP SYN扫描相当类似(-PA 选项使用和 SYN 探测相同的默认端口80)。 区别就是设置TCP的 ACK 标志位而不是 SYN 标志位。 提供SYN和ACK两种ping是使其通过防火墙的机会尽可能大。

2. ACK 报文表示确认一个建立连接的尝试,但该连接尚未完全建立。 所以远程主机应该总是回应一个 RST 报文, 因为它们并没有发出过连接请求到运行 Nmap 的机器,如果它们正在运行的话。

3. 由于没头没脑的 ACK 报文通常会被识别成伪造的而丢弃。解决这个两难的方法是通过即指定 -PS,又指定-PA 来即发送 SYN 又发送 ACK。

5.1> 示例如下:nmap -PS -PA 183.232.231.173

5.2> 抓包分析如下:可以看到同时应用了-PS和-PA参数就构造成了一个完整的数据包,不会轻易被防火墙拦截丢弃;

(6)nmap -PU ip (UDP 扫描)

1. UDP扫描会发送一个空的(除非指定了--data-length )UDP 报文到给定的端口。端口列表的格式和前面讨论过的-PS 和-PA 选项还是一样;

2. 如果目标机器的端口是关闭的,UDP 探测应该马上得到一个 ICMP 端口无法到达的回应报文。 这对于 Nmap 意味着该机器正在运行;

3. 如果到达一个开放的端口,大部分服务仅仅忽略这个空报文而不做任何回应;

4. 该扫描类型的主要优势是它可以穿越只过滤 TCP 的防火墙和过滤器

6.1> 示例如下:nmap -PU 121.194.14.84

6.2> 使用Wireshark转包查看,可以看到目标主机回应了无法达到的ICMP报文,证明目标主机存活;

3. 端口扫描

(1)nmap -sS ip (TCP SYN 扫描)

1. (半连接2/3)默认用—SP去发现主机

2. SYN扫描最默认最受欢迎的扫描选项,在一个没有入侵防火墙的快速网络上,每秒钟可以扫描数千个端口。 SYN 扫描相对来说不张扬,不易被注意到,因为它从来不完成 TCP 连接。

3. 它常常被称为半开放扫描,因为它不打开一个完全的 TCP 连接。它发送一个 SYN 报文,就像您真的要打开一个连接,然后等待响应。 SYN/ACK 表示端口在监听 (开放) ,而 RST (复位)表示没有监听者。

1.1> 示例如下: nmap -sS 183.232.231.173;

1.2> 使用Wireshark抓包查看,默认用—sP去发现主机;

(2)nmap -sT ip (TCP connect()扫描)

全连接3/3 默认用-sP去发现主机;

2.1> 示例如下:nmap -sT 183.232.231.173

2.2> 使用Wireshark抓包查看,默认使用-sP主机发现;

(0)

相关推荐