课程编写

类别

内容

实验课题名称

Nmap工具使用

实验目的与要求

利用Nmap工具进行端口扫描

实验环境

VPC1(虚拟PC

操作系统类型:linux,网络接口:eth0

VPC1 连接要求

PC 网络接口,本地连接与实验网络直连

软件描述

1、学生机要求安装java环境 2vpc安装linux

实验环境描述

1、学生机与实验室网络直连; 2VPC1与实验室网络直连; 3、学生机与VPC1物理链路连通;

预备知识

Nmap是一个综合的、功能全面的端口扫描工具,并被专业人员广泛使用。该工具由fyodor编写并维护。由于其具备稳定性和灵活性,是渗透测试人员必备的工具。

 

除了端口扫描外nmap还具备以下功能:

 

主机发现:nmap可以用来查找目标网络中在线主机。默认情况下,nmap通过icmp回应请求、向443端口发送TCP SYN包、向80端口发送TCP ACK包和icmp时间戳请求方式发现目标主机

 

服务/版本识别:nmap发现端口后,可以进一步检查服务协议、应用程序名称、版本号、主机名、设备类型和操作系统信息。

 

操作系统识别:nmap向远程主机发送系列数据包,并检查回应。然后与操作系统指纹数据库进行比较,并打印出匹配结果的细节。

 

网络路由跟踪:他通过尽可能到达目标系统的方式确定目标系统的端口和协议。Nmap路由跟踪从较高的生存时间开始,并逐步递减直到ttl达到0

 

Nmap脚本引擎:使用此功能,nmap也可以用于检查网络服务中漏洞、枚举目标系统资源等

实验内容

使用Nmap具进行端口扫描

实验步骤

学生登录实验场景的操作

1、学生单击实验拓扑按钮,进入实验场景,进入bt5目标主机,(第一次启动目标主机,还需要安装java控件),如图所示:

2、打开目标主机bt5,进入如下命令行模式,然后输入startx进入图形界面。

新手我们建议进入图形界面进行相应的操作。如图所示:

 

3、打开图形界面后,我们点击菜单栏上的terminal。打开命令终端。如图:

 

4、通过apt-get install nmap命令经常更新nmap是一个很好的习惯。如图:

 

5、要启用nmap,可在菜单中选择application——“backtrack”——“information gather”——“network analysis”——“network scanners”——“nmap”。如图:

 

6、可以直接使用命令nmap,该命令显示所有选项及其说明,对于nmap使用新手来说,可能很难找到有用的选项,但实际上仅需指定目标主机即可完成扫描。如图:

这里扫描的ip可是为同一网段的任意ip(前提是他们之间是连通的)

 

7、现在开始我们扫描192.168.1.0/24网段的地址,为监控nmap发送的数据包,我们需要一个抓包工具,例如tcpdump。打开linux目标主机,输入用户名:root,密码:123456.如图:

 

8、输入命令tcpdump –nnX tcp and host 192.168.1.119

Ip地址192.168.1.119是运行nmap机器的地址,请根据实际情况调整配置。如图:

 

9、返回bt5主机,打开一个新的控制台,并执行nmap 192.168.1.0/24命令。

(由下图可知nmap默认从256ip地址中扫描1000个端口。)如图:

 

10、返回linux,你将看到包捕获结果。如图:

这是我机器上发送的数据包,请注意使用的同步(syn)标志,这是nmap在特权用户(如UNIX系统的root用户)下默认使用的标志。

以下为从远程机器上收到的回应包:

 

11、下面我们来介绍Nmap TCP选项。Nmap的大多选项只有特权用户才能使用(如:linux下的rootwindows下的administrator),这主要为接收和发送原始数据包,默认情况下nmap使用tcp syn扫描,但若不是运行与特权用户下将会采用tcp连接扫描。

使用-sT来实现tcp连接扫描。该选项将于目标端口进行三次握手,尝试建立连接,如果建立连接成功,则说明端口开放,由于对每个端口都进行三次握手,所以扫描方式比较慢。此次扫描时间是53.35s。如图:

 

12SYN扫描(-sS:该选项也称为“半开连接”或者“SYN stealth”。采用该选项,nmap发送syn包后等待回应,如果接收SYS/ACK包说明端口开放,如果收到RST包,说明端口关闭;如果没有回应或者回应icmp不可达错误消息,则说明端口被过滤。时间为4.96秒,比连接扫描的时间短很多。如图:

 

13、我们可以使用nmap --help命令查看nmap的帮助文档,查看nmap后面可以使用哪些参数。如图:

 

14Nmap UDP扫描选项。

相对于tcp多种类型的扫描方式,udp扫描仅有一种扫描方式(-sU),虽然udp扫描没tcp扫描可靠,但渗透测试者不能因此而轻视该扫描方式。由于linux内核限制icmp端口不可达信息在1秒内响应一次,对65536个端口完成扫描耗时超过18小时,所以udp扫描问题在于如何提高扫描速度。(192.168.1.119为本机的ip地址)如图:

有以下几种方法可以帮助解决扫描慢的问题:

1、 并行运行扫描udp扫描 

2、 先扫描常用端口

3、 在防火墙后面扫描

4、 设置——host-timeout选项以跳过相应慢的主机

 

15Nmap端口指定:  

下面的使用NULL方式来扫描2225803360端口。如图:    

 

16Nmap的输出选项。

Nmap的输出结果可以保存到外部文件中,保存的格式可以是:

交互式输出:这是默认输出,是标准输出,一般是输出到控制台

正常输出(-oN filename):与交互式输出类似,但是不包括运行信息和警告信息

XML输出(-oX filename):改格式可以转化成html、能够被nmap用户图形接口解析并支持导入数据库,推荐使用改格式。

Grep输出(-oG filename):该方式已经过时

下面我们使用-oX输出:

 

17、使用ls命令查看文件hh.xml是否存在,然后使用cat hh.xml命令查看文件中的内容。如图:

 

 

18、由于html文件的可读性比xml更好,所以我们将xml格式转换成html格式。程序xsltproc可以完成这一转换。如图:

 

19、使用cat hh.html查看源代码。如图:

 

20、也可以使用浏览器打开hh.html文件。如图:

 

21、实验到此结束,关闭实验环境。