目录
4.1 Nmap的基本用法
4.2 使用Nmap进行设备发现
4.3使用Nmap进行端口扫描
4.4 使用Nmap扫描目标操作系统
4.5 使用Nmap扫描目标服务
4.6 将Nmap的扫描结果保存为XML文件
4.7 对Web服务进行扫描
关于Nmap:Nmap是世界上使用最多的端口扫描器,它可以用于识别活动主机、扫描TCP和UDP开放端口,检测防火墙,获取在远程主机上的运行版本,甚至使用脚本发现和利用漏洞。
1、保证所有主机(Kali2和靶机)都接到NAT,是在同一个网段,比如192.168.169.0/24
2、所有主机设置为自动获取IP参数,即DHCP模式。
3、靶机关闭防火墙,否则有些端口无法扫描。
4、假设VMware的NAT所在网段为192.168.169.0/24,各个主机/设备的IP地址如下:
功能 |
类型(系统) |
IP地址(自动获取) |
Kali2渗透主机 |
Kali Linux 2 |
192.168.136.128 |
靶机 |
win64位靶机 |
192.168.169.131 |
windows32位靶机 |
192.168.169.132 |
|
Metasploitable2-Linux |
192.168.169.133 |
|
WinXPenSP3 |
192.168.169.134 |
|
其他(VMware自带) |
VMware的VMnet8网卡 |
192.168.169.1 |
VMware的NAT网段网关 |
192.168.169.2 |
|
VMware的DHCP服务器 |
192.168.169.254 |
(如果NAT网段是其它192.168.xxx.0/24 ,各个主机IP是其它地址,做为类似)
以自己主机IP地址为标准
原理剖析
Nmap是一个端口扫描器;这代表着它将数据包发送到指定IP地址上的一些TCP或 UDP端口,并且检查是否有响应。如果有,则表示端口是开放的,即服务在该端口上运行。
在第一条命令中,对于-sn参数,我们指示Nmap只检查该服务器是否响应ICMP请求(或者是ping)。我们的服务器给出了响应,所以该主机是在存活状态的。
第二个命令是调用Nmap最简单的方法,它只指定目标IP地址。它所做的是ping服务器,如果它做出响应,那么Nmap将向1000个TCP端口的列表发送探测器,以查看哪个端口响应以及如何响应,然后它报告结果,显示哪些端口是打开的。
第三条命令在第二条命令的基础上添加了以下两个参数:
-sV:请求找到每个开放端口banner-header或自我标识,也就是每个端口运行服务的版本。 -O:告诉Nmap尝试使用从开放端口和版本信息的信息来猜测目标上运行的操作系统。
1、对单台设备进行扫描,结果截图并作必要的说明。
nmap -sn 192.168.136.131
2、对IP地址不连续的多台设备进行扫描,结果截图并作必要的说明。
3、对IP地址在连续范围内的多台设备进行扫描,结果截图并作必要的说明。
nmap -sn 192.168.136.1-10
nmap -sn 192.168.136.0/24
1、使用ARP进行设备发现,结果截图并作必要的说明。
2、使用ICMP进行设备发现,结果截图并作必要的说明。
nmap -PE 192.168.136.1
3、使用TCP进行设备发现,结果截图并作必要的说明。
(1)TCP SYN扫描,结果截图并作必要的说明。
nmap -sn -PS 10000 192.168.136.131
(2)TCP ACK扫描,结果截图并作必要的说明。
nmap -sn -PA 192.168.136.131
4、使用UDP进行设备发现,结果截图并作必要的说明。
nmap -sU 192.168.136.131
1、SYN扫描,结果截图并作必要的说明。
nmap -sS 192.168.136.131
2、Connect扫描,结果截图并作必要的说明。
nmap -sT 192.168.136.131
3、UDP扫描,结果截图并作必要的说明。
nmap -sU 192.168.136.131
4、端口扫描范围的确定:
(1)扫描全部端口,结果截图并作必要的说明。
(2)扫描使用频率最高的n个端口,结果截图并作必要的说明。
nmap --top-ports 2 192.168.136.131
(3)扫描指定端口,结果截图并作必要的说明。
nmap -P 80 192.168.136.131
结果截图并作必要的说明。
结果截图并作必要的说明。
nmap -sV 192.168.136.131
结果截图并作必要的说明。
nmap -oX report.xml 192.168.136.131
1、使用dirb扫描工具,结果截图并作必要的说明。
dirb http://192.168.136.131/dvwa
2、使用whatweb工具,结果截图并作必要的说明。
whatweb report for http://192.168.136.131/dvwa/login.php
拓展
使用Nmap时的其他有用参数如下所示:
-sT:默认情况下,当它作为root用户运行时,Nmap使用一种称为SYN扫描的扫描类型。使用这个参数,我们强制扫描器执行完全连接扫描,它速度较慢,并且会在服务器日志中留下一条记录,但不太可能被入侵检测系统检测到或被防火墙阻止。
-Pn:如果我们已经知道主机时存活的但是没有响应ping,我们可以使用这个参数告诉Nmap跳过ping测试并扫描所有指定的目标(假设它们已经启动)
-v:这是冗长模式。Nmap 将展示更多关于它正在扫描中的信息。这个参数可以在同一个命令中多次使用,使用的越多,得到的反馈就越多(-vv或-v -v. -v -v )
-p.N1,N2,…N3:如果要测试特定端口或一些非标准端口,我们可能需要使用这个参数,其中N1到Nn时我们希望Nmap扫描的端口号。例如,要扫描21、80到90和137,参数奖是-p 21,80-90,137。另外,使用-p- Nmap将扫描О到65之间的所有端口和536端口
--script=script_name:Nmap包含许多有用的脚本,用于漏洞检查,扫描或者识别,登录测试,命令执行,用户枚举等等。使用此参数告诉Nmap在目标的开放端口上运行脚本。可能想了解以下 Nmap使用的一些脚本: https://nmap.org/nsedoc/scripts/.
经过本次实验,我学会了如何使用nmap进行扫描发现漏洞,在做实验的过程中要注意不要打错字母,仔细观察,认真对待。