求: *** 端口扫描器的算法
闪电1.0 是一个多线程的端口扫描工具,用于进行狂速端口扫描。它具有极快的速度 和方便友好的操作界面,能快速地对大网段范围进行 Connect方式端口扫描。同时具有获取端口标识的功能,可以用来快速地获取端口标识(Banner),能对80端口标识进行特别处理,能方便地获取Web Server类型。当扫描到木马程序端口时,可以提示常见木马。 主要功能如下 ( 1) 发现因特网上的一个 *** 或者一台主机。 (2) 一旦发现一台主机,就能扫描到开放端口号和提供的服务, 能对常见木马端口返回标识。 (3)可以进行域名正向解析和反向解析。 (4)可以获取局域网在线主机的MAC地址和主机名。 (5)提供了基于窗口Ping功能和局域网信使服务。 (6)可以获取本机 *** 配制相关信息,如本机IP, 子网掩码,MAC地址,网卡类型和网关IP和DNS的IP。
你可以到 去下载
毕业论文 基于TCP/IP三次握手的端口扫描技术
基于TCP/IP 端口扫描技术
[摘要] 本文讲述了TCP联接的建立过程,以及介绍了一些经典的扫描器以及所谓的SYN扫描器的使用,以及隐藏攻击源的技术,更好介绍了另外一些扫描技术。考虑了一些不是基于TCP端口和主要用来进行安全扫描的扫描工具(例如SATAN)。另外分析了使用扫描器的栈指纹。栈指纹通过检测主机TCP并将应答跟已知操作系统TCP/IP协议栈应答相比较,解决了识别操作系统的问题。 关键字:
TCP/IP,UDP,三阶段握手,SYN扫描,FIN扫描,秘密扫描,间接扫描,诱骗扫描,指纹,协作扫描。
--------------------------------------------------------------------------------
正文:
端口扫描技术
前言
之一部分,我们讲述TCP连接的建立过程(通常称作三阶段握手),然后讨论与扫描程序有关的一些实现细节。
然后,简单介绍一下经典的扫描器(全连接)以及所谓的SYN(半连接)扫描器。
第三部分主要讨论间接扫描和秘密扫描,还有隐藏攻击源的技术。
秘密扫描基于FIN段的使用。在大多数实现中,关闭的端口对一个FIN 段返回一个RST,但是打开的端口通常丢弃这个段,不作任何回答。间接扫描,就像它的名字,是用一个欺骗主机来帮助实施,这台主机通常不是自愿的。
第四部分介绍了一种与应用协议有关扫描。这些扫描器通常利用协议实现中的一些缺陷或者错误。认证扫描(ident scanning)也被成为 *** 扫描(proxy scanning)。
最后一部分,介绍了另外一些扫描技术。考虑了一些不是基于TCP端口和主要用来进行安全扫描的扫描工具(例如SATAN)。另外分析了使用扫描器的栈指纹。栈指纹通过检测主机TCP并将应答跟已知操作系统TCP/IP协议栈应答相比较,解决了识别操作系统的问题。
一:TCP/IP相关问题
连接端及标记
IP地址和端口被称作套接字,它代表一个TCP连接的一个连接端。为了获得TCP服务,必须在发送机的一个端口上和接收机的一个端口上建立连接。TCP连接用两个连接端来区别,也就是(连接端1,连接端2)。连接端互相发送数据包。
一个TCP数据包包括一个TCP头,后面是选项和数据。一个TCP头包含6个标志位。它们的意义分别为:
SYN: 标志位用来建立连接,让连接双方同步序列号。如果SYN=1而ACK=0,则表示该数据包为连接请求,如果SYN=1而ACK=1则表示接受连接。
FIN: 表示发送端已经没有数据要求传输了,希望释放连接。
RST: 用来复位一个连接。RST标志置位的数据包称为复位包。一般情况下,如果TCP收到的一个分段明显不是属于该主机上的任何一个连接,则向远端发送一个复位包。
URG: 为紧急数据标志。如果它为1,表示本数据包中包含紧急数据。此时紧急数据指针有效。
ACK: 为确认标志位。如果为1,表示包中的确认号时有效的。否则,包中的确认号无效。
PSH: 如果置位,接收端应尽快把数据传送给应用层。
TCP连接的建立
TCP是一个面向连接的可靠传输协议。面向连接表示两个应用端在利用TCP传送数据前必须先建立TCP连接。 TCP的可靠性通过校验和,定时器,数据序号和应答来提供。通过给每个发送的字节分配一个序号,接收端接收到数据后发送应答,TCP协议保证了数据的可靠传输。数据序号用来保证数据的顺序,剔除重复的数据。在一个TCP会话中,有两个数据流(每个连接端从另外一端接收数据,同时向对方发送数据),因此在建立连接时,必须要为每一个数据流分配ISN(初始序号)。为了了解实现过程,我们假设客户端C希望跟服务器端S建立连接,然后分析连接建立的过程(通常称作三阶段握手):
1: C --SYN XXà S
2: C ?-SYN YY/ACK XX+1------- S
3: C ----ACK YY+1--à S
1:C发送一个TCP包(SYN 请求)给S,其中标记SYN(同步序号)要打开。SYN请求指明了客户端希望连接的服务器端端口号和客户端的ISN(XX是一个例子)。
2:服务器端发回应答,包含自己的SYN信息ISN(YY)和对C的SYN应答,应答时返回下一个希望得到的字节序号(YY+1)。
3:C 对从S 来的SYN进行应答,数据发送开始。
一些实现细节
大部分TCP/IP实现遵循以下原则:
1:当一个SYN或者FIN数据包到达一个关闭的端口,TCP丢弃数据包同时发送一个RST数据包。
2:当一个RST数据包到达一个监听端口,RST被丢弃。
3:当一个RST数据包到达一个关闭的端口,RST被丢弃。
4:当一个包含ACK的数据包到达一个监听端口时,数据包被丢弃,同时发送一个RST数据包。
5:当一个SYN位关闭的数据包到达一个监听端口时,数据包被丢弃。
6:当一个SYN数据包到达一个监听端口时,正常的三阶段握手继续,回答一个SYN ACK数据包。
7:当一个FIN数据包到达一个监听端口时,数据包被丢弃。"FIN行为"(关闭得端口返回RST,监听端口丢弃包),在URG和PSH标志位置位时同样要发生。所有的URG,PSH和FIN,或者没有任何标记的TCP数据包都会引起"FIN行为"。
二:全TCP连接和SYN扫描器
全TCP连接
全TCP连接是长期以来TCP端口扫描的基础。扫描主机尝试(使用三次握手)与目的机指定端口建立建立正规的连接。连接由系统调用connect()开始。对于每一个监听端口,connect()会获得成功,否则返回-1,表示端口不可访问。由于通常情况下,这不需要什么特权,所以几乎所有的用户(包括多用户环境下)都可以通过connect来实现这个技术。
这种扫描 *** 很容易检测出来(在日志文件中会有大量密集的连接和错误记录)。Courtney,Gabriel和TCP Wrapper监测程序通常用来进行监测。另外,TCP Wrapper可以对连接请求进行控制,所以它可以用来阻止来自不明主机的全连接扫描。
TCP SYN扫描
在这种技术中,扫描主机向目标主机的选择端口发送SYN数据段。如果应答是RST,那么说明端口是关闭的,按照设定就探听其它端口;如果应答中包含SYN和ACK,说明目标端口处于监听状态。由于所有的扫描主机都需要知道这个信息,传送一个RST给目标机从而停止建立连接。由于在SYN扫描时,全连接尚未建立,所以这种技术通常被称为半打开扫描。SYN扫描的优点在于即使日志中对扫描有所记录,但是尝试进行连接的记录也要比全扫描少得多。缺点是在大部分操作系统下,发送主机需要构造适用于这种扫描的IP包,通常情况下,构造SYN数据包需要超级用户或者授权用户访问专门的系统调用。
三:秘密扫描与间接扫描
秘密扫描技术
由于这种技术不包含标准的TCP三次握手协议的任何部分,所以无法被记录下来,从而必SYN扫描隐蔽得多。另外,FIN数据包能够通过只监测SYN包的包过滤器。
秘密扫描技术使用FIN数据包来探听端口。当一个FIN数据包到达一个关闭的端口,数据包会被丢掉,并且回返回一个RST数据包。否则,当一个FIN数据包到达一个打开的端口,数据包只是简单的丢掉(不返回RST)。
Xmas和Null扫描是秘密扫描的两个变种。Xmas扫描打开FIN,URG和PUSH标记,而Null扫描关闭所有标记。这些组合的目的是为了通过所谓的FIN标记监测器的过滤。
秘密扫描通常适用于UNIX目标主机,除过少量的应当丢弃数据包却发送reset信号的操作系统(包括CISCO,BSDI,HP/UX,MVS和IRIX)。在Windows95/NT环境下,该 *** 无效,因为不论目标端口是否打开,操作系统都发送RST。
跟SYN扫描类似,秘密扫描也需要自己构造IP 包。
间接扫描
间接扫描的思想是利用第三方的IP(欺骗主机)来隐藏真正扫描者的IP。由于扫描主机会对欺骗主机发送回应信息,所以必须监控欺骗主机的IP行为,从而获得原始扫描的结果。间接扫描的工作过程如下:
假定参与扫描过程的主机为扫描机,隐藏机,目标机。扫描机和目标记的角色非常明显。隐藏机是一个非常特殊的角色,在扫描机扫描目的机的时候,它不能发送任何数据包(除了与扫描有关的包)。
四:认证扫描和 *** 扫描
认证扫描
到目前为止,我们分析的扫描器在设计时都只有一个目的:判断一个主机中哪个端口上有进程在监听。然而,最近的几个新扫描器增加了其它的功能,能够获取监听端口的进程的特征和行为。
认证扫描是一个非常有趣的例子。利用认证协议,这种扫描器能够获取运行在某个端口上进程的用户名(userid)。认证扫描尝试与一个TCP端口建立连接,如果连接成功,扫描器发送认证请求到目的主机的113TCP端口。认证扫描同时也被成为反向认证扫描,因为即使最初的RFC建议了一种帮助服务器认证客户端的协议,然而在实际的实现中也考虑了反向应用(即客户端认证服务器)。
*** 扫描
文件传输协议(FTP)支持一个非常有意思的选项: *** ftp连接。这个选项最初的目的(RFC959)是允许一个客户端同时跟两个FTP服务器建立连接,然后在服务器之间直接传输数据。然而,在大部分实现中,实际上能够使得FTP服务器发送文件到Internet的任何地方。许多攻击正是利用了这个缺陷。最近的许多扫描器利用这个弱点实现ftp *** 扫描。
ftp端口扫描主要使用ftp *** 服务器来扫描tcp端口。扫描步骤如下:
1:假定S是扫描机,T是扫描目标,F是一个ftp服务器,这个服务器支持 *** 选项,能够跟S和T建立连接。
2:S与F建立一个ftp会话,使用PORT命令声明一个选择的端口(称之为p-T)作为 *** 传输所需要的被动端口。
3:然后S使用一个LIST命令尝试启动一个到p-T的数据传输。
4:如果端口p-T确实在监听,传输就会成功(返回码150和226被发送回给S)。否则S回收到"425无法打开数据连接"的应答。
5:S持续使用PORT和LIST命令,直到T上所有的选择端口扫描完毕。
FTP *** 扫描不但难以跟踪,而且当ftp服务器在_blank"防火墙后面的时候
五:其它扫描 ***
Ping扫描
如果需要扫描一个主机上甚至整个子网上的成千上万个端口,首先判断一个主机是否开机就非常重要了。这就是Ping扫描器的目的。主要由两种 *** 用来实现Ping扫描。
1:真实扫描:例如发送ICMP请求包给目标IP地址,有相应的表示主机开机。
2:TCP Ping:例如发送特殊的TCP包给通常都打开且没有过滤的端口(例如80端口)。对于没有root权限的扫描者,使用标准的connect来实现。否则,ACK数据包发送给每一个需要探测的主机IP。每一个返回的RST表明相应主机开机了。另外,一种类似于SYN扫描端口80(或者类似的)也被经常使用。
安全扫描器
安全扫描器是用来自动检查一个本地或者远程主机的安全漏洞的程序。象其它端口扫描器一样,它们查询端口并记录返回结果。但是它们。它们主要要解决以下问题:
1:是否允许匿名登录。
2:是否某种 *** 服务需要认证。
3:是否存在已知安全漏洞。
可能SATAN是最著名的安全扫描器。1995年四月SATAN最初发布的时候,人们都认为这就是它的最终版本,认为它不但能够发现相当多的已知漏洞,而且能够针对任何很难发现的漏洞提供信息。但是,从它发布以来,安全扫描器一直在不断地发展,其实现机制也越来越复杂。
栈指纹
绝大部分安全漏洞与缺陷都与操作系统相关,因此远程操作系统探测是系统管理员关心的一个问题。
远程操作系统探测不是一个新问题。近年来,TCP/IP实现提供了主机操作系统信息服务。FTP,TELNET,HTTP和DNS服务器就是很好的例子。然而,实际上提供的信息都是不完整的,甚至有可能是错误的。最初的扫描器,依靠检测不同操作系统对TCP/IP的不同实现来识别操作系统。由于差别的有限性,现在只能最多只能识别出10余种操作系统。
最近出现的两个扫描器,QueSO和NMAP,在指纹扫描中引入了新的技术。 QueSO之一个实现了使用分离的数据库于指纹。NMAP包含了很多的操作系统探测技术,定义了一个模板数据结构来描述指纹。由于新的指纹可以很容易地以模板的形式加入,NMAP指纹数据库是不断增长的,它能识别的操作系统也越来越多。
这种使用扫描器判断远程操作系统的技术称为(TCP/IP)栈指纹技术。
另外有一种技术称为活动探测。活动探测把TCP的实现看作一个黑盒子。通过研究TCP对探测的回应,就可以发现 TCP实现的特点。TCP/IP 栈指纹技术是活动探测的一个变种,它适用于整个TCP/IP协议的实现和操作系统。栈指纹使用好几种技术来探测TCP/IP协议栈和操作系统的细微区别。这些信息用来创建一个指纹,然后跟已知的指纹进行比较,就可以判断出当前被扫描的操作系统。
栈指纹扫描包含了相当多的技术。下面是一个不太完整的清单:
1:FIN探测
2:BOGUS标记探测
3:TCP ISN 取样
4:TCP 初始窗口
5:ACK值
6:ICMP错误信息
7:ICMP信息
8:服务类型
9:TCP选项
毕业论文
相关资料:
企业内网安全分析与策略
一、背景分析
提起 *** 信息安全,人们自然就会想到病毒破坏和黑客攻击。其实不然, *** 和企业因信息被窃取所造成的损失远远超过病毒破坏和黑客攻击所造成的损失,据权威机构调查:三分之二以上的安全威胁来自泄密和内部人员犯罪,而非病毒和外来黑客引起。
目前, *** 、企业等社会组织在 *** 安全防护建设中,普遍采用传统的内网边界安全防护技术,即在组织 *** 的边缘设置网关型边界防火墙、AAA认证、入侵检测系统IDS等等 *** 边界安全防护技术,对 *** 入侵进行监控和防护,抵御来自组织外部攻击、防止组织 *** 资源、信息资源遭受损失,保证组织业务流程的有效进行。
这种解决策略是针对外部入侵的防范,对于来自 *** 内部的对企业 *** 资源、信息资源的破坏和非法行为的安全防护却无任何作用。对于那些需要经常移动的终端设备在安全防护薄弱的外部 *** 环境的安全保障,企业基于 *** 边界的安全防护技术就更是鞭长莫及了,由此危及到内部 *** 的安全。一方面,企业中经常会有人私自以Modem拨号方式、手机或无线网卡等方式上网,而这些机器通常又置于企业内网中,这种情况的存在给企业 *** 带来了巨大的潜在威胁;另一方面,黑客利用虚拟专用 *** VPN、无线局域网、操作系统以及 *** 应用程序的各种漏洞就可以绕过企业的边界防火墙侵入企业内部 *** ,发起攻击使内部 *** 瘫痪、重要服务器宕机以及破坏和窃取企业内部的重要数据。
二、内网安全风险分析
现代企业的 *** 环境是建立在当前飞速发展的开放 *** 环境中,顾名思义,开放的环境既为信息时代的企业提供与外界进行交互的窗口,同时也为企业外部提供了进入企业最核心地带——企业信息系统的便捷途径,使企业 *** 面临种种威胁和风险:病毒、蠕虫对系统的破坏;系统软件、应用软件自身的安全漏洞为不良企图者所利用来窃取企业的信息资源;企业终端用户由于安全意识、安全知识、安全技能的匮乏,导致企业安全策略不能真正的得到很好的落实,开放的 *** 给企业的信息安全带来巨大的威胁。
1.病毒、蠕虫入侵
目前,开放 *** 面临的病毒、蠕虫威胁具有传播速度快、范围广、破坏性大、种类多、变化快等特点,即使再先进的防病毒软件、入侵检测技术也不能独立有效地完成安全防护,特别是对新类型新变种的病毒、蠕虫,防护技术总要相对落后于新病毒新蠕虫的入侵。
病毒、蠕虫很容易通过各种途径侵入企业的内部 *** ,除了利用企业 *** 安全防护措施的漏洞外,更大的威胁却是来自于内部 *** 用户的各种危险应用:不安装杀毒软件;安装杀毒软件但不及时升级; *** 用户在安装完自己的办公桌面系统后,未采取任何有效防护措施就连接到危险的 *** 环境中,特别是Internet;移动用户计算机连接到各种情况不明 *** 环境,在没有采取任何防护措施的情况下又连入企业 *** ;桌面用户在终端使用各种数据介质、软件介质等等都可能将病毒、蠕虫在不知不觉中带入到企业 *** 中,给企业信息基础设施,企业业务带来无法估量的损失。
2.软件漏洞隐患
企业 *** 通常由数量庞大、种类繁多的软件系统组成,有系统软件、数据库系统、应用软件等等,尤其是存在于广大终端用户办公桌面上的各种应用软件不胜繁杂,每一个软件系统都有不可避免的、潜在的或已知的软件漏洞。无论哪一部分的漏洞被利用,都会给企业带来危害,轻者危及个别设备,重者成为攻击整个企业 *** 媒介,危及整个企业 *** 安全。
3.系统安全配置薄弱
企业 *** 建设中应用的各种软件系统都有各自默认的安全策略增强的安全配置设置,例如,账号策略、审核策略、屏保策略、匿名访问限制、建立拨号连接限制等等。这些安全配置的正确应用对于各种软件系统自身的安全防护的增强具有重要作用,但在实际的企业 *** 环境中,这些安全配置却被忽视,尤其是那些 *** 的终端用户,导致软件系统的安全配置成为“软肋”、有时可能严重为配置漏洞,完全暴露给整个外部。例如某些软件系统攻击中采用的“口令强制攻击”就是利用了弱口令习惯性的使用安全隐患,黑客利用各种 *** 应用默认安装中向外部提供的有限信息获取攻击的必要信息等等。
4.脆弱的 *** 接入安全防护
传统的 *** 访问控制都是在企业 *** 边界进行的,或在不同的企业内网不同子网边界进行且在 *** 访问用户的身份被确认后,用户即可以对企业内网进行各种访问操作。在这样一个访问控制策略中存在无限的企业 *** 安全漏洞,例如,企业 *** 的合法移动用户在安全防护较差的外网环境中使用VPN连接、远程拨号、无线AP,以太网接入等等 *** 接入方式,在外网和企业内网之间建立一个安全通道。
另一个传统 *** 访问控制问题来自企业 *** 内部,尤其对于大型企业 *** 拥有成千上万的用户终端,使用的 *** 应用层出不穷,目前对于企业网管很难准确的控制企业 *** 的应用,这样的现实导致安全隐患的产生:员工使用未经企业允许的 *** 应用,如邮件服务器收发邮件,这就可能使企业的保密数据外泄或感染邮件病毒;企业内部员工在终端上私自使用未经允许的 *** 应用程序,在此过程中就有可能下载到带有病毒、木马程序等恶意代码的软件,从而感染内部 *** ,进而造成内部 *** 中敏感数据的泄密或损毁。
5.企业 *** 入侵
现阶段黑客攻击技术细分下来共有8类,分别为入侵系统类攻击、缓冲区溢出攻击、欺骗类攻击、拒绝服务攻击、对防火墙的攻击、病毒攻击、伪装程序/木马程序攻击、后门攻击。
对于采取各种传统安全防护措施的企业内网来说,都没有万无一失的把握;对于从企业内网走出到安全防护薄弱的外网环境的移动用户来说,安全保障就会严重恶化,当移动用户连接到企业内网,就会将各种 *** 入侵带入企业 *** 。
6.终端用户计算机安全完整性缺失
随着 *** 技术的普及和发展,越来越多的员工会在企业专网以外使用计算机办公,同时这些移动员工需要连接回企业的内部 *** 获取工作必须的数据。由于这些移动用户处于专网的保护之外,很有可能被黑客攻陷或感染 *** 病毒。同时,企业现有的安全投资(如:防病毒软件、各种补丁程序、安全配置等)若处于不正常运行状态,终端员工没有及时更新病毒特征库,或私自卸载安全软件等,将成为黑客攻击内部 *** 的跳板。
三、内网安全实施策略
1.多层次的病毒、蠕虫防护
病毒、蠕虫破坏 *** 安全事件一直以来在 *** 安全领域就没有一个根本的解决办法,其中的原因是多方面的,有人为的原因,如不安装防杀病毒软件,病毒库未及时升级等等,也有技术上的原因,杀毒软件、入侵防范系统等安全技术对新类型、新变异的病毒、蠕虫的防护往往要落后一步。危害好像是无法避免的,但我们可以控制它的危害程度,只要我们针对不同的原因采取有针对性的切实有效的防护办法,就会使病毒、蠕虫对企业的危害减少到更低限度,甚至没有危害。这样,仅靠单一、简单的防护技术是难以防护病毒、蠕虫的威胁的。
2.终端用户透明、自动化的补丁管理,安全配置
为了弥补和纠正运行在企业 *** 终端设备的系统软件、应用软件的安全漏洞,使整个企业 *** 安全不至由于个别软件系统的漏洞而受到危害,完全必要在企业的安全管理策略中加强对补丁升级、系统安全配置的管理。
用户可通过管理控制台集中管理企业 *** 终端设备的软件系统的补丁升级、系统配置策略,定义终端补丁下载。将补丁升级策略、增强终端系统安全配置策略下发给运行于各终端设备上的安全 *** ,安全 *** 执行这些策略,以保证终端系统补丁升级、安全配置的完备有效,整个管理过程都是自动完成的,对终端用户来说完全透明,减少了终端用户的麻烦和企业 *** 的安全风险,提高企业 *** 整体的补丁升级、安全配置管理效率和效用,使企业 *** 的补丁及安全配置管理策略得到有效的落实。
3.全面的 *** 准入控制
为了解决传统的外网用户接入企业 *** 给企业 *** 带来的安全隐患,以及企业 *** 安全管理人员无法控制内部员工 *** 行为给企业 *** 带来的安全问题,除了有效的解决企业员工从企业内网、外网以各种 *** 接入方式接入企业 *** 的访问控制问题,同时对传统的 *** 边界访问控制没有解决的 *** 接入安全防护措施,而采用边界准入控制、接入层准入控制等技术进行全面的实现准入控制。当外网用户接入企业 *** 时,检查客户端的安全策略状态是否符合企业整体安全策略,对于符合的外网访问则放行。一个全面的 *** 准入检测系统。
4.终端设备安全完整性保证
主机完整性强制是确保企业 *** 安全的关键组件。主机完整性可确保连接到企业网的客户端正运行着所需的应用程序和数据文件。信息安全业界已经开发出了多种基于主机的安全产品,以确保企业 *** 和信息的安全,阻止利用 *** 连接技术、应用程序和操作系统的弱点和漏洞所发起的攻击。并已充分采用了在个人防火墙、入侵检测、防病毒、文件完整性、文件加密和安全补丁程序等方面的技术进步来有效地保护企业设备。然而,只有在充分保证这些安全技术的应用状态、更新级别和策略完整性之后,才能享受这些安全技术给企业 *** 安全带来的益处。如果企业端点设备不能实施主机完整性,也就不能将该设备看成企业 *** 受信设备。
仅供参考,请自借鉴
希望对您有帮助
0条大神的评论