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

                    0x00 借問酒家


                    有什么東西想拿卻拿不出來?不妨開開腦洞。

                    緣起是2014年底的時候看到金山做的在線惡意代碼分析系統“Fire eye”(https://fireeye.ijinshan.com/)。感覺很新鮮,丟了自己攢的幾個樣本丟了上去,分析的結果還算可以。從分析報告來看,它也是一類沙箱檢測工具,把樣本丟到虛擬機里跑,再在虛擬機內外布控,監測樣本的各種行為,最后生成分析報告并給出判斷是否惡意樣本,分析報告里還包含樣本運行時的截圖。

                    0x01 柳暗


                    于是我開始有點好奇,這個沙箱大概是個什么樣的,于是自己寫了一些小的檢測程序丟進去,把環境變量、系統信息、網絡配置、進程列表、服務和驅動什么的讀出來顯示在窗體上,這樣從分析報告里的樣本截圖就能讀到這些信息了。

                    嘛,這里先說一下,本人并不會挖漏洞和逆向,說來慚愧,大學時候的匯編都是補考才過的。就是個小小的.net碼農而已。

                    然后我在系統環境變量里發現一個別的地方沒有的玩意:%FEKERNEL%,指向c:\mon\文件夾,想來應該是“FIRE EYE KERNEL”,即包含沙箱內部監控程序的核心文件夾。

                    有了這個發現自然不會放過,另外專門編寫了程序去枚舉和讀取FEKERNEL里的東西,然而發現只要碰了那個文件夾,樣本分析報告就會被隱去大部分內容,和FEKERNEL文件夾直接和間接(比如復制出來之后再讀取復制的文件)相關的內容都被刪掉了,想來應該是做了某種自我保護。只有讀取文件夾大小的操作沒被攔截。

                    0x02 花明


                    不過既然有了目標,路就好找了。試了幾次找到了繞過保護的辦法,成功讀取到了FEKERNEL里的文件并把詳細信息。下一步當然就是如何拿到里面的東西咯。

                    里面是大概幾十MB的二進制文件,有EXE有DLL有SYS甚至還有PDB,估計是開發人員方便調試直接把符號文件也一起扔里面了。這么多東西怎么拿出來呢?最初的想法是通過網絡傳出來,然而沙箱的網絡和互聯網是不通的,對用戶的唯一輸出僅限樣本分析報告。

                    然后我發現早幾年前有人通過編寫樣本在注冊表里寫入HTML代碼內容的鍵值在分析報告頁面成功實施了XSS,覺得這個思路是可行的。然而幾十MB的東西即便壓縮成十幾MB再按BASE64編碼,寫到一個監控程序會監控的地方,仍然沒法全部拿出來,因為太多了。就算畫在窗體上也…………

                    ……慢著,畫在窗體上?

                    腦袋靈光一閃,這辦法可以啊!我先想到的是把BASE64串按能分辨的最小字號寫在窗體上,然后進一步想到干脆利用窗體上的像素,一個像素表示一個字節,然后直接想到干脆一個像素用RGB分量存儲三個字節,這樣可輸出的數據量就成幾何級數上升。稍微計算了一下,按最高密度的數據傳輸方案,一個窗體能被截圖下來的最大面積足夠“畫下”壓縮過的完整目標數據。

                    思路有了,東西直接就搞出來了。由于FE只能上傳單個可執行文件樣本,于是把所有用到的東西打包成一個自解壓RAR,并附帶解壓后執行腳本,先繞過保護讀取到FEKERNEL里的所有內容并復制到另外的位置,然后用自帶的WINRAR.EXE通過命令行將其壓縮,最后把壓縮包以二進制打開,把內容“畫”在自己窗體上。

                    這樣我就順利拿到了FEKERNEL里的所有東西。當然這還得感謝FE在處理樣本截圖的時候沒有做任何有損壓縮,雖然是JPEG格式。

                    這個漏洞我已在去年提交給烏云:火眼惡意代碼分析系統自保機制繞過導致二進制泄露

                    0x03 又一村


                    總結:如果有什么東西你知道在哪,但沒法直接拿到,不妨冷靜分析一下:

                    1. 你能控制的輸入因素有哪些;
                    2. 阻攔你拿到數據的限制因素有什么,有沒有繞過的辦法;
                    3. 你能拿到的輸出數據有哪些,其中哪些可以通過輸入數據直接或間接控制,哪些輸出數據包含的信息量最大。

                    綜合考慮這三方面因素,并仔細分析,就不難達成目標了。

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

                                      这里只有精品视频