VFS

Jan. 22nd, 2017 09:40 pm
ewoke: (Default)
* virtual file system, понарошечная ФС

При имитации выполнения исполнимого объекта, мы должны где-то держать создаваемые/изменяемые этим объектом файлы.

Первое что приходит на ум, это в памяти массивы организовать.

Плюсы - скорость

Минусы - отсутствие собственно объектов, которые потом можно оставить исследователю или передать по цепочке автоматике, которая будет заниматься этими объектами (пример - vbs скрипт создал exe, vbs обрабатывается одним модулем, ехе - другим).

Второе - создавать файлы, примерно как это делает AdwCleaner или ComboFix.

Плюсы - см. минусы первого.

Минусы - см. плюсы первого. Если у нас идет разбор одного объекта (т.е. запускаем наш сканер зловредов всего на 1 незнакомый файл), это сойдет с рук, но если идет пакетная обработка например целой директории, дело может стать печальным. Особенно дико представить себе терзание таким образом флешки (а предполагается как запуск TotEm как наживую, так и с флешки из-под УКВ ERD Commander)

Dыбираю второй способ, потому что он проще.

Теперь остается решить, как и чего именовать.

[имена]

Расширение будет прибавлено к имени.

Если был файл 12345.exe, станет 12345_exe

[отражение действий]

Если файл был

- создан, расширение будет .new

- удален, .del

- изменен, что нибудь придумаю, пусть будет .mod

[пути слишком длинные??]

Еще один минус - если папкам "клеить" имена исходных, может получиться слишком длинное имя (мутный пример C:\Documents and Settings\Александр\Рабочий стол\стол 25\__sito -> C__Documents and Settings_Александр_Рабочий стол_стол 25___sito)

--

Примеры работы с VFS

скармливаем Тотему батник, делающий del c:\windows\*.*

/сначала вмешивается HER (host enabled runtime, host enVIRoment resolver, да как угодно, по приколу же названо), и проверяет, а есть ли такая папка? доморощенный зловредописатель не догадался написать %systemdir%, и полагает что у нас неприменно на С: винда и обязательно с папке Windows? нет такой папки, значит можно эти команду на удаление и не выполнять. это очень частный пример, но еще раз - какой смысл если у нас 32-бит винда, угрожать ей 64-бит ЕХЕшками? верно, на HER такую угрозу./

Тотем смотрит, так, у нас бат-файл, вызывает AkroBAT'a, и тот уже начинает символическое исполнение.

создается папка VFS, в ней c__windows (c:\windows с замененными символами)
в ней начинаютс создаваться файлы нулевой длины, соответствующие реальным, с расширением .del

например notepad_exe.del

(я очень условно этот процесс пока себе представляю; можно, как увидишь del *.*, реагировать надлежащим образом - сразу прерывать имитацию и начинать бить тревогу)

И оопс, "maxfiles hit", переменная Maxfiles=5 (10) превышена, прекращаем имитацию.
То же относится к батнику, засоряющему рабочий стол одним миллионом ярлыков.

akroBAT

Jan. 21st, 2017 07:57 pm
ewoke: (Default)
Вредоносность бат-скриптов (batch-язык, bat-файлы с расширением .bat) заключается в следующем:
- возможна модификация реестра
- -//- файлов

, за примерами подобного говнеца ходить далеко не нужно, https://vk.com/topic-86450324_33107504

АВ не умеет это эмулировать.
(?предполагаю)хуже того, выполнение происходит от доверенного cmd.exe, которому можно многое.


По первому пункту, это добавление чего-либо в автозагрузку, изменение файлассоциаций, отключение редактора реестра или task manager'а.

По второму, тупо удаление, переименовывание (реже) файлов, часто - извлечение (создание) еще одного файла для его запуска, например vbs/js-скрипта.

В продвинутых версиях используется обфускация - это когда для команд или частей команд создаются алиасы, через которые затем исполняется задуманное.


Нас интересует, как это ловить, интерпретируя батник самостоятельно.

И, как в примере с feed the bird, я все же прихожу к выводу, что нет смысла реагировать на отдельные команды, потому что способов сделать гадость (модификацию файлов и/или реестра) множество. Т.о., требуется, по возможности, имитировать выполнение, и по завершению работы, смотреть изменения среды.

Сложности добавляет то, что бат-файл может являться частью другого файла, напр. EXE, речь идет о видоизмененном EXE. Который будучи переименован в EXE, работает как экзешник, а если его переименовать в BAT, то работает как батник.

Сейчас я не хочу забивать себе голову таким.

батник, который при запуске запускает себя еще раз как EXE )

(подсказка - после MZ идут байты 0D,0A. кроме того, есть ограничение на размер, несколько Кб)

---

По возможности мы производим действия в реальной системе в режиме только-чтение (напр. батник запрашивает через if exist существование какого-либо файла), но если производятся пакостные действия, совершаем их "понарошку", отмечая у себя в записях о произведенных изменениях.

Надо иметь ввиду, что команды могут претерпевать игрища с заглавными буквами (if exist может быть и iF EXiST, и If exiST).

Надо иметь ввиду, что возможно переименование файлов для совершения определенных действий. )

---

Извращений может быть много. Но мы будем двигаться от простого к сложному.

Язык программирования - Си.

/ akrobat - название модуля для проверки батников.

Profile

ewoke: (Default)
ewoke

October 2025

S M T W T F S
   1234
5 67891011
121314 15161718
19202122232425
262728293031 

Syndicate

RSS Atom

Most Popular Tags

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 20th, 2026 09:27 pm
Powered by Dreamwidth Studios