Альтернативные потоки данных (ADS) – альтернативные потоки данных NTFS
Каждый файл и каталог в формате NTFS имеет несколько потоков данных:
- один главный, безымянный (безымянный, безымянный), содержащий фактическое содержимое файла. Безымянный поток является обязательным элементом и присутствует всегда. Если мы создаем альтернативный поток, а файл не существует, система автоматически создает безымянный поток нулевой длины.
- потоки, которые хранят информацию о безопасности файлов. Важно помнить, что дескриптор безопасности и атрибуты файла принадлежат файлу в целом, а не безымянному потоку.
- другие альтернативные потоки
Основной, безымянный поток – единственный, видимый из-под Проводника и командной строки. Когда файл открывается приложением по умолчанию, безымянный поток фактически открывается. Чтобы указать альтернативный поток, мы добавляем к имени файла двоеточие и имя потока.
пример:
filename.extension (например, traxter.txt) указывает неназванный файловый поток, а filename.extension: stream_name (например, traxter.txt: page www.txt) указывает имя ADS.
Основной файл: видимый файл
Основной файл с потоком: видимый файл : скрытый файл
Количество потоков может быть любым. Характерной особенностью является то, что такие потоки имеют имя, они не видны, все функции / атрибуты скрыты. Вы можете хранить в них данные любого типа, как в обычных файлах.
Подводя итог, потоки NTFS – это скрытые файлы на диске «под» обычным видимым файлом / папкой. Они не обнаруживают никаких следов своей деятельности, не изменяют размер файла, даже его контрольную сумму, но в то же время занимают место на диске – вы можете иметь один маленький файл на диске, содержащий потоки весом весь диск!
пример:
Основной файл: инструкция.doc (1 МБ) Поток: manual.doc: holiday-movie-FullHD.avi (699 МБ) Поток: инструкция.doc: windows7-install.iso (3500 МБ)
В примере на диске у нас есть файл инструкция.doc с двумя прикрепленными потоками. Виден только основной файл, а потоки скрыты. Анализ диска показывает, что используется 1 МБ пространства, хотя на самом деле оно близко к 4200 МБ >>> ~ 4.2 ГБ. Хорошая вещь, не правда ли?
преимущества
Потоки позволяют хранить файлы на диске таким образом, что никто не узнает об их существовании. Кстати, вы можете обойти ограничение дискового пространства для нашей учетной записи, установленное администратором. Даже гость может создать такой поток в любом файле, к которому у него есть доступ. В потоке мы можем хранить столько данных, сколько поместится на диске :). Однако администратор с полными привилегиями может удалить файл и поток, но как он узнает, что есть поток?
угрозы
Тем не менее, потоки также представляют угрозу для системы – если она проникает в систему, она может хранить или прикреплять вредоносные элементы к обычным файлам, работая незамеченной (например, руткиты).
Примеры потоков
Не все потоки вредны. Некоторые из них также автоматически генерируются самой системой, например потоки Zone.Identifier.
C: Downloadssetup.zip: Zone.Identifier
Потоки этого типа указывают на принадлежность к одной из 5 зон безопасности: 0 – Мой компьютер; 1 – локальная интранет; 2 – Доверенные сайты; 3 – интернет; 4 – Запрещенные сайты. Эти зоны отображаются в Internet Explorer в окне «Свойства обозревателя» на вкладке «Безопасность», но зона «Мой компьютер» по умолчанию скрыта. Эти потоки генерируются, когда файлы, загруженные из Интернета, сохраняются на диске компьютера через Internet Explorer / Firefox начиная с версии 3. Загруженные файлы получают членство в зоне Интернета, то есть номер 3 и запись в потоке:
[ZoneTransfer]
ZoneId = 3
При открытии файла система проверяет Zone.Identifier и отображает сообщение Предупреждение о безопасности: Файл открыт (это сообщение не будет получено из командной строки):
Дополнительные сведения о типах потоков см. В разделе « Потоки NTFS».
Пример потока руткитов Pe386:
C: WINDOWSsystem32: lzx32.sys
Потоковая операция
Чтобы проиллюстрировать работу скрытых потоков, мы создаем пример:
в командной строке введите одну из команд, в зависимости от того, где вы создаете – на системном разделе или другом диске
echo 12345> file.txt: numbers echo 12345> x: file.txt: numbers
Будет создан файл .txt, содержащий поток цифр. Для чтения данных мы можем использовать команду:
больше
или открыть в записной книжке, но нам нужно добавить расширение .txt
echo 12345> file.txt: digits.txt Блокнот file.txt: figure.txt echo 12345> x: file.txt: digits.txt блокнот x: file.txt: digits.txt
Мы также можем создавать потоки в каталогах
каталог mkdir или каталог md echo 12345> каталог: file.txt каталог блокнота: file.txtПоток будет создан в каталоге. Это поток, а не файл, поэтому при входе в этот каталог мы ничего не увидим.
Копирование файлов в потоки
В командной строке введите команду:
введите «путь к скопированному файлу»> «путь к созданному файлу: имя потока»Я приведу пример, как скрыть mp3-файлы в потоках:
введите f: atb.mp3> f: readme.txt: atb.mp3В этом примере музыкальный файл atb.mp3 был скопирован в поток readme.txt: atb.mp3 в файле readme.txt. Файл readme.txt занимает 0 байт на диске, но содержит поток в несколько МБ.
Теперь, чтобы воспроизвести такой файл, введите команду:
«Путь к файлу плеера» «Путь к файлу: имя потока» например, «C: Program FilesAIMP2aimp2.exe» f: readme.txt: atb.mp3В примере файл был открыт в проигрывателе AIMP.
На основании приведенных выше инструкций мы можем использовать любые другие файлы вместо mp3, включая даже исполняемые файлы EXE, которые также используются вредоносными программами.
Копировать текстовые данные из потоков в обычные файлы
Для текстовых файлов вы можете использовать команду «more»:
копирование потока цифр из файла file.txt в файл second_file.txt
больше second_file.txt больше x: second_file.txtскопируйте second_file.txt в поток цифр в файле file.txt.
больше file.txt: числа больше x: file.txt: numbersКопировать двоичные данные из потоков в обычные файлы
Файлы не могут быть скопированы в поток или наоборот с помощью команды «копировать» Windows. Однако это позволяет использовать эквивалент Unix - команду «cp», которая также может использоваться в Windows.
Использование команды "cp" в АЦП
Команда "cp" позволяет вам копировать двоичный файл в поток и наоборот. Таким способом вы можете скрывать и хранить файлы на дисках.
Чтобы использовать эту функцию, вам нужна команда cp Unix Windows.
Для удобства вы можете загрузить только те файлы, которые вам нужны, из каждого пакета: command_cp_na_Windows.zipНабор CoreUtils
из набора инструментов Linux для пакетов Windows GnuWin32
скачать: последняя версия (набор coreutils)
Мы можем скачать:
- - установочный пакет (может быть извлечен в Universal Extractor, после извлечения пакета coreutils-xxxexe из каталога bin {app}, скопируйте 3 файла: cp.exe, libiconv2.dll, libintl3.dll)
- - двоичные файлы (но затем дополнительно загрузите зависимости, зависимости, zip, файл - coreutils-xxx-dep.zip); из архива binaria coreutils-xxx-bin.zip мы копируем файл .bincp.exe, а из coreutils-xxx-dep.zip две перечисленные библиотеки. Набор "grep" предлагает более новые библиотеки - архив grep-xxx-dep.zip.
Мы копируем эти файлы в каталог C: WINDOWS. Затем запустите командную строку и введите соответствующие команды.
------------------------
UnxUtils установлен
скачать: последняя версия
Скачайте архив, после распаковки скопируйте файлы:
.binsh.exe
.usrlocalwbincp.exe
Скопируйте файл cp.exe в каталог C: WINDOWS. Затем запустите sh.exe (любое место), который содержит собственный интерпретатор командной строки, в который мы вводим команды. Иногда вам нужно нажать Enter дважды, чтобы выполнить команды.
------------------------
порт cp (неофициальный)
скачать: https://gnthexfiles.republika.pl/cp.zip
после распаковки мы копируем файлы в каталог C: WINDOWS. Затем запустите системную командную строку и введите соответствующие команды.
Этот порт был скомпилирован в среде cygwin, поэтому библиотека cygwin1.dll включена. Эта среда позволяет запускать программы Linux под Windows. Он преобразует ссылки на системные функции Linux в функции Windows.
Команда "cp" на практике
Пример - пример копирования файла в поток:
cp film.avi file.txt: фильм или cp x: film.avi x: file.txt: film
Пример - пример копирования потока в файл:
cp file.txt: фильм film.avi или cp x: file.txt: film x: film.avi
пример:
Файл "cp.zip" был скопирован в поток "arch.zip" (расширение не требуется, в качестве альтернативы можно назвать поток "arch") в файле "file.txt" (если файл "file.txt" не существует создано). Таким образом, был создан пустой файл "file.txt", содержащий поток "arch.zip", который невидим.
В следующей команде поток «arch.zip» был скопирован в файл «arch2.zip». Результатом является ситуация с диском:
Просмотр и удаление потоков
Опции для просмотра и удаления потоков описаны в записи: Просмотр и удаление потоков NTFS.