(Bemærk, gammel vejledning (opr. fra 2006), primært skrevet med WindowsXP for øje. Primært lagt ud fordi nogle af grundprincipperne stadig er gældende)

Hvad er ADS?

ADS er en forkortelse for “Alternate Data Streams”. I oversættelse bliver dette til “alternative data-strømme”. Det var noget der blev introduceret med NTFS-fil formatet, og findes kun på harddiske, der er formateret i dette format (typisk Win2000 og senere Windows-styresystemer). Hvis du således kopierer en fil fra en NTFS-formateret harddisk til en diskette, USB-drev, CDROM, FAT-formateret HD, så vil disse ADS gå tabt.

ADS blev bl.a. introduceret som en efterligning af Macintosh’ HFS (Hierarchical File System). De er primært beregnet på at lagre informationer som ikke er direkte relevante for selve filerne og deres eksekvering, men mere for hvordan filsystemet håndterer dem og fremviser dem.

Disse ADS er ikke direkte synlige for de fleste systemværktøjer, hvilket er en god grund til for rootkits at interessere sig for dem. Man kan ikke sige, at de i sig selv er rootkits, men de kan bruges til de samme formål som rootkits: Nemlig at skjule hvad der faktisk foregår på computeren.

For at markere at man opererer med ADS, er det blevet konvention at markere det med et kolon, der adskiller det synlige filnavn fra ADS-filnavnet. Så:

synlig-fil.txt:skjult-ads.txt

…indikerer at den synlige fil (synligfil.txt) indeholder et ADS (skjultads.txt)

Demonstration af simpel ADS-håndtering

Det er let at lave et simpelt ADS vha. kommandoprompten. Hvis du har en fil, der hedder test.txt, så kan du tilføje et lille ADS til denne fil på denne måde:

echo ADS > test.txt:skjult.txt

Dette vil tilføje en ADS ved navn skjult.txt til den oprindelige fil test.txt, med indholdet “ADS”. Og dette indhold vil ikke være at se med en almindelig DIR-kommando, eller de andre systemkommandoer. Du vil hverken kunne se et udsving i filens størrelse, eller i dens MD5 eller CRC32-tværsum. Heller ikke i stifinderen kan de ses. Der skal bruges nogle af de special-værktøjer, som jeg linker til i bunden af siden.

Dog kan du, hvis du VED at den findes, få lov at se indholdet af ADS’en. Det gøres vha. notesblokken, og gøres på følgende måde. Fra en kommandoprompt, eller fra Kør-menuen inde i Start-menuen skriver du:

c:windowsnotepad test.txt:skjult.txt

Dette vil åbne ADS’en, og give dig lov til at redigere den. Du kan også skabe nye ADS vha. notesblokken. Det gøres således:

c:windowsnotepad ny.txt:nyads.txt

Så vil du blive spurgt om du vil skabe den nye fil, hvilket du skal sige ja til.

Ligesom du kan vedhæfte ADS til enhver fil, kan du også vedhæfte ADS til et bibliotek. Det følgende vil tilføje et ADS med navnet dirads.txt til mappen c:WINDOWSpchealth:

echo test > c:WINDOWSpchealthdirads.txt

For at slette ADS skal man gøre nogle krumspring. Da systemkommandoerne ikke kan finde dem, kan du ikke lave en direkte sletning af ADS, uden også at slette den tilhørende fil. Hvis den tilhørende fil også er uønsket, kan man naturligvis bare gøre slette den, så er den pot ude. Men ønsker man at bevare den synlige vil, kan man i stedet gøre følgende:

ren number.txt temp.txt
type temp.txt > number.txt
del temp.txt

FORKLARING: Først omdøbes den ADS-inficerede fil. Så “types” det eksplicitte indhold af denne fil (og altså ikke ADS’en) over i en ny fil med det oprindelige navn. Og så slettes den gamle ADS-inficerede fil.

Hvis man bare kopierede den ADS-inficerede fil over til en ny fil, følger ADS’en med — hvis destinationen også er NTFS-formateret.

ADS der er tilknyttet biblioteker er lidt sværere at fjerne uden ekstra-værktøjer. Den eneste måde at gøre noget ved et ADS her (uden at slette biblioteket) er at overskrive den gamle ADS med en ny:

echo Ingenting > c:WINDOWSpchealthdirads.txt

FORKLARING: Dette vil overskrive den ADS som tidligere er blevet tilknyttet biblioteket c:windowspchealth med strengen “ingenting”.

Skummel brug af ADS

Foreløbig er alt dette jo meget harmløst og fint. ADS kan bruges til mange nyttige formål. Men mere skummelt bliver det, når man indser at ADS også kan eksekveres, og at ADS ikke behøver være en txt-fil. Det kan være alle mulige slags filer (exe, com, sys, dll, osv.). Hvis man således flytter en exe-fil over i et ADS på et tilsyneladende harmløst txt-dokument, så har man en godt skjult fil, der kan gøre hvad som helst på systemet. Dette kan ses med følgende (harmløse) demonstration:

Med en kommandoprompt, kopierer du notesblok-programmet over i en ADS til en tekstfil (c:testtekstfil.txt), som du har lavet på forhånd:

type c:windowsnotepad.exe > c:testtekstfil.txt:skjult.exe

Skjult.exe er så en skjult ADS-fil, tilknyttet den harmløse c:testtekstfil.txt. Ved hjælp af “START”-kommandoen kan dette ADS så eksekveres:

start c:testtekstfil.txt:skjult.exe

(bemærk at på Win2000 kan ADS’en kun startes, hvis man indtaster hele biblioteks-strukturen på filens placering)

Denne kommando vil starte notesblokken!

Nogle almindelige (harmløse) ADS

  • Zone.Identifier (26 bytes): Indeholder filinformationer for filer, der er downloadet med Internet Explorer
  • Encryptable (0 bytes — tilknyttet thumbs.db: Jeg har ikke kunnet finde den præcise betydning af disse ADS, men de er i hvert fald helt harmløse og normale.
  • SummaryInformation (variabel størrelse): Indeholder et referat over den synlige fil.
  • Favicon (xxx bytes): Ved url-filer indeholder disse favicons et ikon, som vises sammen med filen.
  • {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} (0 bytes): {x angiver tilfældige tal/tegn} Indeholder et ikon for billedfiler, som vises i stifinderen.

Nogle 3.-parts programmer til at håndtere ADS

GUI:

Kommandoprompt:

Desuden er der også mange af antirootkit-værktøjerne, der kan håndtere ADS (Gmer, RootkitUnhooker). Rootkitrevealer kan også vise ADS.

Links til baggrundslæsning