在本周rapid7发布的4.12.0-2016091401补丁[0]描述中我们可以看到有2个漏洞,结合这2个漏洞远程攻击者可以非认证的在metasploit产品上执行任意代码,随后有研究人员也放出了poc攻击代码[1]
漏洞1:metasploit web ui's config.action_dispatch.cookies_serializer 设置为 :hybrid
ove id: ove-20160904-0001
私有披露日期: 2016-09-04
公开披露日期: 2016-09-19
厂商公告 : https://community.rapid7.com/community/metasploit/blog/2016/09/15/important-security-fixes-in-metasploit-4120-2016091401
影响的版本 : metasploit 4.12.0-2016061501 到 4.12.0-2016083001
rails应用会接受一个标记的cookies来处理会话,在rails 4.1的以前版本中,使用marshal进行序列化,允许实例化任意对象的反序列化。rails 4.1引入json cookie序列化机制,默认不允许任意对象实例化,这种配置要安全的多。rails 4.1也引入了’hybrid' cookie序列化,这将允许反序列化json和marshal序列化的cookies,当cookie序列化设置为marshal或hybird时,远程攻击者如果知道cookie signing key的值,就能够构造会话cookie,触发marshal反序列化,实现任意代码执行。
metasploit community, express 和 pro 版本的 web ui在 metasploit 4.12.0-2016091401之前的config.action_dispatch.cookies_serializer 值设置为 :hybrid,直到metasploit 4.12.0-2016091401,才将其值设置为:json,因此用户需要更新到metasploit 4.12.0-2016091401或更新版本才能有效防护此漏洞
参考:
[0] http://blog.bigbinary.com/2014/12/23/migrating-existing-session-cookies-while-upgrading-to-rails-4-1-and-above.html
[1] https://www.rapid7.com/db/modules/exploit/multi/http/rails_secret_deserialization
漏洞2:metasploit weekly release static secret_key_base pre-auth rce
ove id: ove-20160904-0002
私有披露日期: 2016-09-04
公开披露日期: 2016-09-19
厂商公告 :https://community.rapid7.com/community/metasploit/blog/2016/09/15/important-security-fixes-in-metasploit-4120-2016091401
影响的版本 : metasploit 4.12.0-2016061501 到 4.12.0-2016083001
metasploit community, express 和 pro版本,web ui的secret_key_base值是固定已知的, 而且metasploit的config.action_dispatch.cookies_serializer的值默认又为:hybrid,这导致攻击者可以远程非认证的构造cookies,实现反序列化任意marshall对象,以daemon用户权限在装有metasploit的机器上执行任意命令。
已知的secret_key_base值如下:
攻击metasploit本身的模块已经有安全研究人员开发出来了,路径为
exploit/multi/http/rails_secret_deserialization
使用方法如下:
rapid7 在 etasploit 4.12.0-2016091401版本中修复了这个问题,将会检测secret_key_base的值是否是默认值,如果是,将重新生成,因此用户要尽快升级到metasploit 4.12.0-2016091401或以上版本
试用申请