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

      <small id="r7w9x"></small>
          <td id="r7w9x"></td><sub id="r7w9x"><menu id="r7w9x"><samp id="r7w9x"></samp></menu></sub>
        1. <th id="r7w9x"></th>
          1.  找回密碼
             注冊

            QQ登錄

            只需一步,快速開始

            IP欺騙的技術(shù)

            [復制鏈接]
            1#
            發(fā)表于 2011-1-13 17:01:50 | 只看該作者 |倒序瀏覽 |閱讀模式
            3 Z. s6 u9 p8 f" s
            IP欺騙的技術(shù)比較復雜,不是簡單地照貓畫老虎就能掌握,但作為常規(guī)攻擊手段,有必要理解其原理,至少有利于自己的安全防范,易守難攻嘛。
            7 R: f. m3 b1 ^/ Y$ `6 x4 E
            5 j3 o( ^6 b& [% G  S8 {# C- K假設(shè)B上的客戶運行rlogin與A上的rlogind通信:
            6 W5 z1 q; E2 f* Q. e  o  _, z, }6 {! t# M" l5 g* n& P
            1. B發(fā)送帶有SYN標志的數(shù)據(jù)段通知A需要建立TCP連接。并將TCP報頭中的sequence number設(shè)置成自己本次連接的初始值ISN。 - @& i* d; L5 P! c9 c. o7 R
            ( V5 F+ L4 ]7 L2 m5 ]4 f
            2. A回傳給B一個帶有SYS+ACK標志的數(shù)據(jù)段,告之自己的ISN,并確認B發(fā)送來的第一個數(shù)據(jù)段,將acknowledge number設(shè)置成B的ISN+1。
            0 v8 L* D" p0 Q5 K% D  P; ^! C1 @8 Y0 G% e
            3. B確認收到的A的數(shù)據(jù)段,將acknowledge number設(shè)置成A的ISN+1。
            : I; O2 X/ x: k2 M9 ^- l, W2 _0 H! M: f6 D* [
            B ---- SYN ----> A
              b. {  f: ]" `7 e' AB <---- SYN+ACK A
            5 S/ H$ k) J6 rB ---- ACK ----> A $ M, l/ J0 X; C9 @

            7 L* z9 {& Z" g. n6 R& N8 yTCP使用的sequence number是一個32位的計數(shù)器,從0-4294967295。TCP為每一個連接選擇一個初始序號ISN,為了防止因為延遲、重傳等擾亂三次握手,ISN不能隨便選取,不同系統(tǒng)有不同算法。理解TCP如何分配ISN以及ISN隨時間變化的規(guī)律,對于成功地進行IP欺騙攻擊很重要。
            0 k' m# b6 Y! Q; }: ]3 D5 Z4 K6 m& X2 i% t
            基于遠程過程調(diào)用RPC的命令,比如rlogin、rcp、rsh等等,根據(jù)/etc/hosts.equiv以及$HOME/.rhosts文件進行安全校驗,其實質(zhì)是僅僅根據(jù)信源IP地址進行用戶身份確認,以便允許或拒絕用戶RPC。關(guān)于上述兩個文件請man,不喜歡看英文就去Unix版看看我以前灌過的一瓢水。
            3 I+ n; v- t$ F0 }8 R& G% ]" x( ?/ t. V
            IP欺騙攻擊的描述:
            8 J: ]' ^3 K, [3 n$ \. n+ q; P! Y1 `8 p. P
            1. 假設(shè)Z企圖攻擊A,而A信任B,所謂信任指/etc/hosts.equiv和$HOME/.rhosts中有相關(guān)設(shè)置。注意,如何才能知道A信任B呢?沒有什么確切的辦法。我的建議就是平時注意搜集蛛絲 ! J) _- L, M2 K+ m' d* P9 W
            馬跡,厚積薄發(fā)。一次成功的攻擊其實主要不是因為技術(shù)上的高明,而是因為信息搜集的廣泛翔實。動用了自以為很有成就感的技術(shù),卻不比人家酒桌上的巧妙提問,攻擊只以成功為終極目標,不在乎手段。 0 Q  e: z* ^. {0 ?3 a
            6 G6 h! o4 w* e2 Z6 i0 r" {
            2. 假設(shè)Z已經(jīng)知道了被信任的B,應(yīng)該想辦法使B的網(wǎng)絡(luò)功能暫時癱瘓,以免對攻擊造成干擾。著名的SYN flood常常是一次IP欺騙攻擊的前奏。請看一個并發(fā)服務(wù)器的框架:
            0 T% Z+ y5 S+ _7 V3 J2 [* B% F! a4 G( W! @
            int initsockid, newsockid;
            ) j- U# k) p8 X  e- \2 zif ((initsockid = socket(...)) <0) {
            2 [- _3 O; ^, y7 X7 ?. _error("can't create socket"); 4 R( T6 ~3 F7 w: |  A
            }
            4 P  {! I) g' _- |  b: |7 R. Y' xif (bind(initsockid, ...) <0) { 6 ?! D7 Q8 n7 M' Z4 t
            error("bind error"); , ]# T% Q4 I2 ?7 J  B  x% k8 V
            }
            % A4 A4 u% q0 ?if (listen(initsockid, 5) <0) { " {7 m9 F* {, ]4 Y9 Y& n
            error("listen error");
            7 @. c" K" s+ h# w2 w: t6 k% {! [}
            4 A. H4 Z4 y' ofor (;;) { , h7 P) e, J$ j$ v: b+ T+ f
            newsockid = accept(initsockid, ...); /* 阻塞 */ 3 L7 `- f4 T: R0 m- C
            if (newsockid <0) { - L( _* H" }8 Q2 Y" Y8 h$ P1 @$ Z' {% q
            error("accept error"); 6 U$ T5 e, C% r. s' N; ~, z" C: d
            }
            2 H. B! ^" Y9 `3 l+ Wif (fork() == 0) { /* 子進程 */ 0 ?, h7 I' L. o; H5 |
            close(initsockid); " f9 H+ i) h1 c5 ?% b  d
            do(newsockid); /* 處理客戶方請求 */ 8 `$ d% s1 M, @' G; x
            exit(0); 9 |. p) q- W" @4 G$ t
            }
            8 h! M  d2 ~3 r8 c3 q4 ]close(newsockid); * O2 i+ r/ h8 t& D
            } % }* a" T  B% `7 |  ]; e% F% x+ x
            , F# |3 X8 `- ]0 m
            listen函數(shù)中第二個參數(shù)是5,意思是在initsockid上允許的最大連接請求數(shù)目。如果某個時刻initsockid上的連接請求數(shù)目已經(jīng)達到5,后續(xù)到達initsockid的連接請求將被TCP丟棄。注意一旦連接通過三次握手建立完成,accept調(diào)用已經(jīng)處理這個連接,則TCP連接請求隊列空出一個位置。所以這個5不是指initsockid上只能接受5個連接請求。SYN flood正是一種Denial of Service,導致B的網(wǎng)絡(luò)功能暫 碧被盡?nbsp;
            - F, P) a' s7 ~% R: d7 F1 K( U/ U% A9 n; e6 [1 b/ ^
            Z向B發(fā)送多個帶有SYN標志的數(shù)據(jù)段請求連接,注意將信源IP地址換成一個不存在的主機X;B向子虛烏有的X發(fā)送SYN+ACK數(shù)據(jù)段,但沒有任何來自X的ACK出現(xiàn)。B的IP層會報告B的TCP層,X不可達,但B的TCP層對此不予理睬,認為只是暫時的。于是B在這個initsockid上再也不能接收正常的連接請求。 * ?( p7 p+ W4 x6 U3 r" L2 j
            : ~1 @9 j" ]8 |7 T
            Z(X) ---- SYN ----> B
            9 `, F1 y- p( n2 f" sZ(X) ---- SYN ----> B   @* I* z2 A7 k3 P4 ~
            Z(X) ---- SYN ----> B " R) J, n+ t0 o; u/ N4 x
            Z(X) ---- SYN ----> B
            + J/ @; T( Q* a; PZ(X) ---- SYN ----> B
            / F" a" ^6 ~: F+ N% ~...... % y* H$ a, F) R! p3 b" {2 k' F
            X <---- SYN+ACK B
            / n7 ~' @4 t/ ~X <---- SYN+ACK B
            / `5 S) |1 ?( U5 fX <---- SYN+ACK B 4 a9 R: z* C# n. o
            X <---- SYN+ACK B
            ( T& Q4 Q  W, C0 Q& _. U5 uX <---- SYN+ACK B . ]9 V$ F8 a; P+ A- z
            ...... / f  w3 }3 G* t" f6 ^+ \; n

            7 E& l6 t7 [' z! l作者認為這樣就使得B網(wǎng)絡(luò)功能暫時癱瘓,可我覺得好象不對頭。因為B雖然在initsockid上無法接收TCP連接請求,但可以在another initsockid上接收,這種SYN flood應(yīng)該只對特定的 2 _; N+ {8 l2 t$ ^0 @7 D2 ~
            服務(wù)(端口),不應(yīng)該影響到全局。當然如果不斷地發(fā)送連接請求,就和用ping發(fā)洪水包一個道理,使得B的TCP/IP忙于處理負載增大。至于SYN flood,回頭有機會我單獨灌一瓢有關(guān)DoS的。如何使B的網(wǎng)絡(luò)功能暫 碧被居 很多辦法,根據(jù)具體情況而定,不再贅述。
              A# F; h# C3 b% D, z6 d( Q
              p6 M! }9 l( s7 q& Z( Z* S9 ]3. Z必須確定A當前的ISN。首先連向25端口(SMTP是沒有安全校驗機制的),與1中類似,不過這次需要記錄A的ISN,以及Z到A的大致的RTT(round trip time)。這個步驟要重復多次以便求出 ( ^7 V( e5 E0 Q# \0 n; o
            RTT的平均值?,F(xiàn)在Z知道了A的ISN基值和增加規(guī)律(比如每秒增加128000,每次連接增加64000),也知道了從Z到A需要RTT/2的時間。必須立即進入攻擊,否則在這之間有其他主機與A連接, ; p9 K! E! y, z( Z5 V/ D+ u) J1 i2 O. \
            ISN將比預料的多出64000。 0 O7 d9 L: R* e# n1 ^+ y5 g: T0 S
            & U* E+ Z' s8 ]* ]$ Q$ J$ W
            4. Z向A發(fā)送帶有SYN標志的數(shù)據(jù)段請求連接,只是信源IP改成了B,注意是針對TCP513端口(rlogin)。A向B回送SYN+ACK數(shù)據(jù)段,B已經(jīng)無法響應(yīng)(憑什么?按照作者在2中所說,估計還達不到這個效果,因為Z必然要模仿B發(fā)起connect調(diào)用,connect調(diào)用會完成全相關(guān),自動指定本地socket地址和端口,可事實上B很可能并沒有這樣一個端口等待接收數(shù)據(jù)。除非Z模仿B發(fā)起 7 e0 r2 N3 o9 }# j* d+ }
            連接請求時打破常規(guī),主動在客戶端調(diào)用bind函數(shù),明確完成全相關(guān),這樣必然知道A會向B的某個端口回送,在2中也針對這個端口攻擊B??墒侨绻@樣,完全不用攻擊B,bind的時候 % O7 `6 F; w1 {: _
            指定一個B上根本不存在的端口即可。我也是想了又想,還沒來得及看看老外的源代碼,不妥之處有待商榷??傊?,覺得作者好象在蒙我們,他自己也沒有實踐成功過吧。),B的TCP層只是 4 R; n# ?! O6 b4 N$ F3 A5 Y
            簡單地丟棄A的回送數(shù)據(jù)段。
            - X0 r% d6 E8 S' j  g. s
            ( m# w& Z5 z- l5. Z暫停一小會兒,讓A有足夠時間發(fā)送SYN+ACK,因為Z看不到這個包。然后Z再次偽裝成B向A發(fā)送ACK,此時發(fā)送的數(shù)據(jù)段帶有Z預測的A的ISN+1。如果預測準確,連接建立,數(shù)據(jù)傳送開始。問題在于即使連接建立,A仍然會向B發(fā)送數(shù)據(jù),而不是Z,Z仍然無法看到A發(fā)往B的數(shù)據(jù)段,Z必須蒙著頭按照rlogin協(xié)議標準假冒B向A發(fā)送類似 "cat + + >> ~/.rhosts" 這樣的命令,于是攻擊完成。如果預測不準確,A將發(fā)送一個帶有RST標志的數(shù)據(jù)段異常終止連接,Z只有從頭再來。
            $ y1 K8 }# v' G) K
            9 |9 o% O7 D5 X" Y! p0 HZ(B) ---- SYN ----> A 6 ~9 H& R6 y" O9 n$ C& O3 G7 t
            B <---- SYN+ACK A ; o' r" ?1 r/ c
            Z(B) ---- ACK ----> A
            3 X9 j5 C! G" H. ]! U: rZ(B) ---- PSH ----> A
            ; [. d+ D$ R  W1 p7 O* s/ P( O......
            + O& m! t7 k* W) F! h5 x
            / B5 \! U" C$ f6. IP欺騙攻擊利用了RPC服務(wù)器僅僅依賴于信源IP地址進行安全校驗的特性,建議閱讀rlogind的源代碼。攻擊最困難的地方在于預測A的ISN。作者認為攻擊難度雖然大,但成功的可能性 % n9 _' a* w  I
            也很大,不是很理解,似乎有點矛盾。考慮這種情況,入侵者控制了一臺由A到B之間的路由器,假設(shè)Z就是這臺路由器,那么A回送到B的數(shù)據(jù)段,現(xiàn)在Z是可以看到的,顯然攻擊難度 0 w7 R( ]3 g) ^5 `  X' z( l
            驟然下降了許多。否則Z必須精確地預見可能從A發(fā)往B的信息,以及A期待來自B的什么應(yīng)答信息,這要求攻擊者對協(xié)議本身相當熟悉。同時需要明白,這種攻擊根本不可能在交互狀態(tài)下完
            " d+ {$ W  v" k成,必須寫程序完成。當然在準備階段可以用netxray之類的工具進行協(xié)議分析。
            : U' N1 s7 R) ?" s# n
            2 z! V8 c/ o; {" n) v7. 如果Z不是路由器,能否考慮組合使用ICMP重定向以及ARP欺騙等技術(shù)?沒有仔細分析過,只是隨便猜測而已。并且與A、B、Z之間具體的網(wǎng)絡(luò)拓撲有密切關(guān)系,在某些情況下顯然大幅度
            3 z$ Y7 c8 J: H降低了攻擊難度。注意IP欺騙攻擊理論上是從廣域網(wǎng)上發(fā)起的,不局限于局域網(wǎng),這也正是這種攻擊的魅力所在。利用IP欺騙攻擊得到一個A上的shell,對于許多高級入侵者,得到目標主
            7 Q/ x) ]' g# X; S- T% l2 v$ p機的shell,離root權(quán)限就不遠了,最容易想到的當然是接下來進行buffer overflow攻擊。 8 r: r: k7 P: B

            & N$ l! O" j( F' U6 a7 _. ~8. 也許有人要問,為什么Z不能直接把自己的IP設(shè)置成B的?這個問題很不好回答,要具體分析網(wǎng)絡(luò)拓撲,當然也存在ARP沖突、出不了網(wǎng)關(guān)等問題。那么在IP欺騙攻擊過程中是否存在ARP沖突問題?;叵胛仪懊尜N過的ARP欺騙攻擊,如果B的ARP Cache沒有受到影響,就不會出現(xiàn)ARP沖突。如果Z向A發(fā)送數(shù)據(jù)段時,企圖解析A的MAC地址或者路由器的MAC地址,必然會發(fā)送ARP請求包,但這個ARP請求包中源IP以及源MAC都是Z的,自然不會引起ARP沖突。而ARP Cache只會被ARP包改變,不受IP包的影響,所以可以肯定地說,IP欺騙攻擊過程中不存在ARP沖突。相反,如果Z修改了自己的IP,這種ARP沖突就有可能出現(xiàn),示具體情況而言。攻擊中連帶B一起攻擊了,其目的無非是防止B干擾了攻擊過程,如果B本身已經(jīng)down掉,那是再好不過(是嗎?)。 ; u2 W& Q2 N: R0 ~1 X9 g6 k
            ; J( l* {( H6 y  A
            9. fakeip曾經(jīng)沸沸揚揚了一下,我對之進行端口掃描,發(fā)現(xiàn)其tcp端口113是接收入連接的。和IP欺騙等沒有直接聯(lián)系,和安全校驗是有關(guān)系的。當然,這個東西并不如其名所暗示,對IP層沒有任何動作。
            7 \. I+ O3 `5 @2 K+ X: ^
            & d3 [0 _# o  t2 T10. 關(guān)于預測ISN,我想到另一個問題。就是如何以第三方身份切斷A與B之間的TCP連接,實際上也是預測sequence number的問題。嘗試過,也很困難。如果Z是A與B之間的路由器,就不用說了;或者Z動用了別的技術(shù)可以監(jiān)聽到A與B之間的通信,也容易些;否則預測太難。作者在3中提到連接A的25端口,可我想不明白的是513端口的ISN和25端口有什么關(guān)系?看來需要看看TCP/IP內(nèi)部實現(xiàn)的源代碼。   i: f; Q, M5 r2 M8 B  U: ^
            ! G5 q. z3 F& Z% R! [0 c
            未雨綢繆 - K/ Y' v( I, K; o( a/ q/ j
            7 h" L- L) v! H/ o; S% F3 d
            雖然IP欺騙攻擊有著相當難度,但我們應(yīng)該清醒地意識到,這種攻擊非常廣泛,入侵往往由這里開始。預防這種攻擊還是比較容易的,比如刪除所有的/etc/hosts.equiv、$HOME/.rhosts文件,修改/etc/inetd.conf文件,使得RPC機制無法運做,還可以殺掉portmapper等等。設(shè)置路由器,過濾來自外部而信源地址卻是內(nèi)部IP的報文。cisio公司的產(chǎn)品就有這種功能。不過路由器只防得了外部入侵,內(nèi)部入侵呢? * A( X5 {. S# S3 V$ R
            7 B: ~- @/ a! |. C* @' ~! D
            TCP的ISN選擇不是隨機的,增加也不是隨機的,這使攻擊者有規(guī)可循,可以修改與ISN相關(guān)的代碼,選擇好的算法,使得攻擊者難以找到規(guī)律。估計Linux下容易做到,那solaris、irix、hp-unix還有aix呢?sigh 7 G' t, H7 G8 q% ^4 O
              |3 N( U) w8 a9 y: R
            雖然作者紙上談兵,但總算讓我們了解了一下IP欺騙攻擊,我實驗過預測sequence number,不是ISN,企圖切斷一個TCP連接,感覺難度很大。作者建議要找到規(guī)律,不要盲目預測,這需要時間和耐心?,F(xiàn)在越發(fā)明白什么是那種鍥而不舍永遠追求的精神,我們所向往的傳奇故事背后有著如此沉默的艱辛和毅力,但愿我們學會的是這個,而不是浮華與喧囂。一個現(xiàn)成的bug足以讓你取得root權(quán)限,可你在做什么,你是否明白?我們太膚淺了...... 1 ~. m: A3 r, P! u8 v
            淺了......
            您需要登錄后才可以回帖 登錄 | 注冊

            本版積分規(guī)則

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

            GMT+8, 2025-7-6 19:19

            Powered by Discuz! X3.5

            © 2001-2025 Discuz! Team.

            快速回復 返回頂部 返回列表