实验2端口扫描和操作系统类型探测实验讲解.docx
- 文档编号:27494709
- 上传时间:2023-07-02
- 格式:DOCX
- 页数:19
- 大小:646.22KB
实验2端口扫描和操作系统类型探测实验讲解.docx
《实验2端口扫描和操作系统类型探测实验讲解.docx》由会员分享,可在线阅读,更多相关《实验2端口扫描和操作系统类型探测实验讲解.docx(19页珍藏版)》请在冰豆网上搜索。
实验2端口扫描和操作系统类型探测实验讲解
1.
警示
实验报告如有雷同,雷同各方当次实验成绩均以0分计。
2.在规定时间内未上交实验报告的,不得以其他方式补交,当次成绩按0分计。
3.实验报告文件以PDF格式提交。
实验2端口扫描和操作系统类型探测实验
【实验目的】
(1)掌握端口扫描这种信息探测技术的原理。
(2)学会使用常见的端口扫描工具。
(3)了解各种常用网络服务所对应的端口号。
【实验内容】
(1)使用Nmap的命令行工具进行端口扫描。
(2)使用Nmap的命令行工具进行网络服务及其版本探测。
(3)使用Nmap的命令行工具进行操作系统类型鉴别。
(4)使用Nmap的图形化前端Zenmap工具同样进行上述任务。
【实验环境】
实验主机操作系统:
Window7IP地址:
172.18.32.188
目标机1操作系统:
Ubuntu12.04IP地址:
172.18.34.24
目标机2操作系统:
Window7IP地址:
172.18.34.132
网络环境:
校园网。
【实验原理】
(1)端口及服务的基本概念
“端口”是专门为计算机通信而设计的,在下CP/IP协议中规定,用IP地址和端口作为套接字(socket),代表TCP或UDP通信的一端。
端口分为知名(known)端口号和一般端口号,其中知名端口号的数值一般为1-1023,分配给常用应用服务程序固定使用。
下面是常用的TCP知名端口号列表。
服务名称
端口号
说明
FTP
21
文件传输服务
SSH
22
加密远程登录服务
Telnet
23
远程登录服务
SMTP
25
简单邮件传输服务
HTTP
80
WWW(Web)
POP3
110
邮件接受服务
(2)Nmap的功能介绍和技术原理
Nmap(NetworkMapper,网络映射器)是一款开放源代码的网络探测和安全审核的工具。
其设计目标是快速地扫描大型网络,也可以扫描单个主机。
Nmap以新颖的方式使用原始IP报文来发现网络上有哪些主机,及其提供的服务,包括其应用程序名和版本,这些服务运行在什么操作系统,包括版本信息,它们使用什么类型的报文过滤器/防火墙,以及一些其它功能。
虽然Nmap通常用于安全审核,也可以用它来做一些日常管理维护的工作,比如查看整个网络的信息,管理服务升级计划,以及监视主机和服务的运行。
Nmap输出的是扫描目标的列表,以及每个目标的补充信息,至于是哪些信息则依赖于所使用的选项。
“所感兴趣的端口表格”是其中的关键。
状态可能是open(开放的)、filtered(被过滤的)、closed(关闭的)、或者unfiltered(未被过滤的)。
"Open”意味着目标机器上的应用程序正在该端口监听连接/报文,"Filtered''意味着防火墙、过滤器或者其它网络障碍阻止了该端口被访问,"Closed”意味着没有应用程序在该端口上面监听,但是他们随时可能开放。
当端口对Nmap的探测做出响应,但是Nmap无法确定它们是关闭还是开放时,这些端口就被认为是unfiltered。
如果Nmap报告状态组合open|filtered和closed|filtered时,那说明Nmap无法确定该端口处于两个状态中的哪一个状态。
当要求进行版本探测时,端口表也可以包含软件的版本信息。
当要求进行IP协议扫描时。
(-sO),Nmap提供关于所支持的IP协议而不是正在监听的端口的信息。
除了所感兴趣的端口表,Nmap还能提供关于目标机的进一步信息,包括反向域名、操作系统猜测、设备类型和MAC地址。
Nmap的基本命令格式如下所示:
nmap[扫描类型…][选项]{扫描目标说明}
主机发现
任何网络探测任务的最初几个步骤之一就是把一组IP范围缩小为一列活动的或者有意扫描的主机。
扫描每个IP的每个端口很慢,通常也没必要,主要依赖于扫描的目的。
由于主机发现的需求五花八门,Nmap提供了很多的选项来方便定制。
运行Nmap命令就可以发现主机发现的一些基本参数,如下图:
HOSTDISCOVERY:
-sL:
ListScan-simplylisttargetstoscan
-sn:
PingScan-disableportscan
-Pn:
Treatallhostsasonline--skiphostdiscovery
-PS/PA/PU/PY[portlist]:
TCPSYN/ACK,UDPorSCTPdiscoverytogivenports
-PE/PP/PM:
ICMPecho,timestamp,andnetmaskrequestdiscoveryprobes
-PO[protocollist]:
IPProtocolPing
-n/-R:
NeverdoDNSresolution/Alwaysresolve[default:
sometimes]
--dns-servers
SpecifycustomDNSservers
--system-dns:
UseOS'sDNSresolver
--traceroute:
Tracehoppathtoeachhost
参数
释义
-sL
列表扫描。
仅将指定的目标的IP列举出来,不进行主机发现
-sn
只进行主机发现,不进行端口扫描
-Pn
将所有指定的主机视作开启的,跳过主机发现的过程
-PS/PA/PU/PY
使用TCPSYN/ACK或SCTPINIT/ECHO方式进行发现
-PE/PP/PM
使用ICMPecho,timestamp,andnetmask请求包发现主机
-PO
使用IP协议包探测对方主机是否开启
-n/-R
-n表示不进行DNS解析;-R表示总是进行DNS解析
--dns-servers
指定DNS服务器
--system-dns
指定使用系统的DNS服务器
--traceroute
追踪每个路由节点
其中,比较常用的使用的是-sn,表示只单独进行主机发现过程;-Pn表示直接跳过主机发现而进行端口扫描等高级操作(如果已经确知目标主机已经开启,可用该选项);-n,如果不想使用DNS或reverseDNS解析,那么可以使用该选项。
端口扫描
Nmap把端口分成六个状态:
open(开放的),closed(关闭的),filtered(被过滤的),unfiltered(未被过滤的),open|filtered(开放或者被过滤的),或者closed|filtered(关闭或者未被过滤的)。
Nmap支持大约十几种扫描技术。
一般一次只用一种方法,除了UDP扫描(-sU),可以和任何一种TCP扫描类型结合使用。
SCANTECHNIQUES:
-sS/sT/sA/sW/sM:
TCPSYN/Connect()/ACK/Window/Maimonscans
-sU:
UDPScan
-sN/sF/sX:
TCPNull,FIN,andXmasscans
--scanflags
CustomizeTCPscanflags
-sI probeport]>: Idlescan -sY/sZ: SCTPINIT/COOKIE-ECHOscans -sO: IPprotocolscan -b FTPbouncescan 参数 释义 -sS/sT/sA/sW/sM 指定使用TCPSYN/Connect()/ACK/Window/Maimonscans的方式来对目标主机进行扫描 -sU 指定使用UDP扫描方式确定目标主机的UDP端口状况 -sN/sF/sX 指定使用TCPNull,FIN,andXmasscans秘密扫描方式来协助探测对方的TCP端口状态 --scanflags 定制TCP包的flags -sI 指定使用idlescan方式来扫描目标主机(前提需要找到合适的zombiehost) -sY/sZ 使用SCTPINIT/COOKIE-ECHO来扫描SCTP协议端口的开放的情况 -sO 使用IPprotocol扫描确定目标机支持的协议类型 -b 使用FTPbouncescan扫描方式 除了所有前面讨论的扫描方法,Nmap提供选项说明那些端口被扫描以及扫描是随机还是顺序进行。 默认情况下,Nmap用指定的协议对端口1到1024以及nmap-services文件中列出的更高的端口在扫描。 PORTSPECIFICATIONANDSCANORDER: -p Onlyscanspecifiedports Ex: -p22;-p1-65535;-pU: 53,111,137,T: 21-25,80,139,8080,S: 9 -F: Fastmode-Scanfewerportsthanthedefaultscan -r: Scanportsconsecutively-don'trandomize --top-ports Scan --port-ratio Scanportsmorecommonthan 参数 释义 -p 扫描指定的端口 -F 快速模式,仅扫描TOP100的端口 -r 不进行端口随机打乱的操作(如无该参数,nmap会将要扫描的端口以随机顺序方式扫描,以让nmap的扫描不易被对方防火墙检测到) --top-ports 扫描开放概率最高的number个端口(nmap的作者曾经做过大规模地互联网扫描,以此统计出网络上各种端口可能开放的概率。 以此排列出最有可能开放端口的列表,具体可以参见文件: nmap-services。 默认情况下,nmap会扫描最有可能的1000个TCP端口) --port-ratio 扫描指定频率以上的端口。 与上述--top-ports类似,这里以概率作为参数,让概率大于--port-ratio的端口才被扫描。 显然参数必须在在0到1之间,具体范围概率情况可以查看nmap-services文件 服务和版本探测 把Nmap指向一个远程机器,它可能告诉端口25/tcp、80/tcp和53/udp是开放的。 使用包含大约2,200个著名的服务的nmap-services数据库,Nmap可以报告那些端口可能分别对应于一个邮件服务器(SMTP)、web服务器(HTTP)和域名服务器(DNS)。 在用某种其它类型的扫描方法发现TCP或者UDP端口后,版本探测会询问这些端口,确定到底什么服务正在运行。 nmap-service-probes数据库包含查询不同服务的探测报文和解析识别响应的匹配表达式。 Nmap试图确定服务协议(如ftp,ssh,telnet,http),应用程序名(如ISCBind,Apachehttpd,Solaristelnetd),版本号,主机名,设备类型(如打印机,路由器),操作系统家族(如Windows,Linux)以及其它的细节,如是否可以连Xserver,SSH协议版本,或者KaZaA(用户名)。 当然,并非所有服务都提供所有这些信息。 如果Nmap被编译成支持OpenSSL,它将连接到SSL服务器,推测什么服务在加密层后面监听。 当发现RPC服务时,NmapRPCgrinder(-sR)会自动被用于确定RPC程序和它的版本号。 Nmap用下列的选项打开和控制版本探测。 SERVICE/VERSIONDETECTION: -sV: Probeopenportstodetermineservice/versioninfo --version-intensity Setfrom0(light)to9(tryallprobes) --version-light: Limittomostlikelyprobes(intensity2) --version-all: Tryeverysingleprobe(intensity9) --version-trace: Showdetailedversionscanactivity(fordebugging) 参数 释义 -sV 指定让Nmap进行版本侦测 --version-intensity 指定版本侦测强度(0-9),默认为7。 数值越高,探测出的服务越准确,但是运行时间会比较长 --version-light 指定使用轻量侦测方式(intensity2) --version-all 尝试使用所有的probes进行侦测(intensity9) --version-trace 显示出详细的版本侦测过程信息 操作系统类型鉴别 Nmap最著名的功能之一是用TCP/IP协议栈指纹技术(Fingerprinting)进行远程操作系统探测。 每个Fingerprint包括一个自由格式的关于OS的描述文本,和一个分类信息,它提供供应商名称(如Sun),操作系统(如Solaris},OS版本(如10),和设备类型(通用设备,路由器,switch,游戏控制台等)。 操作系统检测可以进行其它一些测试,这些测试可以利用处理过程中收集到的信息。 例如运行时间检测,使用TCP时间戳选项(RFC1323)来估计主机上次重启的时间,这仅适用于提供这类信息的主机。 另一种是TCP序列号预测分类,用于测试针对远程主机建立一个伪造的TCP连接的可能难度。 采用下列选项启用和控制操作系统检测: OSDETECTION: -O: EnableOSdetection --osscan-limit: LimitOSdetectiontopromisingtargets --osscan-guess: GuessOSmoreaggressively 参数 释义 -O 指定Nmap进行OS侦测 --osscan-limit 限制Nmap只对确定的主机的进行OS探测(至少需确知该主机分别有一个open和closed的端口) --osscan-guess 大胆猜测对方的主机的系统类型。 由此准确性会下降不少,但会尽可能多为用户提供潜在的操作系统 【实验过程】 (1)安装和运行Nmap。 安装过程中保留默认包含的Winpcap和Zenmap组件。 第一次安装的是课程FTP上的6.0版本,但是发现不能ping到室友的主机而且安装过程有如下错误。 故从网上下载了6.4版本,安装过程无错误,且能ping到室友主机,工作正常。 以下实验在6.4版本下完成。 (2)进入“命令提示符”窗口,运行nmap,查看可用参数(请贴出截图)。 可见版本号为6.40,及各个可用参数。 (3)主机发现: 进行连通性监测,判断目标主机1和2是否可连通,运行如下命令: Nmap-sP172.18.34.24(主机1,Ubuntu) Nmap-sP172.18.34.132(主机2,Win7) 目标主机1和2均存活,MAC地址及其网卡的厂商品牌如下图。 (4)使用常规扫描方式对目标主机进行TCP端口扫描,运行如下命令: Nmap-sT172.18.34.24(主机1) Nmap-sT172.18.34.132(主机2) 主机1的端口及开放情况: 主机2的端口及开放情况: (5)使用SYN半扫描方式对目标主机进行TCP端口扫描,运行如下命令: Nmap-sS172.18.34.24(主机1) Nmap-sS172.18.34.124(主机2) 主机1的端口及开放情况: 主机2的端口及开放情况: 上述两次扫描中,使用常规扫描方式所花费的时间比SYN半扫描方式慢,在主机1的两次扫描差异很大,使用常规扫描方式所花费的时间比SYN半扫描方式慢了接近20倍,而在主机2上只是慢了一倍。 这是因为半开放扫描,不需要通过完整的握手,就能获得远程主机的信息。 Nmap发送SYN包到远程主机,但是它不会产生任何会话.因此不会在目标主机上产生任何日志记录,因为没有形成会话,这样子的扫描速度也更快,相对于需要调用系统的connect()的默认的扫描模式需要完成三次握手的速度而言。 (6)对目标主机进行UDP端口扫描,运行如下命令: Nmap-sU172.18.34.24(主机1) Nmap-sU172.18.34.134(主机2) 主机1的端口及开放情况: 主机2的端口及开放情况: (7)探测目标主机主机开放端口上所提供的服务及其类型和版本信息,运行如下命令: Nmap-sV172.18.34.24(主机1) Nmap-sV172.18.34.134(主机2) 主机1的端口及其服务版本信息: 主机2的端口及其服务版本信息: (8)探测目标主机的操作系统类型,运行如下命令: Nmap-O-PO172.18.34.24(主机1) Nmap-O-PO172.18.34.134(主机2) 主机1操作系统类型信息 主机2操作系统类型信息 (9)在命令窗口运行Zenmap.exe(即Nmap的图形化前端程序)。 在“Target”文本框中输入扫描目标IP地址/主机名称(172.16.1.101),然后在"Profile”预定义配置下拉框中选择扫描配置"IntenseScan,noPing",然后点击菜单项“Profile"->"EditSelectedProfile",切换到“Scan”选项卡,勾选上“Operatingsystemdetection”和“Versiondetection”后点击“SaveChanges”按钮保存扫描配置,最后点击“Scan”按钮开始扫描。 可以看到最后的扫描参数为nmap-sV-T4-O-A-v-Pn172.18.34.124172.18.34.24 主机1的开放端口、服务版本、操作系统类型信息: 主机2的开放端口、服务版本、操作系统类型信息: 【实验体会】 扫描器是一把双刃剑。 系统或网络管理员可以利用它来检测其所管理的网络和主机中存在哪些漏洞,以便及时打上补丁,增加防护措施,或用来对系统进行安全等级评估。 然而,黑客可以利用它来获取主机信息,寻找具备某些弱点的主机,为进一步攻击做准备。 正如这次实验所看到的,通过Nmap简单地进行扫描,就得到了其他主机的os,开放端口、服务版本等信息,如果被非法利用,后果可能会很严重。 所以用户要减少开放的端口,关闭不必的服务,合理地配置防火墙,以防范扫描行为,这点实验中扫描的Ubuntu主机就做得很好,只有一个端口被扫描到了。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 端口扫描 操作系统 类型 探测 讲解