Newsgroup: it.comp.sicurezza.varie
Titolo: Format string vulnerability nei sistemi unix

http://news.cnet.com/news/0-1003-200-2719802.html?tag=st.ne.1002.tgif.ni
Non ho capito molto bene  come  funziona questo  genere di exploit,  e
l'articolo del link sebbene usi toni drammatici non scende minimamente
in dettaglio.  Qualcuno   gentilmente potrebbe cercare   di spiegarmi,
magari con un esempio? Capisco  il buffer overflow, ma formattare  del
testo che viene   letto  da un  programma  come  diavolo fa  a  dare i
privilegi di root?
-- 
ciao | it.* non piu` l'unica gerarchia italiana (
http://go.to/Mamo_faq
)
cf   |  - italia.*   gruppi creati e gestiti dalle reti civiche locali
-----+  - i2000.*    gestita dalla FOR e autenticata in scrittura
        - free.it.*  su Libero e Tiscali, anarchica e con seri problemi

privilegi di root?
su packetstorm trovi almeno due paper sui format bugs. anche su BUGTRAQ,
archivio degli ultimi 15 giorni, ne trovi una.
non si tratta solo di far leggere un testo, quanto di usare il testo
come puntatore ad uno shellcode. conta che il testo passato, mancando
il format, puo' essere interpretato come un puntatore del campo format
stesso, in presenza del carattere %
ti consiglio di leggere prima delle paper, la pagina man di printf,
prestando attenzione ai seguenti campi format:
%s, %p e %n
anche un exploit per WuFTPd e ProFTPd puo' essere utile. come quello
di locale per glibc2
invy

 stesso, in presenza del carattere %
Grazie Invy, piu` o meno ho capito, ma ho bisogno di studiare un altro
po', seguiro` i tuoi riferimenti e consigli.
In base alla  tua esperienza, pensi  che questo tipo di attacchi possa
essere un serio  problema per il  mondo Unix? In  altre parole, quanto
difficile e`  correggere il codice   in questi bug  rispetto al buffer
overflow e quanto diffusi sono?


overflow e quanto diffusi sono?
e' sicuramente un problema serio. ma vorrei far notare come questo tipo
di problema non sia tanto del mondo UNIX, quanto di tutte quelle chiamate
in C che utilizzano un format per l'output di testo. comunque e' grave in
quanto permette un ottimo controllo dello stack utilizzato dal programma
bacato.
correggere il codice e' mediamente MOLTO piu' semplice di quanto non sia
in alcuni complessi casi di overflow, ma ovviamente ogni codice e'
diverso dagli altri.
ora aspettiamo con ansia i format bugs remoti su windows. arriveranno :)
invy

overflow e quanto diffusi sono?
La correzione e' molto semplice.
	printf(buffer);					WRONG!
	printf("%s", buffer);				RIGHT!
	sprintf(buffer, source);			DAMN WRONG!
	sprintf(buffer, "%s", source);			WRONG!
	snprintf(buffer, BUFFERLEN, "%s", source);	RIGHT!
...eccetera :-)
Piuttosto, auditing tools che si mangino un albero di sorgenti e vedano
se ci sono fonti di pericolo (strcpy, strcat, sprintf, vsprintf...), ce
ne sono?
Leonardo
".signature": bad command or file name

ne sono?
in effetti vari. ne trovi su packetstorm. non so se le ultime versioni
badino anche ai campi format o solamente ai classici overflow. ma per
questi ce ne sono ...
invy


Io ne conosco solo  uno, a dire il vero non e'  che abbia capito molto
di tutto *quel* programma difatti  ci sto' ancora impazzendo sopra, ma
lo conosci  anche tu. Dovrei  avere qualcosa ma devo  cercarlo, appena
possibile te lo passo per le valutazioni.
Bacio l'anello eminenza.
Pax et bonum, Francesco.
 
 
<*>  Appunti Linux per il pinguino che non deve chiedere mai. <*>  
<*>  
http://www.pluto.linux.it
                                <*>

lo conosci  anche tu.
Cosa, grep? :-)
Io avevo _iniziato_ a scrivermi un parser, per strcpy e affini, ma ora
con anche i formati... vabbuo', mi vado a spulciare PacketStorm.
