长亭百川云 - 文章详情

【热剩饭】获取代理池背后攻击者的真实IP

学蚁致用

46

2024-07-13

写在前面

    继上次代理池之后,我们有了动态切换IP的代理池方案,看着挺不错,封不完IP,作为防守方要怎么揪攻击者的小辫子呢?

    WebRTC 获取IP是比较老的技术了,看了一圈大家好像也没怎么注意这玩意儿,今天再把这剩饭拿出来热一热,毕竟江郎才尽了不是。


起因

    代理是大家在打点的时候经常会用到的,其中就以 socks5 最为方便。但是我们注意到,socks5 协议本身是支持 UDP 协议的,只是大部分的客户端软件/库的作者比较懒,没有实现这部分,遇到之后都直接写个 TODO

    那么思路来了,我们能不能在网页上发起一个 udp 请求呢?试想一下,攻击者在代理后面,所有的 tcp 请求都会被攻击者通过 socks5 代理转发出去,如果是 udp 请求,由于代理不支持 udp 会直接由攻击者自己去访问,那么是不是就可以抓到攻击者的真实的出口IP地址了呢?

理论上好像是这么个道理,不如搞个 demo 测试一下


寻找合适的方法

说干就干,Google 一下,马上知道。我们找一下 HTML/JS/CSS 这些语言能不能发起 udp 请求。

StackOverFlow 上面给了我们答案,可以用 WebRTC。

哇,这玩意儿可不陌生啊,老朋友了。大家以前在用 XSS 平台的时候,最喜欢的 XSS 获取受害者内网/公网 IP ,就是用的 WebRTC。

https://github.com/diafygi/webrtc-ips  这个仓库里面已经有现成的 demo 了。好家伙,6 年前的 demo,结合着新版本的开发文档,我们把这个 demo 稍稍改动了一些:

为了明显的对比 TCP 获取到的 IP 地址和 WebRTC 获取到的 IP 地址, 我们改成 php 的, 然后给 javascript 里面加了一些 try catch 处理,最终长这个样子:

webrtc.php

<!DOCTYPE html>

ok, 找台服务器,把这个脚本放上去,然后开启代理试一下:

挂代理的方式我也顺便测试了,你们可以自己测一下

  1. Chrome 插件 SwitchyOmega

  2. Proxifier 直接给浏览器进程挂代理

  3. Clash 开系统代理

然后访问我们的目标站点:

18.167.94.x 是代理的地址, 上 IPIP 查一下地理位置是 HK 的

我们再查一下 117.136.x.x 这个用 WebRTC 获取到的 IP 地址:

好家伙,果然是我本机的出口IP了


事情就是这么个事情,老套路,不算什么新东西。说一下注意的点:

  • 这玩意儿默认是启用的(对的没错,包括你现在在看文章用的微信的浏览器)

  • 那挂个支持 udp 的 socks5 代理行不行?不行,WebRTC设计之初就是为了点对点通信,毕竟是传流的,压根就不会走代理,懂了啵

  • VPN 行不行?可以。

受限于时间原因,像 QUIC 等其它的基于UDP的协议,没来得及一一去尝试,大家自己有兴趣可以实验实验。我们来说说想到的几处应用。

蓝队发散思维

1.  WAF 拦截页面埋点,打点爱用代理是吧?埋在 WAF 拦截后的页面里面,抓到的IP都不是好人

2. 往蜜罐里埋

3. 可以挖掘一下其它的未被注意到的基于 UDP 协议的功能

至于拿到真实 IP 地址之后,回传的问题,可以用 ajax 发 http 包带回去,也可以自己实现一个 WebRTC 服务器,走 udp 来收这部分的数据。除了 WebRTC 服务器之外,像 WebRTC 中用于的 STUN / TURN 服务器,你也可以自己实现一套,反正不让你知道我在哪一步记你就完事。


红队发散思维

1. 专用打点浏览器,禁掉 WebRTC 功能。

是的,我找了一圈的人测试,发现很少有人会禁掉这个功能,所以写了这篇文章出来。

Chrome浏览器禁用 WebRTC 的方法是:在Chrome应用商店里,安装一个名为 WebRTC Leak Prevent 的扩展,然后选择 Disable non-proxied UDP(force proxy) 即可。

Firefox浏览器禁用WebRTC的方法是:在浏览器上输入:about:config。之后搜索:media.peerconnection.enabled。找到它后双击,将其改成 false 即可。

2. 就算你禁掉了 WebRTC,也有挂代理,推荐用热点,再挂代理池

就像我上面提到的,我只是测试了 WebRTC,其它的浏览器支持的基于 UDP 的协议我都没来得及去试。

3. 改用 VPN


    想拿清明节 3 倍工资的同学,别愣着,快去优化吧


不如关注一波再走?

相关推荐
关注或联系我们
添加百川云公众号,移动管理云安全产品
咨询热线:
4000-327-707
百川公众号
百川公众号
百川云客服
百川云客服

Copyright ©2024 北京长亭科技有限公司
icon
京ICP备 2024055124号-2