<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/7831

            0x01 背景


            為什么是以進入內網作為一個目標來討論,因為我認為站在攻擊者的角度來說攻擊的核心目標是獲取數據。而相對來說幾乎攻擊者想要的所有數據都在內網,而相對來說本身內網的安全防御能力就幾乎為0。所以從外部尋找一個突破口進入內網是整個獲得數據的過程中最關鍵的一個環節。

            那么基于這樣一個話題本來我想去講的是到底有哪些從外圍進入內網的手段,我初步的梳理了一下,我把它們分為兩大類:合法入口和非法入口。而合法入口其實就是本身企業在給員工開放的一個從外部到企業內部的通道,這里面主要包括vpn、mail、wifi;在vpn和mail這兩個入口來看我們看到的大部分攻擊方法主要是利用用戶名( http://zone.wooyun.org/content/18372) 及密碼的大數據來進行攻擊的。而wifi這一塊,我想想wifi萬能鑰匙這個就是個典型入口了( WooYun: 看我如何用wifi萬能鑰匙物理擼穿京東漫游內網 ); 而非法入口其實利用一些部署在邊界上的應用或者主機及服務相關的漏洞;這里面就包含著各種常見的漏洞了,我就先不在這里細說。

            而我這篇文章里也不太想把上面所描述的所有的內容全部來細說一遍,篇幅有限不可能每個點都講的特別相信,而且很多東西我相信之前很多人都講了很多,可能我也不能講的比他們更好,于是我更想講一些大家可能沒有講或者講的比較少的東西。那么回到主題是針對大型互聯網公司來說,那么我認為與這樣的高手過招重要的在取其命門。所以終極問題來了,大公司的命門在哪?帶著這個終極問題我們來往下分析。

            0x02 成也邊界,敗也邊界


            而大公司這個命門在哪?我們知道既然要從外圍進入內網,那么必然要做的一件事情就是跨越邊界,所有這個命門我們也就自然應該在企業的內外網邊界上來尋找。

            那為什么企業需要在內外網之間部署這樣一個邊界呢?我們只要作為一個大企業來說他會有上百甚至上千個業務線,而安全團隊或許只有幾十人,那這幾十人要保證這上千個業務線的安全,顯然如果用布點的方式肯定無法完成覆蓋的,所以企業在思考如何進行防御的時候會選擇區域性防守。

            所謂區域性防守就是把重點需要保護的業務&數據放到一個指定的區域,,讓后對這個區域進行隔離,并指定好進入這個區域的防火墻策略。然后定期對這個區域進行安全檢查。

            如果這樣實施的很好,看起來一切都很完美。但是事實上并不盡人意,事實是這樣的,在企業內部通常業務部門是會比安全部門強勢的,這一點我相信大家都知道,那么就會導致一個問題,安全部門總想著把業務圈起來,各種嚴格的策略和規范實施上去,而業務部門在業務快速迭代的背景下就會很難去嚴格執行你的策略。他們會要求你針對他特殊的業務場景來制定專門的策略,甚至部署到飛隔離區域,而且這樣的情況不在少數。如此一來安全部門需要維護的策略和規范就會越來越多。而這將直接導致策略及規范的執行越來越差。既然如此,我們都了解了企業防守上存在的一些問題,那么如何去實施攻擊測試呢?

            上面我們說到兩個很重要的環節,一個是制定規范并執行,一個是對規范的執行結果進行合規性檢查(安全檢測)。那么這兩個環節可能會出現什么樣的問題呢?一個是內網業務對外,直接脫離邊界控制;一個是合規性檢測的盲區,弱點掃描。

            0x03 攻擊思路之內網業務直接對外


            我們先來看一張圖:

            從圖中我們可以看到當我對一個公網ip的80端口發起http請求時,他會返回一段js代碼,這段js執行以后會直接跳轉到http://passport.oa.com/passport/... 這樣一個地址,但是我卻發現passport.oa.com這樣一個地址實際上是無法訪問的,因為他指向了一個內網IP。那這樣看起來就是一個很奇怪的問題了。為什么訪問一個公網IP卻要跳轉到一個內網的地址,我們在仔細看這個域名的是passport.oa.com;從命名來看似乎是說oa(辦公網)的統一登陸認證地址?這意味著什么呢?我們大膽的猜想一下,是不是因為這個公網ip對應的服務器實際上是部署著一個內部的業務,這樣解釋起來貌似比較靠譜啊?為了驗證我的想法,我對該公司的所有C段開放http服務的IP進行了批量的探測,發現了一些同樣有意思的東西:

            這個返回同樣是一段js判斷,很直接的邏輯,如果你訪問的host是指向內網(.oa.com)那么他會跳轉到一個內部的服務地址,如果你訪問的host的是指向外網(.qq.com);那么他會跳轉到一個外部的服務地址。那么我接下來很簡單,只需要對這個ip進行綁定host來測試即可:

            從返回內容來看確實是一個內網業務。

            我們再來深入的分析一下為什么會出現這樣一些問題,我認為大概是有如下幾種原因:

            1. 上線流程的問題,就是這些本來應該部署在內網的應用是如何部署到一個具有外網訪問權限的機器上的,這在上線前的安全檢查是有問題的。
            2. 機器網絡權限的管理的問題,也許這個機器申請了一個短期的外網權限,但是到期了并未下線,導致其他人在使用這個服務器的時候都也許不知道這個機器具備外網權限。

            0x04 內網業務對外的漏洞挖掘


            首先需要獲取攻擊目標企業的資產信息,即Ip及域名信息;然后通過獲取到的外網域名及IP信息獲取banner信息。然后通過判斷返回banner信息的特征來判斷該IP/域名是否存在內網業務對外的問題,具體的一些特征信息主要有如下幾點:

            1. 返回的headers里面的特征,比如Location字段內容直接跳轉到內網ip及域名。

            2. 返回的body里面的特征:body里面包含內網ip或者域名;或者一些關鍵字,比如title里帶內部xxx系統等等

            除此之外甚至可以考慮對一些內部的常用域名強行綁定公網ip進行枚舉。然后還是通過回去回包的特征來判斷。

            相關案例:

             WooYun: 騰訊某內部業務對外存在多個sql注入(少量qq賬號密碼泄露base64的) 
             WooYun: 從一個phpinfo到一次半途而廢的騰訊內網漫游之旅 
            

            0x05 攻擊思路之弱點掃描


            弱點掃描是一個典型的企業合規性檢測的盲區,即備份文件、測試代碼文件的檢測。這個完全依賴于字典的暴力枚舉來進行檢測。通常一些開發的測試文件,運維的備份文件spider是無法抓取到的,只能靠字典來暴力枚舉,那么在進行黑盒的安全檢測的時候就會出現兩個問題:

            1. 暴力枚舉的字典有限,倒不是說企業寫不出很長的字典,而是說企業在進行掃描的時候需要周期性的掃描幾千上萬個域名、ip;那么如果字典文件太大的話必然導致掃描周期很長,占用過多資源。
            2. 一些測試文件沒有明顯的漏洞特征,需要輔助人工判斷,大企業目標太多不可能過多的人工參與,從而導致漏報。

            那么基于以上兩個硬傷,攻擊者可以先對目標企業的域名及ip進行一輪字典的枚舉,字典可以盡量大,因為攻擊者其實不需要太多的考慮掃描時間,可以慢慢跑,然后對掃描結果的判斷時可以寫一些寬松的策略,比如只要判斷某個文件是否存在,且返回內容就幾個字節,或者存在一些敏感的關鍵字,比如內部系統、測試的數組結構等等就先記下來,然后輔助一些人工的判斷。當然在人工判斷的時候也是有技巧的,比如你可以一次在一個頁面iframe 50個潛在目標來進行肉眼+經驗的識別。

            下面給一些案例,就是通過這種方式發現的:

            http://wooyun.org/bugs/wooyun-2015-092833
            
            http://wooyun.org/bugs/wooyun-2015-0122949
            

            0x06 寫在最后


            對于一個大型互聯網公司來說,其實并不是因為他們安全做的不夠好,而是守需要考慮的是一個面,而攻只需要一個點,對一個點進行深入的挖掘,一定可以找到突破口,而本身企業的安全建設其實也是一直在提高攻擊門檻,并不是無懈可擊。

            而不管是對于攻擊者還是防守者來說,本身對于安全問題的發現能力是決定著這場持久的攻防戰中最核心的決定因素,正是如此,大家可以對tangscan有一些期待,希望聯合所有白帽子的力量,tangscan能夠擁有最強的安全問題的發現能力。

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

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

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

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

                      亚洲欧美在线