Nmap软件使用信息与通信安全报告.docx
《Nmap软件使用信息与通信安全报告.docx》由会员分享,可在线阅读,更多相关《Nmap软件使用信息与通信安全报告.docx(29页珍藏版)》请在冰豆网上搜索。
Nmap软件使用信息与通信安全报告
实验报告
课程名称:
信息与通信安全指导老师:
_______成绩:
__________________
实验名称:
网络扫描软件的使用:
Nmap软件__实验类型:
____________
一、实验目的和要求(必填)二、实验内容和原理(必填)
三、主要仪器设备(必填)四、操作方法和实验步骤(必填)
五、实验数据记录和处理六、实验结果与分析(必填)
七、讨论、心得(必填)
一、实验目的和要求
(1).学习网络扫描软件的工作原理。
(2).从下载并安装Nmap软件。
(3).使用Nmap软件实现网络扫描,至少包括如下内容:
1.使用不同扫描指令扫描在线主机,并记录端口信息;
2.扫描目标主机的支持协议状况与防火墙状态;
3.设置不同的指令参数进行扫描;
4.扫描目标主机的操作系统类型。
二、实验内容和原理
nmap软件简介
Nmap,也就是NetworkMapper,是Linux下的网络扫描和嗅探工具包,可以帮助网管人员深入探测UDP或者TCP端口,直至主机所使用的操作系统;还可以将所有探测结果记录到各种格式的日志中,供进一步分析,为系统安全服务。
通常情况下,Nmap通常用于:
列举网络主机清单、管理服务升级调度、监控主机、服务运行状况。
Nmap可用于扫描仅有两个节点的LAN,直至500个节点以上的网络。
Nmap还允许用户定制扫描技巧,它支持多种协议的扫描如UDP,TCPconnect(),TCPSYN(halfopen),ftpproxy(bounceattack),Reverse-ident,ICMP(pingsweep),FIN,ACKsweep,XmasTree,SYNsweep,和Null扫描,nmap还提供一些实用功能如通过tcp/ip来鉴别操作系统类型、秘密扫描、动态延迟和重发、平行扫描、通过并行的PING侦测下属的主机、欺骗扫描、端口过滤探测、直接的RPC扫描、分布扫描、灵活的目标选择以及端口的描述。
NMAP核心功能:
1)主机发现(HostDiscovery)
用于发现目标主机是否处于活动状态(Active)。
Nmap提供了多种检测机制,可以更有效地辨识主机。
例如可用来列举目标网络中哪些主机已经开启,类似于Ping命令的功能。
2)端口扫描(PortScanning)
用于扫描主机上的端口状态。
Nmap可以将端口识别为开放(Open)、关闭(Closed)、过滤(Filtered)、未过滤(Unfiltered)、开放|过滤(Open|Filtered)、关闭|过滤(Closed|Filtered)。
默认情况下,Nmap会扫描1000个常用的端口,可以覆盖大多数基本应用情况。
3)版本侦测(VersionDetection)
用于识别端口上运行的应用程序与程序版本。
Nmap目前可以识别数千种中应用的签名(Signatures),检测数百种应用协议。
而对与不识别的应用,Nmap默认会将应用的指纹(Fingerprint)打印出来,如果用于确知该应用程序,那么用户可以将信息提交到社区,为社区做贡献。
4)操作系统侦测(OSdetection)
用于识别目标机的操作系统类型、版本编号及设备类型。
Nmap目前提供了上千种操作系统或设备的指纹数据库,可以识别通用PC系统、路由器、交换机等设备类型。
5)防火墙/IDS规避(Firewall/IDSevasion)
Nmap提供多种机制来规避防火墙、IDS的的屏蔽和检查,便于秘密地探查目标机的状况。
基本的规避方式包括:
分片(Fragment)/IP诱骗(IPdecoys)/IP伪装(IPspoofing)/MAC地址伪装(MACspoofing)等等。
6)NSE脚本引擎(NmapScriptingEngine)
NSE是Nmap最强大最灵活的特性之一,可以用于增强主机发现、端口扫描、版本侦测、操作系统侦测等功能,还可以用来扩展高级的功能如web扫描、漏洞发现、漏洞利用等等。
Nmap使用Lua语言来作为NSE脚本语言,目前的Nmap脚本库已经支持350多个脚本。
Nmap软件具有以下特点:
(1)、灵活。
支持数十种不同的扫描方式,支持多种目标对象的扫描。
(2)、强大。
Nmap可以用于扫描互联网上大规模的计算机。
(3)、可移植。
支持主流操作系统:
Windows/Linux/Unix/MacOS等等;源码开放,方
便移植。
(4)、简单。
提供默认的操作能覆盖大部分功能,基本端口扫描nmap-targetip,全面的
扫描nmap-Atargetip。
(5)、自由。
Nmap作为开源软件,在GPLLicense的范围内可以自由的使用。
(6)、文档丰富。
Nmap官网提供了详细的文档描述。
Nmap作者及其他安全专家编写了
多部Nmap参考书籍。
(7)、社区支持。
Nmap背后有强大的社区团队支持。
2.Nmap语法
Nmap的语法相当简单。
Nmap的不同选项和-s标志组成了不同的扫描类型。
一般语法格式:
nmap[ScanType(s)][Options]
3.基本扫描类型
-sT
TCPconnect()扫描:
这是最基本的TCP扫描方式。
connect()是一种系统调用,由操作系统提供,用来打开一个连接。
如果目标端口有程序监听,connect()就会成功返回,否则这个端口是不可达的。
这项技术最大的优点是,你勿需root权限。
任何UNIX用户都可以自由使用这个系统调用。
这种扫描很容易被检测到,在目标主机的日志中会记录大批的连接请求以及错误信息。
-sS
TCP同步扫描(TCPSYN):
因为不必全部打开一个TCP连接,所以这项技术通常称为半开扫描(half-open)。
你可以发出一个TCP同步包(SYN),然后等待回应。
如果对方返回SYN|ACK(响应)包就表示目标端口正在监听;如果返回RST数据包,就表示目标端口没有监听程序;如果收到一个SYN|ACK包,源主机就会马上发出一个RST(复位)数据包断开和目标主机的连接。
这项技术最大的好处是,很少有系统能够把这记入系统日志。
-sP
ping扫描:
若只是想知道此时网络上哪些主机正在运行。
通过向你指定的网络内的每个IP地址发送ICMPecho请求数据包,nmap就可以完成这项任务,如果主机正在运行就会作出响应。
在默认的情况下nmap也能够向80端口发送TCPack包,如果你收到一个RST包,就表示主机正在运行。
nmap使用的第三种技术是:
发送一个SYN包,然后等待一个RST或者SYN/ACK包。
对于非root用户,nmap使用connect()方法。
在默认的情况下(root用户),nmap并行使用ICMP和ACK技术。
实际上,nmap在任何情况下都会进行ping扫描,只有目标主机处于运行状态,才会进行后续的扫描。
如果只是想知道目标主机是否运行,而不想进行其它扫描,才会用到这个选项。
-sU
UDP扫描:
如果想知道在某台主机上提供哪些UDP(用户数据报协议,RFC768)服务,可以使用这种扫描方法。
nmap首先向目标主机的每个端口发出一个0字节的UDP包,如果收到端口不可达的ICMP消息,端口就是关闭的,否则我们就假设它是打开的。
4.Nmap所识别的6个端口状态。
open(开放的)
应用程序正在该端口接收TCP连接或者UDP报文。
这是端口扫描的主要目标。
安全意识强的人们知道每个开放的端口都是攻击的入口。
攻击者或者入侵测试者想要发现开放的端口。
而管理员则试图关闭它们或者用防火墙保护它们以免妨碍了合法用户。
非安全扫描可能对开放的端口也感兴趣,因为它们显示了网络上那些服务可供使用。
closed(关闭的)
关闭的端口对于Nmap也是可访问的(它接受Nmap的探测报文并作出响应),但没有应用程序在其上监听。
它们可以显示该IP地址上(主机发现,或者ping扫描)的主机正在运行,也对部分操作系统探测有所帮助。
因为关闭的端口是可访问的,也许等一下值得再扫描一下,可能一些又开放了。
系统管理员可能会考虑用防火墙封锁这样的端口。
那样他们就会被显示为被过滤的状态,下面讨论。
filtered(被过滤的)
由于包过滤阻止探测报文到达端口,Nmap无法确定该端口是否开放。
过滤可能来自专业的防火墙设备,路由器规则或者主机上的软件防火墙。
这样的端口让攻击者感觉很受挫折,因为它们几乎不提供任何信息。
有时候它们响应ICMP错误消息如类型3代码13(无法到达目标:
通信被管理员禁止),但更普遍的是过滤器只是丢弃探测帧,不做任何响应。
这迫使Nmap重试若干次以访万一探测包是由于网络阻塞丢弃的。
这使得扫描速度明显变慢。
unfiltered(未被过滤的)
未被过滤状态意味着端口可访问,但Nmap不能确定它是开放还是关闭。
只有用于映射防火墙规则集的ACK扫描才会把端口分类到这种状态。
用其它类型的扫描如窗口扫描,SYN扫描,或者FIN扫描来扫描未被过滤的端口可以帮助确定端口是否开放。
open|filtered(开放或者被过滤的)
当无法确定端口是开放还是被过滤的,Namp就把该端口划分成这种状态。
开放的端口不响应就是一个例子。
没有响应也可能意味着报文过滤器丢弃了探测报文或者它引发的任何响应。
因此Nmap无法确定该端口是开放的还是被过滤的。
UDP,IP协议,FIN,Null和Xmas扫描可能把端口归入此类。
closed|filtered(关闭或者被过滤的)
该状态用于Nmap不能确定端口是关闭的还是被过滤的。
它只可能出现在IPIDIdle扫描中。
5.其他选项
-Pn
在扫描之前,不必ping主机。
有些网络的防火墙不允许ICMPecho请求穿过,使用这个选项可以对这些网络进行扫描。
-O
这个选项激活对TCP/IP指纹特征(fingerprinting)的扫描,获得远程主机的标志。
换句话说,nmap使用一些技术检测目标主机操作系统网络协议栈的特征。
nmap使用这些信息建立远程主机的指纹特征,把它和已知的操作系统指纹特征数据库做比较,就可以知道目标主机操作系统的类型。
-v
冗余模式。
它会给出扫描过程中的详细信息。
使用这个选项,可以得到事半功倍的效果。
使用-d选项可以得到更加详细的信息。
-h
快速参考选项。
-p<端口范围>
这个选项让你选择要进行扫描的端口号的范围。
例如,-p23表示:
只扫描目标主机的23号端口。
-p20-30,139,60000-表示:
扫描20到30号端口,139号端口以及所有大于60000的端口。
在默认情况下,nmap扫描从1到1024号以及nmap-services文件(如果使用RPM软件包,一般在/usr/share/nmap/目录中)中定义的端口列表。
-F
快速扫描模式,只扫描在nmap-services文件中列出的端口。
显然比扫描所有65535个端口要快。
6.目标主机设定
在nmap的所有参数中,只有目标参数是必须给出的。
其最简单的形式是在命令行直接输入一个主机名或者一个IP地址。
如果你希望扫描某个IP地址的一个子网,你可以在主机名或者IP地址的后面加上/掩码。
掩码在0(扫描整个网络)到32(只扫描这个主机)。
使用/24扫描C类地址,/16扫描B类地址。
除此之外,nmap还有更加强大的表示方式让你更加灵活地指定IP地址。
例如,如果要扫描这个B类网络128.210.*.*,你可以使用下面三种方式来指定这些地址:
128.210.*.*、128.21-.0-255.0-255或者128.210.0.0/16这三种形式是等价的。
三、实验仪器设备
装有Nmap6.46版本的笔记本电脑
四、操作方法和实验步骤
(一)下载及安装Namp
从官网上下载Namp6.46版本的安装包,与一般软件安装过程相同,全部选择默认选择即可。
(二)使用不同扫描指令扫描在线主机,并记录端口信息;
1)ping扫描(-sn),探测网络上哪些主机正在运行。
由扫描结果可知,在地址段10.202.78.1~10.202.78.15之间共有6台主机正在运行。
上图为几台主机之间的拓扑结构图。
2)TCPSYN扫描(-sS)
从所得数据可以看出,在9.23seconds中共扫描了1000个端口,其中992个为filtered,8个为open,相应端口号及服务信息也均有列出。
3)TCPconnect()扫描(-sT)
扫描结果和TCP SYN scan相同。
但是耗时却是TCP SYN scan的6倍,这是因为TCP connect scan是调用connect()函数来打开一个链接,效率较低,而TCP SYN scan不必全部打开一个tcp连接,只是发出一个TCP同步包(SYN),然后等待回应。
如果对方返回SYN|ACK(响应)包就表示目标端口正在监听;如果返回RST数据包,就表示目标端口没有监听程序;如果收到一个SYN|ACK包,源主机就会马上发出一个RST(复位)数据包断开和目标主机的连接。
4)版本扫描(-sV)
如图可以得到更多关于端口版本的信息。
5)UDP扫描(-sU)
由上图可以看到,共扫描了1000个端口,全都是为open|filtered。
由上图可以看到,共扫描了1000个端口,993个事closedports,7个端口为
Open|filtered.并可以知道这些服务的状态和采用的协议。
如端口137提供的是neibios-ns,采用udp协议,端口状态为open。
filtered状态表示:
防火墙、包过滤和其它的网络安全软件掩盖了这个端口,禁止nmap探测其是否打开。
open|filtered状态表示:
无法确定端口是开放还是被过滤的。
6)全面进攻性扫描(-A)
从图中可以得到大量信息,包括各种主机发现、端口扫描、版本扫描、OS扫描及默认脚本扫描。
7)SCTP INIT(-sY)
所有扫描的52个端口都被过滤。
8)TCP ACK (-sA)
扫描1000个端口,其中都被过滤掉。
这种ACK扫描是向特定的端口发送ACK包(使用随机的应答/序列号)。
如果返回一个RST包,这个端口就标记为unfiltered状态。
如果什么都没有返回,或者返回一个不可达ICMP消息,这个端口就归入filtered类。
9)TCP Window(-sW)
对滑动窗口的扫描:
这项高级扫描技术非常类似于ACK扫描,除了它有时可以检测到处于打开状态的端口,因此扫描结果和ACK扫描相同。
(三)扫描目标主机的支持协议状况与防火墙状态
IP协议扫描(-sO)
可以看到共扫描了256个端口,252个为closed,未列出协议。
(四)设置不同的指令参数进行扫描
1)采用Quickscan模式-F(快速(有限的端口)扫描)-T设置时间模板)
扫描端口数减少,但是在短时间内也能获取被扫描端口的一些有用的信息
2)冗余模式(-v),得到扫描过程中的详细信息
可以看到,在使用了-v之后,可以看到界面上详细的显示了端口扫描的过程,以及其他的信息。
为了获取更多关于目标的信息,建议使用-v命令
3)指定端口扫描(-p)
通过-p,只扫描端口80、21、23、185,其中所有端口均为filtered,原因是被主机禁止,可能是目标主机上的防火墙的缘故。
4)快速端口扫描(-F)
可以看到,只扫描某些特定的端口,扫描端口数减少,时间也相应缩短
5)激烈扫描模式(-A)
使用激烈扫描模式,是一些常用扫描的组合,能够得到许多信息:
端口信息,系统信息,路由信息,版本信息。
6)路由跟踪
使用--traceroute命令,能够得到本地主机跟IP地址为10.31.83.110的主机之间的网络拓扑图以及路由的信息。
(五)扫描目标主机的操作系统类型
扫描操作系统(-O)
可以看到,根据扫描后得出的结果,扫描到ip地址为10.10.98.98的目标主机的细节信息,可知,该主机现在为up状态,总共扫描端口1000个,其中有992个被过滤掉,0个端口状态为closed,8个端口状态为open。
能获得该主机的IP地址,但是不能获得MAC地址,操作系统是MicrosoftWindowsVistaSP0orSP1,WindowsSever2008sp1,orWindows7但准确性为91%,并非完全确定。
五、思考题
1.请问有哪些方法可以防御黑客的Nmap扫描?
日常的防范工作一般可分为下面的几个步骤来作:
步骤一:
Guest帐号禁用。
有很多入侵都是通过这个帐号进一步获得管理员密码或者权限的。
如果不想把自己的计算机给别人当玩具,那还是禁止的好。
打开控制面板,双击“用户和密码”,选择“高级”选项卡。
单击“高级”按钮,弹出本地用户和组窗口。
在Guest帐号上面点击右键,选择属性,在“常规”页中选中“帐户已停用”。
步骤二:
停止共享。
Windows2000安装好之后,系统会创建一些隐藏的共享。
点击开始→运行→cmd,然后在命令行方式下键入命令“netshare”就可以查看它们。
网上有很多关于IPC入侵的文章,都利用了默认共享连接。
要禁止这些共享,打开管理工具→计算机管理→共享文件夹→共享,在相应的共享文件夹上按右键,点“停止共享”就行了。
步骤三:
尽量关闭不必要的服务,如TerminalServices、IIS(如果你没有用自己的机器作Web服务器的话)、RAS(远程访问服务)等。
还有一个挺烦人的Messenger服务也要关掉,否则总有人用消息服务发来网络广告。
打开管理工具→计算机管理→服务和应用程序→服务,看见没用的就关掉。
步骤四:
禁止建立空连接。
在默认的情况下,任何用户都可以通过空连接连上服务器,枚举帐号并猜测密码。
我们必须禁止建立空连接,方法有以下两种:
(1)修改注册表:
HKEY_Local_MachineSystemCurrent-ControlSetControlLSA下,将DWORD值RestrictAnonymous的键值改成1。
(2)修改Windows2000的本地安全策略:
设置“本地安全策略→本地策略→选项”中的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的安全配置。
最后,选择一款实用的防火墙。
比如NetworkICECorporation公司出品的BlackICE。
且将微软的补丁打全。
2.请画出黑客使用Nmap进行网络扫描的可能流程。
扫描在线主机,确定目标主机
扫描操作系统类型
扫描开启服务并版本侦测
扫描网络拓扑结构和设备
扫描系统防火墙的版本和状态
尝试与对方建立连接,查找登录信息
六.讨论、心得
通过本次实验,我学习了Nmap软件的使用方法,能使用一些简单的扫描命令和辅助命令来获取目标主机的端口信息和系统的一些信息,比如操作系统类型,支持哪些ip协议,有哪些端口开启,并且对获取的信息做进一步的分析。
由于扫描软件nmap可以扫描端口信息,分析各类主机的信息,判别出他们的功能,因此一些不法分子就利用扫描结果寻找找目标主机的安全漏洞。
当没被过滤的端口被扫描到时,可能被黑客利用作为攻击的入口,因此我们在平时计算机的使用过程中,要注意禁止一些端口的开放,开启安装防火墙是必要的安全措施。
因此了解这些黑客攻击方面的知识,告诉我平时使用计算机要加强警惕性,尤其是以后工作或做研究,要特别注意。