自动采集数据(WiFi*敏*感*词*的基础功能并不是采用某些答案(组图))
优采云 发布时间: 2021-12-14 17:21自动采集数据(WiFi*敏*感*词*的基础功能并不是采用某些答案(组图))
WiFi*敏*感*词*的基本功能不是像一些答案中提到的通过“密码库耗尽(一一尝试)蛮力”的方式获取正确的密码,而是上传共享热点(主动或“被动”)通过用户到后台服务器。以某种方式采集和积累数据。后端服务器维护一个热点数据库,其中收录热点名称(或用于唯一标识的MAC地址)和相应的密码字符串。查询密码时,用户上传扫描到周围的陌生热点信息,服务器后台查询对应的密码(如有共享)返回给APP供用户选择。不过WiFi共享密钥有“深度解锁”功能,与“蛮力破解”有些关系,但它只使用一些常见且简单的密码来尝试连接到热点。它不能被视为一个详尽的密码库。”。
丰富WiFi*敏*感*词*密码库的主要方式是用户主动分享。毕竟用户群变大了,但以前不是这样。早期用于获取热点密码数据的WiFi*敏*感*词*并不聪明,甚至可耻。
我们知道Android系统中有一个文件是用来存储WiFi密码的,就是/data/misc/wifi/wpa_supplicant.conf
其内容应如下所示:
这个文件只有在获得root权限后才能访问。
图中显示有两个WiFi热点“网络”,ssid是热点名称,psk是密码。上面一个是我的私人热点,另一个“Bjume”是某个商家提供的免费热点。请注意,密码为明文“bjume2013”。
获取这个文件,或者可以看到这个文件的内容,就意味着你可以得到这个手机登录的所有WiFi热点,以及它们的明文密码!
较早版本的 WiFi Master Key 将向用户申请 root 权限:
虽然我不是全职的安卓开发者,但毕竟自己开发了一些小玩意儿,对系统提供的接口和权限也略知一二。WiFi*敏*感*词*的所有业务功能,包括扫描周围WiFi信号、通过网络查询WiFi信号对应的密码、输入密码登录WiFi、将用户在应用中输入的密码上传到server通过网络,都可以使用基本的系统API实现,不知道为什么需要申请root权限。是访问 wpa_supplicant.conf 文件吗?在这一点上恶意揣测似乎不妥。毕竟,
我反编译了 com.snda.wifilocating.apk 文件。在我得到的众多smali脚本中,其中一个非常有趣:
/home/feng/documents/com.snda.wifilocating.apk/smali/com/snda/wifilocating/a/i.smali:
1049 invoke-direct {v2, v3}, Ljava/io/DataOutputStream;->(Ljava/io/OutputStream;)V
1050
1051: const-string v3, "cat /data/misc/wifi/wpa_supplicant.conf>/data/data/com.snda.wifilocating/wifi.conf\n"
1052
1053 invoke-virtual {v2, v3}, Ljava/io/DataOutputStream;->writeBytes(Ljava/lang/String;)V
在第 1051 行,WiFi 主密钥不仅访问了 wpa_supplicant.conf 文件,而且还复制了其中的内容并将其放置在自己的缓存文件夹中。
实在想不通WiFi*敏*感*词*的哪个功能需要使用用户登录的所有热点密码(注意1.0这个版本没有热点备份功能),所以只有合理的猜测出来了!当然,这种猜测还没有确凿的依据,但事实不是已经很清楚了吗?这种毫无根据的指控称为诽谤。为了避免“诽谤”的嫌疑,避免不必要的纠纷,我不打破结论。
希望团队可以自己做。