专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »安全 » 网络端口扫描技术全攻略 »正文

网络端口扫描技术全攻略

来源: 发布时间:星期五, 2009年9月11日 浏览:0次 评论:0
=tpc_content>: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建立连接然后分析连接建立过程(通常称作 3阶段握手):

  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)和对CSYN应答应答时返回下个希望得到字节序号(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数据包到达个监听端口时正常 3阶段握手继续回答个SYN ACK数据包

  7:当个FIN数据包到达个监听端口时数据包被丢弃"FIN行为"(关闭得端口返回RST监听端口丢弃包)在URG和PSH标志位置位时同样要发生所有URGPSH和FIN或者没有任何标记TCP数据包都会引起"FIN行为"

2:全TCP连接和SYN扫描器

  全TCP连接

  全TCP连接是长期以来TCP端口扫描基础扫描主机尝试(使用 3次握手)和目机指定端口建立建立正规连接连接由系统connect开始对于每个监听端口connect会获得成功否则返回-1表示端口不可访问由于通常情况下这不需要什么特权所以几乎所有用户(包括多用户环境下)都可以通过connect来实现这个技术

  这种扫描思路方法很容易检测出来(在日志文件中会有大量密集连接和记录)Courtney,Gabriel和TCP Wrapper监测通常用来进行监测另外TCP Wrapper可以对连接请求进行控制所以它可以用来阻止来自不明主机全连接扫描

  TCP SYN扫描

  在这种技术中扫描主机向目标主机选择端口发送SYN数据段如果应答是RST那么介绍说明端口是关闭按照设定就探听其它端口;如果应答中包含SYN和ACK介绍说明目标端口处于监听状态由于所有扫描主机都需要知道这个信息传送个RST给目标机从而停止建立连接由于在SYN扫描时全连接尚未建立所以这种技术通常被称为半打开扫描SYN扫描优点在于即使日志中对扫描有所记录但是尝试进行连接记录也要比全扫描少得多缺点是在大部分操作系统下发送主机需要构造适用于这种扫描IP包通常情况下构造SYN数据包需要超级用户或者授权用户访问专门系统

   3:秘密扫描和间接扫描

  秘密扫描技术

  由于这种技术不包含标准TCP 3次握手协议任何部分所以无法被记录下来从而必SYN扫描隐蔽得多另外FIN数据包能够通过只监测SYN包包过滤器

  秘密扫描技术使用FIN数据包来探听端口个FIN数据包到达个关闭端口数据包会被丢掉并且回返回个RST数据包否则个FIN数据包到达个打开端口数据包只是简单丢掉(不返回RST)

  Xmas和Null扫描是秘密扫描两个变种Xmas扫描打开FINURG和PUSH标记而Null扫描关闭所有标记这些组合是为了通过所谓FIN标记监测器过滤

  秘密扫描通常适用于UNIX目标主机除过少量应当丢弃数据包却发送re信号操作系统(包括CISCOBSDIHP/UXMVS和IRIX)在Windows95/NT环境下该思路方法无效不论目标端口是否打开操作系统都发送RST

  跟SYN扫描类似秘密扫描也需要自己构造IP 包   

  间接扫描

  间接扫描思想是利用第 3方IP(欺骗主机)来隐藏真正扫描者IP由于扫描主机会对欺骗主机发送回应信息所以必须监控欺骗主机IP行为从而获得原始扫描结果间接扫描工作过程如下:

  假定参和扫描过程主机为扫描机隐藏机目标机扫描机和目标记角色非常明显隐藏机是个非常特殊角色在扫描机扫描目时候它不能发送任何数据包(除了和扫描有关包)   

   4:认证扫描和代理扫描

  认证扫描

  到目前为止我们分析扫描器在设计时都只有个目:判断个主机中哪个端口上有进程在监听然而最近几个新扫描器增加了其它功能能够获取监听端口进程特征和行为

  认证扫描是个非常有趣例子利用认证协议这种扫描器能够获取运行在某个端口上进程用户名(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服务器在防火墙后面时候

5:其它扫描思路方法

  Ping扫描

  如果需要扫描个主机上甚至整个子网上成千上万个端口首先判断个主机是否开机就非常重要了这就是Ping扫描器主要由两种思路方法用来实现Ping扫描

  1:真实扫描:例如发送ICMP请求包给目标IP地址有相应表示主机开机

  2:TCP Ping:例如发送特殊TCP包给通常都打开且没有过滤端口(例如80端口)对于没有root权限扫描者使用标准connect来实现否则ACK数据包发送给每个需要探测主机IP个返回RST表明相应主机开机了另外种类似于SYN扫描端口80(或者类似)也被经常使用   

  安全扫描器

  安全扫描器是用来自动检查个本地或者远程主机安全漏洞象其它端口扫描器它们查询端口并记录返回结果但是它们它们主要要解决以下问题:

  1:是否允许匿名登录

  2:是否某种网络服务需要认证

  3:是否存在已知安全漏洞

  可能SATAN是最著名安全扫描器1995年 4月SATAN最初发布时候人们都认为这就是它最终版本认为它不但能够发现相当多已知漏洞而且能够针对任何很难发现漏洞提供信息但是从它发布以来安全扫描器直在不断地发展其实现机制也越来越复杂   

  栈指纹

  绝大部分安全漏洞和缺陷都和操作系统相关因此远程操作系统探测是系统管理员关心个问题

  远程操作系统探测不是个新问题近年来TCP/IP实现提供了主机操作系统信息服务FTPTELNETHTTP和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选项


  • 篇文章: 黑客道德准则 不是所有黑客都是罪犯

  • 篇文章: 7类黑客各有“黑招”
  • 标签:
    0

    相关文章

    读者评论

    发表评论

    • 昵称:
    • 内容: