学习笔记:《Kali Linux 2 网络渗透测试 实践指南 第2版》之主动扫描(Nmap)

本章重点内容:

1、Nmap的基本用法

2、使用Nmap进行设备发现

3、使用Nmap进行端口扫描

4、使用Nmap扫描目标系统

5、使用Nmap扫描目标服务

 

接下来针对本章内容展开详细说明

 

1、Nmap的基本用法

在kali中直接打开shell命令行,输入nmap+ip地址,可以直接扫描单台设备,如下

 

 通过扫描的结果数据,我们来细看结果的内容:

第一行:starting Nmap一行,给出了Nmap版本7.91,以及扫描开始的时间2021-07-05 09:42

第二行:Nmap scan report 是一个标题,表明生成的是关于ip地址为****的设备报告

第三行:Host is up 表示设备的状态是up(开机并联网的状态)

第四行:Not shown 表示在进行检查的1000个端口中,有994个端口是关闭的

从第五行开始,是一个表,表中有三个字段,分别是Port、State、Service

Port指的是端口,state指的是状态,service值得是提供的服务

以第一个【135/tcp】为例,state的值是open,service的值是msrpc,表示发现目标设备上的135号端口目前处于开发状态,这个端口提供msrpc服务

最后一行:表示共对1台设备进行扫描,发现1台状态为up的设备,耗时9.71秒

对于以上数据的说明自己可以尝试扫描不同的ip,如下,如果扫描自己ip会发现什么?

 

 针对以上扫描结果可以自行解读试试看

2、使用Nmap进行设备发现

2.1 使用ARP进行设备发现

可以通过参数【-sn】来扫描发现主机,如下:

 

 从扫描结果可以看到,【-sn】参数表示不进行端口扫描,只进行主机发现扫描

2.2 使用ICMP进行设备发现

可以通过参数【-PE/PP/PM】分别进行使用ICMP响应(echo)、时间戳或子网掩码请求来发现探测,此处用【-PE】参数为例,如下:

 

 从结果看,其实扫描的时候是无法发现的,主要是因为这种方式因为有防火墙的原因,被很多的网络所禁止了

根据结果中的提示,可以尝试【-Pn】的扫描,如下:

 

 参数【-Pn】的意思是将所有主机都默认为在线,跳过主机发现,为什么要跳过主机发现呢?

Nmap在进行扫描之前,都会对目标设备进行ping扫描,如果目标设备对ping扫描没有反应,就会直接结束整个扫描过程。

如果目标设备在线,只是采用某种手段屏蔽了ping扫描,那么也会因此躲过其他扫描操作,

所以该参数的意义就是,不利目标设备是否响应ping扫描,都要将整个扫描过程完成

2.3 通过TCP进行设备发现

参数【-PS】表示TCP SYN扫描,使用如下:

 

 从扫描结果看,无法发现主机,被屏蔽

参数【-PA】表示TCP ACK扫描,使用如下:

 

 从上面的扫描结果看,也没有成功,这种类型的扫描很少能成功,因为目标设备商的安全机制或者安全设备将这种数据包直接过滤了。

2.4 使用UDP进行设备发现

对应使用的参数是【-PU】,具体使用如下:

 

 直接使用,系统会提示需要root权限,切换到root权限再使用,如下:

 

 在nmap前面增加【sudo】表示通过root权限运行,第一行会提示要求输入密码,输入密码,回车即可,此处不会显示输入的密码

从扫描的结果看,也没有成功,说明目标设备对其数据包进行了屏蔽或者过滤

3、使用Nmap进行端口扫描

前面我们使用的是直接扫描ip地址,其实Nmap也可以针对端口进行扫描

不同的端口扫描技术

SYN扫描:参数【-sS】,具体使用如下:特别提醒,要通过root权限的方式运行

 

 Connect扫描:参数【-sT】,具体使用如下:

 

 UDP扫描:参数【-sU】,具体使用如下:

 

 4、使用Nmap扫描目标系统

对目标系统的扫描可以通过参数【-O】来实现,如下:

 

 从结果看,扫描结果会对目标系统进行猜测,在这里占比最高的是97%,是windows系统

在这个参数基础上,还有一个更深入的参数【--osscan-guess】表示,猜测认为最接近目标设备的操作系统类型,具体使用如下:

 

 可以对比一下两个扫描的结果,看下有什么不同,端口的扫描结果有差异

5、使用Nmap扫描目标服务

使用参数【-sV】可以打开和控制版本探测,具体使用如下:

 

 从扫描结果看,在服务右侧多了一列,是版本的数据,对应前面不同服务和端口

 

posted @ 2021-07-05 23:21  诡刺-ThornSoul  阅读(527)  评论(0编辑  收藏  举报