<pre id="vvttv"><mark id="vvttv"><progress id="vvttv"></progress></mark></pre>
    <pre id="vvttv"></pre>

      <p id="vvttv"></p>

          <p id="vvttv"></p>

                <p id="vvttv"></p>

                <pre id="vvttv"><cite id="vvttv"><progress id="vvttv"></progress></cite></pre>

                  <output id="vvttv"><dfn id="vvttv"><th id="vvttv"></th></dfn></output>

                    <p id="vvttv"></p>

                    原文地址: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

                      <pre id="vvttv"><mark id="vvttv"><progress id="vvttv"></progress></mark></pre>
                      <pre id="vvttv"></pre>

                        <p id="vvttv"></p>

                            <p id="vvttv"></p>

                                  <p id="vvttv"></p>

                                  <pre id="vvttv"><cite id="vvttv"><progress id="vvttv"></progress></cite></pre>

                                    <output id="vvttv"><dfn id="vvttv"><th id="vvttv"></th></dfn></output>

                                      <p id="vvttv"></p>

                                      这里只有精品视频