
[ Home | Liste | F.A.Q. |
Risorse | Cerca... ]
Archivio: Febbraio 2004 ml@sikurezza.org Soggetto: Re: R: proxy protocollo NTLM di IIS con squid Mittente: Simo Sorce Data: 19 Feb 2004 15:06:05 -0000
On Sun, 2004-02-15 at 15:04, gabriele wrote:
> Mi pare di ricordare che NTLM non si possa "proxare", cioe'
> quando tu ti autentichi su un nodo di rete tramite NTLM non
> puoi piu' compiere un altro salto poiche' il nodo che ti ha
> autenticato non dispone delle tue credenziali di rete.
Questo è falso.
Infatti in samba abbiamo sviluppato winbindd che non solo proxa (lo
facevamo anche prima) ma lo fa in modo efficiente e autenticato (la
macchina con winbindd deve essere aggregata* al dominio e quindi
fidata**.
Infatti in questo modo si verifica un challenge response di questo tipo:
client ------- proxy -------- domain controller
conn----------->
<----------nonce
nonce+
pass+
rc4=
secret----------> -----------nonce+secret
mumble-mumble
noonce+pass+rc4 == secret ???
<-----------answer
ovviamente il domain controller accetta la coppia nonce + secret perchè
si fida del proxy, altrimenti il proxy può proxare anche tutta la prima
parte della comunicazione al domain controller, ma ciò è più lento e più
oneroso anche per il dc.
Dimenticavo, altra caratteristica del mondo win è che le password sono
degli HASH e non sono altro che dei clear-text equivalent e il server ne
mantiene una copia. Entrare in possesso dell'hash della paswword
equivale ad entrare in possesso della password a tutti gli effetti
(salvo modificarsi i tool per usare direttamente l'hash al posto della
password da line di comando).
> Proprio questo e' uno dei motivi per cui e' stato introdotto kerberos
> windows 2000, infatti una volta che tu ti eri autenticato su un
> IIS con NTLM il web server non poteva "impersonarti" verso un
> eventuale database di backend, con kerberos invece si puo'
> "proxare" il tuo ticket.
Kerberos è stato introdotto perchè interopera bene col DNS e LDAP e
perchè NTLM è ormai obsoleto e la sua sicurezza veramente molto bassa.
> Quello che chiedi quindi potrebbe risultare non fattibile in senso
> letterale, quello che puoi fare e' fare autenticare un ipotetico
> utente_1 verso lo squid con ntlm e poi fare in modo che il tuo
> utente_1 venga mappato su un altro utente_2 e squid, con le credenziali
> di utente_2 (credo debba averle "a bordo") si autentichi verso il
> server IIS remoto.
Molto fattibile e molto poco ipotetico, conosco un soggetto che usa
batterie di squid+winbind con decine di domini fidati** e decine di
migliaia di utenti.
Simo.
* non trovo traduzione migliore al termine join :)
** non trovo traduzione migliore al termine trusted :)
--
Simo Sorce - simo.sorce@xxxxxxx
Xsec s.r.l. - http://www.xsec.it
via Garofalo, 39 - 20133 - Milano
mobile: +39 329 328 7702
tel. +39 02 2953 4143 - fax: +39 02 700 442 399
________________________________________________________
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