关于Nmap的教学实践的探讨

2019-03-07 05:22严学军
电脑知识与技术 2019年36期
关键词:脚本

摘要:Nmap是一个扫描工具,对于该工具的教学设计主要涉及使用Nmap扫描的功能,包括常规扫描、探测以及使用脚本方式进行扫描,根据功能来搭建合理的教学环境,让学生通过该环境通过实验达到良好的学习效果。关键词:Nmap;扫描;脚本;环境搭建;教学环节设计

中图分类号:TP391

文献标识码:A

文章编号:1009-3044(2019)36-0117-02

Nmap这个内容的教学,以前往往讲解的多,实验较少,主要是缺乏实验环境的配置,所以在以往的教学中,大家都遵循一般的方法,只讲解一般性理论和Nmap简单的应用命令,然后在局域网随便找几台机器进行扫描,这样的教学过程,学生没法了解和掌握Nmap这个强大的扫描工具的使用精髓,本文将就Nmap的一般和高级使用方法做详细分析并给出实现的环境,让学生在学完理论知识后,通过实验环境能够实现各种命令的使用。

1扫描技术理论教学环节的设计

Nmap首先是一种扫描技术,所以首先还是得介绍扫描原理。学习扫描技术首先需要了解端口的定义和分类,端口与服务的关系,服务的启动与否代表端口是否开放,让学生把端口和服务建立关联。其次,扫描技术还得分析TCP/IP协议,需要分析IP和TCP协议的各个字段的作用和含义,尤其是几个关键的TCP字段,例如TCP首部中的各个标志位的含义,因为这些标志位的含义和扫描技术直接相关,扫描技术需要发送带标志位的TCP报文到目标主机,然后根据收到的反馈报文情况判断对方端口状态或者服务状态。另外还需要分析TCP三次握手連接以及四次握手的取消连接,需要分析到每次握手过程中的TCP报文内的标志位和重要字段的变化。如果条件允许,可以讲授TCP的全状态变迁分析,让学生对整个TCP的状态变化有所了解,这样更容易了解扫描原理。当然,除了TCP和IP协议外,UDP协议也需要进行分析,因为有些扫描是使用的UDP报文。

2 Nmap技术教学环节设计

Nmap是个功能很强大的扫描工具,其功能主要分为常规扫描和使用脚本方式进行扫描。 使用常规方式扫描主要是靠发送带上特定标志位的TCP和UDP报文来进行扫描,而且NmapK可以使用的参数非常多,这个时候的教学可以选择几个最重要的参数进行抓包分析,可以安装简单的抓包工具WIRESHARK,例如对SYN扫描可以通过抓到如图l所示探测报文与应答报文,从图l可以看到只发生了两次握手情况,它是一种半开扫描,这样可以使扫描原理的教学一目了然。使用Nmap扫描,在扫描结果中会出现端口的六种状态,简单的open、close状态很好理解,但其中Filtered状态需要使用实验来演示,笔者使用WINDOWS SERVER 2003本地网卡上的Internet连接防火墙,通过服务选项来模拟端口是否使用防火墙,这样就可以很简单的实现看到Filtered状态。实际教学中笔者使用kali的Nmap对另外一台WINDOWSSERVER 2003虚拟机进行扫描,分别开启服务和不开启的扫描命令和结果如下:

root@kaliverl:~/Desktop# nmap -sU 192.168.1.64 -p 80#对80端口扫描

Starting Nmap 6.47( http://nmap.org) at 2019-03-23 15:47CST

Nmap sean report for 192.168.1.64

Host is up (0.00023s latency).

PORT STATE

SERVICE

80/udp openlf/ltered http

MAC Address: OO:OC:29:50:2D:7E (VMware)

Nmap done:1 lP address(1 host up) scanned in 0.61 seconds

root@kaliverl:~/Desktop# nmap -sT 192.168.1.64 -p 80#对80端口扫描

Starting Nmap 6.47( http://nmap.org) at 2019-03-23 15:48CST

Nmap scan report for 192.168.1.64

Host is up (0.00025s latency).

PORT STATE SERVICE

80/tcpopen http

MAC Address: OO:OC:29:50:2D:7E (VMware)

Nmap done:1 lP address(1 host up) scanned in 0.21 seconds

本实验还可以测试在禁用PING后获得扫描结果。在使用Nmap进行扫描的时候,还需要注意的是单独一种扫描方式并不是很准确的,需要多种参数扫描后综合判断,例如对操作系统的探测,某一个参数肯能只能探测出大致的系统类型,并不能准确到时哪一个操作系统,这个时候就需要再使用另外的参数进行探测。第二个重要内容是使用脚本方式的扫描,这是一个Nmap扩展功能,使用该功能可以探测系统漏洞甚至还可以实现暴力破解。对于这个环节的教学,笔者使用—script参数后面引用了一些脚本来进行扫描,例如使用—script=vuln来扫描系统漏洞,使用—script ftp-brute -script-args破解FTP服务器的账号信息,也可以使用对应版本破解mysql或者mssql数据库,使用命令如下:

nmap —script=mysql-brute -p 3306 192.168.1.64#暴力破解mysql数据库

Nmap-p1433 —script ms-sql-brute —script-args userdb=/usemames.txt,passdb=/passwords.txt 192.168.1.64#暴力破解ms-sql数据库root@kal1222:/# nmap -p 1433 -script ms-sql-xp-cmdshell —script-args=ms-sql-xp-cmdshell.cmd=7net users,mssql.username=sa,mssql.password=123 192.168.1.64#破解成功后还可以使用nmap进行利用去使用对方的shell运行命令。

以上的环境可以把mysq5和mssq12000安装到虚拟机WIN-DOWS SERVER 2003中,使用kali系统作为攻击机,实验的时候可以简单配置数据库管理员口令。除了对主机进行扫描外,还可以使用nmap脚本去获得网站信息或者扫描网站漏洞,例如如下密令扫描网站的sql注人情况:

root@kal1222:/#nmap—s,cript http-sql-inj ection 192.168.1.1 34

该实验环境使用了Metasploitable2-Linux虚拟机作为靶机,该系统是一个特别制作的ubuntu操作系统,本身设计作为安全工具测试和演示常见漏洞攻击。

此外还可以使用增强Nmap的版本检测nmap-vulners和vulscan,这两个脚本可以从GITHUB.COM下载得到,常用直接从网站克隆的方式,使用這些脚本可以扫描检测CVE漏洞。

3结束语

Nmap是网络安全教学中一个很重要的教学知识点,对于系统的扫描和探测是学好渗透测试的前提,所以对于Nmap的教学内容设计非常重要。通过以上内容的设计,可以让学生学到Nmap的主要内容,同时,配置好对应的实验环境,让学生能够在虚拟环境当中进行模拟的扫描和Nmap实验也是一个重要的教学前提。

参考文献:

[1] LEE ALLEN.kali Linux渗透测试的艺术[M].北京:人民邮电出版社.2015.

[2]贾铁军.网络安全实用技术[M].北京:清华大学出版社,2016.

【通联编辑:朱宝贵】

收稿日期:2019-10-25

作者简介:严学军,讲师,硕士,主要研究方向为网络安全方向,从事网络安全和LINUX等课程的教学。

猜你喜欢
脚本
酒驾
此去人海茫茫,各自风雨灿烂
数据库系统shell脚本应用
快乐假期
神奇的数学
愚人节大作战
小编的新年愿望
友谊的小船说翻就翻