首页 黑客接单正文

邮箱账号反查 *** 号码可行性研究_腾讯科技

hacker 黑客接单 2020-05-08 1135 4

前言

前段时间国外的开源信息工作者分享了一篇技术贴,通过邮箱反查手机号,我们也在知识星球(开源 *** 空间情报)上之一时间分享了这个技术。但原帖主要针对美国的邮箱和手机用户,那国内的用户用类似的思路可以做吗?怀着一点小好奇心,我尝试着使用平时积累的开源情报收集技巧来实验一把。

原帖的实现 ***

原贴的实现 *** 是根据国外的一些网站,如PayPal、eBay、Yahoo等网站来进行密码重置,使用邮箱账号获取 *** 号的多位数字。

PayPal使用邮箱进行密码重置得到的 *** 号

而如果同时拥有eBay和LastPass账户,则攻击者可以知道 *** 号码中十分之七的数字。而这只需要知道你的邮箱账号。

eBay使用邮箱进行密码重置得到的 *** 号  

LastPass使用邮箱进行密码重置得到的 *** 号  

接下来就只剩三位数字未知,也就是说只剩下一千种可能性,为了再次缩小范围,原著继续描述了美国 *** 号的组成,如下:  

区号(或NPA),交换(或中心局代码)和订户号  

而eBay和LastPass给了我们区号和订户号码。只缺少中间的交易所的三位数字。原著作者通过研究North AmericanNumbering Plan Administrator(NANPA,一个公开的数据集),通过前三位区号知道对应地区,再反过来结合所有1000种可能,查看哪些是分配在这个地区的,从而再排除一部分。

旧金山查询结果

从十亿种可能中筛选出几百种,接下来完全可以手动完成查询,也可以编写自动化代码,从而找到对应 *** 号。目前这篇帖子主要针对美国的用户,那国内的邮箱号,照这个思路可以反查吗?答案是当然可以。

国内邮箱账号反查实现

国内的网站和国外的差不多,在密码重置的时候,让你先输入用户名、 *** 号或者邮箱号之一,然后不管你输入的是哪一个都会显示手机号和邮箱的部分数字或者字符。换句话说,如果攻击者知道了你的 *** 号或者邮箱号其中一个,就能通过密码重置功能,知道其中另外一个的几位数字或字符。

当然,如果你知道 *** 号和邮箱的结构,你就知道,这两者之间互推的难度是不一样的。通常国内的手机号是11位数字组成,之一位固定为1,也就是最多只有10亿种可能,而邮箱则不然,虽然国内的使用的大部分都是 *** 邮箱,但是也有使用其他邮箱的,所以在邮箱号中就不止数字还存在字符,也就是说,每一位的可能性就多的太多了。所以在这里使用 *** 号倒推邮箱的难度是很大的,但如果是 *** 邮箱,那还是有机会的,感兴趣的可以试试。本文接下来研究的是从已知邮箱账号来推导 *** 号码。

在前期我花费了很多时间去测试密码重置,以某电商网站为例,如果我重置密码输入邮箱,它会显示前面三位数字和最后的两位数字。

密码重置得到手机号结果

在我尝试了多个网站的密码重置后,发现每个网址给出的位数是不同的。有的给出前三位和后两位,有的是前三位后三位等等。所以这种遮蔽 *** 并不是固定的,而是由开发人员决定,所以我们就多试几个网站。  

发掘更多网站

随后我又查看了其他一些国内热门电商网站,以下列出这些网站名字和“泄露”位数:

1、 

密码重置结果得到手机号结果

2、

密码重置得到手机号结果

3、(反过来手机号获取邮箱号,有前两位和后两位,以及中间对应位数的“*”,感兴趣可以尝试) 

密码重置得到手机号结果

4、

密码重置得到邮箱号结果

如果你查看上面这个列表,你就可以得到结论。例如,如果你有一个绑定邮箱的某电商网站账号,攻击者只需要知道你的邮箱号,就可以知道你 *** 号的十一分之七。换句话说,攻击者可以使用你的邮箱号,来把猜测你的 *** 号从10亿种可能减少到10000种可能。

虽然以上列举的第四种电商网站给出了7位数字,但是在国内使用率不高,大多数人会选择使用其他的电商网站,所以本文以下部分以xxx为例。

发现更多数字

由上可知,在得到邮箱账号后,通过xxx的密码重置后,可以得到 *** 号的前三位和后三位,也就是是说只剩下中间5位数字,换算也就是100000种可能,接下来就是逐步减少可能性。

首先我们通过百度百科搜索到手机号的组成结构,如下:

手机号组成结构

CC是国家码,都是中国人,固定86,不用管;

MAC前三位,是分配给国内三家虚拟运营商的号段,在密码重置的时候已经给出了,不用管;

H0H1H2H3中间四位,是HLR识别码,是虚拟运营商给全国每个省市分配的,简而言之就是地区码;

ABCD后四位,之一位未给出,因为是随机分配的,所以都有可能。

HLR识别码

也就是地区码,这是每个虚拟运营商给全国每个省市分配的,可以结合MAC进行查询该号码的所在地。

现在接打 *** 在通话号码下都会显示来电号码的地区,这就是一个公开的信息,所以我们可以通过查询网站进行查询,输入前三位MAC加后面从0000到9999,得到已分配的HLR识别码和对应所在地。那么假设,如果攻击者已经通过密码验证得到前三位和后三位,又知道你的所在地,就可以从这10000种可能减少到几百甚至几十种可能。

1771234所在地信息查询结果 

总所在地信息查询结果

空号检测

在接下来手动测试的时候,发现大部分号码根本没有进行注册,也有可能它本就是个空号。在这里我就想到另一种再次缩小范围的 *** ——检测空号。搜索空号检测的原理,大致是通过语音识别来实现,或者通过运营商的数据。所以要自己实现的话还是不容易,而在网上有很多的空号检测的网站,在这里我就是使用的其中之一。

空号查询返回结果

活跃号:也就是实号,是我们需要的;

空号:未注册的账号;

沉默号:超过六个月未激活的空号和近三个月流量使用低于30m的账号;

风险号:长期关机或未开通语音服务的,以及易投诉的用户。

经过空号检测,我们从3100种可能,缩小到751种。

反向验证

在密码重置的时候可以通过邮箱号来得到 *** 号的部分数字,相反也可以使用 *** 号得到邮箱的部分数字或字符。所以我们通过遍历上面得到的可能,反过来对比显示的字符,我们就知道这个 *** 号是否正确。

总反向验证结果

自动化工具

在这里我们使用python+selenium来进行整个流程的自动化。因为python简单:)

首先你要确保你安装了python,以及selenium库和相关库,还有Chrome浏览器和对应版本的Chromedriver

接下来假设我们已经有了目标的邮箱号和知道了他(她)的所在地,而且他(她)拥有xxx账户并同时绑定了手机号和邮箱。

使用邮箱号通过xxx的密码重置得到手机号的前三位和后三位,就还剩中间的四位地区码和一位随机码,合在一起就还有100000种可能。

通过前三位MAC结合中间三位地区码,查询对应地区后,进行筛选,将可能性降低到几千甚至几百,之后再通过空号查询筛出去一部分号码,得到最终的几百种可能性。

最后一步反向验证,在这里我们使用爬虫进行爬取验证结果。但是xxx存在一个滑块验证,而且并不是简单的滑动到位就可以通过的!网上搜索的时候有人说这是用机器学习写的反爬,我也在后续的破解过程中见识了它的厉害。

版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。