发新话题
打印

udev Netlink消息验证本地权限提升漏洞

udev Netlink消息验证本地权限提升漏洞

udev是Linux kernel系列的设备管理器,主要功能是管理/dev目录下的设备节点。

udev没有正确地检查Netlink消息的来源,本地攻击者可以利用这个漏洞从用户空间进程而不是内核向udev发送特制的Netlink消息,导致其创建已有系统块设备(如root文件系统)完全可写的块设备文件,以获得root用户权限。

测试方法:

警 告

以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!
http://www.milw0rm.com/exploits/8478

建议:厂商补丁:

Debian
------
Debian已经为此发布了一个安全公告(DSA-1772-1)以及相应补丁:
DSA-1772-1:New udev packages fix privilege escalation
链接:http://www.debian.org/security/2009/dsa-1772

补丁安装方法:

1. 手工安装补丁包:

  首先,使用下面的命令来下载补丁软件:
  # wget url  (url是补丁下载链接地址)

  然后,使用下面的命令来安装补丁:  
  # dpkg -i file.deb (file是相应的补丁名)

2. 使用apt-get自动安装补丁包:

   首先,使用下面的命令更新内部数据库:
   # apt-get update
  
   然后,使用下面的命令安装更新软件包:
   # apt-get upgrade

RedHat
------
RedHat已经为此发布了一个安全公告(RHSA-2009:0427-01)以及相应补丁:
RHSA-2009:0427-01:Important: udev security update
链接:https://www.redhat.com/support/errata/RHSA-2009-0427.html

udev
----
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:

http://git.kernel.org/?p=linux/hotplug/udev.git;a=commitdiff;h=e86a923d508c2aed371cdd958ce82489cf2ab615
http://git.kernel.org/?p=linux/hotplug/udev.git;a=commitdiff;h=e2b362d9f23d4c63018709ab5f81a02f72b91e75

TOP

1、获得udev进程号
执行:ps ax|grep udev|grep -v grep|awk {'print $1'} 获得udev进程号,然后将此数字减1作为
exploit-udev的参数,例如命令结果为143则参数为142

2、执行:
sh exploit-udev 142
suid.c: In function ‘main’:
suid.c:3: warning: incompatible implicit declaration of built-in function ‘execl’
sh-3.1#
然后id 看看:
uid=0(root) gid=0(root) groups=65530(hzqbbc)

顺利获得root权限,如果无法获得root权限,要多执行脚本几次,一般第二次即可获得root权限。

关于解决方法:
yum update udev

rm -rf /tmp/libno_ex*
rm -rf /tmp/suid
rm -rf /tmp/udev

TOP

发新话题