Ntfs stream безфайловие процеси

Приховування процесів у всіма улюбленої Windows заняття досить цікаве, яке, можна сказати, іноді ставати хобі. 🙂 У цій ОС дуже багато хороших, але нажаль не доведених до розуму речей, які при
найближчому розгляді дають цікаві «недокументовані» можливості. Зараз ми розглянемо тему існування процесів і модулів без завантаження виконуваних файлів. Ця тема взагалі-то була незаслужено забута з часів MS-Dos, і у багатьох людей склалося враження, що це неможливо (або дуже складно) зробити в Win2K / XP.

Спосіб нумбер уно

Всі знають, що Маленькі і М'які друзі щосили просувають в маси свою
«Чудову» (але далеко не завершену) файлову систему - NTFS. Вона, звичайно, дуже корисна на серверах і в наукових центрах, де доводиться шифрувати файли і квотувати місце для
користувачів / груп, але БГ рекомендує її і для домашнього використання. 🙂 Хоча 99% вірусів, троянів і іншої
нечисті живе саме в будинках користувачів (прямо домашні тварини якісь :)). Ось і ми зараз підкинемо
експериментаторам ще один маленький трюк резидентності.

Так що можна з допомогою консолі записати в потік файл:

type some_file> some_file: some_stream

more 0 then begin // якщо у потоку є ім'я, то дізнаємося його
BackupRead (h, pointer (integer (@wszStreamName) + sizeof (sid)), sid.dwStreamNameSize, temp, FALSE, TRUE, p);
if temp <> sid.dwStreamNameSize then break;
<для простоты всё выводиться в TMemo>
memo1.Lines.Add (PwideChar (@ sid.cStreamName));
end;
memo1.Lines.Add ( 'Stream size:' + IntToStr (sid.Size));
s: = 'Type of data:';
case sid.dwStreamId of // визначаємо тип потоку
BACKUP_DATA: s: = s + 'data';
BACKUP_EA_DATA: s: = s + 'extended attributes';
BACKUP_SECURITY_DATA: s: = s + 'security';
BACKUP_ALTERNATE_DATA: s: = s + 'other streams';
BACKUP_LINK: s: = s + 'link';
else s: = s + 'unknown';
end;
memo1.Lines.Add (s);
if sid.Size> 0 then
<я не думаю, что у кого-то есть потоки больше 4ГБ, поэтому второй параметр поиска = 0>
BackupSeekA (h, sid.Size, 0, @ dw1, @ dw2, p);
end;
BackupRead (h, @sid, 0, temp, TRUE, FALSE, p);
CloseHandle (h);
end;

Ось тепер ми знаємо про потоках «майже все». 🙂 Залишилося найцікавіше -
обіцяна можливість виконання програми без основного exe або самознищення exe. Цю фішку виявив X [ei] NOmorph, за що йому велике спасибі.
Як вже багато хто підозрює, раз в потоки можна записати все що завгодно, значить можна і exe. Так-с ... Для початку запишемо якусь нитку прогу в текстовий файл і запустимо (для запуску підійде WinExec ( 'some_file: somestream', SW_SHOWDEFAULT)). Ось що ми бачимо в
«Диспетчері завдань Windows»:

Значить можна запускати не тільки exe. 🙂 Непідготовлений користувач не слабо здивуватися побачивши таке. Але це дрібниця, зараз буде веселіше - видаляємо 2.txt ... Немає файлу більше немає, а програма працює, і досить впевнено працює (головне щоб вона вся була завантажена, тобто не містила великого обсягу даних). Це говорить про те, що в MS погано тестують своє ПО ... Якщо ще й приховати процес від очей
«Диспетчера завдань», то ця дірка дозволяє зробити всіма улюблений в минулому резидент Ring3. можна створити
«Невидиме користувачем» вікно і при закритті вінди записувати себе на диск, а при запуску видаляти себе. Ось невеликий приклад
«Самоудаленіе»:

Ось так можна жити «без тіла». І ще одне - потоки ніяк не позначаються на
індикаторі зайнятого обсягу розділу. 🙂 Виходить, що один
«Маленький» файл з розміром 0 може засмітити весь гвинт (і знайти
«Бруднулю» вручну дуже складно).

Спосіб нумбер ту

function DeleteModuleA (ModuleName: PChar): longbool; stdcall; external 'DeleteModule.dll';
function DeleteModuleW (ModuleName: PWideChar): longbool; stdcall; external 'DeleteModule.dll';

і переконався що вона працює. 🙂

Покажи цю статтю друзям:

Скрипти для кріптоджекінга ховаються в віджети LiveHelpNow і вразили понад 1500 сайтів

Вимагач qkG шифрує тільки документи Word і самостійно поширюється за допомогою макросів

Firefox попередить користувачів про відвідування раніше зламаних сайтів

«Код інформаційної безпеки» вперше пройде в Астані

Свіжі уразливості в Intel ME небезпечні для пристроїв Acer, Dell, Fujitsu, HP, Lenovo, Panasonic і так далі