跳至主要内容

无处不在的监控: Hacking Team:WP8 监控代码分析

原文来自乌云,备份地址

0x00 背景


最近Hacking Team被黑客入侵,近400GB的资料泄漏,在安全界炒的沸沸扬扬.其中泄漏的资料包括:源代码,0day,资料入侵项目相关信息,相关的账户密码,数据及音像资料,办公文档,邮件及图片。
Hacking Team在意大利米兰注册了一家软件公司,主要销售入侵及监视功能的软件。其远程控制系统可以监测互联网用户的通讯,解密用户的加密,文件及电子邮件,记录各种通信信息,也可以远程激活用户的麦克风及摄像头。其产品在几十个国家使用
enter image description here
在源代码中有各个操作系统平台的远程控制软件源码,RCS(Remote Control System)。经过我们的分析,发现其监控内容不可谓不详尽。Android,blackberry,ios,windows,window phone,symbian均有与之对应的监控代码。
在源码中,rcs为前缀的源码文件是其远控功能,包括代理 控制 监控数据库 隐藏ip 等,而针对特定平台架构的是以core前缀命名。其中和相关window phone监控代码在core-winphone-master.zip文件中。其主要用于实时手机系统的系统状态信息如(电池状态,设备信息,GPS地址位置),联系人,短信记录,日历日程安排,照片;同时还能录音,截取手机屏幕,开启摄像头,话筒等功能,由此可见监控信息的详细程度令人害怕。
enter image description here

0x01 WP8监控源码分析


core-winphone-master\MornellaWp8\MornellaWp8下是其主要核心代码,主要文件如下:
enter image description here
通过观察源码流程图可以看出,整个监控项目源码的逻辑还是比较复杂的,但是深入之后,发现其还是设计的比较巧妙
enter image description here

0x01-1 程序框架分析

1.项目主要分为3大块Modules,Events,Actions,主要的功能Modules核心监控代码在此处,Event等待监控事件的到来并调用对应的监控模块,Action主要负责一些行为的启动和停止
程序启动流程如下:
main->mornellaStart->BTC_Init->CoreProc->Core->Task
setLoadLibraryExW分支主要负责加载一些API函数的地址,做一些初始化工作
enter image description here
最后Task创建了3大模块的管理对象ModulesManager,EventsManager,ActionsManager
并在Task::TaskInit()中启动了events
enter image description here

0x01-2 Event模块分析

Event主要负责以下事件的监控,例如短信,日历日程安排,联系人,地址位置,电池状态,进程信息,计时器状态等信息
enter image description here
所有的event均以json格式发送,并调用conf.cpp下ParseEvent进行解析,源码部分逻辑被注释上了,经过搜索发现被注释上的功能最后没有相关的实现代码.
enter image description here
我们选择电池状态监控为例,在OnBatteryLevel函数中,首先通过RefreshBatteryStatus刷新了电池的状态,deviceObj->GetBatteryStatus()得到当前的电池状态,最后me->triggerStart()添加到ActionManage中的Action队列中
enter image description here

0x01-3 Action模块分析

Action模块主要是3个类 ActionManage,Action,SubAction其中ActionManage主要维护一个Action队列,Action是抽象的接口,而执行的实体主要是SubAction
SubAction主要处理synchronize,execute,uninstall,module,event,sms,log,destroy等行为的执行
enter image description here
而在处理module时用了start类进行启动,Start首先初始化了一个ModulesManager对象,然后在调用conf对获取对应的module信息,并调用ModulesManager->start()启动对应的模块。
enter image description here

0x01-4 Module模块分析

Module模块同上面的模块结构保持一致,也是一个ModuleManage负责维护一个Modules队列。
进行外层调度,Module类是一个抽象的接口,负责统一调用接口,主要的模块接口如下.
这些模块,完成了获取设备信息(如:操作系统版本,设备ID,电量,应用程序列表,进程列表,可用磁盘空间,内存信息,处理器架构),联系人,一些社交帐号信息,同时还能开启摄像头,话筒,截取手机屏幕等功能
enter image description here
1.获取的设备信息,代码主要在DeviceInfo.cpp中
enter image description here
2.获取联系人的以及社交网站的帐号密码,代码主要在PoomAddressBook.cpp中
enter image description here
3.日历日程安排,代码主要在PoomCalendar.cpp中
enter image description here
4.截图功能(代码在SnapshotGrabber.cpp中,但是该部分代码已经被注释)
enter image description here
5.开启摄像头(代码在NativePhotoCaptureInterface.cpp中)
enter image description here
其主要通过WP的PhotoCaptureDevice API接口来实现,当你在啪啪啪的时候,你的摄像头被开启,那是种什么样的感觉呢?
enter image description here
其他的一些监控行为就不一一叙述了,大多都可以通过调用WP的接口来实现。

