admin管理员组

文章数量:1532183

2024年1月6日发(作者:)

实验报告

课程名称: 信息与通信安全 指导老师: 成绩:________________

实验名称:_网络扫描软件的使用:Nmap 软件 实验类型: 同组学生姓名:______

一、实验目的和要求(必填) 二、实验内容和原理(必填)

三、主要仪器设备(必填) 四、操作方法和实验步骤

五、实验数据记录和处理 六、实验结果与分析(必填)

七、讨论、心得

一、实验目的和要求:

1、学习网络扫描软件的工作原理。

2、从下载并安装 Nmap 软件。

3、使用 Nmap 软件实现网络扫描,至少包括如下内容:

使用不同扫描指令扫描在线主机,并记录端口信息;

扫描目标主机的支持协议状况与防火墙状态;

设置不同的指令参数进行扫描;

扫描目标主机的操作系统类型。

二、实验内容和原理:

网络安全扫描器简介:

迅速发展的Internet给人们的生活、工作带来了巨大的方便,但同时,也带来了一些不容忽视的问题,网络信息的安全保密问题就是其中之一。

网络的开放性以及黑客的攻击是造成网络不安全的主要原因。科学家在设计Internet之初就缺乏对安全性的总体构想和设计,我们所用的TCP/IP 协议是建立在可信的环境之下,首先考虑的是网络互连,它是缺乏对安全方面的考虑的。而且TCP/IP协议是完全公开的,远程访问使许多攻击者无须到现场就能够得手,连接的主机基于互相信任的原则等等这一些性质使网络更加不安全。

先进的技术是实现网络信息安全的有力武器,这些技术包括:密码技术、身份验证技术、访问控制技术、安全内核技术、网络反病毒技术、信息泄漏防治技术、防火墙技术、网络安全漏洞扫描技术、入侵检测技术等。而在系统发生安全事故之前对其进行预防性检查,及时发现问题并予以解决不失为一种很好的办法,于是网络安全漏洞扫描技术应运而生。

1. 扫描器基本工作原理

扫描器是一种自动检测远程或本地主机安全脆弱点的程序,通过使用扫描器可以不留痕迹的发现远程服务器的各种TCP端口的分配及提供的服务和它们的软件版本,这就能让我们间接的或直观的了解到远程主机所存在的安全问题。

扫描器采用模拟攻击的形式对目标可能存在的已知安全漏洞进行逐项检查。目标可以是工作站、服务器、交换机、数据库应用等各种对象。然后根据扫描结果向系统管理装

线

员提供周密可靠的安全性分析报告,为提高网络安全整体水平产生重要依据。在网络安全体系的建设中,安全扫描工具花费低、效果好、见效快、与网络的运行相对对立、安

装运行简单,可以大规模减少安全管理员的手工劳动,有利于保持全网安全政策的统一和稳定。

扫描器并不是一个直接的攻击网络漏洞的程序,它仅仅能帮助我们发现目标机的某些存在的弱点。一个好的扫描器能对它得到的数据进行分析,帮助我们查找目标主机的漏洞。但它不会提供进入一个系统的详细步骤。

扫描器应该有三项功能:发现一个主机和网络的能力;一旦发现一台主机,有发现什么服务正运行在这台主机上的能力;通过测试这些服务,发现这些漏洞的能力。

扫描器对Internet安全很重要,因为它能揭示一个网络的脆弱点。在任何一个现有的平台上都有几百个熟知的安全脆弱点。在大多数情况下,这些脆弱点都是唯一的,仅影响一个网络服务。人工测试单台主机的脆弱点是一项极其繁琐的工作,而扫描程序能轻易的解决这些问题。扫描程序开发者利用可得到的常用攻击方法并把它们集成到整个扫描中,这样使用者就可以通过分析输出的结果发现系统的漏洞。

2.端口扫描介绍

真正的扫描器是TCP端口扫描器,这种程序可以选通TCP/IP端口和服务(比如,Telnet或FTP),并记录目标的回答。通过这种方法,可以搜集到关于目标主机的有用信息(比如,一个匿旬用户是否可以登录等等)。而其他所谓的扫描器仅仅是UNIX网络应用程序,这些程序一般用于观察某一服务是否正在一台远程机器上正常工作,它们不是真正的扫描器,但也可以用于收集目标主机的信息(UNIX平台上通用的rusers和host命令就是这类程序的很好的例子)。

2.1 TCP SYN 扫描

扫描程序发送的SYN数据包,好像准备打开一个新的连接并等待反映一样。一个SYN|ACK的返回信息表示端口处于侦听状态。一个RST 返回表示端口没有处于侦听状态。如果收到一个SYN|ACK,扫描程序必须再发送一个RST 信号,来关闭这个连接过程。

