Tratto dallo speciale:

Forgiare lo stack TCP/IP con Windows

di Davide Denicolo

Pubblicato 29 Maggio 2007
Aggiornato 12 Febbraio 2018 20:50

L’implementazione corretta dello stack TCP/IP è alla base di un sistema operativo robusto.

Ogni produttore, infatti, realizza il proprio stack TCP/IP a partire da convenzioni o standard comuni descritti nelle RFC; l’obiettivo dello IETF, dunque, è permettere l’integrazione tra sistemi eterogenei che costituiscono Internet appunto.

Questa intercomunicazione però non sempre risulta valida, vuoi per la presenza di bug nel codice, per la cattiva interpretazioni delle RFC o nella loro errata stesura. Succede dunque che un pacchetto mal formato o troppo grande possa mandare in errore il sistema operativo provocando un Denial of Service.

La possibilità di realizzare pacchetti malformati non è dato dal sistema operativo in quanto il kernel si preoccupa di gestire autonomamente lo stack TCP/IP correggendo eventuali errori o compilando automaticamente determinati campi (checksum, mac-address, ecc.); linux, il sistema operativo con kernel open source, è stato il primo a implementare i moduli di kernel selezionabili a runtime (LKM) così da intervenire sulle system call e decidere di modificare il comportamento del cuore del sistema operativo.

Packet Builder è un tool molto interessante che per l’appunto, permette di costruire manualmente pacchetti di rete ad hoc per i sistemi operativi Microsoft.

Si presenta con una GUI user-friendly mediante quale è possibile scegliere il tipo di pacchetto di rete da realizzare (ARP ,IP ,TCP ,UDP).

Fatto ciò vi verrà presentata una struttura base per il pacchetto scelto; sarà vostro compito compilare accuratamente ogni campo per poi cliccare su “Send packets”; il pacchetto così realizzato verrà inoltrato sulla rete.

Infine voglio segnalarvi che il tool è in grado di importare file realizzati con Ethereal e cosa più importante, è in grado di modificare il pacchetto fino al livello data link (Mac address).

Consiglio di provarlo a chiunque abbia conoscenza del protocollo TCP/IP e del suo funzionamento.