0x02 感染途径


Window在新推出的WP8上做了很多对非越狱用户的保护,只能安装应用商店中的软件,但是WP8可以通过一个链接访问应用商店中的某个APP,当被攻击者被欺骗的安装了该APP应用,该APP遍可以通过WP提权的漏洞来提升运行权限,即可执行高权限代码,带来的后果非常严重,所以我们要警惕一些钓鱼欺诈的应用。
而对于越狱用户,别人可以直接把应用捆绑在越狱工具,在越狱的过程中,即可捆绑安装他们的APP应用,如果这个应用是恶意的,那么后果可想而知,然而在越狱后的WP系统安全性也将大打折扣.所以我们最好不要轻易的越狱。
Hacking Team是拥有微软的企业证书的,而具有企业证书的公司可以将自己的应用提交到商店供人下载,不用授权即可安装,不论是否越狱都可以安装上去,然而从应用商店下载的程序,用户一般都会认为是安全的。
由于Window Phone用户较少,反馈的问题可能也比较少,相关的开发维护人员也相应的比较少,可能会存在一些不为人知的安全漏洞,可以突破Window Phone8的安全限制,将恶意程序安装上去,还可能存在某些已经安装的应用存在漏洞,利用这些具有漏洞应用结合提权漏洞,将恶意的应用安装到设备上。

0x03 小结


通过Hacking Team泄漏的这些资料来看,Hacking Team团队还是具备非常专业的水平,但是强如Hacking Team的公司都被入侵了,你手机里面的那些私密照片还保险么?
建议:
1.不要随意安装不知名的应用
2.及时更新系统的安全补丁
3.社交帐号设置复杂的密码
4.给私密的照片加密

Popular posts from 产品随想的博客

《Elon Musk》Chapter 1 - 10

To anyone I’ve offended, I just want to say, I reinvented electric cars and I’m sending people to Mars in a rocket ship. Did you think I was also going to be a chill, normal dude? ——Elon Musk, Saturday Night Live, May 8, 2021 PROLOGUE: Muse of Fire Near the end of the first week, the boys were divided into two groups and told to attack each other. “It was so insane, mind-blowing,” Musk recalls. Every few years, one of the kids would die. The counselors would recount such stories as warnings. “Don’t be stupid like that dumb fuck who died last year,” they would say. “Don’t be the weak dumb fuck.” 这种氛围有毒 “I realized by then that if someone bullied me, I could punch them very hard in the nose, and then they wouldn’t bully me again. They might beat the shit out of me, but if I had punched them hard in the nose, they wouldn’t come after me again.” 勇于挑战,哈哈哈 In the emergency room, when they were preparing to stitch him up, he resisted being treated until he was promised that the dog would not ...

