Tags

Howto (51) Free Software (35) Powershell (33) Windows Server (23) AD (16) Hyper-V (16) Exchange (13) Office (13) Group Policy (10) Windows Server 2012 (9) Scripts (7) Symantec BE (5) Windows 8 (5) Cisco (4) TMG (4) Terminal Server (4) Cluster (3) HP (3) RDS (3) UAG (3) Citrix (2) DC (2) DNS (2) IE10 (2) OpenID (2) PKI (2) SCVMM (2) Windows Live (2) iLO (2) Backup (1) DPM (1) Fileserver (1) IE (1) SQL; DPM (1) Security (1) Sharepoint (1) Switch (1) VMWare (1) Veeam (1)

maandag 2 juli 2012

Alternate Data Streams

Hieronder een uitleg over ADS. Deze heb ik in de tijd gemaakt toen Windows XP net uit was, echter is het verhaal nog steeds van toepassing (Windows 7).

Wat zijn verborgen Alternate Data Streams?
NTFS, (Windows NT, 2000, XP) heeft een toepassing die niet goed gedocumenteerd is en waar maar weinig systeembeheerders vanaf weten. Deze toepassing heet “Alternate Data Streams” (ADS) en het staat toe dat er verborgen bestanden gekoppeld kunnen worden aan een normaal zichtbaar bestand.

Waarom ondersteunt NTFS ADS?
De belangrijkste reden is voor het ondersteunen van Macintosh bestanden. Bestanden opgeslagen op het Macintosh Hierarchical File System (HFS) bestaan uit twee stukken (forks), een data fork en een resource fork. Windows maakt gebruik van de extensie van een bestand (eg. “.exe”) om duidelijk te maken welk programma met dat bestand geassocieerd moet worden. Macintosh bestanden maken gebruik van de resource fork. NT slaat de Macintosh resource forks op in een ADS. Sommige Anti-Virus programma’s slaan per bestand checksums op in een ADS.

Wat zijn de belangrijkste gevaren van ADS?
  • ADS zijn alléén zichtbaar met speciale software (Microsoft heeft zelf helemaal niets om ADS zichtbaar te maken / Update: vanaf Windows 7 heb je de optie dir /r).
  • Bekendheid van ADS is extreem laag.
  • ADS kunnen niet alleen aan bestanden attachen, maar ook aan directories.
  • ADS kun je zelf niet verwijderen, je kunt ze alleen verwijderen door het parent bestand te verwijderen. Echter,
  • ADS die attached zitten aan de root van een drive, zoals “C::myADS”, kunnen niet verwijderd worden.
  • “Beschikbare Disk Ruimte” zoals programma’s als “Windows Verkenner” die laten zien, nemen de ruimte die door ADS worden geconsumeerd niet in zich op.
  • ADS, wat gewoon bestanden zijn, kunnen nog steeds worden uitgevoerd. Het is dus mogelijk om een “.exe” bestand als ADS aan een ander bestand te koppelen en vervolgens uit te voeren. (In Windows 7 zit een beveiliging die dit blokkeerd, echter kun je deze beveiliging omzeilen door een Symbolic Link (mklink.exe) naar de ADS te maken en deze uit te voeren)
  • Een uitgevoerde ADS geeft zijn bestandsnaam in de Taskmanager niet juist weer. Als bijvoorbeeld de ADS “c:\test.txt:myADS” is uitgevoerd, dan zou Taskmanager alleen “test.txt” weergeven.

Hoe kun je ADS toch detecteren?
Er zijn op dit moment een aantal thirdparty programma’s, waaronder enkele freeware programma’s, die het mogelijk maken om ADS te detecteren.
Voorbeelden zijn:
  • TDS-3 van DiamondCS
  • LADS van Frank Heyne
  • Hunt van Foundstone
  • Dir /r (onder Windows 7)


Hoe maak je een ADS?
De syntax voor het maken van een ADS is simpel. Je hebt een zgn. parent bestand waaraan een of meerdere ADS gekoppeld zitten, door het plaatsen van een dubbele punt “:”, tussen het parent bestand en de ADS, verwijs je naar de ADS.

C:\ads>echo Dit is een ADS > myfile.txt:myADS

Tevens kun je een ADS aanmaken met de inhoud van een ander bestand.

C:\ads>echo Dit is een test bestand > test.txt
C:\ads>type test.txt > myfile.txt:myADS
Je kunt de ADS testen m.b.v. Notepad.

C:\ads>notepad myfile.txt:myADS

De inhoud van een ADS hoeft niet persé tekst te bevatten, de inhoud kan elke binary informatie bevatten, dus ook executables.

C:\ads>type c:\winnt\notepad.exe > myfile.txt:np.exe

Hiermee hebben we notepad als ADS aan myfile.txt gekoppeld met de naam np.exe.
Op deze manier kun je dus ook: plaatjes, audio bestanden, etc. als ADS aan een bestand kunnen koppelen.

Hoe voer je een ADS uit?
We hebben hiervoor al gezien hoe we een ADS kunnen openen in Notepad, maar je kunt ADS, als het executables zijn, ook uitvoeren.

C:\ads>start myfile.txt:np.exe

Echter blijkt dat bovenstaande opdracht fouten genereert onder Windows 2000, door de opdracht uit te voeren met een absoluut of relatief path vermijd je dat probleem.

C:\ads>start c:\ads\myfile.txt:np.exe
C:\ads>start .\ads\myfile.txt:np.exe

Hoe verwijder je ADS?
Er zijn een aantal mogelijkheden:
  1. Je verwijdert het parent bestand, hiermee verwijder je alle ADS die eraan gekoppeld zitten.
  2. Je voert de volgende handelingen uit:

C:\ads>type myfile.txt > myfile.bat
C:\ads>del myfile.txt
C:\ads>ren myfile.bat myfile.txt

  1. Je kunt het bestand verplaatsen naar een FAT partitie, aangezien FAT niet ADS ondersteunt worden de ADS ook niet meegenomen.

Opmerking: als je een parent bestand met daaraan gekoppeld, een of meerdere ADS, naar een andere NTFS partitie (of zelfs drive mapping) kopieert of verplaatst, zullen deze ADS meegenomen worden.


Er zijn tegenwoordig hier ook filmpjes over te vinden, even snel Googlen geeft bijvoorbeeld:

Geen opmerkingen:

Een reactie posten