
Полный текст первых минут лекции «Как спрятать exe в txt - Windows 10» из видеокурса PracticU – субтитры с временной меткой для каждого абзаца. Так можно прочитать и найти нужные темы ещё до начала обучения.
Добро пожаловать на лекцию про NTFS стримы. На этой лекции мы научимся прятать экзешники за текстовыми файлами.
И пользователь ничего не увидит. И вам это очень важно уметь делать, потому что вы должны уметь защищаться. Знать, что это существует. Антивирус должен это поддерживать.
И я думаю, что уже все антивирусы сегодня уже знают этот трюк. Но вы должны его знать, потому что это не видно на экране. Я был в шоке, когда это первый раз узнал, что за файлом можно прятать много других файлов, и это всего не видно.
Это не hidden files, это прямо настоящие файлы, спрятанные за файлом 1.txt. Я спрятал много экзешников. Я вам сейчас это покажу. Я создаю файл 1.txt.
Вот этот файл, текстовой файл. В нем есть всего лишь 3 циферки, и он занимает 3 байта. Все выглядит нормально, как и должно быть. Но благодаря тому, что у NTFS есть добавочные возможности, и мы как раз их будем изучать, мы можем через Notepad добавить туда тайные
файлы. Давайте я вам сейчас это все начну показывать. Первое, что мы открываем PowerShell. И что мы видим? Мы видим, что все выглядит нормально, как обычно.
Видите, DIR нам показывает, что есть один файл размером в 3 байта. Все выглядит в порядке. Но я могу создать еще один файл с помощью Notepad. Вот так же, как мы сделали Notepad 1.txt, видите, мы делаем Notepad и передаем имя файла, чтобы он его сразу же открыл. И мы можем там что-то
сохранить, например, 4 единички, 5 единичек. Тогда размер файла тоже увеличится на 5 байтов. а мы можем сделать двоеточие и добавить еще файл за файлом. Вы себе представляете, что можно внутри файла делать еще файлы.
В принципе, NTFS указывает на несколько файлов. И вот это вот наша большая тайна, что после имени файла можно сделать двоеточие и создать еще один файл. Он прямо так и называется:
1txt:secret.txt. И вот этот вот секрет 1txt - это будет наш секретный файл. В продолжении лекции я вам покажу как туда экзешник можно будет запихнуть и как Windows этим сам пользуется. Этот способ очень интересный. Заметьте, у нас сейчас два файла на
жестком диске, а Browser Explorer показывает только один и Deer тоже показывает только один файл. То есть, чтобы до этого файла, до второго докопаться, надо знать, что он вообще существует. Мы можем написать notepad и явное имя файла, и он откроется, то есть информация доступна, мы можем с ним
работать, мы можем его даже запускать, можем в него что-то записывать, но по умолчанию он нигде не показывается. И вот это для меня было большое удивление, когда я это узнал.
Кстати, это возможно только на NTFS. Так, все выглядит обычно и никто не знает, что у нас за кулицами есть файл. Из-за того, что мы сейчас в PowerShell, мы можем запустить команду, которая нам покажет все стримы. Мы пишем getItem и говорим ему, про какой item мы хотим получить информацию, в нашем случае
1.txt, и говорим не просто информацию, а покажи мне стримы. Стрим и даем звездочка. Звездочка - это все стримы, не конкретный стрим, а все. И он мне показывает, видите, что есть два стрима, то есть за одним файлом есть два стрима. Вот это вот стрим по умолчанию один текст:: и его тип. И второй стрим
это один текст::secret1. Его размер 32 байта. Вот мы видим один стрим, вот другой стрим. То есть, я вам показал сейчас команду PowerShell, которая нам показывает существование двух стримов. То есть, так можно узнать. А если мы в cmd, в DOS, то мы можем сделать dir или dir/r и увидеть эти стримы. То
То есть обычный дир не показывает стримы, а дир слэш ар показывает стримы. Видите, вот этот файл на 5 байтов, а этот на 39 байтов. Но в проводнике, в Explorer, как вы видите справа, ничего не видно.
Человек, который не знает эти команды, и их большинство людей не знают, даже сисадмины опытные об этом не слышали, то они просто не узнают, что у них спрятаны еще файлы в файловой системе.
Кстати, я вам хочу показать, как это вообще работает на уровне самого NTFS и объяснить, что там происходит, как это вообще возможно. И для этого мы перейдем на иллюстрации в интернете.
Первое, что я говорю, что в NTFS есть такая фича Alternate Data Streams. Вот это фича, которой мы сейчас пользуемся. А логика в чем? Логика в том, что у нас есть FAT и NTFS.
Например, в обоих есть атрибуты. Атрибуты это read-only, только для чтения, это дата создания файла, это дата последнего изменения.
Вот эти все атрибуты есть и там, и там. Кроме этого, в NTFS есть еще security. Security, я вам напоминаю, это две вещи. Это права доступа, кому можно читать, кому можно записывать, какой группе или какому пользователю запрещено читать информацию с этого файла.
Это существует только в NTFS. FAT этого нет, потому что FAT предназначен для USB-шек, для мобильных устройств. В оригинале он был вообще создан для старых компьютеров, сегодня им пользуются только для флешек, а NTFS наоборот для Windows.
И весь этот security имеет смысл только если мой Windows работает. Если я возьму жесткий диск с NTFS и подключу к другому компьютеру, то весь этот security ничем не поможет.
Потому что проверить имя и пароль делает Windows, а если Windows выключен, то никто это и не делает. Поэтому весь этот security обходится в легкую, берется жесткий диск и подключается к другому компьютеру.
Но если мой Windows работает, то этот security работает. Такие системы, система взлома с помощью подключения к другому компьютеру называется offline attack.
И чтобы этот оффлайн-атак не сработал, надо зашифровать весь жесткий диск с помощью битлокера или конкретной файлы с помощью EFS. То есть NTFS, файловая система, не может устоять против оффлайн-атак, не зашифровывая файлы на жестком диске с помощью EFS.
так security состоит из двух вещей с правами доступа и второе это auditing он документирует кто подошел к файлу кто его считал кто его удалил кто в него что записал то есть журнал событий записывает все события связанные с этим файлом если мы в security это укажем
то есть у нас security есть два списка первый права доступа второе за какими действиями вести аудит кроме этого у нас есть еще дата информация кстати эти security не существует на FAT FAT не предусматривает систему security то есть FAT любой человек который подошел к файлу имеет полный
доступ ко всей информации и кроме этих видите фиолетовых metadata то есть добавочной информации желтеньким обозначена сама информация и мы можем увидеть что в NTFS есть много квадратиков со стримами то есть могут быть под файлом много файлов, а FAT32 или вообще в системе FAT и 64 FAT, Extensible FAT, в нем есть
только один квадратик для информации, то есть есть один к одному, в FAT это один к одному, имя файла это одна информация, а в NTFS имя файла это могут быть несколько таких стримов с информацией, каждая информация. Это может быть текстовой файл, это может быть экзешник. И этим NTFS отличается от FAT.
Кроме этого, в FAT, как вы видите, есть только атрибуты и нет Security. И мы хотим вот в этот trim запихнуть экзешник и его запустить. В принципе, то, что мы сейчас видим на экране, это и есть файловая система, которая ведет записи для каждого файла. И вопрос в этой файловой системе, для каждого файла какие колонки
существуют, какая информация существует. В конце концов на жестком диске лежат сами файлы, сама информация.
А NTFS и FAT это ссылки на эту информацию, это как бы таблица для управления партицией и файлами внутри партиции и какие колонки в ней есть.
NTFS намного сложнее, как вы видите, структура намного умнее и намного сложнее. И она была закрытым кодом Microsoft, они его уже сегодня открыли, но из-за того, что он был долгое время закрыт, он не так популярен, как FAT.
Например, в Linux не пользуются NTFS. Дальше, $Data - это тип данных. Может быть, $EFS - это ключи EFS, то есть это тип информации, который там сохранен, и мы не можем на это повлиять и не можем это изменить. Это как бы символизирует для NTFS, какая информация там заложена за кулисами.
Data - это просто наша пользовательская информация. Эти типы, они встроены в NTFS и изменять мы как пользователи их не имеем права. Мы можем их указывать явным способом, но не менять.
Кстати, мы можем сделать два файла, то есть это не обязательно только один файл. Можем сделать два файла, например, Secret 2 и указать тип данных $data. На сайте Microsoft есть все типы, но это нам никак не поможет, поэтому я вам это не показываю. Видите, у нас сейчас есть два стрима под одним
файлом, а справа ничего не видно. Справа пользователь думает, что существует только один файл. Это просто потрясающе. Теперь я вам хочу показать,