Steve Jobs: `There's Sanity Returning', 1998

Nobody can doubt the charisma of Steven P. Jobs. The interim CEO of Apple Computer Inc., who returned to the company last July after his ignominious 1985 ouster, has brought back his legendary vision, impatience, and infectious passion for the Macintosh. Jobs spoke to Business Week Correspondent Andy Reinhardt in Apple's stark, fourth-floor boardroom, just after the company rolled out its new software strategy on May 11. Note: This is an extended, online-only version of the Q&A that appears in the May 25, 1998, issue of Business Week. Q: Now that you've introduced the new, bold-looking iMac, are you going to do some radically different products? A: There's a lot of talk about such things -- about handhelds, set-top boxes. A lot of computer companies have been searching for a consumer product. My view is that the personal computer has been the most successful consumer product of the last 10 years. What we have to do, what the industry stopp...

ISSUU使用指南--木喵

作者: 木喵   出处: Wonderworks 问:issuu是什么? 答:Issuu是国外的一个在线文档共享网站,它是你的PDF文档发布专家。它类似于我们熟悉的youtube,但它共享的是文档、杂志之类的文本。 简而言之、同志们想看国外的各种杂志? 想找国外的汇报文本么? 想借鉴国外学生的作品集么? 那么你就要用到它啦~ 今天主要和大家讲两个方面 一、如何在pc端使用和下载issuu上的pdf文档 首先我们打开issuu的网址 https://issuu.com/ 我们可以很清楚的看到网页上呢都是国外的杂志以及一些作者自己制作的pdf文档 首先我们点击右上角的 sign up  然后填写相关信息注册一个账户: 注册完成之后我们就可以搜索我们想要找的资料: 比如说,我想找一些分析图的资料,我们就搜索: architecture diagram 然后我们就可以看到相关的文档了: 点击你所选择的文档, 好了问题来了: sorry,this publication is not available 这个时候!就需要在用pc端的我们做一件必不可少的事: 翻墙 然后我们就能将页面刷新粗来了 好、接下来是非常有建设性意义的一步 怎样把我们网页上的文件 下载下来 呢? 截图? no~no~no~ 接下来,让木喵告诉你怎么下载: 首先你需要复制上面的网址 然后将 https://wenfan.hk/issuu/index_link.php 在另一个网址中打开 将你之前复制的pdf的网址粘贴在下面的对话框中 点击 I‘m not a robot 再点击 get it 然后会出现一堆网址代码 我们 全选 打开你的迅雷点击 新建 将你之前的复制粘贴到下载链接里 然后呢~我们就全都下载成功啦~ 然后我们回到之前的网页向下看 我们可以看到有上传文档的作者(记得要关注哟) 然后还有 info   share   stack   ❤ 如果...

91%犀牛人都不知道的高效率建模方法

原文地址 91%犀牛人不知道的建模技巧 习惯了su的建模思路,用rhino做方方正正的建筑如何提高效率? (原问题链接https://www.zhihu.com/question/35303800#draft) 91%犀牛人都不知道的高效率建模方法(三) KD、Holt 首先呢,继续安利一下咱们的群 前两期我们说完了 rhino的选项设置,图层操作习惯,rhino的材质设置,rhino和cad的协同,rhino自身的协同,以及rhino的剖面绘制 ,基本上是把除建模以外的前期准备工作都过了一遍,那么这期我们将正式进入实打实的建模相关的部分,不过需要注明的是,有些地方rhino确实没有su快,我们能做的就是尽可能的提高大家的效率,相信我,su能带给你的只有快速推拉方盒子,而rhino可以让你无所不能~~可能中国人懒惯了,用惯了su的那么几个命令看到rhino成百上千的命令会不由得倒吸一口冷气然后默默的转身离开,其实你学习rhino为你省下的时间比你在su中浪费的时间要多得多得多。 —————————— 实体工具 —————————— 关于rhino建方盒子,先放结论, 核心命令都在实体工具栏, 核心思想就是组合,布尔 。 你别指望rhino像su一样啪画一笔面就自动分割了,也别指望随便选中物体的哪个面就可以挤出了,也别指望成个组件之后就可以直接墙体开洞了,rhino是rhino,既然你选择了它,就得按照它的规矩来,也得容忍他在这方面的不足,况且要是这方面都秒了su,那咱们使用su的理由就真的只有显示模式好看了。 言归正传,首先我们都知道建筑模型当中,尤其是规则建筑,重复构建是非常多的,比如梁,柱墙,门窗等等,在这方面,其实rhino是有优势的,毕竟有gh在,大批量的操作做起来就异常简单了,先来看命令吧,rhino在方盒子的建模上常用的命令基本就是下面这些了。 其实这些命令的介绍我们在rhino小教室里提过,这里我们就单独结合实例再来摆活一遍吧。先说 墙体 吧. 一般我们墙体建模也就三种情况, 一种是我们有画好的天正双线墙体。 这种情况是最好办的了,直接挤出就哦了。 难就难在这双线很多时候得我们自己去描一遍,因为很多时候我们的c...

那些年我阅读过的A+U

我会在这个post里面记录自己看过的A+U期刊,感谢学院资料室,感谢冯老师,也感谢书单上的每一本书,陪我度过的每一刻时光 16.03    546    Architects in China    百家争鸣 16.04    547    Poetry of Modesty    静谧的建筑

BG投资十问(Baillie Gifford)

  1,公司是否能正面推动经济、社会或者文化发 展? 如果做不到,BG可能就不会再往下看了。比如军火、赌博类公司再便宜,BG不会去看。 2,公司销售额在5年之内能否翻倍? 为什么要讨论销售额?因为BG关注公司成长,销售额是比较简单直观的指标,而利润可有一些方法调节。所以,BG主要先关注销售额,再看现金流。 3,公司5年之后会怎么样? 这是未来5到10年或者5到15年的中间维度,一是看公司的成长空间究竟还有多大,二是考虑5年之后,公司的短期估值会不会下降,会不会变得成熟。 4,公司的竞争优势到底是什么?随着时间会变 强还是变弱? BG认为,如果公司的竞争优势是不断变弱的,将来在更远期挣回现金流的可能性就更低了。 5,公司是否有非常独特的文化?文化是否能够进化? 毕竟要投资这么长时间,对创始人和公司管理文化是非常关注的。特别喜欢创始人领导的公司,而不是说创始人什么都不干,创始人在做房地产,找了一些人在做新公司,要尽量避免这样的公司。 谈到进化在BG看来,大部分公司都会有大公司病,需要看它怎么能维持比较灵活的管理,变大之后还能够保持非常快速的成长,比如亚马逊的day one文化(注:就是始终处在 创业启动状态,充满迷茫和压力,但是充满创造力和颠覆思想 )。 6,公司过去的回报率怎么样? 一方面是考虑到公司的ROE(净资产收益率),二是考虑公司的Margins(利润),看它的过去是不是值得投资,如果每年ROE都不到10个点,可能长期来看也没什么意思。 7,ROE能不能随着时间增长? 有些公司一开始没有盈利,一直在烧钱,5年之后说不定ROE会到20%或者更高,它是一个动态过程。这样的公司BG也会投资,包括一些早期项目,很多公司都是没有盈利的。 8,公司怎么分配资本? 资本现金流无非就是5种方法:再投资、收购、还债、分红、回购股份,要看公司在某个阶段的资本分配是不是最优的。 如果公司明明可以发展更多,结果乱分红了;或者是明明到了特别成熟的时候,还不愿意分红,都是错误的分配资本。 9,公司怎样才能长成5倍? BG关注的是怎样,而不是能不能。这会强迫BG每个人去设想一些未来的可能性,包括公司现在的底层架构能不能够延伸到更多的业务。 比如,早期的亚马逊或者是阿里,连一个概念都没有,BG会考虑这个公司有没有这种机遇,以后去扩展到可触及的市场。 10,市场对公司有哪些误解,哪些事...

韩顺平Linux视频教程

第一天 第二天 硬盘分两种,IDE硬盘,SCSI硬盘 IDE硬盘比较便宜 SCSI硬盘性能比较优异,常用于服务器 Linux下对设备名的管理 sda1表示SCSI硬盘,第一块,第一个分区 挂载mount Linux目录与分区管理是mount来进行的,假如说umount后,那么进入目录后ls就是空白的 第三天 SAMBA服务器是一个Linux管理员必会的功能,可以让Windows轻松访问Linux TCP/IP协议 关于QQ间传输数据传递的例子 Linux网络环境配置(三种配置方法) 进入setup设置,需要restart服务才能生效 ifconfig eth0 xxxx  即指定网卡,修改项目,地址,会立即生效,但是是临时的 修改/etc/sysconfig/xxxx内的配置(一切皆文件的思想) RPM包管理系统 rpm -qa 查询当前系统安装有的RPM软件 第四天 第五天 第六天 第七天

Rhino_GH从入门到精通听课笔记_二

一. 基础操作   1. Rhino F6精确更改相机视野   2. 中键和左菜单栏弹出时间都是可以自己设置缩短的 二. 软件技巧   1. GH搭配生成楼梯,柱子,栏杆   2. SU\3DS\OBJ 均可被Rhino识别   3. 已命名工作位置很有用,和和已命名是图标是不一样的   4. Rhino等轴测做法          显示——投影——改为平行          旋转改为0/360          视图——等角视图 三. 奇技淫巧   1. 善用微信搜索,比如“地形制作”,第三讲前半部分讲解利用高程点制作地形   2. Rhino转折剖制作方法,用面split模型,即模型被切成两个,类似于佐罗刀   3. 转折剖模型制作时间很久,工作量比较大 四. Rhino命令   1. worksession  链接文件进来,以一个图层显示,类似于SU里面的另存再载入的操作,可       以节省运算量,比ctrl+c ctrl+v快   2. ctrl+w  局部放大   3. hatch  嵌面

文明、现代化、价值投资与中国 By 李录

 价值投资的概念/框架: 1)股票是对公司的所有权,而不仅仅是一张纸; 2)安全边际;(预测未来,但要留好安全边际) 3)市场先生;(让市场来服务你,而不是被指导) 4)能力圈;(建立属于自己的能力圈) 公司的来源: 欧洲扩张,从国王到贵族,到有钱人,到平民 《价值线》-几千家公司过去10年的财务情况