<span id="7ztzv"></span>
<sub id="7ztzv"></sub>

<span id="7ztzv"></span><form id="7ztzv"></form>

<span id="7ztzv"></span>

        <address id="7ztzv"></address>

            原文地址:http://drops.wooyun.org/tips/1226

            0x00 背景


            (編者:在這篇文章里,Chris Crowley提供了一些利用Tor來進行滲透測試的方法,他提供的一些細節和腳本配置非常有用,尤其是他對Privoxy 的討論部分,謝謝!)

            By Chris Crowley

            我認為滲透測試的真正價值是能模擬現實世界的真實攻擊行為,所以滲透測試人員應該盡量將自己的行為與那些攻擊者靠攏。但是與真的攻擊者不一樣的是,我們還是應該對我們的目標系統保持一定的謹慎和敏感,而攻擊者肯定不會去管這些。

            在這篇文章里,我向大家分享了一個我經常用的隱藏源IP的方法。一般來說,滲透測試人員有兩個原因需要隱藏他們的真實IP。首先,在測試過程中,我們需要訪問的資源可能是非法的惡意資源(或者懷疑其是惡意的)。其次,我們需要盡量隱藏測試過程中的測試或攻擊來源。

            為了研究一個惡意攻擊者或者惡意軟件的行為特征,我們有可能需要去訪問一些攻擊者控制的資源。比如一個很常見的場景是:用戶在facebook或者一個社交媒體網站上會受到攻擊者的誘騙而去訪問一些url,我們還不太確定攻擊者是如何成功的控制這些跳轉,而這些資源里包含有很多附加鏈接和javascript。因為我們要對這樣的一個場景進行滲透測試,我們必須偽裝成一個普通用戶去訪問這些資源,同時又不能被攻擊者識破。

            直接通過我們的真實IP去訪問這些惡意網站是很不明智的,因為這無疑相當于直接告訴攻擊者,我們在研究你的網站。此外,如果我們發出的請求看起來很像是一個小白用戶發起的,這無疑告訴攻擊者魚兒上鉤了。這也會使得攻擊者來訪問我們的系統,所以說隱藏我們的源IP是非常重要的。

            有些時候,惡意軟件只會在接收到特意的指令才會運行。我們可以嘗試各種各樣的指令來觸發它,但是讓它連接到真實網絡這樣觸發無疑是最快的。但是,我們又不想被攻擊者注意到惡意軟件已經在我們的系統上運行了,避免攻擊者會來入侵我們的系統。我們只需要這些行為信息和整個攻擊過程。我們想還原攻擊過程,但是,我們希望在拿到這些信息之后能夠馬上斷開惡意軟件的連接。

            攻擊者擁有各種各樣的虛擬系統,他們不必擔心自己的源IP暴露。對于一個滲透測試人員來說,一個虛擬的IP地址對于模擬一個真實的攻擊者來說是非常重要的。以下的幾個場景能說明這個道理:首先是網站踩點,一個熟練的攻擊者不會使用相同的一個IP來掃描一個網站。其次是掃描服務類型,如果網站發現有人在不停的掃他,那么肯定會將這些掃描記錄到日志里。試想來自四面八方的掃描,只掃那些常用服務是怎樣的場景。攻擊者會使用一些假IP來掃描目標,然后使用其他的IP來執行滲透。真正的壞蛋的目標只有一個,那就是敏感信息。你覺得一個聰明的家伙會把他的真實信息留下來莫?他會使用不同的系統來制造混亂。第四,是一些在未來今年對滲透測試人員來說很普遍的東西。滲透測試人員會越來越多的將精力花在移動設備上。

            下面概述的方法可以有幾個不同的方式來實現。我只會概述一種可以用的方法,你們可以根據自己的需要來自己調整。

            這里還有一些有關政府部分比較介意的Tor在安裝使用過程中的一些漏洞,(比如https://blog.torproject.org/blog/tor-security-advisory-old-tor-browser-bundles-vulnerablehttps://www.mozilla.org/security/announce/2013/mfsa2013-53.html).當然,對于我們來說Tor已經能夠滿足我們了。如果你在找有關如何躲避聯邦政府對Tor網絡的監控的話,恐怕這篇文章不適合你。

            0x01 細節


            下面是基本步驟

            1、安裝和設置Privoxy  
            2、安裝和設置Tor  
            3、配置Privoxy將代理指向Tor  
            4、通過Privoxy來上網
            

            雖然以上步驟我是在linux上面演示的,但是其他系統上的設置基本上大同小異,比如windows,mac ox x。Privoxy 和 Tor組合可以讓你很輕松的在Tor網絡里作為一個匿名節點翱翔,這個節點跟IP地址的概念不太一樣。如果有人想通過Tor網絡來監控你的數據包的話,他們有可能是知道你在跟誰通信,但是這個不是我關注的重點,重點是沒有人會知道我們是從哪里發起這個通信的。

            1、安裝和配置Privoxy

            Privoxyd官網(http://www.privoxy.org/)是這樣介紹這款軟件的:Privoxy 是一個擁有高級過濾、修改網頁數據和http header、訪問控制和屏蔽廣告等互聯網垃圾功能的無緩存web代理工具。Privoxy 擁有靈活的配置并且可以高度定制化,以滿足各位黑闊的需求。它在單人操作系統和多人操作系統下均有對應的版本。

            它非常容易安裝,不會的話去這里看看http://www.privoxy.org/user-manual/index.html,找到你自己的系統,然后按照步驟來就ok了。比如在Fedora 里只需這樣:

            #!bash
            yum -y install privoxy
            

            當然你也可以使用其他的http代理工具,比如polipo 。

            2、安裝和配置Tor

            Tor的官網(https://www.torproject.org/)是這樣介紹她的:Tor最初是美國海軍研究實驗室設計用來作為第三代洋蔥頭路由的項目。她最初是美國海軍為了保護政府的通信隱私而開發的。今天,全世界所有的普通人都可以用它來做各種各樣的事情,比如軍人,記者,政府人員,政治分子等等。

            這里有Tor的工作背景:
            https://www.torproject.org/about/overview.html.en#thesolution

            如果它勾起你的好奇心,可以在這里下載安裝:
            https://www.torproject.org/docs/documentation.html.en

            這里有Tor的警告和一些局限性:
            https://www.torproject.org/download/download-easy.html.en#warning

            對于那些已經熟悉Tor,但是可能因為某些大家都懂的原因,比如被墻了之類的,連接不上Tor的專有網絡的人,可以看看這里看如何通過bridge 來連接到Tor網絡:
            https://www.torproject.org/docs/bridges.html.en

            3、配置Privoxy 指向到Tor

            我選擇使用Privoxy 和 Tor組合最主要的原因就是DNS。如果我想控制本地的dns請求,以便我所有的dns請求都不泄露我的信息,我可以不停的換用一些公用dns服務器(比如8.8.8.8)。但是Privoxy還提供了一些附加功能用來阻斷請求,而且它還會阻止那些有可能會暴露我們IP的請求。

            這配置其實非常簡單。在Linux里,只需要簡單的配置下Privoxy讓它鏈接到Tor,那么Privoxy就會將所有的DNS和HTTP請求轉發到Tor網絡里。

            要讓Tor幫你轉發請求,只需在Privoxy里這樣配置:

            forward-socks5 / 127.0.0.1:9050
            

            下面是privoxy 的完整配置文件(沒有注釋)。從里面可以很清楚的看到它并沒有監聽所有的端口,而是直接把請求轉發給了Tor。

            #!bash
            $ grep -v "^#" /etc/privoxy/config
            confdir /etc/privoxy
            logdir /var/log/privoxy
            actionsfile match-all.action # Actions that are applied to all sites and maybe overruled later on.
            actionsfile default.action # Main actions file
            actionsfile user.action # User customizations
            filterfile default.filter
            logfile logfile
            listen-address :8123
            toggle 1
            enable-remote-toggle 0
            enable-remote-http-toggle 0
            enable-edit-actions 0
            enforce-blocks 0
            buffer-limit 4096
            forward-socks5 / 127.0.0.1:9050 .
            forwarded-connect-retries 0
            accept-intercepted-requests 0
            allow-cgi-request-crunching 0
            split-large-forms 0
            keep-alive-timeout 5
            socket-timeout 300
            handle-as-empty-doc-returns-ok
            

            4、通過代理上網

            a)配置環境變量(http_proxy, https_proxy, ftp_proxy)和命令行工具,以便通過代理上網。

            舉個例子,wget: wget是一個命令行的瀏覽器。它能跨域和遞歸地向指定地址發出請求,比如:

            $ export http_proxy=127.0.0.1:8123  
            $ wget -nc -nd http://www.willhackforsushi.com/subscriptions.xml
            

            在上面的例子中,我想查看Josh的rss feed列表,但是我又不想讓他知道是我看的。我會大概每分鐘左右發出一個請求

             * * * * * wget -nc -nd http://www.willhackforsushi.com/subscriptions.xml 
            

            來監視這個頁面,以防萬一該頁面會發生變化。

            現在,wget對于我來說是一個很乖的web機器人。首先它會按照規定請求網站的robots.txt文件,并嚴格遵守該文件定義的內容。而且,wget也有nc選項,這個在我之前的例子中也用到了。這個選項的意思是”no-clobber“,或者說不要重復下載已經下載過的文件。事實上,它下載了但是并不保存。那么wget是怎么知道這個文件是不是已經下載了呢?毫無疑問,它會監控文件系統。所以

            #!bash
            touch robots.txt; wget -nc -nd http://www.willhackforsushi.com/subscriptions.xml
            

            將告訴wget不要保存 willhackforsushi.com這個網站的robots.txt文件,而是保存之前就保存過的一個空的robots.txt文件。

            b)用-http-proxy選項來開啟安卓虛擬機

            通過一個安卓虛擬機安裝一些app來進行滲透測試是一個不錯的方法,當你在虛擬機里輸入命令時,多半會用到 "-http-proxy ipaddr:port"。

            確保你先運行了privoxy 。如果虛擬機不能訪問privoxy 的本地端口,那么這些設置會失效。還會以圖解的方式出現警告。

            舉個例子:

            #!bash
            emulator -avd IceCreamSandwich -partition-size 256 -qemu -http-proxy 127.0.0.1:8123
            

            現在,所有虛擬機里的數據包都會通過privoxy轉發到Tor網絡里。

            不得忽視的一點是:在虛擬機啟動前,必須先開啟privoxy ,并確保本地端口監聽是正常的。如果虛擬機在啟動了之后不能連接到privoxy 的端口,那么它就會忽略這些代理選項,而且虛擬機還會直接使用本地網絡來與外界通信,這無疑會暴露我們的源IP。

            c)配置一個應用程序(或者設備)來使用代理

            http_proxy環境變量對基于命令行的工具來說非常有用,因為大部分的命令行工具都會使用到它。但是,窗口工具不同于BASH的環境變量,他們有自己獨立的代理設置。所以你可以通過配置好的應用來連接到代理。比如在chrome里可以這樣:

            打開chrome,輸入"chrome://settings/"  
            選擇高級選項  
            在網絡選項里,點擊“更改代理設置”按鈕  
            配置http和https代理到127.0.0.1:8123
            

            (所有主流瀏覽器的設置基本上大同小異)

            d)通過 iptables 規則來分配數據包

            如果你的應用程序不使用命令行代理環境變量,而且你也不能通過配置一個應用程序來連接代理,你還可以通過配置iptables 來使用NAT轉換數據包到代理上。

            下面是一個我經常用的bash腳本:

            #!bash
            #!/bin/bash
            ## CHECK FOR ROOT
            wai=`whoami`
            if [[ "$wai" != "root" ]]
            then
             echo "
            You need to be uid 0. Re-run as:
            sudo $0
            "
             exit
            fi
            ## SET SYSTEM TO PREROUTING IP PACKETS
            echo "1" > /proc/sys/net/ipv4/ip_forward
            ## HTTP TRAFFIC
            iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 8123
            ## HTTPS TRAFFIC
            iptables -t nat -A PREROUTING -p tcp --destination-port 443 -j REDIRECT --to-port 8123
            ## CHECK FOR BURP
            pgrep -fl privoxy 2>&1 > /dev/null || echo "Are you sure privoxy is running?\nOr maybe you intend to use something else I didn't check for."
            

            我認為我已經設置好了后,我測試了下看它咋樣。先來wget谷歌一下,

            #!bash
            wget http://www.google.com
            

            然后我用tcpdump抓包看了下

            #!bash
            tcpdump -Xnnv -i eth0 port 80 or port 443 or port 53
            

            因為如果我的代理工作正常的話,我在本地用tcpdump應該是抓不到任何數據包的。

            注意我的請求被重定向到了google.fr,因為我是在Tor的匿名節點當中。

            NewImage

            現在,你們可以盡情的干壞事了!各位大黑闊們!確保你們的訪問都得到了授權哈。。。比如你可以看看那些高大上的軟件是如何和自己家庭網絡互通的。

            現在,你已經具備了一定的匿名性了(前提是你們要有一定的授權哈),你可以用爬蟲爬爬目標網站,下一些惡意軟件來研究一下,或者跑一些你正在測試的app,與此同時,你不必擔心你的源位置會被暴露。

            from:http://pen-testing.sans.org/blog/pen-testing/2014/03/16/tor-nonymous-using-tor-for-pen-testing

            <span id="7ztzv"></span>
            <sub id="7ztzv"></sub>

            <span id="7ztzv"></span><form id="7ztzv"></form>

            <span id="7ztzv"></span>

                  <address id="7ztzv"></address>

                      亚洲欧美在线