NTFS Alternate Data Stream

NTFS failisüsteemis on pikka aega olnud funktsionaalsus, millel ei ole otseselt kasutajaliidest ning mida tavaliselt kasutatakse varjatult.  See on Alternate Data Stream, ehk siis funktsioon, mis laseb failil omada mitut erinevat sisu.

Kui see alternatiivne sisu on tekst, siis saab seda avada Notepad’i abil.  SysInternals Toolkit sisaldab utiliiti Streams, mis näitab (ja laseb kustuta) faili küljes olevaid erinevaid sisusid.

Powershell 3.0 toetab samuti seda funktsionaalsust.  Nimelt on hulk käske, millel on (dokumenteerimata) käsurea võti –Stream.  Vastavad käsud leiab lihtsalt:

#Requires –Version 3.0

Get-Command –ParameterName stream -Module Microsoft.PowerShell.Management

Tegelikult tegeleb veel üks käsk alternatiivsisudega, või õigemini ühe konkreetse sisuga.  See käsk on Unblock-File, mis eemaldab faili küljest märke, et see on Internetist saabunud.

Ülalmainitud käskudega saab näiteks vaadata, millistel failidel on alternatiivsisu:

Get-ChildItem |
  Get-Item -Stream * |
  Group-Object stream

Nii saab teada failides olemasolevate alternatiivsisude arvud.  Pärast seda oskame juba tahta konkreetse nimega alterantiivsisu:

Get-ChildItem |
  Get-Item -Stream * |
  Where-Object {$_.Stream -like "Zone.Identifier" }

nüüd teame juba, et millistel failidel on meid huvitava nimega alternatiivsisu ning siis saab nendega midagi ette võtta.  Näiteks võime teksti tüüpi sisu ekraanile manada ehk siis teise faili kopeerida. Või siis hoopis ära kustutada:

Get-Content .\minufail.pdf -Stream Zone.Identifier
  # või siis ka:
Get-Content .\minufail.pdf:Zone.Identifier

Get-Content .\minufail.pdf -Stream peidus |
  Set-Content .\teine.txt -Stream uus

Remove-Item .\katse.txt -Stream Zone.Identifier
  # või antud juhul ka:
Unblock-File .\katse.txt

kuna *-Content käsud eeldavad, et sisu on tekst (ridade kollektsioon), siis ei saa näiteks linkide lemmikuikoone (favicon) sedasi kopeerida/luua.  Nii et peamiselt saame me ikka eemaldada skriptidelt fakti, et need internetist alla tõmmati.  Või siis otsida, et ega mõni pahavara pole end alternatiivsisusse peitnud.

Advertisements