, X1 h+ |& c0 J: u! }8 ^ 前面部分已详述了黑客能在一个已存在的或新运行的TCP连接上实施的各种入侵。然而,黑客也可以干预到几乎任何网络通讯。例如,黑客可以用TELNET会话实施以下截获方案: * b- k5 O$ f# n4 R2 N9 A, l0 g& m* k1 I# g: b
(1)在入侵之前,黑客通常先观察网上的传送,而不进行任何干预。 ; ~& m) l% U, Y. j t0 C( I- k" a9 j2 g4 N1 n& |- _: F6 ?( o
(2)适当时候,黑客向服务器发送一大批空数据。在被截获的TELNET会话上,黑客发送一个含扩展字号IAC NOP LAC NOP 的ATK_SVR_OFFSET字。TELNET协议将NOP命令定义为"空操作",换句话说,不做任何操作且忽视这一对中的字。由于此空操作,服务器的TELNET的后台驻留程序将把每个字都解释为空数值,因为这一点,后台驻留程序将数据流中的每个对删掉。然而,服务器对扩展空传送的接收将扰乱正进行工作的TELNET会话,在此步之后,服务器接收以下命令: / z0 s5 C0 X$ t3 u; }
% R! {4 z4 k3 d X) u3 r7 K# L SVR_ACK = CLT_SEQ+ATK_SVR_OFFSET " V5 ~. b% M$ d$ D6 h" D) ]2 f0 G2 V) n' W# O+ u
(3)服务器对黑客命令的接收将创建一个非同步TELNET的连接。 - _* G y T/ H1 K( D3 _- L5 ~7 J1 F: j. G+ s- x1 b6 X
(4)为了迫使客户机转换到非同步状态,黑客向客户端实施一个与服务器相同的步骤(如图13)。 # A8 |' ~+ d* a4 ]) d8 @( h% q4 c j1 ~
图13 黑客如何向客户端和服务发送空数据 (5)为完成TELNET会话入侵,黑客实施前面详述的步骤,直到黑客成为TELNET会话连接的中间人(如图14)。 * v7 ~* ~3 O; y. `: C9 Y9 l 5 b) a' x( r8 I. h! }8 |' Q- ~图2-14 如果Telnet 会话可以传送空数据的话,黑客只能利用前面详述的五个步骤的TELNET截获方式。纵使如此,黑客对于选择合适时间发送空数据仍有困难。如果时间不正确,入侵将很容易破坏Telnet会话,或者会引起会话干扰,而不能让黑客控制会话。当您参与TELNET会话,预料不到的结果将表明黑客正在截获会话。 8 i4 f$ J; j2 u# L; {/ i9 } 6 u. ~2 U$ s# x* d+ o1 R5 U 6.对ACK风暴的了解 ! w, V. t7 Z$ k) S2 m3 _
) D' z" q5 e3 d5 ?# i8 R4 X; d3 C/ R 在TCP连接内,几乎所有含ACK设定标识而不带数据的包都是未接收包的确认信息。在任何网上,特别是在INTERNET通讯中,将发生大量的转送。在一个遭受了前面详述的各种入侵的网上,会发生更多的转送。转送的号码将依据网上的负荷和引起风暴的黑客主机而定,一个服务器登录能包含多达300多个空包。特别地,在一个实际入侵中传送的数据包可能产生10至30个ACK空包。 , ~+ `# I2 X' x! U/ N7 }9 S1 p. P* @7 R* X; a/ ]
7.检测及其副作用 9 K* R/ |: m" X d
. U8 Y; z* }5 i# G2 v; u$ a0 M2 ~. W
您可以利用ACK入侵的各种缺陷来检测入侵,这部分将描述三种检测方式,但记住仍有其他方法。 ' ?, L2 }" d1 i$ D# r
8 u) s \' w$ Y 非同步状态检测。您可以利用TCP包来观察连接双方的顺序号。根据顺序号。您可以判断出连接是否处于非同步状态。然而,仅当假定您在连接上传送顺序号时没有黑客改变它,您才可以在连接的双方阅读包--这是一个一般的安全假定。 6 Z0 l) w/ K$ }8 L2 [" e
! j7 c+ n, B1 y; u
ACK风暴检测:些局域以太网的TCP交通在入侵前的统计表明,总的TELNET包的无数据包率为三分之一,而当一个黑客入侵时,为1/300。 - H( f0 B6 w" h- U. l+ o5 w
; o/ V- [5 j# Z: ~ 包百分率记数:您可以通过对包的百分率记数来监视连接的状态。通过对有入侵时的包百分率和普通数据包百分率的对比,可以提醒您存在非同步入侵。表1显示了通常连接中数据包和ACK包每分钟的数目。 4 |/ i' I# |2 N' ]1 t
" _" A. t( @ h6 O Z+ E
表1 普通传送中,ACK包每分钟传送的数目 $ [8 T% ]/ I" U+ m. R1 N
包的类型 本地 以太网传输 ; k# p1 w8 h5 l9 I
Total TCPs 80-100 1400 & Q, f, H; M' u$ N5 \3 p u- Q Total ACK 25-75 500 $ D9 N. r- B* E! J# K Total Telnet 10-20 1400 - l) ^: M; q3 \6 L
Total Telnet ACK 5-10 45 0 K8 ^: v3 n- H; d" F) v( W$ D- K- G; c) V
TCP包和 ACK包的数目在本地以太网上变化很大。一个常规连接上的ACK TELNET包的百分率一般稳定在45%左右,Telnet会话是一种交互式会话,服务器必须对用户敲入的每一个字母进行响应和认证。事实上这正是Telnet包计数稳定性的原因所在。在TELNET会话中,基于降低包丢失率的考虑,每个包通常仅含一个字母或一行正文,所以数据交换量较小。正如TELNET数据流,流向远程以太网的数据与其是一致的。因为它的高数据负荷,接收主机可能丢失一些包。 # g2 z) q4 b. x G5 S; R
% t. x2 }7 s8 Q2 K7 Q 相对地,当黑客入侵时,真正的包与ACK包的比值会发生改变。表2显示了黑客入侵时包的计数。 $ l' k. K" c, G+ G3 u' @
. y) @% D2 j: p( ~0 t* @ 表2 遭入侵时,ACK包的计数情况 * c) m- S8 v9 ~/ F 包的类型 本地连接 * l) I, g. n. C! o) i5 H Total Telnet 80-400 6 j' h( g- k- H3 M1 d \, [
Total Telnet ACK 75-400 ( ~& s) Y4 E' |; g$ K' n" U ! f/ G' ]7 W6 {8 I* c 在表2中,本地连接是指只有少数来自客户端的IP跳跃的一个主机的通讯会话。通讯会话的往返延迟(RTD)大约在3毫秒。例如,通讯会话可能跨越客户机与主机间的4个局域服务器。正如您所知,在黑客入侵时包计数器的改变很明显。就算它变化较为轻微,ACK计数与总包计数几乎是一致的,则交通量基本都是指认证包,意味着几乎不包括数据包