freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

我想要个T恤衫
2017-08-21 00:26:23

0x01为什么还要写好友定位?

在freebuf已经好些人写过相关内容的文章了,我为什么还要写呢?

原因很简单,我想换一个freebuf的T恤衫,这个T恤衫需要15金币,而我只有7个,怎么办?写个文章换金币呗。。。。。。。

这个话题虽说是老生长谈了,但是其实我要将的不仅仅是获取IP然后定位这样,我最初是想通过获取IP==>打通通道==>消耗流量,但是后来我发现我国的网络错综复杂,想打通通道却是难事,终极目的尚未达成,但是我又渴望得到这件T恤。。。。所以我打算写个上下篇,先把能实现的写出来,没能实现的以后实现了我再写。

我觉得这个T恤挺不错的。。

我觉得这个T恤挺不错的。。


0x02 获取IP的方法

前些日子有个定位女友的文章写了一个定位好友的方法,非常巧妙,原理类似于钓鱼,通过点击发送的页面来获取真实的IP。我跟这位小哥的方法不太一样,还有位小哥用筛选02004800字符串的方法寻找IP,我其实跟他这个类似,只不过我筛选的方法不同而已。我是通过udp.length==80来进行筛选,筛选出的结果会非常直观。

首先,打开你的wireshark,开始抓包,筛选udp.length==80的报文(不要),然后用qq或者微信给你的好友打电话(响两声就挂就行)。

QQ图片20170820215436.png

可以非常直观的看出qq电话的报文。

这里面106开头的公网IP地址就是你好友所使用的公网IP,你可以找个IP定位的网站定位一下就好了,比如 http://ipplus360.com/就可以进行定位,不过这几天不知道怎么了没法对移动网络就行精准定位了,但是对那种有线的家用宽带定位还是可以的。

QQ截图20170820220726.png


如果只是想简单的定位,那么看到这里就可以了,如果想了解其中的原理,你可以接着往下看。


0x03 网络电话的原理

细心的网友可能会发现,上文中我抓的包中除了公网IP之外还有一个私有IP地址,这个地址是什么鬼呢?

22.png

而且这个私网IP跟我所在的内网还不是同一网段,我第一次看到的时候我脑子里就出现一句话:这特么有毛用啊!?

后来我发现,这个地址竟然是qq电话被叫好友的地址,这台电脑是连接在手机热点下的,获取的是手机分配给它的一个私网地址,就是这个192.168.43.25。

毫无疑问这个私有地址和公有地址肯定都是对端qq软件上传给腾讯服务器,服务器又传给我的qq软件的(腾讯兄,这算不算上传用户信息啊?嘿嘿)。

但是我目前还是很懵逼,还是不知道跟一个私有IP通信是为了啥?而且为啥对方连个回应也没有啊,这不科学啊。

于是我就继续抓包,不同的网络,不同的主机抓到的报文差异很大,比如下面这个

33.png

这里的192.168.228.1其实并不是对端的私有IP,而且是因为对端的主机安装了vmware,这个地址其实是vmware虚拟网卡的IP地址(看来qq比较傻,分辨不出那个才是真的IP)。

有的时候又会不同,比如下面这个

44.png

这个对端有回应了,准确的说是收到了对方的回应。之所以这样是因为对方也是处在有线的网络之中,具体的后面我会讲。


还有一种情况就是两个qq用户处在同一个局域网之中了

55.png

直接就建立了连接了。这下我终于明白为啥会给对方的私有IP发报文了,就是为了应对同一局域网的情况。

夜深了,我的条理有点混乱了。。。。

梳理一下:至此,我大概明白了qq电话的通信流程了

第一步、先确定对方跟自己是不是处在同一个局域网,方法就是给对方的私有ip发请求,如果不是同一局域网那么这条报文就会因为没有路由而被丢弃,如果是同一局域网那么就会成功建立起连接(安装了vmware的是特殊情况,不会建起局域网内的连接),这样直接交换信息,连接最稳定速度也快,就跟内网qq之间传文件一个道理。

第二步、在第一步确定不是同一局域网的情况下,会尝试进行UDP打洞,让两个同在不同局域网的主机直接进行连接,这就用到了UDP打洞技术,但是UDP打洞不是什么情况下都能成功的,这要看双方的NAT方式,我会在下文详细讲。

第三步、是在两个qq用户不在同一局域网,并且UDP打洞不成功的情况下使用的,那就是通过腾讯的服务器进行中转,让腾讯服务器在中间做个代理帮忙传话。

用这三步就能让两个qq用户间建立最适合的通道,来完成通话。


0x04 UDP打洞原理


UDP打洞其实就是让两个处在局域网中的主机建立udp连接的一种方法,这个原理要是详细讲也能讲一会的,我下篇文章再做详细分析吧。^_^


本文作者:, 转载请注明来自FreeBuf.COM

# 定位 # IP追踪
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
评论 按时间排序

登录/注册后在FreeBuf发布内容哦

相关推荐
  • 0 文章数
  • 0 评论数
  • 0 关注者
登录 / 注册后在FreeBuf发布内容哦
收入专辑