Les Alternate Data Stream en NTFS.
Le système de fichier NTFS possède une particularité méconnue due à un volonté de compatibilité avec HFS de Macintosh : Il est possible d'ajouter un flux de données additionnel à un fichier ou à un répertoire. Plus grave : ce flux de données est complètement invisible !
|
|
Toutes les manipulations sur
les ADS se font en ligne de commande ou dans
Démarrer - Exécuter.
Passons à la pratique :
Comment créer un
ADS
Tapez : notepad
C:\testads.txt:ads.txt
Si le fichier testads.txt n'existe pas, il sera
créé. Un ADS associé(ads.txt)
sera également créé, tout ce que
vous pourrez saisir dans cette fenêtre de
notepad sera inclus dans le flux de données
additionnel.
Maintenant, sauvegardez le fichier puis refermez
notepad. Allez dans l'explorateur et ouvrez de
manière 'normale' le testads.txt. Où
est donc passé ce que vous venez de saisir
?
C'est simple : dans l'ADS ! Il suffit de relancer la
commande ci-dessus pour retrouver votre saisie.
Une autre particularité facilement
vérifiable : Que vous insériez 3 mots
ou 3 Mo dans votre ADS, le fichier 'porteur' ne
change pas de taille !
Une autre manière d'insérer un ADS
consiste à l'associer à un
répertoire (ou une racine !)
Tapez en ligne de commande :
C:
md testads
cd testads
notepad :ads.txt
Et voilà ! surprenant, non ?
Vous commencez à vous familiariser ? Bien ! on
continue !
Vous vous demandez : c'est bien beau tout ça,
mais...
Comment effacer ces ADS
?
1ère méthode : Effacer le
répertoire ou le fichier porteur.
del testads.txt ou rd
testads
2ème méthode : Déplacer le
fichier/répertoire sur un disque en FAT.
Malheureusement, la commande del ne gère pas
les ADS...
Par contre, la version 1.5 de l'outil "stream" permet d'effacer ces
ADS.
Comment créer un ADS
à partir d'un fichier ?
La manoeuvre est assez simple :
type FichierSimple.txt >
FichierPorteur.txt:FichierSimpleEnADS.txt
ou
type AppliSimple.exe >
FichierPorteur.txt:AppliSimpleEnADS.exe
Eh oui ! Pourquoi pas un txt porteur d'un exe ?
Comment récupérer un
fichier depuis un ADS ?
La manoeuvre est 'presque' aussi simple :
more <
FichierPorteur.txt:FichierSimpleEnADS.txt >
FichierSimple.txt
ou
cat FichierPorteur.txt:AppliSimpleEnADS.exe
> AppliSimple.exe
(Cat est un outil du Ressource Kit NT)
Comment lancer un exécutable
en ADS ?
start
FichierPorteur.txt:AppliSimpleEnADS.exe
Transférer un ADS
?
La seule manière de déplacer un ADS
est le déplacement de disque NTFS à
disque NTFS (au maximum par un LAN). Les protocoles
internet n'ont pas été prévus
pour les ADS (E-mail, FTP, etc..), ouf !
Quels dangers
?
Malheureusement, plusieurs :
- Une méconnaissance de ces
possibilités par le grand public.
- Les ADS peuvent être associés
à des fichiers, mais aussi à des
répertoires ou à des racines.
- Les ADS ne peuvent pas être effacés
simplement.
- Les ADS attachés à une racine ne
peuvent pas être effacés du tout.
- Du code dangereux peut être dissimulé
ou utiliser les ADS de manière
malveillante.
- Un ADS peut être exécuté. - Un
ADS exécuté ne présente pas son
vrai nom.
Comment contrôler les ADS
?
Il existe quelques outils :
JC Bellamy
Streams
LADS
TDS-3
Références
Giac.org
Cert-Ist
BizNix
FAQ NTFS et ADS chez Heysoft