优点:不会在目标计算机上留下纪录。

缺点:扫描程序必须要有root权限才能建立自己的SYN数据包。

2.2 TCP FIN 扫描

关闭的端口会用适当的RST来回复FIN数据包,而打开的端口会忽略对FIN数据包的回复。

优点:FIN数据包可以不惹任何麻烦的通过。

缺点:这种方法和系统的实现有一定的关系,有些系统不论是打开的或关闭的端口对FIN数据包都要给以回复,这种情况下该方法就不实用了。

2.3 TCP connect()扫描

操作系统提供connect()系统调用,用来与每一个感兴趣的目标计算机的端口进行连接。如果端口处于侦听状态,那么connect()就能成功。否则,这个端口是不能用的,即没有提供服务。

优点:系统中的任何用户都有权利使用这个调用;如果对每个目标端口以线性的方式扫描,将会花费相当长的时间,但如果同时打开多个套接字,就能加速扫描。

缺点:很容易被发现,目标计算机的logs文件会显示一连串连接和连接出错的消息,并且能很快的将它关闭。

三、主要仪器设备:

1、 计算机 一台

2、 nmap软件

四、操作方法和实验步骤:

操作系统 :Microsoft Windows XP Professional Service Package 3 。

网络平台: TCP/IP网络

机器IP: 10.110.38.41

Nmap版本: 5.21

1、 安装Nmap

(1)安装界面

单击“IAgree”

(2)选择组件

默认安装,单击“Next”

(3)进入安装

单击“Install”

后面一路默认设置,最后安装成功。

2、 使用不同扫描指令扫描在线主机,并记录端口信息;

(1)-sP Ping扫描:用于了解网络上有哪些主机是开放的,nmap可以通过对指定的IP地址发送ICMP的echo request信息包来确定,有回应的主机就是开放的。

现选择IP地址段为10.110.38.200-230 扫描结果如下:

可见在31个IP地址中有12主机是开放的。

(2)可用-p指令来扫描主机的端口,由于65535个端口的扫描时间过长,因此本报告中选择1-1024 端口号进行扫描,且选用的主机IP地址为10.110.38.214。

A、当防火墙开启时:

可见所有的端口都是“filterd”。

A、 当防火墙关闭时:

可见,有5个端口是开放的。

(3)-F 快速扫描模式。指定只希望扫描nmap里提供的services file中列出的端口列表里的端口。这明显会比扫描所有65535个端口来得快。

A、当防火墙开启时:

B、当防火墙关闭时:

与-p指令对比可见,其扫描所用时间较短,但是扫描出的端口数为4,有一个“服务未知”的端口未被扫描出。

(4)-r指令可用于连续扫描端口

A、当防火墙开启时,

B、当防火墙关闭时,

可见扫描时间较慢,但是可以扫描出全部5个端口。

3、扫描目标主机的支持协议状况与防火墙状态;

(1)-sO指令可用于扫描IP协议。

A、当防火墙开启时,

可见当防火墙开启时,几乎什么都扫描不出。

B、当防火墙关闭时,

-sO扫描了IP协议相关的配置,如对方开放了ICMP协议、tcp协议以及UDP协议。

(2)-sV指令可通过检测端口来确定服务的类型:

A、当防火墙开启时,

B、当防火墙关闭时,

当防火墙关闭时,可检测出对方主机的系统为Windows XP。

4、设置不同的指令参数进行扫描;

(1)-sS TCP SYN 扫描:这类技术通常涉及一种“半开”式的扫描——因为不打开完整的TCP连接,只需发送一个SYN信息包就象要打开一个真正的连接而且在等待对方的回应。一个SYN│ACK(应答)会表明该端口是开放监听的。一个RST(空闲)则代表该端口未被监听。如果SYN│ACK的回应返回,则会马上发送一个RST包来中断这个连接。

A、防火墙打开时

B、当防火墙关闭时

可见,共扫描出了11个端口,而且这些端口都是tcp端口,因为syn扫描是基于tcp的。

(2)-sT TCP connect()扫描:这是对TCP的最基本形式的侦测。在该操作下,该connect()对目标主机上你感兴趣的端口进行试探,如果该端口被监听,则连接成功——否则代表这个端口无法到达。

A、当防火墙开启时,

可见,可以检测到21端口。

B、当防火墙关闭时,

从中可以看出,-sT扫描比-sS扫描多扫出了一个21号端口。

