ITBoard
Portalul specialistilor IT din Romania

NTFS - Alternate Data Stream

This post has 0 Replies | 0 Followers

Top 50 Contributor
Posts 148
ceciu Posted: 06-27-2005 11:52 | Locked

NTFS - Alternate Data Stream

      NTFS-ul este astazi un standard, un sistem de fisiere matur si de aceea putini dintre noi mai folosim FAT/FAT32 si atunci doar fortati de diverse imprejurari. Cu toate acestea, o sa vedem ca din motive de compatibilitate cu alte sisteme de fisiere, NTFS-ul are si puncte vulnerabile. Incepem sa vorbim in continuare despre ADS – Alternate Data Stream.
      ADS a fost introdus pentru a oferi compatibilitate cu Machintosh HFS (Machintosh Hierchical File System), care foloseste mai multe fluxuri de informatie pentru a stoca un intreg : de exemplu un fisier. Astfel, pe langa fluxul principal de date mai pot exista si altele adiacente, corelate cu cel principal, dar invizibile pentru noi. Sa stii ca esti pus in situatia de a controla ceva „invizibil” nu e tocmai placut. Ce este interesant aici ? Microsoft nu a pus la dispozitie nici un tool care sa ne ajute in detectarea acestori fluxuri de date, desi ne ofera posibilitatea de a le crea. Totusi, le putem identifica folosindu-ne de LADS, un tool distribuit free, ruleaza din linie de comanda si permite detectarea ADS-urilor. Il puteti gasi pe http://www.heysoft.de .
      Stim ce este ADS-ul si cum il putem detecta. In continuare o sa vedem sub ce forma sunt tinute datele adiacente, cum se face ca nu sunt vizibile si cum se manifesta in momentul in care sunt puse la lucru.
      Pentru inceput imi creez un director de test, in care imi copiez lads.exe si imi fac un fisier normal.txt. Observam ca are 0 kb in dimensiune, deci nici o informatie....utila.
 
 
      In continuare atasez de fisierul normal.txt un flux de date, sub forma unui fisier text (ascuns.txt), in care scriu „Acesta este un test de ADS pentru fisierul normal.txt din directorul C:\test. Sa vedem daca merge...”. Dupa ce am atasat acest flux de date adiacent rulez lads-ul. Aici observam diferenta : pentru Windows Explorer informatia adaugata este „invizibila”. Totusi ea exista sub forma acelui flux de date, si are o dimensiune de 103 bytes. In cazul in care detectam existenta acestor fluxuri de date adiacente, este destul de util sa aflam ce se afla ascuns in ele. Pentru fluxul de date creat de noi este destul de simplu sa aflam acest lucru : 
  
    
      E bine sa stim ca exista posibilitatea de a stoca date in fluxuri adiacente, fara ca acestea sa fie vizibile in conditii normale de lucru. Avand in vedere ca este o functionalitate a NTFS-ului, fluxurile despre care vorbim dispar in momentul in care fisierul nostru (defapt un flux de date la randul lui, care contine informatie „vizibila”) este sters sau mutat pe un sistem FAT/FAT32. Dar se si pastreaza in cazul unei copieri sau mutari pe un alt mediu formatat NTFS.
      In situatia in care fluxurile de date reprezinta fisiere executabile, lucrurile tind sa devina mult mai „complicate”. Pentru ca putem lansa anumite comenzi folosindu-ne de aceasta functionalitate. In cele din urma, o sa vedem cum ne putem folosi de ADS pentru a lansa anumite aplicatii „ascunse”. Asadar, in prima faza trebuie sa cream acest ADS. Mi-am propus sa leg de un fisier text o aplicatie. Mai exact, de fisierul test.txt o sa leg mspaint.exe. Fac acest lucru printr-o comanda foarte simpla : type c:\test\mspaint.exe>test.txt:mspaint.exe. Vedem ca dimensiunea fisierului test.txt a ramas aceeasi – 0 kb. Cu toate acestea, cand rulam lads-ul acesta detecteaza fluxul de date pe care l-am atasat, ca avand o dimensiune de 343 kb. OK. Am atasat fluxul de date, acum sa-l lansam : start  .\test.txt:mspaint.exe. Rezultatul este evident : am lansat paint-ul din Windows folosindu-ne de un fisier txt de 0 kb !

     
      Acum aruncam o scurta privire prin Task Manager pentru a vedea cum ne prezinta acesta „fisierul text” pe care l-am deschis.
     
     
      In Application apare untitled – Paint : este fluxul nostru de date pe care l-am lansat. In procese insa, apare ceva destul de interesant : test.txt:mspaint.exe. Asta in cazul in care vorbim de sistemele care ruleaza Windows XP. Pentru ca daca rulam un Windows 2000, rezultatul este si mai frumos : in procese apare doar test.txt, adica doar fluxul nostru principal de date! Chiar va rog sa incercati acest lucru, sa vedem daca este chiar asa (astept feed-back de la voi). Ce trebuie sa fim atenti : in momentul in care vrem sa lansam fluxul adiacent de date trebuie sa specificam calea intreaga spre acesta sau o cale relativa.
      Spre final mai testam o functionalitate. Ce am testat pana acum : date ascunse, lansare de aplicatii folosindu-ne de un fisier oarecare. Acum o sa vedem cum lansam o aplicatie folosindu-ne de alta. Exemplele cele mai simple pe care le avem la dispozitie sunt notepad.exe si calc.exe. Pasii care trebuie urmati sunt la fel. Efectele sunt cam aceleasi : ne folosim de notepad.exe pentru a lansa calc.exe. Ce este interesant de urmarit, fisierul notepad.exe are un nou time stamp.
     
     
     
      Asadar, din motive de functionalitate cu Machintosh HFS, Microsoft pastreaza in NTFS posibilitatea crearii de ADS-uri. La ce trebuie sa ne gandim noi : este o functionalitate sau o vulnerabilitate ? Oricare ar fi raspunsul, trebuie sa avem la indemana tool-urile necesare pentru a le detecta, trebuie sa stim ca rulate sub NT/W2K nu sunt vizibile ca si procese separate, cantitatea de informatie care poate fi tinuta intr-un astfel de flux este limitata doar de dimensiunea disk-ului, dar si ca este o functionalitate/vulnerabilitate a NTFS-ului putin cunoscuta.
      Daniel POPA
      MCSE, MCSA Messaging
      popicadan@yahoo.com

Emanuel Ceciu http://www.ceciu.ro
Page 1 of 1 (1 items) | RSS
IT Board - Portalul specialiştilor IT din România
Powered by Community Server (Commercial Edition), by Telligent Systems