Warning: include(testata.php) [function.include]: failed to open stream: No such file or directory in /mnt/host/www/wintricks/wintricks.it/www/faq/ping_of_death.html on line 29

Warning: include() [function.include]: Failed opening 'testata.php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') in /mnt/host/www/wintricks/wintricks.it/www/faq/ping_of_death.html on line 29

Warning: include(footer.php) [function.include]: failed to open stream: No such file or directory in /mnt/host/www/wintricks/wintricks.it/www/faq/ping_of_death.html on line 268

Warning: include() [function.include]: Failed opening 'footer.php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') in /mnt/host/www/wintricks/wintricks.it/www/faq/ping_of_death.html on line 268
INDICE SEZIONE NEWS WEB NEWS SOFTWARE PUBBLICITA'

Warning: include(bsx.php) [function.include]: failed to open stream: No such file or directory in /mnt/host/www/wintricks/wintricks.it/www/faq/ping_of_death.html on line 43

Warning: include() [function.include]: Failed opening 'bsx.php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') in /mnt/host/www/wintricks/wintricks.it/www/faq/ping_of_death.html on line 43
Ping of death
Warning: include(bdx.php) [function.include]: failed to open stream: No such file or directory in /mnt/host/www/wintricks/wintricks.it/www/faq/ping_of_death.html on line 52

Warning: include() [function.include]: Failed opening 'bdx.php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') in /mnt/host/www/wintricks/wintricks.it/www/faq/ping_of_death.html on line 52

Ping of Death

Il 18 Dicembre '96 il CERT de lla Carnegie Mellon University di Pittsgurg emise un bollettino informando della vulnerabilitý di molti sistemi in rete quando ricevono un pacchetto IP che supera le dimensioni standard di 64kb;


in particolare una richiesta ICMP ECHO prodotta con il co mando "ping" e che supera il limite di 64kb puÚ essere usata per causare il blocco della macchina a cui viene inoltrata.

ICMP (Internet Control Message Protocol) Ë un sotto gruppo di istruzioni del protocollo TCP/IP usato per scambiare messaggi di con trollo ed errore tra sistemi collegati in rete; all'interno delle specifiche di questo protocollo sono definite due particolari istruzioni ICMP_ECHO_REQUEST e ICMP_ECHO_REPLY che sono rispettivamente generate tramite l'uso del comando ping e dalla risposta di un sistema al ping stesso.

Di norma il comando ping viene usato per determinare se un sistema remoto è raggiungibile o meno dal proprio sistema locale, (Wintricks.com copyright) valutare i tempi medi in cui i pacchetti raggiungono la destinazione e la percentuale del num ero di pacchetti che si perdono durante il tragitto.

Il problema non si limita ai soli computer, ma viene di fatto esteso anche agli X-terminal, router, stampanti e a tutto ciÚ che viene connesso direttamente in rete. Le specifiche del TCP/IP (RFC-79 1) fissano la
grandezza massima di un datagramma IP in 65536 bytes (2^16-1) ; di questi solo 20 sono riservati all'intestazione del pacchetto.

All'interno del pacchetto risiede a sua volta una richiesta ICMP costituita da 8 bytes di header seguita dal numero di byte riservati per i dati:

facendo due conti al volo la grandezza massima disponibile per l'area dati è 65535 - 20 - 8 = 65507 bytes. Il problema del ping of death nasce dalla possibilità di generare una richiesta ICMP_ECHO in un pacchetto con più di 65507 byte di campo dati sebbene sia assolutamente fuori dalle specifiche previste dal TCP/IP. Infatti al momento della trasmissione il pacchetto originale viene frammentato in piccoli pacchetti e questi spediti al
destinatario; ciascun frammento al suo interno porta con se le informazioni relative alla esatta posizione in cui deve essere collocato dal ricevitore quando viene assemblato.


Poichè la maggior parte dei sistemi operativi non verificano il pacchetto se non al momento in cui han no ricevuto tutti i frammenti in cui è stato scomposto durante la trasmissione, puÚ capitare che una volta ricomposto, il pacchetto generi un overflow dello stato delle variabili interne della macchina; le conseguenze ovviamente sono diverse a seconda del tipo di macchina e del tipo di sistema operativo in questione.
Non è una regola o una costante; macchine simili possono reagire in maniera diversa e assolutamente imprevedibile; in alcuni casi il fenomeno si può verificare in condizioni di carico gra voso su macchine che in altre
condizioni non avevano presentato l'inconveniente; nei casi limite l'effetto è decisamente sorprendente, si va dal crash al reboot spontaneo con tutte le varie sfumature di halt e freeze della console possibili e immaginabili.

