内容导读:导航目录:1、不用root的中间人攻击2、手机中间人攻击软件3、HTTPS中间人攻击4、android中间人攻击测试工具lanmitm怎么用5、为什么现在很多app进去都要查看我们通讯录,通话记录?6、在手机...……
导航目录:
- 1、不用root的中间人攻击
- 2、手机中间人攻击软件
- 3、HTTPS中间人攻击
- 4、android中间人攻击测试工具lanmitm怎么用
- 5、为什么现在很多app进去都要查看我们通讯录,通话记录?
- 6、在手机'设置'中'安全'中的'从SD卡中安装证书'的'证书'指什么
不用root的中间人攻击
说明这个手机是没有root权限的,root的
手机上不会出现这样的现象。
先使用在应用宝上的一键root对手机root下。
打开手机设置--开发者选项--u *** 调试,
也就能将手机用数据线连接到电脑上。
使用上在这个软件就可以成功的root了。
运行手机就没有上述问题了。
手机中间人攻击软件
手机中人攻击软件人攻击软手机中人攻击软件人攻击软件,那是不可以,这是手机软件,也是电子产品携带设计又方便
HTTPS中间人攻击
前言
之前为信安系统导论展示准备的实验被之前的小组“捷足先登”了,无奈只能又找别的实验,看了各个小组的题目,发现已经涵盖了大部分常见易操作的攻击方式,很难找到一个完全独立于其他人攻击方式的新实验,毕竟攻击思路都有共通之处,常用工具也就那些。
翻论坛找到一个有关中间人攻击的实验,觉得可以作为这次的展示,遂决定以此为题。
背景知识
原理介绍
1.HTTPS和HTTP
HTTPS是在HTTP应用层基础上使用SSL(完 *** 接层)作为子层,SSL使用数据加密技术确保数据在 *** 上传输而不会被截取及窃听。
2.中间人攻击
①SSLStrip (降级攻击)的工作原理及步骤
(1) 先进行中间人攻击来拦截 HTTP 流量。
(2) 将出现的 HTTPS 链接全部替换为 HTTP,同时记下所有改变的链接。
(3) 使用 HTTP 与受害者机器连接。
(4) 同时与合法的服务器建立 HTTPS。
(5) 受害者与合法服务器之间的全部通信经过了 *** 转发。
(6) 其中,出现的图标被替换成为用户熟悉的“小黄锁”图标,以建立信任。
(7) 这样,中间人攻击就成功骗取了密码、账号等信息,而受害者一无所知。
总而言之,SSLStrip是一种降级攻击。
②sslsplit(解密攻击)工作原理
工具的主要原理是以中间人的身份将证书插入到客户端和服务器中间,从而截断客户端和服务器之间的数据。
之前我们大多数做的都是针对于80端口的欺骗(http),也就是说,只要是超越了80端口我们就会有点棘手:比如常用的443端口(https),比如465( *** tps)和587端口,这些都是通过SSL加密进行数据传输的,简单的80端口监听肯定是什么都拿不到的。这个时候,就体现出SSL证书劫持的作用了。
总而言之,SSLSplit是一种伪造证书攻击。
3.端口转发
数据包都是有原地址和目标地址的,NAT(network address translation, *** 地址转换)就是要对数据包的原地址或者目标地址(也可以修改端口的)进行修改的技术。为什么我们要修改ip地址呢?是这样的互联网中只能传送公网地址的数据包,私有地址的数据包是无法传送的。这样你想下,你每天在wifi环境下看视频浏览网站的时候你的ip是什么(私有地址,你手机、pad、电脑发出来的所有数据包原地址都是私有地址。怎么在互联网上传送)。为了能让你的数据包在能在互联网上传送,必须给你一个公网ip才行。所以当你上互联网的时候,路由器会帮你把所有的数据包的原地址转换成它的wlan口的ip地址(这个就是公网ip,一般就是ADSL拨号获取的ip)。这个转换的技术就是NAT。当你所访问的服务器给你回应数据包时,路由器会把所有数据包目标地址,由它的wlan口的ip地址,改回你内网的ip地址。这样你才能上互联网。所以你每天都在使用NAT技术。
4..数据重定向的 ***
如何重定向到攻击者电脑上成为靶机和服务器的中间人,其实有很多种方式。
比如:
(1)arp攻击(伪装网关)
(2)DNS劫持(伪装服务器)
(3)wifi钓鱼(之前pxy他们组做的实验就可以利用起来)
(4)修改hosts文件(把舍友暴打一顿,然后把他的电脑里的hosts文件改掉)
(5)修改默认网关(把舍友暴打一顿,然后把他的电脑里的默认网关改成自己的ip)
攻击过程
1.sslstrip攻击
①将设备设置为转发模式,这样我们的设备就可以转发目标不是我们设备的数据包。若不这样,则目标主机会出现断网的情况,arp欺骗就成了arp断网攻击。
防范方式
我们可以看到,无论是哪种攻击手段,利用的都是局域网的中间人攻击。因此一些防范方式有:
①不随意连接公共wifi
②对于arp表中的ip和MAC地址进行静态固定
③开启一些安全软件的arp防火墙
④及时更新浏览器版本或换用其他安全性高的浏览器
一些感想
找一种比较有特点的攻击方式不是那么容易,实现更不容易,这过程中遇到了各种问题,一些问题网上也找不到确切的解决 *** ,一度卡住后想要放弃换实验,但还是做了下来。尽管还是没能完全实现,但展示出自己的问题和疑惑也未尝不可。展示的过程中主要还是展示原理和实操过程,而对于实验的准备、中途遇到的问题以及其他实验过程,则没有时间也不必要作为展示,但这一过程其实才是实验对于我们小组成员来说最重要的。
小组成员也都很努力,也都按照自己的能力分担了不同的工作,不像操作系统的小组有人完全划水...总体来说实验还是比较成功的(强行自我鼓励),希望以后再有类似的展示能做的更完善吧。
android中间人攻击测试工具lanmitm怎么用
笔者实习快四个月了,刚来公司的时候没什么任务,空闲的时候发现了安卓渗透神器dsploit,安装玩了几次。其实以前也听说过中间人攻击,也玩过ettercap,MITMf,metasploit等,但是一直没想过在Android上面实现这些功能,于是乎下载dsploit源码玩了几天。
刚好自己也是做Android相关工作的,所以有了自己写一个的想法,依葫芦画瓢开发了这个工具。
免责声明
本应用开发初衷仅为了学习,未经他人允许,对他人局域网进行的破坏,干扰等行为与本人无关。
功能概述
数据嗅探,可抓去局域网内部主机与外界通信数据
会话劫持,对局域网中的主机通过实施ARP欺骗,进行cookie欺骗,从而达到劫持会话的效果
简单web服务器功能,结合下面功能实施钓鱼欺骗
URL重定向,实现DNS欺骗功能。配合上面web服务器功能,可进行钓鱼欺骗功能待(待完成)
WiFi终结,中断局域网内主机与外界通信(待完成)
代码注入,通过数据截取,对远程主机返回的数据进行篡改,实现代码注入的效果(待完成)
截图预览
安装前提
1、安卓手机2.3及以上,必须root
2、已安 *** usybox
下载地址
虽然该应用目前功能单一,但是毕竟是自己慢慢写出来的,我还是会继续更新下去的。如果有想法,或者想学习的同学都欢迎和我交流
直接贡献代码
为什么现在很多app进去都要查看我们通讯录,通话记录?
放在以前,各类APP安装时需要的权限其实没有多少。而现在,哪怕是一款简简单单的APP,我们在安装时会发现它申请的权限也很多。这是为啥呢?我是 科技 和软件行业的工作者,所以对这一块还是比较了解的,现在将一些原因告诉大家:
1、 收集手机号资源 :
其实很多时候,APP安装时提示需要通讯录权限,这个权限可能和它本身的功能并没有什么关系,而是 APP服务商为了收集客户的资料,为后续的营销助力 。
2、 风控要求 :
其实很多APP是涉及风控的,比如像金融类APP、小额借贷类的APP,它们 为了风控需要,是要读取你的通讯录的,以便必要时能联系到你或者你的家人朋友。
所以我们经常在 *** 上看见,不少年轻人经历了 *** 借贷,然后遭到 *** 轰炸。我们了解了这个原理,其实就可以避免了,比如在安装这类APP时,通过手机手机严格禁止此APP读取通讯录权限,或者做个假的通讯录即可。
3、 实名制要求 :
随着工信部对于固话和手机的实名制要求, 现在的手机号已实现全面实名制了 。不像以前在大街上可以买到未实名的临时手机号,现在行不通了。
因为手机号是实名制的,所以一些 APP就可以通过用户的手机号绑定来实现实名认证流程,这样对于用户而言更加便捷 。按现在的趋势,未来手机号可能能证明一个人的身份。
综上,现在各类APP之所以要读通讯录,主要原因就是: 收集信息+实名制要求 。为了避免我们信息的泄露,建议大家在安装APP时拒绝此权限申请。当然了,有些APP如果读不了通讯录权限,甚至都无法正常运行,对于这类APP,如果必要则开启通讯录权限即可。
前面有回答说APP查看我们的通讯录和通话记录,是出于风控和实名制要求,很抱歉,我不认可这个理由哦。网贷/小额贷公司控制风险,要求的是贷款人提供身份证件,本人还要刷脸,联系 *** 也要验证的,哪有事后查看通讯记录、通话记录来控制风险的?真这么厉害, *** 水军早被剿灭的干干净净。
真正的原因, 是 APP开发商利用通讯录、通话记录搜集个人隐私信息,无数人的这些信息汇成大数据,然后开发商利用这些大数据完成营销、推广,接地气儿说就是薅羊毛。
那么,APP开发商是如何利用大数据营销的呢?
首先,需要搜集用户信息,APP查看我们的通讯录、通话记录就是在搜集信息:通讯录记载了我们的社交信息(包括朋友、亲属、同事等),而通话记录可以反映通话频次、地理信息,从而分析出社交偏好、爱好等重要的个人隐私信息,再根据这些信息推送相应的广告。
举个简单的例子,你的通讯记录里有外卖 *** ,而且每个月有6次(列了个日常数字,方便说明)和外卖通话记录,连续四五个月都是如此,那么你的个人画像为喜欢 美食 ,而且爱用外卖的方式解决,APP开发商分析出这条信息后,可以通过APP向你弹送外卖广告,展开营销。
实际上,APP开发商还有一种简单粗暴的营销推广方式,查看你的通讯录后,再通过同步通讯录的方式,告诉你通讯录中其他联系人:”你的好友XX正在使用XXAPP“,通过短信的形式诱导他们下载该APP。
总之,除去部分APP为运行 正常 功能(外卖APP、地图APP必须索要定位权限,美颜APP必须索要摄像头权限,否则无法运用正常功能)而索要用户必要权限外,有部分APP向用户索要过多权限,就属于为营销而恶意侵犯隐私了。
这种APP,如果不是通讯类的还必须要允许访问通讯录联系人等,那么多半就是个流氓软件!
一般来说正规的APP只会建议开启通讯录,这些APP对我们不会造成太大的影响,它们无非是先根据你的通讯录帮你找到其他也正在使用这款软件的朋友,或是“自作主张”的推荐给通讯录中的其他人,这种权限我们完全可以选择不开启,对正常使用该软件几乎没有任何影响,如果以后需要开启也可以自己手动打开。
除了正规APP,其他的流氓软件不但会要求开启通讯录、通话记录,有些甚至会要求必须打开地理位置、允许删除通话记录、读取短信等,如果不允许,软件就无法使用一直闪退,这个时候建议大家还是直接删掉这个软件吧,否则你就会像“裸奔”一样暴露在这款APP面前。
举个例子,百度地图也会要求打开地理位置权限,但不打开同样可以进入软件,大不了就是无法获取当前位置没办法导航,手动输入位置后就可以查看路线了,在这种大数据时代,很多APP都在通过收集用户个人信息赚钱,如果允许了恶意APP查看通讯录,他们很有可能会根据你的通话记录和通讯录找到你的家人朋友然后把这些 *** 号捆绑出售。
下载APP时,更好选择正规的应用商店或官网,下载之前先查看软件有没有非常过分的权限要求以及下载人数和有没有广告,并不是说应用商店的软件就一定是非常安全和正规的,凡事没有绝对,他们完全可以不带任何病毒或捆绑插件只需要开启你的手机权限,然后贩卖。
更多优质内容,请持续关注镁客网~~
我本身是一个APP开发者 ,所以,知道的较多。
目前,你能知道很多APP需要查看你的通讯录、通话记录, 这个事情本身是好事。
安卓手机
放在以前,安卓手机要访问你的手机内存、通讯录、通话记录, 你根本不知道!
为什么这么说?
在以前,安卓手机系统还没有那么完善,但是其用户已经非常的多了。
需求变多之后,不光催生了一大堆的APP开发人员,也让某些人,产生了不好的想法。
那个时期,想什么流氓软件,你安装了之后,根本卸载不了。
像什么劫持APP页面的流氓APP,也有很多。
系统完善
现在,安卓手机经过这些年的发展,已经越来越完善了。
现在要访问手机的私密, 就要获取权限。
而获取数据,必须在用户授权后,才能获取到数据!
通讯录,通话记录用来干啥?
不同公司的不同APP,都会访问不同的权限。
其中,获取通讯录权限的比较多。
那么获取这方面权限为了干什么?
一种是为了产品更好的推广 ,当获取到了通讯录之后,就可以对比手机中的人群,那些还没有注册,那些已经注册。
没注册的可以邀请,注册了的可以互动,增加用户粘性。
另一种,就是金融类APP了 ,他们获取通讯录,通话记录,是为了风险控制。
比如说贷款APP,就要获取你手机的通讯录信息,来记录你的联系人,为了以后方便追帐。
那可以用新手机吗?
可以,但是这些公司的风控部门查不到通讯录信息,就会考虑要不要给你放款。
同理,通话记录也是如此!
当然,是否要授权给对应的APP,需要自己把握,如果你相信这款APP,那就授权,不相信,那就不授权,不使用!
比如,使用一个记事本的APP,它要访问你的摄像头、存储权限。
但你只想当一个记事本使用,这个时候,你觉得没必要,就不授权。
如果不授权就用不了,卸了这种流氓软件,换一个吧!
现在大多数安卓应用都会读取你的联系人、位置等权限。
虽然安卓系统可以禁止这些应用读取关键权限,但有的应用不开放相关权限的话就无法启动,非常令人头疼。那么这些应用取得这些权限究竟有什么用呢?目前应用经常用到的权限有以下几种:
一、联系人
这是最普遍的,几乎所有安卓应用都会读取你的通讯录联系人。从功能上来讲,读取联系人可以判断你的亲朋好友中有没有人使用同样的应用。比如微信的“添加朋友”里面有一个“手机联系人”,就需要用到手机通讯录的权限。通过这个权限可以看到你的通讯录中有谁也在用微信,方便添加好友。
当然,通讯录属于比较敏感的权限,正规的应用如果你不给它这个权限也能够正常使用,只不过类似查找通讯录好友的功能就用无法开启了。
二、位置
几乎所有的手机应用APP都会要求获取你的位置,因为只有知道你的位置才能够确定你是哪里人,需要什么生活服务。比如天气、外卖、叫车、本地新闻等功能,没有位置权限根本无法正常工作。如果你把微信的位置权限给关闭了,它就会拒绝启动。
另外手机的一些关键功能也许要位置全新,比如苹果的“查找我的iPhone”就是通过定位来实现的,如果关闭了位置功能,就无法定位手机的位置,手机丢失了也就无法再找回来了。
三、读取和发送短信
和短信相关的权限就比较敏感了,因为短信中包含了很多隐私内容,比如银行的帐号、验证码甚至密码等。如果泄露了这些关键短信内容,后果不堪设想。
而如果给予应用发送短信的权限,一些不正规的应用就有可能会在后台偷偷发送一些订购收费服务的短信,比如彩铃、 游戏 虚拟道具等。甚至可以在不知不觉中吸干用户的话费。所以一般情况下应该禁止应用读取和发送短信。
当然,让应用读取短信也有一个好处,就是当接受验证码的时候,应用可以自动读取验证码中的内容,省的用户再手动填写验证码。这一功能在手机支付等需要验证码的场合比较方便。
四、手机识别码
这个权限几乎所有的应用都会用到,手机识别码可以帮助应用确定你使用的是什么型号的手机,这对于用户来说基本上没有什么用。但对于应用开发者却十分有帮助,它可以帮助应用开发者统计使用这款应用的手机型号有哪些,有时候可以针对一些热门手机开发专门的功能。
比如iPhone 6s之后的苹果手机都配备了压感屏幕,一些应用就可以针对这种屏幕设计快捷菜单,并且根据手机识别码来判断,如果是iPhone 6s之后的手机,就可以启动压感屏幕的功能。
五、摄像头
很多用户觉得摄像头功能十分敏感,担心应用拥有摄像头权限之后会泄露隐私。但是现在很多应用都有扫一扫功能,如果不给它摄像头权限,那么扫一扫就无法正常使用了。当然如果一款应用不具备任何扫码和拍照功能,却要求摄像头权限,这个时候就需要注意了。
六、读写存储空间
这应该是比较基本的权限了,因为如果无法读写存储空间的话,应用就无法往手机中增加内容,比如下载和保存图片、视频什么的。 游戏 也许要通过写入存储空间来完成版本更新。几乎所有的应用都会用到读写存储空间的权限。
目前的手机APP在安装时都会索取用户手机上的相应功能,比如读取通讯录和通话记录、定位手机所在位置、摄像头使用权限等,有些APP要求的一些权限与其主要功能毫不相干。手机APP过度索取用户手机信息,这种情况可以分为三类:一种是申请获得用户隐私信息的权限留作备用,但是并不上传到其公司服务器;第二种是申请获得用户的隐私信息权限,然后将用户的隐私信息上传到其公司;第三种情况就是滥用已经上传到公司的用户隐私,包括用户的通讯录、通话记录及定位等隐私信息。
智能手机普及以后,手机APP寻求的权限越来越多。目前,一款手机APP只有具备了社交功能,可以做二次营销,才更有价值,也才能获得风险投资的青睐。“比如这个手电筒类APP,获取用户的定位信息后,就可以推送机主所在位置周边商家的广告。借助对用户定位信息,这款APP的商业价值就放大了。”
现在很多人习惯在手机上使用打车软件,拼车在都市白领中也很流行。国内有个拼车手机APP,安装时要求用户允许读取手机里的通讯录。但是,拼车去年公开提供下载的版本却偷偷将用户通讯录上传到本公司,而且竟然是以明文的方式上传用户手机号码,没有加密,任何有能力截获该信息的人都能看到该手机APP上传的用户通讯录,就如同在读一个Word文档一样。
另外一款手机APP,会将用户手机里的短信内容上传给本公司,而且在上传的时候,仅仅做过简单的编码。技术人员说,正版软件使用明文上传手机用户隐私信息更大的安全风险在于遭遇中间人攻击,如手机用户连接不安全的WiFi后,不法分子拦截了手机和WiFi之间的通信,这些使用明文传输的个人隐私数据就会直接被非法获取。
总结
现在很多手机应用都要求各种各样的权限,其中以联系人、短信、位置和手机识别码最为普遍,一方面是因为这几个权限的确是最常用到的。另一方,很多软件公司也在手机这些和用户隐私擦边的敏感数据,然后通过“大数据”、“云计算”等方式,来判断用户的喜好,并推送相关的广告内容。
比如用户在手机浏览器中搜索某款3C产品的信息,随后打开某东、某宝的应用之后,有很大机率能够看到相关3C产品的广告。这就是因为购物应用读取了用户的浏览器搜索记录,然后自动判断用户对这些产品有需求,从而开始有针对性的推送相关的广告。
尽管这些功能会让人产生隐私被窥探的感觉,但对于人们的日常生活其实也是有一定帮助的。不过有一定需要注意的是,在安装一些来历不明的应用时一定要注意避免开放关键权限,比如短信的读取和发送、相册的读取等。现在国产手机的系统也都做的十分人性化,在应用使用关键权限的时候都会有弹窗提示,尽可能的保护了用户的隐私不被泄露。
手机APP调用我们的通讯录信息可以分为两种情况:
那么,一起来看看APP为何会调用通讯录信息,又该如何避免个人信息的泄露呢?
手机软件APP为何会查看我们的通讯录
首先,我们先来说说良性调用,常见需要调用通讯录的多为一些社交软件。例如微信、 *** 、飞聊等软件,调用我们通讯录的信息有利于软件快速的帮助我们建立社交圈,这样用户可以灵活的选择是否添加通讯录中的好友。同时,通过用户关系的捆绑,能够增强用户使用软件的黏性,避免用户出现流失。
其次,我们再来说说恶性调用。分为两种情况,一类软件安装时会询问您是否授权访问,一类软件会偷偷在后台盗用您的相关信息。此类调用并非软件功能所需,而是淡村的为了获取个人数据,通过贩卖个人数据来获得非法的利润。
如何杜绝手机软件的恶意调用
苹果的iOS系统相对来说要好一些,只要软件安装均需要通过苹果商城才能下载使用(不过,苹果手机自带的后门程序较多,对于信息安全要就较高的也不建议使用)。问题较为严重的就是安卓手机,安卓手机软件安装的灵活性太强,无法确定随意安装的程序中是否存在恶意软件。这里建议大家使用手机厂家内置的软件市场进行下载,毕竟所有上传的软件已由厂商为我们进行了初次的把关。除此之外,对于较为默生的软件,安装时需要调用通讯录信息时,可以选择不允许,当软件具体使用通讯录信息时在进行放行。
对于一些陌生网站,大家也尽量不要填写个人数据。例如默些以手机号码来进行算命的网站,输入姓名的网站等等,殊不知,个人信息就这样悄悄的泄露出去。
不知道您是否因为个人信息的泄露遇到骚扰 *** 呢,最终是如何处理的呢?
现在的手机应用对用户权限的索取越来越多,他们的理由是让软件可以更好的运行。 实际上,建议大家在安装完软件打开后,当提示说索要通讯录权限时,尽量点击取消,不要给通讯录权限。 其他的权限,可根据软件的性质,适当的给到它,从而保证软件功能完整。
最近几年还好了些,因为手机系统的不断升级,加强了用户关系,所以软件索要权限都有提示,在早期的时候,连提示都没有,当我们打开软件后,默认获取它想要的权限。
如今人们的很多信息都是保存在手机里的,通讯录也是最有价值的信息。所以, 很多软件启动后在索要一些必要权限的同时,也会索要通讯录权限,这种情况下是可以完全不给它的,而且,不给它也并不会影响使用。
就拿支付宝来说,这是阿里巴巴旗下的APP,不管是安全性还是信任度方面,肯定是问题的吧。但是我也不会给它通讯录权限,照样使用的很正常。虽然每次通过支付宝给手机缴费的时候会提示我打开通讯录权限,但我每次都是自己手动输入,也照样不会存在使用问题。
试想一下你会发现,连支付宝这样的软件不给它通讯录权限都可以很好的运行,其他一些功能型的应用(如某某相机、某某天气等)给它通讯录权限有何用?
现在大环境比较好,流氓软件相对少了很多。但也不乏一些软件,根本用不到通讯录,而还是会索要用户的通讯录权限。其实也是为了做营销、做推广之类的。在此, 特意提醒大家,对于金融类的APP,一定别给它们通讯录权限。否则的话,它们会通过分析你的通讯录列表、信息等,以后给你或你通讯列表里的人发各种垃圾广告。
其实,如果你有留意的话就会发现,大部分APP在使用过程中并没有需要通讯录信息的,可是首次打开的时候却都会索要这一权限。站在用户角度来看的话,你可能没有什么损失,这只是你不知道,但站在开发商角度的话,它们就又获取了一批“手机号码”以及可供它们分析的短信“信息”。对于不良的开发商,可能就会做一些别有用心的事儿了。
所以,我给大家的建议就是, 当我们首次打开刚刚安装的软件时,不管它是什么软件,都不要给它通讯录权限。假如在后续使用时候,发现该软件确实需要此权限才能正常运行的话,那么可根据需要决定,要不要给它权限。这样,就能很好的保护自己的通讯信息不被泄露。
我是程序员爱编程,我从事互联网软件开发多年,我来回答一下这个问题。
我认为一些手机app在运行时会要求获取相应权限,我们要根据该app的性质和功能来判断它是否应该获取该项权限。
获取手机通讯录访问权限
一般情况下,带有社交性质的app都会要求获取手机通讯录的访问权限,例如qq、微信、飞聊等等。它的目的是为了根据你通讯录的手机号为我们推荐你的潜在好友。我们也可以选择不开启,app依然可以正常使用,之后我们也可以在软件设置中手动开启。
获取手机位置的权限
手机定位对于我们来讲也非常重要,一般带有导航性质的app会要求获取手机位置权限,例如各种地图、美团、各种快递等等。它的目的是定位我们的位置,为我们提供一些身边的服务。同样我们也可以选择不开启,之后在软件设置中开启。
获取通话记录的访问权限
说实话,这项权限在我使用的app中还没有遇到过,估计那些辅助拨号软件和辅助短信软件会用到吧,例如无忧通话录音等等。我觉得通话记录和短信过于私密,不建议对任何软件开通通话记录和短信的访问权限。
所以,我们要根据软件的用途来判断我们是否需要提供相应的权限给它, 如果我们不赋予权限app就不能用,那一定是流氓软件,一定要远离。
很简单啊,人家要你的数据,要你的关系链,进行推广和二次营销,从而获得更多的用户或者收益!
APP读取通讯录后就可以知道你这个当前用户有哪些联系人,是怎样一个关系链情况,同时通过其后台的大数据进行分析统计,然后再有针对性的对你通讯录上的人进行骚扰营销,最简单的方式可能就是发一条短信。
这里我举个例子,之前我经常收到脉脉的短信,上面写的是这样的:xx,某某对你很期待!ta向你发出邀请,希望添加你为最重要的职场人脉等等。
我一看,这某某就是我以前的同事,之一反映就想点短信中的链接。你看,脉脉这营销手段是可以的吧!其实这就是读取对方的通讯录后,系统自动根据通讯录上的手机号进行自动发送,从而诱导你来安装他的APP。由于通讯录上的联系人,基本上都是和你相关和认识的人,利用这种关系来进行营销,人们的戒备心理会不自然的下降,很容易上钩。而脉脉这种方式,还算 是 简单粗暴的,完全还可以更精准更隐蔽。
所以你知道现在为什么诈骗 *** 、垃圾短信这么多吗?很大程度就是我们把自己的信息交出去了,然后人家APP厂商再进行二次开发,好点的厂商就自己用,恶心点的就将你的信息在转手出去,然后咱们的信息就在黑色产业链中被充分利用。
现在我们的手机号承载着太多内容了,很多服务的帐号都是直接以手机号注册的,虽然注册时省事了,但是你的帐号安全性也更差了,APP读取下通讯录这些信息全有了。所以,对于莫名索取我们通讯录的APP应该说NO,而不是随意开放这个权限,并且是之一读取时就制止,等后续禁止就已经晚了。
感谢阅读,给点个赞鼓励下吧,欢迎关注【罗氏虫社】,谢谢!
手机通讯录涉及个人隐私,手机软件获取通讯录的情况主要有三种:(1)有些软件的功能需要获得读取手机通讯录权限才能正常运行,比如说手机备份、手机安全卫士、骚扰 *** 拦截等软件。(2)有些软件对于查看通讯录权限是非必要的,譬如很多社交软件会询问是否同意读取通讯录,如果你不需要使用社交软件直接关联通讯录联系人的账号,没必要把这一项授权给它们。(3)还有部分“野蛮”软件的功能与通讯录无关,但是非要获取查看通讯录的权限,才让用户正常使用该软件,其目的极有可能是窃取用户的通讯录隐私。
“野蛮”软件为什么非要查看用户通讯录?①掌握用户的隐私信息和相关联系人,非法出售以谋取利益。他们一般把隐私数据卖给业务营销类、金融借贷类或者诈骗分子,造成用户经常接到骚扰 *** 、诈骗短信等。②大部分软件是免费的,绝大多数软件开发者是通过广告获取利益,如果获取了用户的隐私信息,可以通过大数据分析,建立用户画像,更精准地投放广告和推送内容。
手机通讯录权限,不要随意授权,辨别清楚该软件是不是真的需要此权限,尽可能保护自己的隐私不被泄露。
在手机'设置'中'安全'中的'从SD卡中安装证书'的'证书'指什么
https证书有效性验证引发的安全问题
超级试驾员
阅198转02019-01-16分享收藏
前言:
在实际项目代码审计中发现,目前很多手机银行虽然使用了https通信方式,但是只是简单的调用而已,并未对SSL证书有效性做验证。在攻击者看来,这种漏洞让https形同虚设,可以轻易获取手机用户的明文通信信息。
手机银行开发人员在开发过程中为了解决ssl证书报错的问题(使用了自己生成了证书后,客户端发现证书无法与系统可信根CA形成信任链,出现了 CertificateException等异常。),会在客户端代码中信任客户端中所有证书的方式:
public static HttpClient getWapHttpClient() {
try {
KeyStore trustStore = KeyStore.getInstance(KeyStore.getDefaultType());
trustStore.load(null, null);
SSLSocketFactory sf = new MySSLSocketFactory(trustStore);
sf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
//此处信任手机中的所有证书,包括用户安装的第三方证书
HttpParams params = new BasicHttpParams();
HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
HttpProtocolParams.setContentCharset(params, HTTP.UTF_8);
SchemeRegistry registry = new SchemeRegistry();
registry.register(new Scheme(“http”, PlainSocketFactory.getSocketFactory(), 80));
registry.register(new Scheme(“https”, sf, 443));
ClientConnectionManager ccm = new ThreadSafeClientConnManager(params, registry);
return new DefaultHttpClient(ccm, params);
} catch (Exception e) {
return new DefaultHttpClient();
}
}
而在客户端中覆盖google默认的证书检查机制(X509TrustManager),并且在代码中无任何校验SSL证书有效性相关代码:
public class MySSLSocketFactory extends SSLSocketFactory {
SSLContext sslContext = SSLContext.getInstance(“TLS”);
public MySSLSocketFactory(KeyStore truststore) throws NoSuchAlgorithmException, KeyManagementException, KeyStoreException, UnrecoverableKeyException {
super(truststore);
TrustManager tm = new X509TrustManager() {
public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {
}
//客户端并未对SSL证书的有效性进行校验,并且使用了自定义 *** 的方式覆盖android自带的校验 ***
public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {
}
public X509Certificate[] getAcceptedIssuers() {
return null;
}
};
sslContext.init(null, new TrustManager[] { tm }, null);
}
问题出来了:
如果用户手机中安装了一个恶意证书,那么就可以通过中间人攻击的方式进行窃听用户通信以及修改request或者response中的数据。
手机银行中间人攻击过程:
1 客户端在启动时,传输数据之前需要客户端与服务端之间进行一次握手,在握手过程中将确立双方加密传输数据的密码信息。
2 中间人在此过程中将客户端请求服务器的握手信息拦截后,模拟客户端请求给服务器(将自己支持的一套加密规则发送给服务器),服务器会从中选出一组加密算法与HASH算法,并将自己的身份信息以证书的形式发回给客户端。证书里面包含了网站地址,加密公钥,以及证书的颁发机构等信息。
3 而此时中间人会拦截下服务端返回给客户端的证书信息,并替换成自己的证书信息。
4 客户端得到中间人的response后,会选择以中间人的证书进行加密数据传输。
5 中间人在得到客户端的请求数据后,以自己的证书进行解密。
6 在经过窃听或者是修改请求数据后,再模拟客户端加密请求数据传给服务端。就此完成整个中间人攻击的过程。
以fiddler工具模拟中间人攻击为例:
1 首先在手机中装入fiddler根证书:
导出fiddler的根证书:
将fiddler根证书放入手机的SD卡中,然后在手机设置-安全中选择从SD卡中安装证书:
成功安装fiddler根证书到手机上:
2 在PC端打开fiddler,将手机通信 *** 到PC端fiddler所监听的端口上(可以在wifi中的高级设置中设置 *** ),这样手机银行的所有通信均会被fiddler监听到。
3 启动手机银行客户端,会在fiddler中查看到所有请求的明文数据,并且可以进行修改后转发,成功将https加密绕过。
防护办法:
使用CA机构颁发证书的方式可行,但是如果与实际情况相结合来看的话,时间和成本太高,所以目前很少有用此办法来做。由于手机银行服务器其实是固定的,所以证书也是固定的,可以使用“证书或公钥锁定”的办法来防护证书有效性未作验证的问题。
具体实现:
1 公钥锁定
将证书公钥写入客户端apk中,https通信时检查服务端传输时证书公钥与apk中是否一致。
public final class PubKeyManager implements X509TrustManager{private static String PUB_KEY = “30820122300d06092a864886f70d0101″ +”0105000382010f003082010a0282010100b35ea8adaf4cb6db86068a836f3c85″ +”5a545b1f0cc8afb19e38213bac4d55c3f2f19df6dee82ead67f70a990131b6bc” +”ac1a9116acc883862f00593199df19ce027c8eaaae8e3121f7f329219464e657″ +”2cbf66e8e229eac2992dd795c4f23df0fe72b6ceef457eba0b9029619e0395b8″ +”609851849dd6214589a2ceba4f7a7dcceb7ab2a6b60c27c69317bd7ab2135f50″ +”c6317e5dbfb9d1e55936e4109b7b911450c746fe0d5d07165b6b23ada7700b00″ +
“33238c858ad179a82459c4718019c111b4ef7be53e5972e06ca68a112406da38″ +
“cf60d2f4fda4d1cd52f1da9fd6104d91a34455cd7b328b02525320a35253147b” +
“e0b7a5bc860966dc84f10d723ce7eed5430203010001″;
//锁定证书公钥在apk中
public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException
{
if (chain == null) {
throw new IllegalArgumentException(“checkServerTrusted: X509Certificate array is null”);
}
if (!(chain.length 0)) {
throw new IllegalArgumentException(“checkServerTrusted: X509Certificate is empty”);
}
if (!(null != authType authType.equalsIgnoreCase(“RSA”))) {
throw new CertificateException(“checkServerTrusted: AuthType is not RSA”);
}
// Perform customary SSL/TLS checks
try {
TrustManagerFactory tmf = TrustManagerFactory.getInstance(“X509″);
tmf.init((KeyStore) null);
for (TrustManager trustManager : tmf.getTrustManagers()) {
((X509TrustManager) trustManager).checkServerTrusted(chain, authType);
}
} catch (Exception e) {
throw new CertificateException(e);
}
// Hack ahead: BigInteger and toString(). We know a DER encoded Public Key begins
// with 0×30 (ASN.1 SEQUENCE and CONSTRUCTED), so there is no leading 0×00 to drop.
RSAPublicKey pubkey = (RSAPublicKey) chain[0].getPublicKey();
String encoded = new BigInteger(1 /* positive */, pubkey.getEncoded()).toString(16);
// Pin it!
final boolean expected = PUB_KEY.equalsIgnoreCase(encoded);
if (!expected) {
throw new CertificateException(“checkServerTrusted: Expected public key: ”
+ PUB_KEY + “, got public key:” + encoded);
}
}
}
}
2 证书锁定:
即为客户端颁发公钥证书存放在手机客户端中,在https通信时,在客户端代码中固定去取证书信息,不是从服务端中获取。