• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            大龍的博客

            常用鏈接

            統計

            最新評論

            端口劫持/重用及隧道技術的一些概念的說明

            很多朋友以為通道技術就是端口復用技術。那么,錯了,端口復用是指一個端口上建立了多個連接,而不是在一個端口上面開放了多個服務而互不干擾。假如你想在已經開放了WWW服務的主機上,在80端口再添加一項服務,只有2種可能:1.添加服務失敗 2.WWW服務出錯。那么什么是通道呢?這里所謂的通道,是指一種繞過防火墻端口屏蔽的通訊方式。防火墻兩端的數據包封裝在防火墻所允許通過的數據包類型或是端口上,然后穿過防火墻與處在防火墻后面的主機通訊,當封裝的數據包到達目的地時,再將數據包還原,并將還原后的數據包交送到相應的服務上,是在一個端口上面開放了多個服務而互不干擾的。

            為了通信,不論是什么防火墻,都不可能把所有的服務,所有的端口都封閉。(如果有那樣的防火墻,還不如拔網線來的直接,呵呵)大多數的防火墻或多或少都要開放一個端口或服務(比如HTTP),只要開放了端口和服務,就給了我們滲透的可能。HTTP是一種比較簡單而常用的互交式協議,你給服務器發送一個請求,服務器就返回給你一個回應。幾乎所有的主機都被允許發送HTTP請求。網絡上HTTP協議使用的是如此廣泛,這也決定了我們可以通過使用通道技術而輕松的通過防火墻或其他類似設備而將我們需要的數據發送至目標。一個很典型的例子就是http-tunnel.

            在http-tunnel的官方網站http://www.http-tunnel.com上有這么一句話:“http-tunnel在HTTP請求中建立了一個雙向的虛擬數據連接。HTTP請求可以經過代理而被發送,這就可以被那些處在限制了端口的防火墻背后的用戶使用。如果通過HTTP代理的WWW瀏覽是被允許的,那么http-tunnel也就可以成立,也就是說,可以在防火墻外telnet或者PPP到防火墻的內部。”這樣看來,攻擊者可以使用這種技術來實現遠程控制。我們來看看http-tunnel的設計思路:

            A主機在防火墻的外面,沒有做任何限制。B主機在防火墻內部,受到防火墻保護,防火墻配置的訪問控制原則是只允許80端口的數據進出,但主機開放了telnet服務。現在假設需要從A系統Telnet到B系統上去,怎么辦?使用正常的telnet肯定是不可能了,因為telnet使用的23端口被防火墻屏蔽,防火墻收到這個telnet的包后,發現不符合只允許80端口的數據通過的過濾原則,就丟棄了。但我們知道可用的有80端口,那么這個時候使用Httptunnel通道,就是一個好的辦法,思路如下:

            在A機器上運行tunnel的客戶端,讓它偵聽本機的一個不被使用的任意指定端口(最好是1024以上65535以下),如,8888。同時將來自8888端口上的數據指引到B機的80端口上,因為是80端口,防火墻是允許通過的。然后在B機上起一個服務端,(在只有80端口對外開放的情況下,只能先得到一個WEBSHELL,想辦法提升自己的權限,并運行服務端)同樣掛接在80端口上,同時指引80端口的來自客戶端的轉發到本機的telnet服務端口23,這樣就OK了。現在在A機上telnet本機端口8888,根據剛才的設置數據包會被轉發到目標端口為80的B機,因為防火墻允許通過80端口的數據,因此數據包暢通的穿過防火墻,到達B機。此時B機在80端口偵聽的進程收到來自A的數據包,會將數據包還原,再交還給telnet進程。當數據包需要由B到A返回時,將由80端口再回送,同樣可以順利的通過防火墻。

            上述功能似乎用端口映射也能做的到,把A主機上的23端口重定向到80端口,再把B主機上的80端口重定向到23端口就行了。但如果B主機已經開啟了WWW服務了呢?要使用上述功能,使用端口映射必須犧牲B主機的80端口,這是得不償失的。試想在一次滲透防火墻的對某臺主機的攻擊中,把別人本來已經開啟的WWW服務DOWN了,你還能在這臺主機上呆多久?但是,使用http-tunnel就可以完美實現,即使B主機已經開放80,提供WWW,我們也照樣可以發送telnet到其80端口上,享受到“正版”的telnet服務。

            端口復用或者說劫持、重用都是一個意思。基本原理就是通過修改socket的屬性SO_REUSEADDR來實現端口重綁定的。
            setsockopt(s,SOL_SOCKET,SO_REUSEADDR,(char *)&val,sizeof(val)
            然后bind(s,(SOCKADDR *)&saddr,sizeof(saddr) 這里的saddr.sin_addr.s_addr =ip; saddr.sin_port = htons(80); 要劫持的端口
            之后原80端口的數據你都可以accpet,recv了。需要注意的是如果接收到的數據是自己的包,就可以進行一些特殊處理,不是的話通過127.0.0.1進行轉發。

            不知道這樣寫大家看得明白不,如果不明白的話多半是基礎還不夠好,需要好好惡補一下課的哈!~

            希望這篇文章能對大家有點幫助。 :)  

            posted on 2008-08-12 19:09 大龍 閱讀(958) 評論(0)  編輯 收藏 引用

            影音先锋女人AV鲁色资源网久久| 亚洲精品无码专区久久久 | 国产—久久香蕉国产线看观看| 91久久九九无码成人网站| 国内精品久久久久国产盗摄| 亚洲а∨天堂久久精品| 日本欧美久久久久免费播放网| 99久久国产主播综合精品| 久久久国产99久久国产一| 久久精品国产99国产精偷 | 久久久久亚洲av无码专区 | 无码精品久久一区二区三区| 久久久久成人精品无码中文字幕 | 久久久精品久久久久影院| 国产亚洲精久久久久久无码| 久久精品亚洲精品国产欧美| 久久九九精品99国产精品| 久久亚洲色一区二区三区| 国产一区二区三区久久精品| 久久久午夜精品福利内容| 久久精品国产影库免费看| 狠狠综合久久AV一区二区三区 | 亚洲精品国精品久久99热| 久久精品国产亚洲网站| 无码AV中文字幕久久专区| 一本大道久久香蕉成人网| 久久WWW免费人成—看片| 国产产无码乱码精品久久鸭| 无码八A片人妻少妇久久| 国产精品成人无码久久久久久| 91久久精品91久久性色| 久久人人爽人人爽人人片av麻烦| 久久久久无码精品| 国产精品九九久久精品女同亚洲欧美日韩综合区 | 久久久久久人妻无码| 久久久久久国产精品无码下载| 热RE99久久精品国产66热| 国产精品美女久久久免费| 99久久综合狠狠综合久久| 狠狠色婷婷综合天天久久丁香| 少妇内射兰兰久久|