
[ Home | Liste | F.A.Q. |
Risorse | Cerca... ]
Archivio: Novembre 2001 ml@sikurezza.org Soggetto: Re: weird Windows 2000/XP bug [test addizionali] Mittente: walter valenti Data: 7 Nov 2001 12:07:20 -0000
Ho provato su un 2000 server sia mediante uno script Perl, e in questo caso ho
ottenuto il reboot, sia compilando il codice C (ho utilizzato un complilatore
per win DJGPP): in questo caso non ottengo alcun reboot: c'è qualcosa che mi
sfugge ???
Walter
> Dopo aver letto i precedenti posts e la discussione su Vuln-Dev, abbiamo
> analizzato in modo piu' approfondito il bug del prompt dei comandi di
> Windows 2000. Questo e' quanto siamo riusciti ad ottenere.
>
> OVERVIEW:
>
> Il Bug colpisce il Command Prompt di Windows NT/2000/XP. Il CMD.EXE e il
> Command.com crashano se una stringa contenente almeno un carattere di
> tabulazione (ASCII/HEX 09), seguito da una sequenza di backspaces (ASCII/HEX
> 08) e da un carattere casuale viene visualizzata sullo standard output o lo
> standard error. In questo caso Windows NT4 si blocca con la classica
> schermata blu, mentre 2000 e XP si riavviano immediatamente. Windows 98
> sembra essere immune al problema, cosi' come la sua modalita' DOS (modalita'
> provvisoria con prompt dei comandi).
>
> SISTEMI TESTATI:
>
> Microsoft Windows 98 (NON VULNERABILE)
> Microsoft Windows 98 in modalita' DOS (NON VULNERABILE)
> Microsoft Windows ME (NON VULNERABILE)
> Microsoft Windows NT4 Workstation (crash)
> Microsoft Windows NT4 server (crash)
> Microsoft Windows 2000 Professional (reboot)
> Microsoft Windows 2000 Server (reboot)
> Microsoft Windows 2000 Advanced Server (qualcuno dice che non e'
> vulnerabile, ma lo abbiamo testato senza service packs ed e' risultato
> affetto dal bug)
> Microsoft Windows XP Professional (reboot)
>
> Il numero dei BackSpaces da scrivere dipende da quanti caratteri sono
> presenti nel Buffer del prompt dei comandi: per eseguire con successo il
> crash l'utente deve scrivere ALMENO un BS in piu'. In questo caso, infatti,
> il cursore dovrebbe andare a puntare all'inizio della memoria del Buffer, ma
> a causa della tabulazione esso si sposta in qualche area di memoria
> antecedente ad esso. Quindi il carattere che viene scritto successivamente
> blocca il sistema. Nell'esempio postato sul Vuln-Dev, ovvero un programma in
> C che genera come output la riga "\t\b\b ", il crash avviene perche',
> eseguendolo via "doppio click", il programma viene inizializzato dentro un
> prompt dei comandi vuoto, ed e' necessario un solo carattere in piu' per
> uscire dal buffer.
> Da sottolineare che non c'entra il compilatore: siamo riusciti a far
> riavviare il sistema anche con uno script in perl e con un semplicissimo
> file .BAT, che abbiamo anche inviato via e-mail senza ricevere notifiche dal
> Norton Antivirus e dal McAfee.
> Il file .BAT contiene solo una linea:
> In Esadecimale: 65 63 68 6F 20 09 08 08 08 [MOLTI 08] 61 61
> In ASCII : echo [tab][bs][bs][bs]...[bs]aa
>
> NOTA: Compilando il programma in C sotto CYGWIN ed eseguendolo il sistema
> non si blocca, ma, ridirigendo il suo output su un file e poi
> visualizzandolo col comando TYPE si'. Questo e' dovuto probabilmente al
> fatto che gli eseguibili compilati con esso girano in una qualche modalita'
> protetta.
>
> TEST AGGIUNTIVI:
>
> Abbiamo eseguito numerosi test per cercare di capire fino a che punto questo
> bug possa influire sulla sicurezza. La prima cosa che abbiamo fatto e' stato
> capire se funziona anche nel caso che il processo venga eseguito in
> background e non in una finestra di prompt: abbiamo utilizzato il comando AT
> per impostare un'operazione pianificata (ovvero l'esecuzione del file .BAT)
> e il sistema si e' riavviato, anche se nessun utente era loggato.
>
> Poi abbiamo lanciato un NetCat in ascolto su una porta e, connettendoci da
> un altro pc, abbiamo inviato una stringa contenente un paio di [Tab], molti
> backspaces e qualche carattere casuale. Il sistema si e' riavviato.
>
> Infine abbiamo configurato una macchina con Windows 2000 Advanced Server
> (senza service packs) con IIS 5 non patchato, vulnerabile all'unicode bug.
> Dopo aver trasferito il file incriminato attraverso FTP (cosa fattibile da
> remoto anche tramite tftp o netbios sfruttando il bug dell'unicode), abbiamo
> inviato alla porta web questa stringa:
> GET /scripts/..%c0%af../winnt/system32/cmd.exe?+/C+c:\crash.exe
> Il sistema si e' riavviato.
>
> Probabilmente con una maggiore conoscenza del kernel di Windows e un saggio
> uso del debugger si potrebbero trovare nuovi metodi per sfruttare questo
> bug.
>
> -----
>
> Luca Girardi - l.girardi@anti-idle.com
> Francesco Vigo - f.vigo@anti-idle.com
>
> ________________________________________________________
> http://www.sikurezza.org - Italian Security Mailing List
_________________________________________________________
Do You Yahoo!?
Get your free @yahoo.com address at http://mail.yahoo.com
________________________________________________________
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