1. 首页
  2. 红队技术

什么!我用代理你还可以找到真实ip?

【推荐学习】暗月渗透测试培训 十多年渗透经验,体系化培训渗透测试 、高效学习渗透测试,欢迎添加微信好友aptimeok 咨询。

以为挂×××或者代理就安全了吗?

0x01 测试

 

首先开启V2 代理(科学上网) 通过ip138 查看下请求的ip,可以看出请求的ip地址为:中国香港

什么!我用代理你还可以找到真实ip?

打开实例测试地址:

https://www.hackjie.com/tracking

我们通过下图可以看到,代理/客户端请求的ip为42开头的代理ip,下方匿名真实ip追踪地址为:39开头,且39开头地址为用户的真实Ip地址

什么!我用代理你还可以找到真实ip?

0x02 原理

 

主要还是通过:通过WEBRTC结合sutn服务器实现获取真实主机IP
WebRTC: Web Real Time Communication 是一系列为提供端到端实时通信连接的协议和 API。Google 于 2011 年发布了基于浏览器的 WebRTC 项目,且这个技术可以使很多不同的应用,如视频会议、文件传输、聊天和桌面共享等都不需要额外的插件。
WebRTC 是完全开源免费的,其使用 RTP 协议来传输音视频,并支持 Chrome、Mozilla、Opera、Microsoft Edge、安卓浏览器等浏览器。
首先 WebRTC 是完全开源免费的,其次是由于对于用户所需要的只是一个支持的浏览器。

WebRTC 信令

什么是信令

  • 信令是配置、控制、以及结束用户间通信会话的过程。
  • 端到端通信需要信令来建立。
  • 两端想要通信,主要需要三个信令步骤:
    • 分享会话控制信息;
    • 交换IP地址和端口等网络信息;
    • 交换用户的编解码器以及媒体格式。

为什么通信需要信令

  • 会话控制信息会控制端到端连接的所有建连、断连、以及发送信息。
  • IP 以及端口信息用于找到用户网络层位置。
  • 编解码器以及多媒体格式用于确定用户间建立的分辨率以及多媒体设置。
  • 这些所有的设置都根据 SDP 协议(Session Description Protocal)来进行交换。

STUN(Simple Traversal of UDP over NATs,NAT 的UDP简单穿越)是一种网络协议,它允许位于NAT(或多重NAT)后的客户端找出自己的公网地址,查出自己位于哪种类型的NAT之后以及NAT为某一 个本地端口所绑定的Internet端端口。这些信息被用来在两个同时处于NAT 路由器之后的主机之间建立UDP通信。该协议由RFC 3489定义。

        Firefox 跟 Chrome支持WebRTC可以向STUN服务器请求,返回内外网IP,不同于XMLHttpRequest请求,STUN请求开发者工具当中看不到网络请求的Firefox 跟 Chrome支持WebRTC可以向STUN服务器请求,返回内外网IP,不同于XMLHttpRequest请求,STUN请求开发者工具当中看不到网络请求的!

0x03 js测试代码

 

感谢持续关注黑客街,将会有详细源码公布


<!DOCTYPE html><html>  <head>    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">  </head>  <body>    <script>            // turn 配置      const config = {        iceServers: [{          // urls: "stun:stun.l.google.com:19302" // 这里使用谷歌,线上部署直接替换        }]      };       // 构建      let pc = new RTCPeerConnection(config);            pc.onicecandidate = function(event) {        if(event.candidate)            handleCandidate(event.candidate.candidate);      }             function handleCandidate(candidate) {          if (candidate.indexOf("srflx") != -1) {           console.log(candidate)           var regex = /([0-9]{1,3}(.[0-9]{1,3}){3}|[a-f0-9]{1,4}(:[a-f0-9]{1,4}){7})/           var ip_addr = regex.exec(candidate)[0];           alert("Your public network ip: "+ ip_addr)         }         }             pc.createDataChannel("");            pc.createOffer(function(result){          pc.setLocalDescription(result);      }, function(){});</script>

文章参考:

https://blog.csdn.net/qq_30359165/article/details/116022149

https://mp.weixin.qq.com/s/U2EQ90oIyrmmY2B2JshmJQ

https://www.yisu.com/zixun/56936.html

点击原文,进入实例测试页面

 

原创文章,作者:moonsec,如若转载,请注明出处:https://www.moonsec.com/6801.html

联系我们

400-800-8888

在线咨询:点击这里给我发消息

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息