ADS (AltDS) - Alternate Data Stream - альтернативные потоки данных в файловой системе NTFS.
- ADS появились для обеспечения совместимости с файловой системой HTS,
- ADS используются для хранения разнообразных атрибутов
файлов и
каталогов (автор, название, иконка файла и пр.),
-
ADS аналогичны атрибутам графических файлов (JPG) и (mp3), которые хранятся в структуре самого файла. ADS же хранятся для любого файла и на уровне файловой системы,
- полезные данные, которые привык видеть пользователь,
хранятся в главном потоке, который не имеет имени и по умолчанию всегда помещаются в него, когда данные добавляются. Дополнительные (альтернативные) потоки могут иметь произвольное имя, а данные, которые они хранят могут быть прочитаны только при помощи специальных команд ОС или программ,
- в связи с таким определением типов потоков,
каждый файл или папку в NTFS представить как набор потоков, в которых хранятся разнообразные данные,
-
альтернативные потоки могут свободно добавляться пользователем,
-
ADS со своим содержимым могут теряться при переносе файла в другую файловую систему, отличную от NTFS, при отправке файла с ADS по электронной почте, или при архивировании. Некоторые программы могут сохранять все атрибутику NTFS при манипуляциях с такими файлами, например последние версии WinRAR способных сохранять ADS и другие NTFS-свойства файлов, помещенных в RAR-архив.
Виды ADS:
- основной (безымянный). Обозначение: $DATA:"". Главный поток (атрибут), в котором хранится полезная информация.
- дополнительный (альтернативный, именованный). Обозначение: $DATA:"stream_name", где "stream_name" - название потока. ADS могут иметь произвольные имена и хранить произвольные данные.
Виды именованных ADS:
Zone.Identifier - тип зоны, из которой был получен файл. Типы зон:
0 - Local machine (локальный компьютер),
1 - Local intranet (местная сеть),
2 - Trusted sites (надежные сайты),
3 - Internet (Интернет),
4 - Restricted sites (опасные сайты).
Зоны сети в настройках браузера Internet Explorer:
Служба Attachment Execution Service
- появилась в Windows XP SP2,
- сохраняет в альтернативных потоках данных подробную информацию о происхождении загруженных файлов в целях повышения безопасности,
Работа с ADS:
- Запись текста "text text" в атрибут с названием "stream1" файла "txt.txt":
echo "text text" > txt.txt:stream1
- Запись текста в атрибут командой в PowerShell:
Set-Content -Path C:\txt.txt -Value ″text text″ -Stream stream1
- Чтение содержимого атрибута "stream1" файла "txt.txt":
more < txt.txt:stream1
- Чтение содержимого атрибута "stream1" файла "txt.txt" и запись его в файл "txt2.txt":
more < txt.txt:stream1 > txt2.txt
- Чтение содержимого атрибута "stream1" файла "txt.txt" Блокнотом:
notepad txt.txt:stream1
- Получение информации об альтернативных потоках данных. Результат выполнения команды: видно, что файл "txt.txt" содержит в себе поток "stream1":
dir /r
- Получение информации обо всех потоках файла командой "get-item" из PowerShell:
get-item -path E:\_tmp\txt\text.txt -stream *
- Получение содержимого потока "stream1" файла "txt.txt":
get-content E:\_tmp\txt\text.txt -stream stream1
- Помещение файла cpuz_x64.exe в поток "cpuz_x64.exe" файла "text text":
type cpuz_x64.exe > text.txt:cpuz_x64.exe
- Получение номера зоны и ссылки, откуда был скачан файл (при условии, что он содержит поток Zone.Identifier). Команда PowerShell:
get-content "E:\_tmp\Nepal_2018-03-27_(40012222680).jpg" -Stream zone.identifier
- Аналогичные данные можно получить командой в CMD:
more < E:\_tmp\Nepal_2018-03-27_(40012222680).jpg:zone.identifier
При скачивании файла из Интернет, или других сетей, Windows помещает в атрибут файла Zone.Identifier значение 3 или 4, обозначающее, что файл был скачан из Интернета или опасного сайта. Некоторые программы могут считывать этот атрибут. Например MS Word, который показывает сообщение при открытии файла "Этот файл загружен из Интернета и может быть небезопасен. Щелкните для получения дополнительных сведений."
Удалить этот атрибут можно через свойства файла. Необходимо поставить галочку "Разблокировать" и нажать "ОК".