Seebug漏洞平台2016年度报告(2)
2016 年 10 月,Linux公开了一个名为Dirty COW的内核漏洞 CVE-2016-5195,号称有史以来最严重的本地提权漏洞。Linux 内核的内存子系统在处理写时拷贝(Copy-on-Write)时存在条件竞争漏洞,可以使一个低权限用户修改只读内存映射文件,进而可能获取 root权限。 漏洞影响 在Linux内核版本在大于等于2.6. 22 且小于3. 9 时都受该漏洞的影响。攻击者可以获取低权限的本地用户后,利用此漏洞获取其他只读内存映射的写权限,进一步获取root权限。 漏洞详情 在进行需要调用内核get_user_pages()函数且 force 参数被置为1 的写操作时(这里以对/proc/self/mem 进行写操作为例)漏洞触发流程大致如下: 第一次需要获取内存对应的页面,由于缺页会调用faultin_page(),在调用过程中由于需要处理缺页错误执行了do_cow_fault()调用,即COW方式的调页。 第二次回到retry执行时,依旧调用faultin_page()函数,但是由于是写只读映射的内存所以会执行COW处理,在COW操作顺利完成返回到faultin_page()函数中时,FOLL_WRITE标志位被清掉(即去掉了FOLL_WRITE的权限要求)。 由于执行线程将让出CPU,进程转而执行另一线程,带MADV_DONTNEED参数的madvise()调用unmap清掉之前一直在处理的内存页,即对应的页表项(pte) 被清空了。 第三次回到retry执行时,又会与第一次做相同的操作,但不同的是调用do_fault()函数进行调页时FOLL_WRITE标志位被清掉了,所以执行的是do_read_fault()函数而非之前的 do_cow_fault()函数。 获取到do_read_fault()调页后对应的页表项后,就可以实现对只读文件的写入操作,造成越权操作。 3.3 Nginx 权限提升漏洞(CVE-2016-1247) 漏洞简介 2016 年 11 月 15 日,国外安全研究员 DawidGolunski 公开了一个新的 Nginx 漏洞 (CVE-2016-1247),能够影响基于 Debian 系列的发行版,Nginx作为目前主流的一个多用途服务器危害还是比较严重的,目前官方已对此漏洞进行了修复。 漏洞影响 Nginx 服务在创建 log 目录时使用了不安全的权限设置,可造成本地权限提升,恶意攻击者能够借此实现从 nginx/web 的用户权限 www-data 到root用户权限的提升。由于 Nginx 服务器广泛应用于 Linux 和 UNIX 系统,致使主流 GNU/Linux 发行版也都受到严重影响。 漏洞详情 在 Linux 系统下,我们可以通过编译一个含相同函数定义的 so 文件并借助/etc/ld.so.preload 文件来完成此操作,系统的 loader 代码中会检查是否存在/etc/ld.so.preload 文件,如果存在那么就会加载其中列出的所有 so 文件,它能够实现与 LD_PRELOAD 环境变量相同的功能且限制更少,以此来调用我们定义的函数而非原函数。此方法适用于用户空间的 so 文件劫持,类似于 Windows 下的 DLL 劫持技术。 由于Nginx在配置log文件时采用的是不安全权限设置,将PoC编译成so文件后,可以很容易将路径写入到/etc/ld.so.preload 文件中,这时候就可以实现对 geteuid()函数的 hook,进而实现 www-data 到 root 的权限提升。 3.4 Netgear R6400/R7000/R8000 - Command Injection漏洞 漏洞简介 2016 年 12 月 7 日,NETGEAR R 7000 路由器在exploit-db上被爆出存在远程命令执行漏洞,随着研究不断深入,R 8000 和R 6400 这两款路由器也被证实有同样的问题。 2016 年 12 月 13 日,NETGEAR官网上确认漏洞存在,对部分受影响的设备发出了beta版的固件补丁。 2016 年 12 月 14 日,受影响的设备型号增加至 11 种。 漏洞影响 经过测试以下类型路由器均受到该漏洞影响: NETGEAR R6250 、NETGEAR R6400 、NETGEAR R6700 、NETGEAR R6900 、 NETGEAR R7000 NETGEAR R7100LG 、 NETGEAR R7300DST 、 NETGEAR R7900 、 NETGEAR R8000、 NETGEAR D6220 、 NETGEAR D6400。 通过ZoomEye网络空间探测引擎得知,暴露在公网上的R 6400 类型设备大约 2177 个,R 7000 大约有 14417 个,R 8000 大约有 6588 个,可见影响之广。 漏洞详情 NETGEAR的固件中的/usr/sbin/httpd 文件中的会检查请求报文中的url是否含有cgi-bin,如果含有,则进行一系列分割操作,并且cgi-bin后面的值最终会被替换代码中/www/cgi-bin/%s > /tmp/cgi_results部分的%s,并被system()函数执行造成命令执行漏洞。 3.5 Mirai及变种Mirai Mirai Mirai 僵尸网络可以高效扫描IoT设备,感染采用出厂密码设置或弱密码加密的脆弱物联网设备,被感染后的设备还可以去扫描感染其他IoT设备,设备成为僵尸网络机器人后在黑客命令下发动高强度僵尸网络攻击。其中最严重的是, 2016 年 10 月 21 日,美国域名服务商 Dyn 遭受大规模 DDos 攻击,造成包括 Twitter、Facebook 在内的多家美国网站无法被正确解析,进而造成了半个美国的网络瘫痪,其元凶就是Mirai僵尸网络。 变种Mirai Mirai的逆向分析报告发布之后,变种Mirai也悄然而生。变种Mirai的感染方式已经不仅仅单纯扫描 23 和 2323 端口,可以通过一系列组件漏洞(例如NTPD拒绝服务漏洞、Eir's D 1000 调制解调 6547 端口的任意执行命令)感染其他IoT设备。随着变种增多,Mirai系列的僵尸网络势必会长期威胁网络空间安全。 四、Seebug漏洞平台使用状况统计分析 Seebug自 2015 年 7 月新版本上线以来,秉承赋予漏洞以灵魂的宗旨,征集悬赏收录各种通用型漏洞信息、详情以及PoC。 2015 年 11 月上线照妖镜功能,用于漏洞在线检测。 2016 年 8 月开设了Paper专栏,分享包括Web安全、二进制等类型的学习文章。 4.12016 最受关注的 10 个漏洞 根据Seebug漏洞社区收录的漏洞详情页面访问量统计, 2016 年人气漏洞Top 10 排名如下: 由点击量可以看出,很多古老的漏洞仍然受到广泛关注。Redis,Weblogoc,Struts,JBoss等常用开发组件因为使用特别广泛,一旦爆发漏洞,就会产生巨大的危害。 4.2 搜索次数最高的十个漏洞关键词 (编辑:ASP站长网) |