Як сховати файл в Альтернативний потік даних у NTFS

Здрастуйте, шановні комп'ютерники та фахівці в галузі ІБ. Сьогодні я розповім про одну нехитру особливості файлової системи NTFS, яка може бути корисна вам, щоб розкрити підступний план зловмисника, який має намір приховати важливу інформацію.
Думаю, що ніхто не стане сперечатися з тим, що файлова система NTFS зараз міцно посіла перше місце серед користувачів операційних систем сімейства Windows, витіснивши такі файлові системи як FAT16 і FAT32 (які загалом схожі), а файлова система exFAT, незважаючи на значно більш опрацьовану концепцію все ще не дотягує за популярністю до NTFS.
Звідки пішли альтернативні потоки даних?
Ключовим терміном NTFS є MFT - Master File Table. Кожназапис MFT описує конкретний файл і складається з набору фіксованихатрибутів. Кожен атрибут містить перелік полів, що містять певні значення.
Атрибути бувають такими:
- $10 – $STANDART_INFORMATION
- $30 – $FILE_NAME
- $80 – $DATA
- …
Взагалі їх досить багато, але важливо розуміти, що кожен запис MFT являє собою набір цих атрибутів.
Ось скріншот із програми DiskExplorer від Runtime's (творці GetDataBack). Я відкрив довільний файл (LOG.old) і зліва відобразився список атрибутів. Тут є$10 – $STANDART_INFORMATION – стандартна інформація. У цьому атрибуті вказуються тимчасові позначки файлу та атрибути DOS.

Атрибут$30 – $FILE_NAME – містить ім'я файлу. Якщо довжина імені більше 8 символів (стандарт 8.3), тостворюється додатковий атрибут $30 як для довгого імені, так і для короткого. Все просто.
А ось інший скрін, на якому явідобразив атрибут$80 – $DATA, тобто вміст файлу:

Пам'ятайте, я сказав, що якщо ім'я довге, то файл має два атрибути $30, для кожного з імен? Це є ключовим моментом. Ми майже підійшли до суті питання. Взагалі файл може мати кілька однотипних атрибутів, ніхто не забороняє. Так ось, а що буде, якщо файл має кілька атрибутів $DATA? Тобто безпосередньо вміст. Так, така ситуація можлива!
Це називається альтернативним потоком даних. Єдина особливість – має бути атрибут $DATA за замовчуванням (він задається без імені), решта атрибутів $DATA має бути названа, щоб до них можна було звернутися.
Як створити альтернативний потік даних?
З доступних способів – командний рядок. Для додаткових атрибутів $DATA використовується суфікс : . Наприклад, якщо ми хочемо помістити в текстовий файл 1.txt вміст файлу sekret.rar в альтернативний потік, то маємо виконати команду:
type sekret.rar > 1.txt:litl-admin.ru

Ця команда створить новий атрибут $DATA з ім'ям litl-admin.ru (як мило) і перенаправить вміст архіву sekret.rar. Перевіримо?
На вигляд розмір файлу 1.txt не змінився. Я написав туди довільний фрагмент даних. Подивимося його вміст блокнотом:

Нічого дивного не видно. А тепер знайдемо його MFT-запис.

Бачите другий атрибут $80 із ім'ям litl-admin.ru? Це і є наш “прихований” альтернативний потік даних. Насправді таких потоків файл може мати величезну кількість. Але не треба думати, що ці можливості використовуються виключно зловмисниками у корисливих інтересах.
Навіщо можна використовувати приховані потоки?
По секрету скажу, що у вашійСистема швидше за все використовується величезна кількість файлів з прихованими потоками. Найбільш популярні варіанти використання - це позначки файлів, завантажених з недовірених джерел, позначки файлів, перевірених антивірусами, інші мітки, що дозволяють якимось способом "підписати" файл. Помічали, що іноді при відкритті файлу, завантаженого з Інтернету, з'являється вікно з попередженням, що файл отриманий з Інтернету і ставитися до нього потрібно обережно? Як думаєте, яким способом позначений файл?

Як ідентифікувати приховані потоки?
Разом з тим існує спосіб масово просканувати каталог і вивести всі альтернативні потоки даних у наявних файлах. Для цього існує безкоштовна програмаAlternativeStreamView від Nirsoft.
Робота з нею дуже проста. Запускаєте, вибираєте каталог для сканування та отримуєте результати:





Багато файлів є конкретна сигнатура. Для архівів WinRAR це "Rar!" Зустріли – змінюємо розширення на “.rar” та отримуємо робочий архів.
Друзі! Вступайте в нашугрупу Вконтакте, щобне пропустити нові статті!Хочете сказатидякую? Ставте Like, робіть ріпост! Це найкраща нагорода для мене від вас! Так я дізнаюся про те, що подібні статті вам цікаві і пишу частіше і з великим ентузіазмом!
Також, підписуйтесь нанаш канал у YouTube ! Відео викладаються дужерегулярно і буде чудово побачити щось одним із перших!