第7章端口扫描技术本章要点TCP/IP工作原理。端口的概念以及各种端口扫描技术的工作原理。常见端口扫描工具应用方法。防范端口扫描技术的应用。7.1端口概述7.1.1TCP/IP工作原理1.TCP/IP参考模型TCP/IP参考模型来源于20世纪60年代末美国的一个网络分组交换研究项目,它是一系列网络协议的总称,这些协议使计算机之间可以进行信息交换。TCP/IP参考模型分为4层,每一层负责不同的通信功能,从上到下依次为:应用层、传输层、Internet层、网络接入层。2.TCP与UDPTCP/IP参考模型的传输层包括TCP和UDP,TCP(TransmissionControlProtocol)是传输控制协议,它提供可靠的、面向连接的传输服务,在传送数据前需要先建立连接,确认信息到达目的,并具有完善的错误检测与恢复、顺序控制和流量控制等功能UDP(UserDatagramProtocol)是用户数据报协议,它提供不可靠的、无连接的传输服务,在传送数据前不需要先建立连接,不确认信息是否到达。3.TCP三次握手三次握手(Three-wayHandshaking)是指用TCP发送数据时事先通过三次通信建立连接,使收发双方同步,并交换TCP窗口大小信息。TCP连接在发送新的数据之前都要通过三次握手进行初始化,将数据包以特定的顺序编号传输,并确认这些数据包是否到达目的地,以此提供可靠的数据传送。TCP三次握手的过程7.1.2端口的定义端口是专门为计算机通信而设计的,计算机通信离不开端口。在计算机网络中,端口(Port)一般分为硬件端口和软件端口两种。集线器、交换机、路由器这类网络设备上用于连接到其他网络设备的接口称为硬件端口。套接字由IP地址和端口两部分组成,这里的端口就是软件端口。软件端口通常指网络服务、通信协议的端口,是逻辑上的概念,定义了计算机之间通过软件方式的通信。7.1.3端口的分类1.根据端口的性质划分(1)公认端口(2)注册端口(3)动态和私有端口2.根据提供的服务方式划分(1)TCP端口(2)UDP端口7.2端口扫描技术7.2.1端口扫描概述1.端口扫描原理端口扫描(PortScanning)是一种通过连接到目标计算机的TCP和UDP端口来确定目标计算机上运行的进程和服务的方法。2.端口扫描目的和用途1)能识别在线的一台计算机或多台计算机组成的网络。2)能识别计算机上启用的服务、开放的端口。3)能识别计算机上操作系统类型、系统信息。4)能识别计算机上应用程序和特定服务的版本。5)能识别计算机的系统漏洞、软件漏洞。7.2.2常见的端口扫描技术1.TCP全连接扫描2.TCP同步序列号扫描(SYN扫描)3.TCP结束标志扫描(FIN扫描)4.TCPconnect()扫描5.IP段扫描6.ICMPecho扫描7.UDPICMP端口不能到达扫描8.代理扫描7.3常见扫描软件及其应用7.3.1扫描软件概述扫描软件是基于扫描技术开发出来的一种自动检测本地或远程计算机安全性弱点的程序。7.3.2SuperScan扫描工具及应用SuperScan是一款免费的功能比较强大的扫描工具。SuperScan能够帮助网管员发现网络中的弱点,以便采取相应的措施。基本使用方法见课本。7.4端口扫描防御技术应用7.4.1查看端口的状态1.用netstat命令查看在DOS命令提示符界面中,输入“netstat–an”,“Proto”代表协议,“LocalAddress”代表本机地址,该地址冒号后的数字就是开放的端口号;“ForeignAddress”代表远程计算机地址,如果和其他机器正在通信,显示的就是对方的地址。2.用软件工具TCPView查看TCPViewv3.02是一款Sysinternals开发的绿色软件,在主界面中它能显示本机连接进程所对应的端口的状态,且在Windows2000/XP/2003操作系统中会直接显示该程序的系统图标,TCPView能随着系统状态的变化而动态更新。7.4.2关闭闲置和危险的端口1.关闭闲置的服务在WindowsNT系列操作系统中,打开“控制面板”→“管理工具”→“服务”,找到计算机中未被使用的服务,选择该服务后单击鼠标右键,在弹出的快捷菜单中选择“停止”命令,将这些服务关闭,其对应的端口也会被关闭。2.设置“TCP/IP筛选”关闭端口打开“本地连接属性”对话框,双击“Internet协议(TCP/IP)”,单击“高级”按钮,在弹出的对话框中选中“选项”选项卡,单击“属性”按钮,打开“TCP/IP筛选”对话框,选中“启用TCP/IP筛选”复选框,单击“添加”按钮,在这里可以添加TCP/UDP端口。3.利用防火墙屏蔽端口Windows系统防火墙单击“例外”标签,可以选择已经开启的应用程序,单击“删除”按钮来屏蔽掉与该应用程序关联的端口。7.4.3隐藏操作系统类型1.扫描识别操作系统类型(1)通过ping命令返回TTL值识别(默认情况)①FreeBSD、UNIX及类UNIX等类型的操作系统的ICMP回显应答的TTL字段值为255;②Windows2000/NT等类型的操作系统的ICMP回显应答的TTL字段值为128;③CompaqTru64、Linux等类型的操作系统的ICMP回显应答的TTL字段值为64;④Windows95/98/98SE/Me等类型的操作系统的ICMP回显应答的TTL字段值为32。1.扫描识别操作系统类型(2)通过连接端口的返回信息识别1)假设已知目标计算机开放了端口21,在DOS下,输入“ftp[IP地址]”:若返回信息中含有“MicrosoftFTPService(Version5.0)”的字样,可断定是Windows2000操作系统;若返回信息中含有“UFTPServerv4.0forWinSockready”的字样,可断定是Windows操作系统;若返回信息中含有“vsFTPd1.1.0”,可断定是UINX操作系统。2)假设已知目标计算机开放了端口80,在DOS下,输入“telnet[IP地址][80]”:若返回信息中含有“Server:Microsoft-IIS/5.0”的字样,可断定是Windows操作系统。3)假设已知目标计算机开放了端口23,在DOS下,输入“telnet[IP地址]”:若返回信息中含有“WelcometoMicrosoftTelnetService”的字样,可断定是Windows操作系统;若返回信息中含有“SunOS”的字样,可断定是UINX操作系统。(3)通过开放的端口号识别如果一台计算机启用了135、139端口,则通常认为该计算机安装的是Windows系列操作系统;如果同时还启用了5000端口,则认为该计算机为WindowsXP操作系统。1.扫描识别操作系统类型2.修改计算机的默认TTL值打开注册表编辑器,展开“HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters”,在界面右侧空白区域单击鼠标右键,在弹出的快捷菜单中选择“新建”→“DWORD值”,弹出“编辑DWORD值”对话框,“数值名称”文本框中输入“DefaultTTL”,将该值修改为十进制的“255”或十六进制的“ff”,重启计算机。7.5实训项目【实训项目】端口屏蔽【实训目的】学会应用IPSec屏蔽危险端口。7.6小结与练习7.6.1小结本章重点介绍了端口的种类、端口的扫描技术、端口扫描软件的应用以及防御端口扫描攻击的方法。本章的重点在防御端口扫描,要求掌握常见的服务所对应的端口号、如何关闭自身计算机未使用的开放端口以减少被攻击的危险、如何隐藏自身的系统信息以防止黑客进行端口扫描。7.6.2练习1.端口的种类和常用的端口扫描软件有哪些?2.如何防御端口扫描的攻击?3.简述如何扫描目标计算机的开放端口。