Fortunatamente non tutti i sistemi operativi permettono di spedire un datagramma IP maggiore di 64kb e questo se volete in parte limita il problema alla sorgente; tuttavia Windows 95 permette tranquillamente di
superare il limite e ci sono in circo lazione decine di programmi per UNIX e altri sistemi operativi nate allo scopo di generare liberamente un ping di dimensioni volute.


Se da una parte è evidente che attaccare un sistema remoto usando questo artifizio sia estremamente facile e alla portat a di tutti, non è altrettanto ovvio come si possa riuscire a salvaguardare la propria macchina o rete locale. Per testare se il vostro computer è soggetto al problema in questione in prima approssimazione è sufficiente che vi procurate un sistema Windows 95 e provate il comando:

ping -l 65527 127.0.0.1 dove 127.0.0.1 è per convenzione l'IP simbolico del computer stesso.

Tipicamente riceverete il messaggio "Request Timed Out" o perchè la macchina in questione ignora a ragion veduta il ping, o nella peggiore delle ipotesi perchè si è bloccata.

Ripetuti test effettuati su diverse macchine hanno confermato l'effettiva esistenza del pericolo; le macchine dotate di sistemi operativi di realese più datata ne sono fortemente soggetti (ad esempio le prime versioni di
Windows 95, NT4 sprovvisto di Service Pack 2 e Linux con kernel antecedente alla 2.0.24)


WinNuke

Il 10 maggio '97 su BugTrap veniva postato un articolo che informava della possibilità di crashare in maniera remota una macchina Windows NT o 95 tramite un attacco alla porta TCP/IP 139 riservata alle negoziazioni di
servizio del protocollo NetBIOS della Microsoft.

Parallelamente su tutte le reti IRC del mondo iniziarono a verificarsi misteriose sconnessioni in massa degli utenti dai server con errore ping timeout, come se improvvisamente la macchina su cui girava il client dell'utente era scomparsa dalla rete; pochi giorni più tardi è il panico per tutti providers che si affidano sui server NT per offrire i loro servizi.

Erano i primi segni di quella che nelle ultime settimane Ë diventato il più grosso problema della rete: la diffusione del programma WinNuke in grado di produrre un messaggio diretto alla porta 139 di una macchina remota
causandone l'i mmediato blocco; su tutte le macchine che ho personalmente testato nessuna si e' dimostrata immune anche se molte pagine che trattano il problema parlano di una vulnerabilità limitata al 70%.

WinNuke spedisce sulla porta NetBIOS 139 un messaggio (quel lo di default è un "bye" ma qualunque sequenza di caratteri produce lo stesso effetto). Se volete testare personalmente la reazione del vostro computer a un attacco prodotto dal WinNuke provate a visitare la pagina

http://www.darkening.com/cgi-bin/nukeme.cgi ;

un programma remoto leggerà il vostro indirizzo ip e inoltrerý l'attacco sulla porta 139 (attenzione:
salvate prima tutti i lavori che state effettuando perchè quasi sicuramente un secondo dopo aver visitato quella pagina sarete costretti a effettuare un reboot).

Vediamo più nel dettaglio dove sta il problema e come prevenirlo: le specifiche relative all'interfaccia tra il NetBIOS e il TCP/IP prevedono la disponibilità di una serie di messaggi urgenti definiti OOB (Out of Band
data) che vengono scambiati tra le macchine in rete per comunicazioni di servizio ad alta priorità.


La sintassi di questi messaggi Ë strettamente definita dalle specifiche del protocollo e ovviamente sia NT che Windows 95 riconoscono perfettamente tutti i messaggi scambiati su queste porte. Tuttavia Ë sufficiente generare un messaggio ad alta priorità con una forma errata per provocare un excpetion che porta all'halt del sistema.

In pochissime parole la routine che si occupa del NetBIOS sia di NT che Windows 95 non controlla la struttura dei pacchetti con intestazione di OOB ad alta priorità provenienti dalle porte incriminate, e li passa direttamente al kernel confidando sul fatto che se arrivano su quella porta rispettano la sintassi di default; un ingenuità stranamente eccessiva e che ora ha mandato in crisi mezzo mondo telematico.

