per Àlex Castán Salinas
acastan@xtec.net
*--------------------* | | | El teu ordinador | | és mort... | | i abans estava viu | | _______ | | |.-----.| | | ||x . x|| | | ||_.-._|| | | `--)-(--' | | __[=== o]___ | | |:::::::::::|\ | | `-=========-'() | | | | No hauries d'haver | | instal·lat : | | | | -= M$'Windows =- | *--------------------*
Afecta a: Windows NT 4.0, 2000 i XP
No afecta a: Windows 95, 98 i Me
Aquest títol tan estrany vol dir, explicat de manera molt breu, que el sistema de fitxers de Windows NT ens permet crear fitxers amb un nom especial, que no es poden veure amb l'explorador de Windows, encara que continuem tenint accés a ells i podem executar-los.
Aquest text ha estat elaborat a partir d'un escrit aparegut a la revista Phrack 60, que trobareu a http://patriot.net/~carvdawg/docs/dark_side.html.
El sistema de fitxers preferit de les plataformes NT (Windows NT 4.0, 2000 i XP) és el NTFS. Aquest sistema de fitxers és el que utilitzen per defecte, encara que també poden treballar amb els sistemes de fitxers FAT16 i FAT32.
Una característica del sistema de fitxers NTFS són els "Alternate Data Streams" (ADS a partir d'ara), que proporcionen compatibilitat amb el sistema de fitxers HFS de Macintosh. Els ADS els podríem veure com un conjunt de fitxers amagats associats a un fitxer, i són emprats per diverses aplicacions. Per exemple, els antivirus acostumen a guardar els codis de comprovació d'infecció per cada fitxer a un ADS associat a aquest fitxer. Un altre exemple: algunes aplicacions gràfiques guarden miniatures de les imatges en ADS associats als fitxers de les imatges. De fet, els ADS són el lloc perfecte per guardar metadades associades a un fitxer.
Bé, ja hi ha prou d'introducció. Si voleu saber més sobre els ADS:
- http://www.winnetmag.com/Articles/Print.cfm?ArticleID=15900
- http://www.winnetmag.com/Articles/Print.cfm?ArticleID=19878
- http://www.kaspersky.com/news.asp?tnews=0&nview=1&id=110
- ADS FAQ a http://www.heysoft.de/
Resulta que Windows permet crear ADS tant a través de l'explorador de Windows com mitjançant la línia de comandes, encara que després no proporciona a l'usuari les eines que permeten detectar-los. Podem tenir un fitxer d'un byte al seu ADS principal i un centenar de megabytes a la resta dels seus ADS associats. La comanda 'dir' o l'explorador de Windows mostraran que la mida d'aquest fitxer és d'un byte!
http://support.microsoft.com/default.aspx?scid=kb;EN-US;q101353
Per crear un ADS associat a un fitxer, basta separar el nom del fitxer del nom de l'ADS per dos punts ':'. Per exemple:
c:\temp> echo Això es un fitxer normal > fitxer.txt
c:\temp> echo Això es un ADS > fitxer.txt:amagat.txt
(Incís: Si tenim un fitxer amb un nom que és una única lletra, el sistema pot interpretar-la com el nom d'una unitat de disc i llavors no crear l'ADS. Exemple: si tenim un fitxer que es diu 'c', la comanda 'type fitxer.txt > c:amagat.txt' no crearà l'ADS 'amagat.txt' associat al fitxer 'c', sinó un fitxer 'amagat.txt' a la unitat de disc 'c:'.)
Cap variació de la comanda MS-DOS 'dir' ni cap opció de l'explorador de Windows permet detectar l'ADS. Comprovem que no podem veure-ho:
c:\temp> dir
Directori de C:\temp
22/01/2003 23:24 <DIR> .
22/01/2003 23:24 <DIR> ..
22/01/2003 23:24 27 fitxer.txt
1 arxiu 27 bytes
Però encara existeix i podem accedir:
c:\temp> notepad fitxer.txt:amagat.txt
De la mateixa manera podem associar un ADS a un directori:
c:\temp> echo Això es un ADS associat a un directori > :amagat
c:\temp> notepad :amagat
I a més a més, el contingut d'un ADS no està limitat a text, sinó que pot ser qualsevol dada: executables, imatges, fitxers de so, etc. Per exemple:
c:\temp> type c:\winnt\notepad.exe > fitxer.txt:amagat.exe
c:\temp> start .\fitxer.txt:amagat.exe
Cal dir, però, que els permisos d'un ADS (creació, visualització, escriptura i esborrat) són els mateixos que els del fitxer associat a l'ADS. Per exemple, si un usuari no té permís d'escriptura sobre un fitxer, llavors no podrà afegir un ADS a aquest fitxer.
També cal dir que l'ADS associat a un fitxer desapareixerà si movem aquest fitxer a un disc o partició amb sistema de fitxers FAT. No desapareixerà l'ADS, en canvi, quan movem aquest fitxer a una partició amb sistema de fitxers NTFS.
Per últim, val a dir que un mateix fitxer pot tenir associats varis ADS. Si heu seguit els exemples que he donat, ara mateix el fitxer 'fitxer.txt' té associats els ADS 'amagat.txt' i 'amagat.exe'. Ho podeu comprovar amb l'eina gratuïta 'lads', que trobareu a http://www.heysoft.de/, i que és de les poques eines que permet llistar ADS:
c:\temp> lads
LADS - Freeware version 3.21 (C) Copyright 1998-2003 Frank Heyne Software
Scanning directory C:\temp\
size ADS in file
---------- ---------------------------------
51472 c:\temp\fitxer.txt:amagat.exe
17 c:\temp\fitxer.txt:amagat.txt
40 c:\temp\:amagat
51529 bytes in 3 ADS listed
Podem executar un ADS amb la comanda 'start':
c:\temp> start fitxer.txt:amagat.exe
Però Windows 2000 i Windows XP donaran un error si no escrivim també el camí de l'executable:
c:\temp> start c:\temp\fitxer.txt:amagat.exe
o bé
c:\temp> start .\fitxer.txt:amagat.exe
Si executem l'administrador de tasques de Windows NT 4.0 o Windows 2000 (prement la combinació de tecles CTRL+ALT+SUPR), veurem que a la llista de processos apareix 'fitxer.txt', i a la llista d'aplicacions 'notepad.exe', quan el que realment s'està executant és l'ADS 'amagat.exe'. Només l'administrador de tasques de Windows XP mostra a la llista de processos 'fitxer.txt:amagat.exe'.
Senzillament amagant el nostre troià o executable associant-lo mitjançant ADS a qualsevol fitxer inofensiu del sistema, per desprès llençar la seva execució.
Podem fer que l'execució es llenci de manera automàtica. Les diverses maneres d'executar automàticament un programa a Windows (hi ha 10 o més) les trobareu a http://www.xtec.net/~acastan/textos/Exploit%20Autoinici.html.
Podem fer també que sigui el mateix usuari qui llenci l'execució. Per exemple, podeu crear un accés directe a algun fitxer a l'escriptori (per exemple 'c:\temp\fitxer.txt'), i després canviar a les propietats de l'accés directe el seu destí, escrivint el camí de l'ADS que conté el vostre troià (per exemple 'c:\temp\fitxer.txt:amagat.exe'). Veureu que quan heu canviat el camí, la icona d'accés directe també canvia, segons sigui el nou tipus de fitxer al que l'heu associat. Així, si voleu que el vostre troià passi desapercebut, haureu de posar una icona adient al seu executable.
Un altre exemple, que obrirà una finestra amb un missatge:
c:\temp> echo MsgBox "VBasic Script per provar ADS" > fitxer.txt:provavbs.txt
c:\temp> wscript //E:vbs fitxer.txt:provavbs.txt
Finalment, cal dir que l'explorador de Windows permet als usuaris crear un ADS molt específic associat a un fitxer. Haurem de clicar amb el botó dret del ratolí sobre el fitxer i seleccionar l'opció 'propietats' dins el menú contextual. A la pestanya 'resum' trobarem uns quants camps per introduir informació i comentaris del fitxer. Això crearà un ADS anomenat '?SummaryInformation' (cal substituir '?' pel caràcter 'trèvol').
LADS - Freeware version 3.21 (C) Copyright 1998-2003 Frank Heyne Software
Scanning directory C:\temp\
size ADS in file
---------- ---------------------------------
120 c:\temp\fitxer.txt:?SummaryInformation
51472 c:\temp\fitxer.txt:amagat.exe
17 c:\temp\fitxer.txt:amagat.txt
46 c:\temp\fitxer.txt:provavbs.txt
0 c:\temp\fitxer.txt:{4c8cc155-6c1e-11d1-8e41-00c04fb9386d}
40 c:\temp\:amagat
51695 bytes in 6 ADS listed
Com a curiositat vull dir que ja s'ha creat algun virus que aprofita aquesta vulnerabilitat. Els primers autors van ser Benny i Ratter del grup 29A. Els virus que s'amaguen a ADS, continuen sent detectables pels antivirus residents quan es manifesten per intentar infectar, però passen inadvertits quan s'analitza el sistema de fitxers amb un antivirus no resident:
- http://vx.netlux.org/29a/29a-5/29a-5.601
- http://www.viruslist.com/eng/viruslist.html?id=4078
- http://www.viruslist.com/en/news?id=657
De moment no hi ha solució, excepte tenir cura dels permisos dels usuaris sobre els fitxers, per tal que no puguin crear ADS. Microsoft ha anunciat que caldrà esperar a la pròxima versió de Windows perquè l'explorador implementi bé el suport dels ADS. De moment, hi ha vàries eines que ens permeten detectar arxius ocults als streams:
- Lads (gratuïta) és la millor, i la trobareu a http://www.heysoft.de/.
- Sfind (gratuïta), que trobareu a http://www.foundstone.com/, dins el paquet 'forensic toolkit'.
- Streams (gratuïta), que trobareu a http://www.sysinternals.com/, dins l'apartat 'NT/W2k/XP miscel·lània'.
- CrucialADS (gratuïta), que trobareu a http://www.crucialsecurity.com/, i que té interfície gràfica.
Copyleft © Alejandro Castán Salinas
Es concedeix el permís per copiar, distribuir i/o modificar aquest document sota els termes de la llicència de documentació lliure GNU, versió 1.2 o qualsevol altra versió posterior publicada per la Free Software Foundation.
Podeu consultar dita llicència a http://www.gnu.org/copyleft/fdl.html.
El contingut d'aquest document pot canviar degut a ampliacions i a correccions enviades pels lectors. Trobareu sempre la ultima versió del document a http://www.xtec.net/~acastan/textos/index.html.