Ubuntu usb-creator 0.2.x – Local Privilege Escalation

漏洞描述: ubuntu下D-bus服务会默认挂载 com.ubuntu.USBCreator 这个服务。由于这个接口的KVMTest 方法没有调用check_polkit,通过给sh设置suid位来达到提权的目的。
一:D-Bus 简介和使用

dbus是一个低延迟,低开销,高可用的ipc机制。

http://dbus.freedesktop.org/doc/dbus-python/doc/tutorial.html

查看system总线上可挂载的服务:

查看session总线上可挂载的服务:

查看已经挂载system总线上的服务:

二:分析重现

先看下是否已挂载usbcreator服务:

可以看到

说明此服务已经被挂载。(ubuntu默认挂载)

查看此服务的配置文件:

脚本代码在/usr/share/usb-creator/usb-creator-helper。

KVMTest方法没有check_polkit来处理权限:

check_polkit方法的代码如下:

复现过程:

1. 动态库源码

编译动态库

3. 复制/bin/sh 到/tmp/test (动态库源码中指定的)并发送dbus 消息

tips: http://www.openwall.com/lists/oss-security/2015/04/22/12中的测试发送的dbus 消息中的对象路径为 /dev/sda , 在这里测试报 dbus.exceptions.DBusException: org.freedesktop.DBus.Error.UnknownMethod: Method “Get” with signature “ss” on interface “org.freedesktop.DBus.Properties” doesn’t exist 的错误。改为/org/freedesktop/UDisks/devices/sda 错误解决。

参考链接:

https://www.exploit-db.com/exploits/36820/
http://www.openwall.com/lists/oss-security/2015/04/22/12
http://dbus.freedesktop.org/doc/dbus-python/doc/tutorial.html

原文链接:,转发请注明来源!

发表评论

要发表评论,您必须先登录