1、网络安全实验报告一实验1 网络服务和端口的扫描一、实验目的通过ping等命令了解目标主机的可访问性;通过使用网络扫描软件,了解目标主机端口和服务的开放情况,从而进一步获取系统信息,找出系统安全漏洞;通过本次实验,读者可以了解到端口与服务开放的风险,增强在网络安全防护方面的意识。 二、实验原理常用扫描探测命令:ping、tracert 扫描工具:Superscan和Nmap 1. Ping以及tracert pingping命令首先会构建一个固定格式的ICMP请求数据包echo request,发给远端计算机 ;远端计算机收到后,构造一个ICMP应答包echo reply,发送回本机;本机收到应
2、答包后,即可判断出目的主机是否开机,并根据发送包和应答包携带的时间信息计算出网络延迟。 tracert 源主机将构造并向目标主机发送不同TTL值的ICMP请求数据包,tracert诊断程序根据ICMP的回应数据包来确定到目标所采取的路由; Tracert程序首先发送 TTL 为1的请求数据包,该包经过第一个路由设备后TTL减1为0,第一个路由设备就将给源主机发回“ICMP已超时”的消息;源主机的tracert命令通过该消息中的IP信息就获得了第一个路由设备的IP;在随后的每次发送过程将TTL依次递增1,直到目标响应或TTL达到最大值,从而确定从源主机到目的主机中间的路由。 2 端口扫描的原理扫
3、描的过程就是向目标主机的端口发送请求数据包,希望建立“连接”,根据目标主机的回应判断其端口是否开放;通过扫描判断目标主机端口是否打开的一个最简单的方法,是利用TCP协议的三次握手机制;只要和目标主机的端口能建立TCP的三次握手,说明目标主机的端口是开的,反之则没有打开。三次握手第一次握手: 主机A的某个端口向主机B的某个端口发出TCP连接请求数据包,其TCP包头的标志位设置为SYN=1,ACK=0,同时选择一个序号x,表明在后面传送数据时的第一个数据字节的序号是x,这个过程称为第一次握手。 第二次握手: 主机B的相应端口收到连接请求数据包后,如端口是开放的,则发回确认数据包。在确认数据包中,T
4、CP包头的标志位设置为SYN=1,ACK=1,确认序号为x+1,同时B主机也会生成一个自己的序号y,这个过程称为第二次握手。 第三次握手: 主机A收到此数据包后,还要向B给出确认数据包,其TCP包头的标志位设置为ACK=1,其确认序号为y+1,这个过程称为第三次握手。3 扫描分类 1)全TCP连接这种扫描方法使用三次握手,与目标计算机建立标准的TCP连接; 攻击者首先向目的端口发送一个SYN数据包,如果收到来自该端口的SYN/ACK数据包,就可以判定该端口是开放的;然后攻击者再发送一个ACK数据包;如果目标端口是关闭的,攻击者就会收到一个直接返回的RST/ACK数据包;2)半打开式扫描(SYN
5、扫描)在这种扫描技术中,扫描主机同样向目标计算机的指定端口发送SYN数据包,表示希望建立连接。 a当端口开放时,目标计算机回应SYN/ACK数据包,这和全TCP连接扫描类似。但是扫描主机接着发送一个RST=1的数据包给目标主机,RST数据包将对TCP连接进行重置,目标计算机因为没有接到相应ACK数据包,从而不会建立三次握手。 b如果端口是关闭的,则按照TCP协议中端口未开规则处理,由目标主机发送RST/ACK数据包给扫描主机,此时TCP连接依然没有建立。扫描主机根据目标计算机的回应数据包是SYN/ACK数据包,还是RST/ACK数据包即可判断端口是否打开。 3)秘密扫描 这种方法的优点在于没有
6、涉及TCP连接的部分,所以比前2种都要安全,所以也被称做秘密扫描;缺点就是不够准确,不能完全识别开放的端口。FIN标记扫描:攻击者发送一个FIN=1的TCP报文到目标主机: 端口关闭时,该报文会被丢掉,并返回一个RST报文。 端口开放时,该报文只是简单的丢掉,不会返回任何回应。 三、实验环境两台运行win7的计算机,通过网络连接。使用Superscan和nmap作为练习工具。 四、实验内容1、Ping以及Tracert 2、使用Superscan进行扫描 首先安装Superscan3.0,安装完毕后,双击程序,进入其主界面。 域名(主机名)和IP相互转换这个功能的作用就是取得域名比如:的IP;
7、或者根据IP:192.168.1.156取得域名。(如下图) 在SuperScan里面,有两种方法来实现此功能:1)通过HostnameLookup来 实现在HostnameLookup的输入框输入需要转换的域名或者IP,按【LookUp】就可以取得结果。如果需要取得自己计算机的IP,可以点击【Me】按钮来取得;同时,也可以取得自己计算机的IP设置情况,点击【InterFaces】取得本地IP设置情况2)通过ExtractFromFile实现 这个功能通过一个域名列表来转换为相应IP地址。 选择【Extractfromfile】,点击【-】按钮,选择域名列表,进行转换。 Ping功能的使用 P
8、ing主要目的在于检测目标计算机是否在线和通过反应时间判断网络状况。 如下图,在【IP】的【Start】填入起始IP,在【Stop】填入结束IP,然后,在【ScanType】选择【Pingonly】,按【Start】就可以检测了。在以上的设置中,我们可以使用以下按钮达到快捷设置目的:选择【IgnoreIPzreo】可以屏蔽所有以0结尾的IP;选择【IgnoreIP255】可以屏蔽所有以255结尾的IP;点击【PrevC】可以直接转到前一个C网段;选择【NextC】可以直接转到后一个C网段;选择【1.254】直接选择整个网段。同样,也可以在【ExtractFromFile】通过域名列表取得IP列
9、表。 在Ping的时候,可以根据网络情况在【Timeout】设置相应的反应时间。一般采用默认就可以了,而且,SuperScan速度非常快,结果也很准确,一般没有必要改变反应时间设置。 端口检测端口检测可以取得目标计算机提供的服务,同时,也可以检测目标计算机是否有木马。现在,我们来看看端口检测的具体使用。(1)检测目标计算机的所有端口如果检测的时候没有特定的目的,只是为了了解目标计算机的一些情况,可以对目标计算机的所有端口进行检测。一般不提倡这种检测,因为: 1)它会对目标计算机的正常运行造成一定影响,同时,也会引起目标计算机的警觉; 2)扫描时间很长; 3)浪费带宽资源,对网络正常运行造成影响
10、。 在【IP】输入起始IP和结束IP,在【ScanType】选择最后一项【AllPortsFrom1to65535】,如果需要返回计算机的主机名,可以选择【ResolveHostnem】,按【Start】开始检测。上图是对一台目标计算机所有端口进行扫描的结果,扫描完成以后,按【Expandall】展开,可以看到扫描的结果。我们来解释一下以上结果:第一行是目标计算机的IP和主机名;从第二行开始的小圆点是扫描的计算机的活动端口号和对该端口的解释。【Activehosts】显示扫描到的活动主机数量,这里只扫描了一台,为1;【Openports】显示目标计算机打开的端口数,这里是5。(2)扫描目标计算
11、机的特定端口(自定义端口) 其实,大多数时候我们不需要检测所有端口,我们只要检测有限的几个端口就可以了,因为我们的目的只是为了得到目标计算机提供的服务和使用的软件。所以,我们可以根据个人目的的不同来检测不同的端口,大部分时候,我们只要检测80(web服务)、21(FTP服务)、23(Telnet服务)就可以了,即使是攻击,也不会有太多的端口检测。 点击【Portlistsetup】,出现端口设置界面(如下图):以上的界面中,在【Selectports】双击选择需要扫描的端口,端口前面会有一个的标志;选择的时候。注意左边的【Change/Add/Deleteportinfo】和【Helperap
12、psin right-click menu】,这里有关于此端口的详细说明和所使用的程序。我们选择21、23、80、三个端口,然后,点击【save】按钮保存选择的端口为端口列表。【ok】回到主界面。在【ScanType】选择【Allselectedportinlist】,按【Start】开始检测。使用自定义端口的方式有以下有点:1)选择端口时可以详细了解端口信息;2)选择的端口可以自己取名保存,有利于再次使用;3)可以工具要求有的放矢的检测目标端口,节省时间和资源;4)根据一些特定端口,我们可以检测目标计算机是否被攻击者利用,种植木马或者打开不应该打开的服务;3、网络扫描软件Nmap 的使用(1
13、)简介Nmap是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端。确定哪服务运行在那些连接端,并且推断哪个操作系统计算机运行(这是亦称 fingerprinting)。它是网络管理员必用的软件之一,以及用以评估网络系统保安。正如大多数工具被用于网络安全的工具,nmap也是不少黑客及骇客(又称脚本小孩)爱用的工具。系统管理员可以利用nmap来探测工作环境中未经批准使用的服务器,但是黑客会利用nmap来搜集目标电脑的网络设定,从而计划攻击的方法。Nmap常被跟评估系统漏洞软件Nessus 混为一谈。Nmap以隐秘的手法,避开闯入检测系统的监视,并尽可能不影响目标系统的日常操作。(2)描述n
14、map运行通常会得到被扫描主机端口的列表。nmap总会给出well known端口的服务名(如果可能)、端口号、状态和协议等信息。每个端口的状态有:open、filtered、unfiltered。open状态意味着目标主机能够在这个端口使用accept()系统调用接受连接。filtered状态表示:防火墙、包过滤和其它的网络安全软件掩盖了这个端口,禁止nmap探测其是否打开。unfiltered表示:这个端口关闭,并且没有防火墙/包过滤软件来隔离nmap的探测企图。通常情况下,端口的状态基本都是unfiltered状态,只有在大多数被扫描的端口处于filtered状态下,才会显示处于unfi
15、ltered状态的端口。根据使用的功能选项,nmap也可以报告远程主机的下列特征:使用的操作系统、TCP序列、运行绑定到每个端口上的应用程序的用户名、DNS名、主机地址是否是欺骗地址、以及其它一些东西。(3)Nmap所识别的6个端口状态。open(开放的)应用程序正在该端口接收TCP 连接或者UDP报文。发现这一点常常是端口扫描的主要目标。安全意识强的人们知道每个开放的端口都是攻击的入口。攻击者或者入侵测试者想要发现开放的端口。而管理员则试图关闭它们或者用防火墙保护它们以免妨碍了合法用户。非安全扫描可能对开放的端口也感兴趣,因为它们显示了网络上那些服务可供使用。closed(关闭的)关闭的端口
16、对于Nmap也是可访问的(它接受Nmap的探测报文并作出响应),但没有应用程序在其上监听。它们可以显示该IP地址上(主机发现,或者ping扫描)的主机正在运行up 也对部分操作系统探测有所帮助。filtered(被过滤的)由于包过滤阻止探测报文到达端口,Nmap无法确定该端口是否开放。过滤可能来自专业的防火墙设备,路由器规则或者主机上的软件防火墙。unfiltered(未被过滤的)未被过滤状态意味着端口可访问,但Nmap不能确定它是开放还是关闭。只有用于映射防火墙规则集的ACK扫描才会把端口分类到这种状态。用其它类型的扫描如窗口扫描,SYN扫描,或者FIN扫描来扫描未被过滤的端口可以帮助确定端
17、口是否开放。open|filtered(开放或者被过滤的)当无法确定端口是开放还是被过滤的,Namp就把该端口划分成这种状态。开放的端口不响应就是一个例子。没有响应也可能意味着报文过滤器丢弃了探测报文或者它引发的任何响应。因此Nmap无法确定该端口是开放的还是被过滤的。UDP,IP协议,FIN,Null和Xmas扫描可能把端口归入此类。closed|filtered(关闭或者被过滤的)该状态用于Nmap不能确定端口是关闭的还是被过滤的。它只可能出现在IPID Idle扫描中。(4)语法Nmap的语法相当简单.Nmap的不同选项和-s标志组成了不同的扫描类型,比如:一个Ping-scan命令就是
18、-sP.在确定了目标主机和网络之后,即可进行扫描.如果以root来运行Nmap,Nmap的功能会大大的增强,因为超级用户可以创建便于Nmap利用的定制数据包。一般语法格式:nmap Scan Type(s) Options(5)基本扫描类型可以使用nmap -h快速列出功能选项的列表。-sTTCP connect()扫描:这是最基本的TCP扫描方式。connect()是一种系统调用,由操作系统提供,用来打开一个连接。如果目标端口有程序监听, connect()就会成功返回,否则这个端口是不可达的。这项技术最大的优点是,你勿需root权限。任何UNIX用户都可以自由使用这个系统调用。这种扫描很容
19、易被检测到,在目标主机的日志中会记录大批的连接请求以及错误信息。-sSTCP同步扫描(TCP SYN):因为不必全部打开一个TCP连接,所以这项技术通常称为半开扫描(half-open)。你可以发出一个TCP同步包(SYN),然后等待回应。如果对方返回SYN|ACK(响应)包就表示目标端口正在监听;如果返回RST数据包,就表示目标端口没有监听程序;如果收到一个SYN|ACK包,源主机就会马上发出一个RST(复位)数据包断开和目标主机的连接。这项技术最大的好处是,很少有系统能够把这记入系统日志。-sPping扫描:若只是想知道此时网络上哪些主机正在运行。通过向你指定的网络内的每个IP地址发送IC
20、MP echo请求数据包,nmap就可以完成这项任务,如果主机正在运行就会作出响应。在默认的情况下nmap也能够向80端口发送TCP ack包,如果你收到一个RST包,就表示主机正在运行。nmap使用的第三种技术是:发送一个SYN包,然后等待一个RST或者SYN/ACK包。对于非root用户,nmap使用connect()方法。在默认的情况下(root用户),nmap并行使用ICMP和ACK技术。实际上,nmap在任何情况下都会进行ping扫描,只有目标主机处于运行状态,才会进行后续的扫描。如果只是想知道目标主机是否运行,而不想进行其它扫描,才会用到这个选项。-sUUDP扫描:如果想知道在某台
21、主机上提供哪些UDP(用户数据报协议,RFC768)服务,可以使用这种扫描方法。nmap首先向目标主机的每个端口发出一个0字节的UDP包,如果收到端口不可达的ICMP消息,端口就是关闭的,否则我们就假设它是打开的。(6)通用选项这些内容不是必需的,但是很有用。-Pn在扫描之前,不必ping主机。有些网络的防火墙不允许ICMP echo请求穿过,使用这个选项可以对这些网络进行扫描。-O这个选项激活对TCP/IP指纹特征(fingerprinting)的扫描,获得远程主机的标志。换句话说,nmap使用一些技术检测目标主机操作系统网络协议栈的特征。nmap使用这些信息建立远程主机的指纹特征,把它和已
22、知的操作系统指纹特征数据库做比较,就可以知道目标主机操作系统的类型。-v冗余模式。它会给出扫描过程中的详细信息。使用这个选项,可以得到事半功倍的效果。使用-d选项可以得到更加详细的信息。-h快速参考选项。-p 这个选项让你选择要进行扫描的端口号的范围。例如,-p 23表示:只扫描目标主机的23号端口。-p 20-30,139,60000-表示:扫描20到30号端口,139号端口以及所有大于60000的端口。在默认情况下,nmap扫描从1到1024号以及nmap-services文件(如果使用RPM软件包,一般在/usr/share/nmap/目录中)中定义的端口列表。-F快速扫描模式,只扫描在
23、nmap-services文件中列出的端口。显然比扫描所有65535个端口要快。(7)目标设定在nmap的所有参数中,只有目标参数是必须给出的。其最简单的形式是在命令行直接输入一个主机名或者一个IP地址。如果你希望扫描某个IP地址的一个子网,你可以在主机名或者IP地址的后面加上/掩码。掩码在0(扫描整个网络)到32(只扫描这个主机)。使用/24扫描C类地址,/16扫描B 类地址。除此之外,nmap还有更加强大的表示方式让你更加灵活地指定IP地址。例如,如果要扫描这个B类网络128.210.*.*,你可以使用下面三种方式来指定这些地址:128.210.*.*、128.21-.0-255.0-25
24、5或者128.210.0.0/16这三种形式是等价的。(8)一些例子举例说明如何使用nmap。nmap -v 扫描主机的所有TCP端口。-v打开冗余模式。nmap -sS -O 发起对所在网络上的所有255个IP地址的秘密SYN扫描。同时还探测每台主机操作系统的指纹特征。nmap -v randomize_hosts -p 80 *.*.2.3-5只扫描指定的IP范围,有时用于对这个 Internet进行取样分析。nmap将寻找Internet上所有后两个字节是.2.3、.2.4、.2.5的 IP地址上的WEB服务器。如果你想发现更多有意思的主机,你可以使用127-222,因为在这个范围内有意
25、思的主机密度更大。首先,安装Nmap6.35,双击进入界面。下面给出一些实际的扫描例子。(1)隐蔽扫描(Stealth Scanning) TCP SYN scan:命令:nmap -sS IP_address从图中可以看到,共扫描了10.13.83.110)的1000个tcp端口,发现有903个filtered ports,92个closed ports,并列出了5个open ports,并可以知道这些服务的状态和采用的协议。如端口22提供的是ssh服务,采用tcp协议。(2)端口扫描(Port Scanning)命令:nmap -sT IP_address扫描结果和TCP SYN scan
26、相同。但是耗时却是TCP SYN scan的7倍,这是因为TCP connect scan是调用connect()函数来打开一个链接,效率较低,而TCP SYN scan不必全部打开一个tcp连接,只是发出一个TCP同步包(SYN),然后等待回应。如果对方返回SYN|ACK(响应)包就表示目标端口正在监听;如果返回RST数据包,就表示目标端口没有监听程序;如果收到一个SYN|ACK包,源主机就会马上发出一个RST(复位)数据包断开和目标主机的连接。(3)UDP扫描(UDP Scanning) 命令:nmap -sU IP_address从图中可以看到,共扫描了(10.13.83.110)的10
27、00个udp端口,发现有973个filtered ports,8个closed ports,18个open|filtered ports,1个open port,并可以知道这些服务的状态和采用的协议。如端口137提供的是neibios-ns,采用udp协议,端口状态为open。filtered状态表示:防火墙、包过滤和其它的网络安全软件掩盖了这个端口,禁止nmap探测其是否打开。open|filtered状态表示:无法确定端口是开放还是被过滤的。(4)IPprotocol scan命令:nmap -sO -v IP_addressIP协议扫描允许你判断目标主机支持哪些IP协议,从结果可以看到共
28、扫描了256个端口,发现被扫描主机支持8种IP协议,其中只有端口1处于open状态。(5)-p(只扫描指定的端口)扫描主机10.13.83.110的21、23和80端口命令:nmap -sS -p IP_address如图所示,指定扫描端口80,21,23 ,可以看到提供http服务的80端口处于closed状态。提供telnet的23端口处于filtered的状态,原因是被主机禁止,可能是目标主机上的防火墙的缘故。提供ftp服务的21端口处于open状态。(6)扫描目标主机的操作系统类型 命令:nmap -sS -O IP_address扫描到ip地址为10.13.83.110的目标主机的细节信息,可知,该主机现在为up状态,总共扫描端口1000个,其中有903个被过滤掉,92个端口状态为closed,5个端口状态为open。能获得该主机的IP地址,但是不能获得MAC地址,能知道系统的版本为Linux 2.6.X。五、实验报告要求(1) 熟悉使用ping和tracert,设置不同参数进行实验并记录结果。(2) 安装Superscan,并对另一台主机进行扫描,记录扫描步骤和结果。(3) 安装Nmap,熟悉其命令行操作,扫描主机的TCP端口、UDP端口以及其操作系统和支持的服务,记录扫描步骤和结果。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1