金沙国际会员登录

将想法与焦点和您一起共享

同塔安全与防发布者:本站     时间:2019-11-21 11:11:16

还有许多入侵者将为自己开的后门设在一个非常高的端口上,这些不常用的端口,常常被扫描程序忽略。入侵者通过这些端口可以任意使用系统的资源,也为他人非法访问这台主机开了方便之门。在国内,许多不能直接出国的主机上的用户总爱将一些 Proxy之类的程序,偷倫地安装在一些方便出国的主机上,将大笔的流量账单转嫁到他人身上。有许多方法可以检测到这类活动,其中之一便是使用端口扫描程序。
2.7.2各种端口担描 
 
通常说来,最简单的端口扫描程序仅仅是检查一下目标主机有哪些端口可以建立TCP连接,如果可以建立连接,则说明该主机在那个端口监听。当然,这种端口扫描程序不能进一步确定端口提供什么样的服务,也不能确定该服务是否有众所周知的那些缺陷要想知道端口上具体是什么服务,则必须用相应的协议来验证。因为一个服务进程客户端提供正确的命令序列,才能完成正确的文件传输服务。远程终端服务在一开始总是要 为了完成某种具体的工作,比如说,文件传输服务有文件传输的一套协议,只有按照这个协议,交换许多关于终端的信息,才能在用户端实现正常的显示。因此,应用层协议是各不相同的。
个专门在网络上搜寻代理的程序,总是试图连接一台主机的许多端口,如果能够通过这许多端口之一,调来某一个WwW站点的网页,则可以认为在这个端口正在运行着一个代理程序。
这种方法可以被目标主机检测到,并被记录下来。因为这种方法总是要主动去与目标主机建立连接。而建立连接之后,便被目标主机记录下来。另外,可以被防火墙之类的系统过滤掉。当防火墙检查通过的IP包时,对于这种来自未知的源IP地址的包总是非常警愒的。因此,入侵者为了有效地隐蔽自己,又能进行端口扫描,需要寻找更有效的方法。有许多利用TCP/IP协议的本身特征,实现隐身的技巧可供入侵者利用。了解这些知识对于管理员和配置防火墙有很大的帮助。一些防火墙已提供这方面的过滤功能。现在,让我们先来温习ー下IP数据包中的一些字段的含义吧。
个在TCP数据包的报头中有六个位,分别表示FIN、SYN、RST、PSHI、ACK和URGa其中,ACK被置1,表明确认号是有效的;如果这一位被清零,数据包中不包含一个确认号域将被忽略。
 
PSH提示数据的接收者将收到的数据直接交给应用程序,而不是将它放在缓冲区,直到缓冲区满才交给应用程序。它常用一些实时的通信。RST用来重置一个连接,用于ー台主机崩溃或一些其它原因而引起的通信混乱。它也被用来拒绝接收一个无效的TCP数据包,或者用来拒绝一个建立连接的企图。当得到一个重置 口8,RST的TCP数据包,通常说明本机有一些问题用,对连接请求需要应答,所以,在应答的TCP数据包中,SYN=1、ACK=L,SYN通常用来指 sYN用来建立一个连接。在连接请求数据包中,SYN=1、ACK=0指明确认域没有使明连接请求和连接请求被接收,而用ACK来区分这两种情况。FN用来释放一个连接。它指出发送者已经没有数据要发送。然而,当关ー个连接之后,一个进程还可以继续接收数据。SUN和FIN的TCP数据包都有顺序号。因此,可保证数据按照正确的顺序被处理。

 
下面让我们看一看利用上述这些信息,人侵者是如何障藏自己的端口扫描活动的。
(1) TCP connect()的扫描。这是最基本的一种扫描方式。使用系统提供的 connect说明该端口不可访问。它的一个特点是,使用 TCP connect()不需要任何特权,任何Unix用r 统调用并建立与想要的目标主机的端口的连接。如果端口正在监听, connec()就返回,否则、接目标主机的端口,还可以同时使用多个ekt,来加快扫描的速度。使用个非阻塞的 都可以使用这个系统调用另一个特点是速度快。除了串行地使用单个cm()调用来调用将可以同时监视多个Ska另外,这种扫描方式容島被检测到,并且被过滤。主机的日志文件将会记录下这些達连接信息和错误信息,然后立即关闭连接
 
 
(2) TCP SYN扫描。这种扫描通常称为半开扫描,因为并不是一个全TCP连接。通过发送一个SYN数据包,就好像准备打开一个真正的连接,然后等待响应。一个SYN/ACK表明 该端口正在监听,一个RST响应表明该端口没有被监听。如果收到一个 SYN/ACK,通过立户权限才能建立这种可配置的SYN数据包。文的五記部,令命的五 即发送一个RST来关闭连接。它的特点是极少有主机来记录这种连接请求,但必须有超级用
(3) TCP FIN扫描。在很多情况下,即使是SYN扫描也不能做到很隐秘。些防火墙和包过滤程序监视SYN数据包访间个未被允许访问的端口,=些程序可以检测到这些扫描。
然而,FIN数据包却有可能通过这些扫描。回 其基本思想是:关闭的端口将会用正确的RST来应答发送的FIN数据包,而相反,打开的端口往往忽略这些请求。这是一个TCP实现上的错误,但不是所有的系统都存在着类似错误,因此,并不是对所有的系统都有效。に自来部数、加高 
(4) Fragmentation扫描。这种扫描并不是仅仅发送检测的数据包,而是将要发送的数据包分成一组更小的IP包。通过将TCP包头分成几段,放人不同的IP包中,将使得包过滤程序难以过滤,因此,可以做到想要做的扫描活动。然而,一些程序很难处理这些过小的包。
 
(5) UDP recfrom()和 write()扫描。一些人认为,UDP的扫描是无意义的。没有Root权限的用户不能直接得到端口不可访问的错误,但是 Linux可以间接地通知用户。例如,一个关闭的端口的第二次 write()调用通常会失败。如果在一个非阻塞的 Udpsocket上调用 rector()通常会返回 EAGAIN()(“ Try again",eror=13),而ICMP则收到一个 ECONNERFUSED(" Connection refused”,erno=111)的错误信息。
 
(6)ICMP的扫描。这并不是一个真正的端口扫描,因为ICMP并没有端口的抽象。然而,用PING这个命令,通常可以得到网上目标主机是否正在运行的信息。
当前,无论是计算机用户,还是一个银行的户头,都是通过口令来进行身份认证的,口令是维持安全的第一道防线。可是,使用口令面临着许多的安全问题现在有越来越多的人试图在 Internet上进行人侵和高科技的犯罪,他们最初的原因也许是因为系统没有口令,或者是使用了一个容易猜测的口令。