(3)-sF -sX –sN Stealth FIN,Xmas Tree 或者Null扫描模式:有时甚至SYN扫描都不够隐蔽——一些防火墙及信息包过滤装置会在重要端口守护,SYN包在此时会被截获,关闭的端口会对你发送的探测信息包返回一个RST,而打开的端口则对其忽略不理,所以FIN扫描使用空的FIN信息包作为探针、Xmas tree使用FIN,URG,PUSH标记、Null扫描则不用任何标记。但是微软不肯定这一标准,所以这一扫描在WINDOWS9X以及NT下不能工作。

从积极方面来讲,这其实也是一个很好的区分两种平台的办法——如果这次扫描发现了打开的端口,那你就能明白这台机器不是运行WINDOWS。

A、当防火墙开启时,

B、当防火墙关闭时,

可见基本不能得到任何信息。

(4)-sU UDP扫描:这一方法是用来确定哪个UDP(User Datagram Protocol,RFC 768)端口在主机端开放。这一技术是以发送零字节的UDP信息包到目标机器的各个端口,如果我们收到一个ICMP端口无法到达的回应,那么该端口是关闭的,否则我们可以认为它是开放的。

A、当防火墙开启时

B、当防火墙关闭时,

可见可以检测到11个端口,但是还是不能肯定他们的状态是开启还是被过滤掉。

5、扫描目标主机的操作系统类型

(1)-O 经由TCP/IP获取‘指纹’来判别主机的OS类型,即用一连串的信息包探测出你所扫描的主机位于操作系统有关堆栈信息并区分其精细差别,以此判别操作系统。它用搜集到的信息建立一个“指纹”用来同已知的操作系统的指印相比较(the

nmap-os-fingerprints file)。

A、防火墙开启时

防火墙关闭时

由图可见,被扫描主机的系统版本为 Microsoft Windows XP SP2.

(2)-A指令与-O指令具有相同的功能。

A、防火墙开启时

B、防火墙关闭时

五、讨论

1、请问有哪些方法可以防御黑客的 Nmap 扫描?

步骤一,Guest帐号禁用。有很多入侵都是通过这个帐号进一步获得管理员密码或者权限的。如果不想把自己的计算机给别人当玩具,那还是禁止的好。打开控制面板,双击“用户和密码”,选择“高级”选项卡。单击“高级”按钮,弹出本地用户和组窗口。在Guest帐号上面点击右键,选择属性,在“常规”页中选中“帐户已停用”。

步骤二,停止共享。Windows 2000安装好之后,系统会创建一些隐藏的共享。点击开始→运行→cmd,然后在命令行方式下键入命令“net share”就可以查看它们。网上有很

多关于IPC入侵的文章,都利用了默认共享连接。要禁止这些共享,打开管理工具→计算机管理→共享文件夹→共享,在相应的共享文件夹上按右键,点“停止共享”就行了。

步骤三,尽量关闭不必要的服务,如Terminal Services、IIS(如果你没有用自己的机器作Web服务器的话)、RAS(远程访问服务)等。还有一个挺烦人的Messenger服务也要关掉,否则总有人用消息服务发来网络广告。打开管理工具→计算机管理→服务和应用程序→服务,看见没用的就关掉。

步骤四,禁止建立空连接。在默认的情况下,任何用户都可以通过空连接连上服务器,枚举帐号并猜测密码。我们必须禁止建立空连接,方法有以下两种:

(1)修改注册表:

HKEY_Local_MachineSystemCurrent-ControlSetControlLSA下,将DWORD值RestrictAnonymous的键值改成1。

(2)修改Windows 2000的本地安全策略:

设置“本地安全策略→本地策略→选项”中的RestrictAnonymous(匿名连接的额外限制)为“不容许枚举SAM账号和共享”。

步骤五,如果开放了Web服务,还需要对IIS服务进行安全配置:

(1) 更改Web服务主目录。右键单击“默认Web站点→属性→主目录→本地路径”,将“本地路径”指向其他目录。

(2) 删除原默认安装的Inetpub目录。

(3) 删除以下虚拟目录: _vti_bin、IISSamples、Scripts、IIShelp、IISAdmin、IIShelp、MSADC。

(4) 删除不必要的IIS扩展名映射。方法是:右键单击“默认Web站点→属性→主目录→配置”,打开应用程序窗口,去掉不必要的应用程序映射。如不用到其他映射,只保留.asp、.asa即可。

(5) 备份IIS配置。可使用IIS的备份功能,将设定好的IIS配置全部备份下来,这样就可以随时恢复IIS的安全配置。

最后,选择一款实用的防火墙。比如Network ICE Corporation公司出品的Black ICE。且将微软的补丁打全。

2、请画出黑客使用 Nmap 进行网络扫描的可能流程。

扫描在线主机,确定目标主机

扫描操作系统类型

扫描操作系统的版本

扫描目标主机打开的服务

本文标签: 扫描端口信息目标网络