Fortunatamente esistono diverse soluzioni per porre fine al problema. Sotto NT è sufficiente applicare un apposita patch uscita pochissimi giorni dopo la scoperta del problema e che purtroppo non è stata inclusa nell'attuale Service Pack 3.
Al momento in cui scriviamo la patch è applicabile esclusivamente alla versione in lingua inglese di NT.
Per quanto riguarda Windows 95 la soluzione è relativamente semplice ed è sufficiente inserire una chiave nel file di registro di configurazione che modifica il modo con cui vengono processati i messaggi urgenti da parte del
sistema operativo.

La chiave in questione è:
[HKEY_LOCAL_MACHINE\ System\CurrentControlSet\Services\VxD\MSTCP] "BSDUrgent"="0"

e potete inserirla manualmente con l'uso di Regedit con le solite raccomandazioni del caso: modificare il file di configurazione può essere molto rischioso, quindi intervenite sul vostro sistema solo nei casi in cui siete connessi in rete tramite TCP/IP oppure usate connessioni in cui il vostro indirizzo IP sebbene dinamico sia in bella mostra agli occhi di tutti come ad esempio nelle sessioni IRC; in tutti gli altri casi, e specialmente per chi non ha
una connessione di rete, questa modifica è del tutto superflua e sconsigliabile.


Telnet 110

Simile come concetto al WinNuke era il problema che fino all'uscita di un apposito fix posto nel Service Pack 2 affliggeva le macchine NT sia nella versione client che server se soggette a un telnet sulla porta 110.

Un telnet su tale porta seguito da una sequenza random di caratteri fa partire una routine che legge i dati direttamente dalla porta TCP/IP; a sua volta la routine invia al kernel un interrupt ogni qual volta debba essere
eseguita una specifica operazione.

Nel momento in cui si interrompe la sessione telnet la routine entra in loop assorbendo il 100% della CPU della macchina e provocando un rallentamento graduale di tutte le funzioni fino ad arrivare al blocco totale della
macchina.

Anche questo, come già detto, Ë un problema ben noto a Microsoft, risolto completamente sia con la patch post Service Pack 2 che, ovviamente con la realease 3 dello stesso.


Conclusioni

Questi tre differenti modi di attaccare una macchina remota sfruttando i bachi del sistema operativo sono solo alcuni dei svariati metodi utilizzabili per arrecare fastidi e danni sfruttando tutte dimenticanze dei programmatori; pertanto a tutti gli amministratori rivolgiamo l'invito ad aggiornare costantemente i loro sistemi e dove possibile applicare dei filtri direttamente al livello dei router o attraverso un firewall, tuttora la migliore soluzione per prevenire abusi da parte di utenti esterni alla propria sottorete.

Made by Mattia Fratus for Wintricks

 


Warning: include(admin_edmaster/correlati_articoli.php) [function.include]: failed to open stream: No such file or directory in /mnt/host/www/wintricks/wintricks.it/www/faq/ping_of_death.html on line 254

Warning: include() [function.include]: Failed opening 'admin_edmaster/correlati_articoli.php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') in /mnt/host/www/wintricks/wintricks.it/www/faq/ping_of_death.html on line 254




Warning: include(googlericerca.js) [function.include]: failed to open stream: No such file or directory in /mnt/host/www/wintricks/wintricks.it/www/faq/ping_of_death.html on line 263

Warning: include() [function.include]: Failed opening 'googlericerca.js' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') in /mnt/host/www/wintricks/wintricks.it/www/faq/ping_of_death.html on line 263

Warning: include(banner_basso.php) [function.include]: failed to open stream: No such file or directory in /mnt/host/www/wintricks/wintricks.it/www/faq/ping_of_death.html on line 272

Warning: include() [function.include]: Failed opening 'banner_basso.php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') in /mnt/host/www/wintricks/wintricks.it/www/faq/ping_of_death.html on line 272
 

Warning: include(bottom.php) [function.include]: failed to open stream: No such file or directory in /mnt/host/www/wintricks/wintricks.it/www/faq/ping_of_death.html on line 279

Warning: include() [function.include]: Failed opening 'bottom.php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') in /mnt/host/www/wintricks/wintricks.it/www/faq/ping_of_death.html on line 279