久久综合伊人噜噜色,日本三级香港三级人妇电影精品,亚洲中文色资源,国产高清一区二区三区人妖

    1. <sub id="9pxky"></sub>
    2. <small id="9pxky"></small>

           找回密碼
           注冊(cè)

          QQ登錄

          只需一步,快速開(kāi)始

          IP欺騙的技術(shù)

          [復(fù)制鏈接]
          1#
          發(fā)表于 2011-1-13 17:01:50 | 只看該作者 |倒序?yàn)g覽 |閱讀模式
          。
          ) q2 j8 W) M: R  d6 b" `IP欺騙的技術(shù)比較復(fù)雜,不是簡(jiǎn)單地照貓畫(huà)老虎就能掌握,但作為常規(guī)攻擊手段,有必要理解其原理,至少有利于自己的安全防范,易守難攻嘛。 7 y' U+ }8 F) y, S2 X) V; Z3 T

          * V* x% s; e- j! [9 _假設(shè)B上的客戶(hù)運(yùn)行rlogin與A上的rlogind通信:
          ) j8 G6 ?; }( y
          9 M4 ~2 P6 J3 J3 [: c$ Z! t+ ]1. B發(fā)送帶有SYN標(biāo)志的數(shù)據(jù)段通知A需要建立TCP連接。并將TCP報(bào)頭中的sequence number設(shè)置成自己本次連接的初始值ISN。 " b1 [  B) j; L% H
          3 f' [% e; l, @/ Y! Z
          2. A回傳給B一個(gè)帶有SYS+ACK標(biāo)志的數(shù)據(jù)段,告之自己的ISN,并確認(rèn)B發(fā)送來(lái)的第一個(gè)數(shù)據(jù)段,將acknowledge number設(shè)置成B的ISN+1。 # L& @8 ~' r2 |# M# h% g( T( p

          " l& w1 }& _6 j# d, x- i! }3. B確認(rèn)收到的A的數(shù)據(jù)段,將acknowledge number設(shè)置成A的ISN+1。 : ^) L5 M" L( H; M5 |. L1 T
          & W1 b( c0 b- `
          B ---- SYN ----> A
          8 I. q4 t( `. X& }& Y% `B <---- SYN+ACK A 4 g) L. U% H7 @2 O5 w; X& ?  s. U
          B ---- ACK ----> A
          & m9 a; ?, v" Q' |4 E9 p  h6 w4 ]( j. h& C! t  B
          TCP使用的sequence number是一個(gè)32位的計(jì)數(shù)器,從0-4294967295。TCP為每一個(gè)連接選擇一個(gè)初始序號(hào)ISN,為了防止因?yàn)檠舆t、重傳等擾亂三次握手,ISN不能隨便選取,不同系統(tǒng)有不同算法。理解TCP如何分配ISN以及ISN隨時(shí)間變化的規(guī)律,對(duì)于成功地進(jìn)行IP欺騙攻擊很重要。
          ' J* }. T7 p! \( y1 e0 l3 F  O3 {5 J
          基于遠(yuǎn)程過(guò)程調(diào)用RPC的命令,比如rlogin、rcp、rsh等等,根據(jù)/etc/hosts.equiv以及$HOME/.rhosts文件進(jìn)行安全校驗(yàn),其實(shí)質(zhì)是僅僅根據(jù)信源IP地址進(jìn)行用戶(hù)身份確認(rèn),以便允許或拒絕用戶(hù)RPC。關(guān)于上述兩個(gè)文件請(qǐng)man,不喜歡看英文就去Unix版看看我以前灌過(guò)的一瓢水。
          * l( z9 n0 D7 u0 Z  A* Q$ H
          6 _4 ~2 U; M: y. [. @" j, Y: FIP欺騙攻擊的描述: 2 o% q, b. Q' C6 h4 e7 I- V
          ! o7 s1 h$ `6 J; D
          1. 假設(shè)Z企圖攻擊A,而A信任B,所謂信任指/etc/hosts.equiv和$HOME/.rhosts中有相關(guān)設(shè)置。注意,如何才能知道A信任B呢?沒(méi)有什么確切的辦法。我的建議就是平時(shí)注意搜集蛛絲
          / C  N* m" j& ]- p( J馬跡,厚積薄發(fā)。一次成功的攻擊其實(shí)主要不是因?yàn)榧夹g(shù)上的高明,而是因?yàn)樾畔⑺鸭膹V泛翔實(shí)。動(dòng)用了自以為很有成就感的技術(shù),卻不比人家酒桌上的巧妙提問(wèn),攻擊只以成功為終極目標(biāo),不在乎手段。
          * Y# l& v9 ~6 Q9 b) k* V% Y, m1 s% X3 D8 O' x) j* W& f9 j+ \
          2. 假設(shè)Z已經(jīng)知道了被信任的B,應(yīng)該想辦法使B的網(wǎng)絡(luò)功能暫時(shí)癱瘓,以免對(duì)攻擊造成干擾。著名的SYN flood常常是一次IP欺騙攻擊的前奏。請(qǐng)看一個(gè)并發(fā)服務(wù)器的框架:
          $ |3 l; U. R4 A. r+ H
          1 }! s9 \( O* H5 T/ l6 {int initsockid, newsockid;
          3 `4 g& X: `" W  R& ?if ((initsockid = socket(...)) <0) {
          " a5 k! j3 a$ v" Oerror("can't create socket");
          # F& \/ A- k4 ^1 Y2 ]}
            K7 {: c' |0 U) \if (bind(initsockid, ...) <0) { . A2 O4 M, L7 z
          error("bind error");
          1 C# G* X0 q$ u/ f} + k4 f7 K, j3 N
          if (listen(initsockid, 5) <0) {
          5 ^; z4 r3 q* w7 T8 \% oerror("listen error"); " t" R8 g$ u. W& ^' W7 d% q; G7 w- V
          } 5 ?9 t4 y$ i. Z1 g% ]
          for (;;) {
          + C$ b* Z( s) E1 unewsockid = accept(initsockid, ...); /* 阻塞 */ " r9 u3 `  G: J) Q% B9 o' I+ |
          if (newsockid <0) {
          : y' a8 i/ d( J6 Uerror("accept error"); 2 F$ B" e% `4 B9 X/ e' w
          } $ `2 R0 h9 n. x6 F* u
          if (fork() == 0) { /* 子進(jìn)程 */
          ) Q, ?0 u" u0 G' Nclose(initsockid);
          # a! X1 b1 z# d$ q! c. T5 bdo(newsockid); /* 處理客戶(hù)方請(qǐng)求 */
          + w5 M  y* H+ J* l7 K% k& O$ K/ Texit(0);
          4 Y1 V% i: H3 ?# v3 A3 Q4 F} % ^4 R3 x( {& ]: k
          close(newsockid);
          , V$ M4 o" B9 l; B& P}
          / ^6 K+ y$ K5 M
          , t  g; K9 b+ J& E9 d- Blisten函數(shù)中第二個(gè)參數(shù)是5,意思是在initsockid上允許的最大連接請(qǐng)求數(shù)目。如果某個(gè)時(shí)刻initsockid上的連接請(qǐng)求數(shù)目已經(jīng)達(dá)到5,后續(xù)到達(dá)initsockid的連接請(qǐng)求將被TCP丟棄。注意一旦連接通過(guò)三次握手建立完成,accept調(diào)用已經(jīng)處理這個(gè)連接,則TCP連接請(qǐng)求隊(duì)列空出一個(gè)位置。所以這個(gè)5不是指initsockid上只能接受5個(gè)連接請(qǐng)求。SYN flood正是一種Denial of Service,導(dǎo)致B的網(wǎng)絡(luò)功能暫 碧被盡?nbsp;
          ; f9 N, z+ T% H. G3 S' L& q, E/ w, ~$ w/ \+ H7 c, N
          Z向B發(fā)送多個(gè)帶有SYN標(biāo)志的數(shù)據(jù)段請(qǐng)求連接,注意將信源IP地址換成一個(gè)不存在的主機(jī)X;B向子虛烏有的X發(fā)送SYN+ACK數(shù)據(jù)段,但沒(méi)有任何來(lái)自X的ACK出現(xiàn)。B的IP層會(huì)報(bào)告B的TCP層,X不可達(dá),但B的TCP層對(duì)此不予理睬,認(rèn)為只是暫時(shí)的。于是B在這個(gè)initsockid上再也不能接收正常的連接請(qǐng)求。 . w: _& B& B- z: n

          8 Z, H, S% \: VZ(X) ---- SYN ----> B
          / O* Y3 C' i  ~/ b2 w9 RZ(X) ---- SYN ----> B ' h! C0 l: o! t% s7 X+ Y
          Z(X) ---- SYN ----> B 0 Q+ g8 j, e  Z4 ~* u' C
          Z(X) ---- SYN ----> B
          1 Q* @* w7 I8 E0 g5 WZ(X) ---- SYN ----> B
          8 Z. b: g$ c5 P* D( ]* P$ G% L4 o...... 7 Z+ E3 x2 v; Q- s- q" p" l* b
          X <---- SYN+ACK B
          9 I+ C+ Y0 X9 n; yX <---- SYN+ACK B
          * Q1 x  H  U# F; S% w( V7 _) I2 oX <---- SYN+ACK B
          + c! m" Z: a2 p: W5 L3 ?/ zX <---- SYN+ACK B   C+ G! G% e+ b; n6 Z% m8 d  U" e
          X <---- SYN+ACK B ; y1 r2 B9 ]' f9 R6 N/ j
          ...... % w) |' p9 @/ j

          4 z& j# p* o" L作者認(rèn)為這樣就使得B網(wǎng)絡(luò)功能暫時(shí)癱瘓,可我覺(jué)得好象不對(duì)頭。因?yàn)锽雖然在initsockid上無(wú)法接收TCP連接請(qǐng)求,但可以在another initsockid上接收,這種SYN flood應(yīng)該只對(duì)特定的 7 r: K: V* o7 M5 @1 I: [, G
          服務(wù)(端口),不應(yīng)該影響到全局。當(dāng)然如果不斷地發(fā)送連接請(qǐng)求,就和用ping發(fā)洪水包一個(gè)道理,使得B的TCP/IP忙于處理負(fù)載增大。至于SYN flood,回頭有機(jī)會(huì)我單獨(dú)灌一瓢有關(guān)DoS的。如何使B的網(wǎng)絡(luò)功能暫 碧被居 很多辦法,根據(jù)具體情況而定,不再贅述。 ) l1 v+ m& [: T! h  E

          / t/ L8 U# I* Q5 s3. Z必須確定A當(dāng)前的ISN。首先連向25端口(SMTP是沒(méi)有安全校驗(yàn)機(jī)制的),與1中類(lèi)似,不過(guò)這次需要記錄A的ISN,以及Z到A的大致的RTT(round trip time)。這個(gè)步驟要重復(fù)多次以便求出
          ' c- {$ j- I+ L- A6 u4 I! URTT的平均值?,F(xiàn)在Z知道了A的ISN基值和增加規(guī)律(比如每秒增加128000,每次連接增加64000),也知道了從Z到A需要RTT/2的時(shí)間。必須立即進(jìn)入攻擊,否則在這之間有其他主機(jī)與A連接, / g+ ]) z4 N0 j6 p, Y' }! V5 O
          ISN將比預(yù)料的多出64000。 - Q/ T4 j% X9 T2 I! {) L7 A7 \8 R

          - `! U' W+ }5 K. X: y4. Z向A發(fā)送帶有SYN標(biāo)志的數(shù)據(jù)段請(qǐng)求連接,只是信源IP改成了B,注意是針對(duì)TCP513端口(rlogin)。A向B回送SYN+ACK數(shù)據(jù)段,B已經(jīng)無(wú)法響應(yīng)(憑什么?按照作者在2中所說(shuō),估計(jì)還達(dá)不到這個(gè)效果,因?yàn)閆必然要模仿B發(fā)起connect調(diào)用,connect調(diào)用會(huì)完成全相關(guān),自動(dòng)指定本地socket地址和端口,可事實(shí)上B很可能并沒(méi)有這樣一個(gè)端口等待接收數(shù)據(jù)。除非Z模仿B發(fā)起 ; s! ], y. c- [1 ^: k. Y+ |
          連接請(qǐng)求時(shí)打破常規(guī),主動(dòng)在客戶(hù)端調(diào)用bind函數(shù),明確完成全相關(guān),這樣必然知道A會(huì)向B的某個(gè)端口回送,在2中也針對(duì)這個(gè)端口攻擊B??墒侨绻@樣,完全不用攻擊B,bind的時(shí)候 1 L- Y0 v, y: w9 [
          指定一個(gè)B上根本不存在的端口即可。我也是想了又想,還沒(méi)來(lái)得及看看老外的源代碼,不妥之處有待商榷??傊?,覺(jué)得作者好象在蒙我們,他自己也沒(méi)有實(shí)踐成功過(guò)吧。),B的TCP層只是
          # y/ h8 A2 X% ~. i& ^簡(jiǎn)單地丟棄A的回送數(shù)據(jù)段。
          ' J% @3 A8 t& r3 T0 Z- n+ E# ]2 i+ W9 W' M* m3 L% `
          5. Z暫停一小會(huì)兒,讓A有足夠時(shí)間發(fā)送SYN+ACK,因?yàn)閆看不到這個(gè)包。然后Z再次偽裝成B向A發(fā)送ACK,此時(shí)發(fā)送的數(shù)據(jù)段帶有Z預(yù)測(cè)的A的ISN+1。如果預(yù)測(cè)準(zhǔn)確,連接建立,數(shù)據(jù)傳送開(kāi)始。問(wèn)題在于即使連接建立,A仍然會(huì)向B發(fā)送數(shù)據(jù),而不是Z,Z仍然無(wú)法看到A發(fā)往B的數(shù)據(jù)段,Z必須蒙著頭按照rlogin協(xié)議標(biāo)準(zhǔn)假冒B向A發(fā)送類(lèi)似 "cat + + >> ~/.rhosts" 這樣的命令,于是攻擊完成。如果預(yù)測(cè)不準(zhǔn)確,A將發(fā)送一個(gè)帶有RST標(biāo)志的數(shù)據(jù)段異常終止連接,Z只有從頭再來(lái)。
          $ g& I1 a* f8 l2 V6 f1 \$ A
          8 D4 ^) q3 O+ {( w/ QZ(B) ---- SYN ----> A
          ' a7 q  e3 j5 e# bB <---- SYN+ACK A , R( |6 g" ^1 [9 B3 ?% h. K8 j
          Z(B) ---- ACK ----> A
          * E- Z& \- R) e' L5 o% YZ(B) ---- PSH ----> A
          : V7 Q% v% b$ q, V......
          3 x; @: v* i  C  u  `2 O( }7 w2 ]5 x/ n- U* P5 Q$ ^% |: h4 [
          6. IP欺騙攻擊利用了RPC服務(wù)器僅僅依賴(lài)于信源IP地址進(jìn)行安全校驗(yàn)的特性,建議閱讀rlogind的源代碼。攻擊最困難的地方在于預(yù)測(cè)A的ISN。作者認(rèn)為攻擊難度雖然大,但成功的可能性 - Q( u  X( o2 s5 ]$ z1 z4 K4 _. w
          也很大,不是很理解,似乎有點(diǎn)矛盾??紤]這種情況,入侵者控制了一臺(tái)由A到B之間的路由器,假設(shè)Z就是這臺(tái)路由器,那么A回送到B的數(shù)據(jù)段,現(xiàn)在Z是可以看到的,顯然攻擊難度
          + J+ e: V9 E+ U$ Z驟然下降了許多。否則Z必須精確地預(yù)見(jiàn)可能從A發(fā)往B的信息,以及A期待來(lái)自B的什么應(yīng)答信息,這要求攻擊者對(duì)協(xié)議本身相當(dāng)熟悉。同時(shí)需要明白,這種攻擊根本不可能在交互狀態(tài)下完 - u" _7 Q( G) o( X5 n
          成,必須寫(xiě)程序完成。當(dāng)然在準(zhǔn)備階段可以用netxray之類(lèi)的工具進(jìn)行協(xié)議分析。
          ) N4 X9 q8 g3 l) V' I' p, F
          2 t. W7 L+ v9 ^9 G% v: o" T; S7. 如果Z不是路由器,能否考慮組合使用ICMP重定向以及ARP欺騙等技術(shù)?沒(méi)有仔細(xì)分析過(guò),只是隨便猜測(cè)而已。并且與A、B、Z之間具體的網(wǎng)絡(luò)拓?fù)溆忻芮嘘P(guān)系,在某些情況下顯然大幅度
          5 P( q8 b! Z" W! E- w  t9 J降低了攻擊難度。注意IP欺騙攻擊理論上是從廣域網(wǎng)上發(fā)起的,不局限于局域網(wǎng),這也正是這種攻擊的魅力所在。利用IP欺騙攻擊得到一個(gè)A上的shell,對(duì)于許多高級(jí)入侵者,得到目標(biāo)主 $ j. l) @' Y0 _$ L2 G, W% a
          機(jī)的shell,離root權(quán)限就不遠(yuǎn)了,最容易想到的當(dāng)然是接下來(lái)進(jìn)行buffer overflow攻擊。
          6 D/ [& ?* x7 U  |; P0 K1 m$ r, }& s/ Q
          8. 也許有人要問(wèn),為什么Z不能直接把自己的IP設(shè)置成B的?這個(gè)問(wèn)題很不好回答,要具體分析網(wǎng)絡(luò)拓?fù)洌?dāng)然也存在ARP沖突、出不了網(wǎng)關(guān)等問(wèn)題。那么在IP欺騙攻擊過(guò)程中是否存在ARP沖突問(wèn)題。回想我前面貼過(guò)的ARP欺騙攻擊,如果B的ARP Cache沒(méi)有受到影響,就不會(huì)出現(xiàn)ARP沖突。如果Z向A發(fā)送數(shù)據(jù)段時(shí),企圖解析A的MAC地址或者路由器的MAC地址,必然會(huì)發(fā)送ARP請(qǐng)求包,但這個(gè)ARP請(qǐng)求包中源IP以及源MAC都是Z的,自然不會(huì)引起ARP沖突。而ARP Cache只會(huì)被ARP包改變,不受IP包的影響,所以可以肯定地說(shuō),IP欺騙攻擊過(guò)程中不存在ARP沖突。相反,如果Z修改了自己的IP,這種ARP沖突就有可能出現(xiàn),示具體情況而言。攻擊中連帶B一起攻擊了,其目的無(wú)非是防止B干擾了攻擊過(guò)程,如果B本身已經(jīng)down掉,那是再好不過(guò)(是嗎?)。
          ) M/ H: F* C8 D/ ?% N4 n5 ?5 N5 x8 y. q- @" h
          9. fakeip曾經(jīng)沸沸揚(yáng)揚(yáng)了一下,我對(duì)之進(jìn)行端口掃描,發(fā)現(xiàn)其tcp端口113是接收入連接的。和IP欺騙等沒(méi)有直接聯(lián)系,和安全校驗(yàn)是有關(guān)系的。當(dāng)然,這個(gè)東西并不如其名所暗示,對(duì)IP層沒(méi)有任何動(dòng)作。 ) ^# z' n$ n! q  I% e

          2 }. `  _# e* C, x; x1 F10. 關(guān)于預(yù)測(cè)ISN,我想到另一個(gè)問(wèn)題。就是如何以第三方身份切斷A與B之間的TCP連接,實(shí)際上也是預(yù)測(cè)sequence number的問(wèn)題。嘗試過(guò),也很困難。如果Z是A與B之間的路由器,就不用說(shuō)了;或者Z動(dòng)用了別的技術(shù)可以監(jiān)聽(tīng)到A與B之間的通信,也容易些;否則預(yù)測(cè)太難。作者在3中提到連接A的25端口,可我想不明白的是513端口的ISN和25端口有什么關(guān)系?看來(lái)需要看看TCP/IP內(nèi)部實(shí)現(xiàn)的源代碼。 / o3 h, K& _( \! i/ z
          : H( y- x8 u+ w
          未雨綢繆 5 U: i% H7 e/ d4 R

          & u0 w3 L: M1 B. d7 f% s' @2 |  p# |雖然IP欺騙攻擊有著相當(dāng)難度,但我們應(yīng)該清醒地意識(shí)到,這種攻擊非常廣泛,入侵往往由這里開(kāi)始。預(yù)防這種攻擊還是比較容易的,比如刪除所有的/etc/hosts.equiv、$HOME/.rhosts文件,修改/etc/inetd.conf文件,使得RPC機(jī)制無(wú)法運(yùn)做,還可以殺掉portmapper等等。設(shè)置路由器,過(guò)濾來(lái)自外部而信源地址卻是內(nèi)部IP的報(bào)文。cisio公司的產(chǎn)品就有這種功能。不過(guò)路由器只防得了外部入侵,內(nèi)部入侵呢? + e7 ~1 C  o0 A# z. _5 _7 ~/ o% V. W* M
          ( _) J- ~: H- n- W3 o1 f+ [
          TCP的ISN選擇不是隨機(jī)的,增加也不是隨機(jī)的,這使攻擊者有規(guī)可循,可以修改與ISN相關(guān)的代碼,選擇好的算法,使得攻擊者難以找到規(guī)律。估計(jì)Linux下容易做到,那solaris、irix、hp-unix還有aix呢?sigh
          , l9 A2 ~; `/ G9 {( h
          : R$ g2 P* E, q0 f3 W# D5 m雖然作者紙上談兵,但總算讓我們了解了一下IP欺騙攻擊,我實(shí)驗(yàn)過(guò)預(yù)測(cè)sequence number,不是ISN,企圖切斷一個(gè)TCP連接,感覺(jué)難度很大。作者建議要找到規(guī)律,不要盲目預(yù)測(cè),這需要時(shí)間和耐心?,F(xiàn)在越發(fā)明白什么是那種鍥而不舍永遠(yuǎn)追求的精神,我們所向往的傳奇故事背后有著如此沉默的艱辛和毅力,但愿我們學(xué)會(huì)的是這個(gè),而不是浮華與喧囂。一個(gè)現(xiàn)成的bug足以讓你取得root權(quán)限,可你在做什么,你是否明白?我們太膚淺了......
          $ ]2 @! k8 I% t' {6 c
          淺了......
          您需要登錄后才可以回帖 登錄 | 注冊(cè)

          本版積分規(guī)則

          QQ|本地廣告聯(lián)系: QQ:905790666 TEL:13176190456|Archiver|手機(jī)版|小黑屋|汶上信息港 ( 魯ICP備19052200號(hào)-1 )

          GMT+8, 2025-11-7 03:16

          Powered by Discuz! X3.5

          © 2001-2025 Discuz! Team.

          快速回復(fù) 返回頂部 返回列表