漏洞预警:厄运cookie(Misfortune Cookie)漏洞影响全球1200万台路由器
一个名为“厄运cookie(Misfortune Cookie)”的严重漏洞正在影响全球1200万台路由器安全,D-Link、 TP-Link、华为、中兴等品牌均受到影响,攻击者可以利用漏洞远程控制设备及监控流量。
了解“厄运cookie”漏洞
该漏洞与AllegroSoft公司开发的WEB服务器RomPager有关,RomPager被诸多路由器厂商使用,嵌入路由设备固件以及调制调解器之中。这款WEB服务器可以为路由器提供良好用户体验的Web管理接口。
在RomPager 4.34版之前(RomPager软件已有10多年的历史)存在一个严重的漏洞,这个漏洞被称为厄运cookie(Misfortune Cookie),这是因为它可以让黑客通过操作cookie来控制HTTP请求的“幸运值”。
这个漏洞编号为CVE-2014-9222,如果攻击者向存在漏洞的RomPager服务器发送特定请求,会使得这类网关设备内存紊乱,攻击者获得管理权限。
安全研究人员Shahar Tal称:
“黑客可以发送特定http cookie给网关从而导致设备内存紊乱”
黑客控制设备后,他们可以查看受害者的上网行为,从路由器设备中经过的流量里读取文本信息,改变DNS设置,盗取用户的账户密码和敏感信息。同时,他们还可以监控网络摄像头,电脑以及其他接入网络的设备。
D-Link、 TP-Link、华为、中兴等品牌均受影响
超过200种不同的调制调解器(modem)和网关设备或SOHO(小型家庭办公)路由都存在“厄运cookie”漏洞,包括知名品牌D-Link, 爱迪麦斯, 华为, TP-Link, 中兴和ZyXEL。
这个漏洞影响的不仅仅是存在漏洞的路由器或网关设备,任何接入其网络的如PC、智能手机、平板电脑、打印机,以及家庭智能设备都会遭殃。
允许对外访问就更糟糕了
一旦路由器允许WEB管理端可以被外网访问时,该漏洞会变得更加危险。黑客即使在千里之外,也可以黑掉该设备。
许多路由/网关设备被配置为监听7547端口,这是远程管理协议TR-069或者说是CWMP(CPE广域网管理协议)规定的,它允许黑客远程发送恶意cookie到该端口,漏洞设备因此沦陷。
1200万设备受到影响
这个漏洞在2002年就已经被发现,然而AllegroSoft公司在2005年才修复,同时华为、D-Link、中兴等知名硬件厂商至今仍在出售存有漏洞的路由器设备。
以色列安全公司Check Point指出,存在漏洞的路由器/网关设备数量高达1200万:
“据我们所知,在RomPager版本4.34(特别是4.07)之前的版本是存在漏洞的,当然需要注意的是,一些供应商可能打上了这
个漏洞的补丁,却没有更新版本号,这可能会使漏洞鉴别条件失效。”
安全研究人员认为如果人们对路由器漏洞置之不理,黑客可以轻松窃取个人私密数据,控制人们的家庭生活也不是难事。
安全建议
RomPager在国内路由上使用的非常广泛并且经常被曝出漏洞,多家大品牌路由器都曾受其影响,所以无论是个人还是企业都需要引起重视。
FreeBuf建议大家首先确定自己的路由器内嵌的 RomPager 软件版本是否为 4.34 或更高版本。对于终端用户而言,能做的就是升级路由器固件。
当然也有一些网友建议,先去下载名为「 CHECK POINT MISFORTUNE COOKIE – SUSPECTED VULNERABLE MODEL LIST」 PDF文件。如果自己的路由器不幸在大名单之列,那么请立即关闭路由、网关的开放端口,比如 80、8080、443、7547 等,然后坐等路由厂商的安全更新。
当然如果你不愿意让自己的设备因此闲置的话,可将该路由器先做桥接,让其他确定打了安全补丁或无漏洞的路由器做网关。
漏洞测试
文章最后附上漏洞利用测试的Metasploit模块。
[参考来源thehackernews,tech2ipo,由FreeBuf小编dawner翻译整理,转载须注明来自FreeBuf黑客与极客(FreeBuf.COM)]
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Flutter 侧滑栏及城市选择UI的实现方法
- 使用iptable和Firewalld工具来管理Linux防火墙连接规则
- 如何使用Flutter开发一款电影APP详解
- Linux获取10个你最常用的终端命令列表
- Flutter banner_view 轮播图的使用及实现代码
- Linux下截屏并编辑的最佳工具
- Android Native 内存泄漏系统化解决方案
- flutter ExpansionTile 层级菜单的实现
- Ubuntu下如何创建XFS文件系统的LVM详解
- 华为开源内部OpenJDK定制版:“毕昇 JDK 8”
- Linux定时任务Crontab命令使用详解与总结
- kotlin实现通知栏提醒功能示例代码
- Linux自动删除n天前日志及实例命令
- Flutter学习教程之Route跳转以及数据传递
- PHP实现限制域名访问的实现代码(本地验证)