Як сховати файл в Альтернативний потік даних у 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 ! Відео викладаються дужерегулярно і буде чудово побачити щось одним із перших!