
[ Home | Liste | F.A.Q. |
Risorse | Cerca... ]
Archivio: Maggio 2000 ml@sikurezza.org Soggetto: Re: un esempio di lkm in OpenBSD... Mittente: Gigi Sullivan Data: 23 May 2000 23:28:26 -0000
Aiee :)
Hello!
>
>
> Ciao,
>
[snip]
>
> Uhm come al solito si blocca la setsockopt() ritornando EPERM se viene
> richiesto l'utilizzo della IP_HDRINCL (OpenBSD non tiene questo attivo di
> default come linux, per cui se si vuole modificare l'hdr occorre per forza
> passare per la setsockopt() a meno che il kernel non sia stato modificato
>
Premettendo il fatto che non conosco il `funzionamento' del lkm
su *BSD, mi sembra comunque di aver capito che l'unica syscall
che si intercetta e' la sys_setsockopt (controllando
che il level sia IPPROTO_IP e che si voglia impostare
IP_HDRINCL).
Tutto cio' e' ovviamente bypassabile iniziando a costruire il
pacchetto in questione partendo, per esempio, dal frame ethernet
(o da PPP).
Conclusione: un'ulteriore idea potrebbe essere il controllo anche
di questo (non propongo patch perche' non conosco *BSD :)
- HINT per linux (kernel 2.2.X):
si potrebbero intercettare le funzioni `packet_sendmsg' e
`packet_sendmsg_spkt' implementate in net/packet/af_packet.c
`assegnate' nelle `packet_ops{}' e `packet_ops_spkt{}' esportate
dal kernel (ovviamente si parla di lkm, ma la patch statica, e',
ovviamente, sempre attuabile).
Tali funzioni, sono responsabili, infatti, della spedizioni di
pacchetti (sk_buff{}) costruiti `a mano' attraverso l'utilizzo
di `datalink' socket (PF_PACKET family o AF_INET, SOCK_PACKET per
compatibilita' con il vecchio sistema di accesso al datalink layer).
(tralasciamo il MAC address spoofing, per il quale e' necessario, mi
sembra, un'altro lkm su *BSD).
[snip]
bye bye
-- gg sullivan
--
Lorenzo Cavallaro `Gigi Sullivan' <sullivan@sikurezza.org>
Until I loved, life had no beauty;
I did not know I lived until I had loved. (Theodor Korner)
[ Home | Liste | F.A.Q. |
Risorse | Cerca... ]
www.sikurezza.org - Italian Security Mailing List
(c) 1999-2005