新闻链接:http://bobao.360.cn/learning/detail/2505.html
新闻时间:2015-12-16 17:54:30
新闻正文:
在Grub2上发现一枚0day漏洞。版本从1.98(十二月,2009)到2.02(十二月,2015)受到影响。该漏洞可以在某些情况下被利用,允许本地攻击者绕过任何认证(明文密码或Hash)。因此,攻击者可以控制计算机。
grub2是大多数Linux系统使用的一种常用嵌入式系统使用的引导程序。这一漏洞可造成数不胜数的设备受到影响。
如图所示,在Debain 7.5 中我们成功的利用了该漏洞,在qemu下成功get shell。
我是否会受到影响?
你应当赶紧检查你的系统是否存在该漏洞,当Grub访问你的用户名的时候,按退格键28次。如果你的设备重新启动或者你能够get shell,那么你的设备以及被感染了。
影响:
攻击者成功利用此漏洞可以获得一个Grub的rescue shell,Grub的rescue shell是一个非常高权限的shell,有如下权限:
权限的提升:攻击者在不知道有效用户名和密码的情况下进行身份验证。攻击者已经全面进入GRUB“控制台”(grub rescue)。
信息披露:攻击者可以加载特定的内核以及initramfs(例如USB),然后在一个更舒适的环境,将整盘复制或者安装一个rootkit。
拒绝服务攻击:攻击者可以破坏任何数据包括grub本身。即使在这种情况下,磁盘加密,攻击者仍然可以覆盖它,处罚DOS。
关于该漏洞:
故障(bug)发生在GRUB代码1.98以后的版本(十二月,2009)。由提交记录b391bdb2f2c5ccf29da66cecdbfb7566656a704d引入,影响grub_password_get()函数。
有两个函数都受到同一个整数下溢漏洞影响。grub_username_get()和grub_password_get()分别位于grub-core/normal/auth.c 以及 lib/crypto.c 。除了grub_username_get()调用了函数printf()以外,这两个函数基本是一样的。这里描述的PoC是基于grub_username_get()来get shell的。
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)