
[ Home | Liste | F.A.Q. |
Risorse | Cerca... ]
Archivio: devel@sikurezza.org Soggetto: Re: Raw Socket Mittente: Gigi Sullivan Data: 9 Mar 2004 18:39:22 -0000
Woa!
On Mon, Mar 08, 2004 at 11:18:53PM +0100, Davide Denicolo wrote:
> beh teoricamente se invio ad una qualsiasi macchina non protetta un
> pacchetto ICMP del tipo e codice 0 0 ( echo reply ) solitamente la macchina
> ricevente mi dovrebbe inoltrare un echo request; il mio scopo dovrebbe
Nope. se invii un pacchetto ICMP di tipo ICMP_ECHOREPLY, l'host
destinatario lo riceve e basta [1]. A fronte dell'invio di un pacchetto
ICMP di tipo ICMP_ECHO la macchina target rispondera` -- di default --
con un ICMP_ECHOREPLY.
> essere quello di deniare l'echo request ed inoltrare un ICMP che invece
> avverte dell'irraggiungibilità dell'host!
Per poter fare questo [2] puoi agire in ALMENO due modi, IMHO:
1. regola di firewall che blocca gli ICMP ECHO e applicazione
userspace che riceve gli ICMP ECHO via AF_INET, SOCK_RAW e/o
AF_PACKET, SOCK_[RAW|DGRAM] socket e invia all'IP sorgente
un pacchetto ICMP di tipo / codice ICMP_DEST_UNREACH /
ICMP_HOST_UNREACH. L'IP sorgente di questo pacchetto deve
essere quello del tuo next hop router.
2. come sopra, ma utilizzi socket divert
(AF_INET, SOCK_RAW, IPPROTO_DIVERT) e una regola al firewall
per poter dirottare il pacchetto entrante direttamente sulla
tua socket [3] (con le socket raw ottieni una copia del
pacchetto e non il pacchetto stesso: la regola del firewall al
punto 1. e` necessaria per evitare che l'OS processi cmq il
pacchetto entrante).
come accennato nelle note, lo scenario e` didattico e in realta` le
stesse cose le puoi fare sicuramente utilizzando il framework
netfilter, direttamente (scrivendo regole per il firewall) o programmando,
volendo, dei moduli kernel ad hoc (non necessari ma solo utili
didatticamente).
Chiedo venia per eventuali omissioni/inesattezze, etc. condite il
tutto abbondantemente di IMHO :)
> Saluti
>
>
> Davide
bye,
GG sullivan
[1] se non c'e` un applicazione preposta alla ricezione degli ICMP e se
non ci sono regole di firewall ad hoc per gestire questi pacchetti
puoi vedere effettivamente il pacchetto con tcpdump(1) o altra
applicazione capace di accedere a datalink layer. In genere non c'e`
"reazione" da parte dell'OS (stiamo sempre parlando della ricezione
di un ICMP_ECHOREPLY).
[2] lo scenario e` molto restrittivo pero`. parli di negare un ECHO
(request) solo a scopo "didattico" immagino... (l'host potrebbe
ricevere qualsiasi altro pacchetto ICMP con tipo != ICMP_ECHO e
non rispondere con un (ICMP_DEST_UNREACH, ICMP_HOST_UNREACH) quindi
rimanendo visibile.
[3] le socket DIVERT sono supportate nativamente su BSD. Non
penso/ricordo se il kernel di Linux le supporta ORA nativamente, ma
esistono patch al kernel per questo.
http://www.tldp.org/HOWTO/Divert-Sockets-mini-HOWTO.html
--
Lorenzo Cavallaro `Gigi Sullivan' <sullivan@xxxxxxxxxxxxx>
Until I loved, life had no beauty;
I did not know I lived until I had loved. (Theodor Korner)
See the reality in your eyes, when the hate makes you blind. (A.H.X)
________________________________________________________
http://www.sikurezza.org - Italian Security Mailing List
[ Home | Liste | F.A.Q. |
Risorse | Cerca... ]
www.sikurezza.org - Italian Security Mailing List
(c) 1999-2005