Главная » Песочница » Поиск артефактов на компьютере в OS Windows
Поиск артефактов на компьютере Windows

Поиск артефактов на компьютере в OS Windows

В самом начале неплохо бы получить некоторую информацию о профиле пользователя. Сделаем мы это с помощью ForensicUserInfo. Утилита извлекает системную информацию о RID, сроке действия учетной записи и смене пароля; LM/NT-хеш; количество входов в системы, даты неудачных попыток; имеющиеся группы и путь к профилю пользователя.

Начнем с самого простого, а именно глянем список пользовательских и системных процессов. Самый быстрый способ — это запустить из CMD встроенную утилиту tasklist:

  • c:\>tasklist — вывод списка всех процессов в текущем окне;
  • c:\>tasklist /svc — вывод списка всех работающих сервисов в системе;
  • c:\>tasklist > c:\processes_list.txt — вывод данных о процессах (сервисах) в текстовый файл с именем processes_list.txt.
Результат выполнения команды tasklist
Результат выполнения команды tasklist
Результат выполнения команды tasklist с опцией сортировки по сервисам
Результат выполнения команды tasklist с опцией сортировки по сервисам

Еще один неплохой вариант — это любой альтернативный Task Manager, к примеру AnVir Task Manager или Process Explorer.

Вкладка «Процессы» в AnVir Task Manager
Вкладка «Процессы» в AnVir Task Manager
Вкладка «Сервисы» в AnVir Task Manager
Вкладка «Сервисы» в AnVir Task Manager
Просмотр автозагрузки в AnVir Task Manager
Просмотр автозагрузки в AnVir Task Manager

А теперь достанем из загашника несколько специально заточенных под форензику утилит, входящих в комплект под общим названием Sleuth Kit.

Для просмотра доступной инфы о памяти набираем команду mmstat.

Вывод результатов работы утилиты mmstat
Вывод результатов работы утилиты mmstat

Мы знаем тип системного тома, и после исполнения команды mmls она позволит просмотреть неразмеченные области диска:

Вывод результатов работы утилиты mmls
Вывод результатов работы утилиты mmls

Далее мы можем использовать FileName Layer Tools, позволяющий просмотреть удаленные файлы и неразмеченные сегменты.

Вывод результатов работы утилиты fls
Вывод результатов работы утилиты fls

Что теперь? Создадим некий bodyfile — файл-заготовку с помощью все той же fls. Это позволит нам выстроить таймлайн активности в системе (англ. timelines of file activity). Записываем полученные данные в файл bodyfile.txt.

Записываем полученные данные с помощью fls в файл bodyfile.txt
Записываем полученные данные с помощью fls в файл bodyfile.txt

После того как мы создали bodyfile.txt, мы можем заюзать утилитку mactime и выстроить временную шкалу активности (удаления, создания, переименования) файлов в системе c экспортом в Excel-подобный вид:

Создаем диаграмму временной активности (timeline) c помощью mactime.pl
Создаем диаграмму временной активности (timeline) c помощью mactime.pl

Кстати, вот тебе небольшая шпаргалка по используемым утилитам из пакета Sleuth Kit:

  • mmstat — информация о типе системных томов и таблице разделов диска;
  • mmls — информация о занятом месте, удаленных и allocated файлов;
  • fsstat — информация о ФС, включая серийный номер тома, ID, размер кластера, смещение от начала;
  • fls — поиск allocated и удаленных файлов в директории или всем диске;
  • mactime — создание таймлайна активности файловой системы из данных, полученных от fls.

Дальше попробуем найти удаленные файлы или то, что от них еще осталось. Одна из самых лучших утилит для этого — Autopsy из сборника Sleuth Kit.

Мастер запуска Autopsy
Мастер запуска Autopsy
Результаты поиска удаленных и allocated файлов в программе Autopsy
Результаты поиска удаленных и allocated файлов в программе Autopsy

Неплохим вариантом будет еще пройтись NirSoft’овской утилитой ShadowCopyView и пошукать остатки файлов, сохранившихся в теневых копиях Windows.

Просмотр найденных теневых копий в программе ShadowCopyView
Просмотр найденных теневых копий в программе ShadowCopyView
Просмотр сохраненных слепков в директории /Temp и инфо по точке восстановления в окне утилиты ShadowCopyView
Просмотр сохраненных слепков в директории /Temp и инфо по точке восстановления в окне утилиты ShadowCopyView

Следующим шагом будет анализ системного реестра. В ход пойдут три тулзы Windows Registry analysis из пакета Magnet AXIOM, RegRipper и Registry Explorer.

Анализ куста NTUser в программе RegRipper 2.8
Анализ куста NTUser в программе RegRipper 2.8
Загрузка основного куста реестра в утилиту Registry Explorer
Загрузка основного куста реестра в утилиту Registry Explorer
Анализ значения ключей реестра с помощью Registry Explorer
Анализ значения ключей реестра с помощью Registry Explorer
Просмотр значений MRU в утилите Registry Explorer
Просмотр значений MRU в утилите Registry Explorer

Для того чтобы просмотреть удаленный софт, можно ковырнуть файл — базу данных NTUSER.DAT по пути в системной директории:

А также можно поднять сохраненные URL-адреса, если юзался старый добрый ослик IE:

И там же попробовать достать пароли, если пользователь настроил автосохранение введенных данных:

Шпаргалка исследователя: интересные места реестра

Список последних используемых файлов (Most Recent Used — MRU) находится по пути

Глобальные уникальные идентификаторы (ID), которые содержат в себе зашифрованные записи каждого объекта ОС, приложения (программы), исполняемого exe-файла, к которому пользователь обращался в системе, хранятся в ветке

Список ID и соответствующего им софта можно глянуть здесь.

Все когда-либо ранее подключавшиеся к компьютеру USB-устройства также отмечаются в ветке реестра

Беспроводные сети (Wi-Fi SSID), к которым компьютер когда-либо подключался, будут храниться в ветке

Для тех, кто хочет больше узнать об интересных местах Windows Registry, очень хорошо подойдет статья Forensic Analysis Of The Windows Registry.

Сетевой стек

Для просмотра сетевых подключений на скорую руку можно воспользоваться обычной командой шелла netstat:

Просмотр сетевых подключений командой netstat
Просмотр сетевых подключений командой netstat

Среди всего вывода нас больше всего интересуют следующие статусы:

  • CLOSED — соединение закрыто, сокет не используется;
  • LISTEN (LISTENING) — ожидает входящих соединений;
  • ESTABLISHED — соединение установлено (данные передаются).

И еще дополнительные опции вывода:

Список текущих соединений TCP
Список текущих соединений TCP
Список всех открытых входящих портов
Список всех открытых входящих портов

Аналогичный вывод можно посмотреть и в графическом режиме, используя крохотную утилиту TCPViewer.

Просмотр сетевых коннектов в программе TCPViewer
Просмотр сетевых коннектов в программе TCPViewer

Еще одна специальная тулза — NetworkMiner. Помимо фич, которые имеются у описанных выше программ, в NetworkMiner есть опции извлечения файлов из протоколов FTP, TFTP, HTTP, POP3, IMAP, экстракт сертификатов X.509 certificates из SSL-сессий, декапсуляция GRE, 802.1Q, PPPoE, VXLAN, определения геолокации по IP, экспорт результатов в CSV, Excel, XML, CASE, JSON-LD.

Данные по TCP/IP-стеку, предоставленные программой NetworkMiner
Данные по TCP/IP-стеку, предоставленные программой NetworkMiner

Анализируем корзину (Recycle Bin)

Не секрет, что часть данных, побывавших в корзине, все еще можно просмотреть, даже если файлы были удалены (в терминологии Windows, «корзина очищена»). Использовать будем большой пак под названием EnCase Forensic.

Интерфейс программы EnCase Forensic
Интерфейс программы EnCase Forensic

Вот и дошла очередь до анализа логов (системных журналов). В работе будут участвовать FullEventLogView от уже известной команды разработчиков NirSoft, а также Magnet AXIOM for computers.

Главное окно утилиты FullEventLogView для просмотра логов Windows
Главное окно утилиты FullEventLogView для просмотра логов Windows
Просмотр системных логов в Magnet AXIOM for computers
Просмотр системных логов в Magnet AXIOM for computers

Итак, какие события нас будут интересовать в первую очередь:

  • Account Logon — вход в систему под определенной учетной записью;
  • Account Mgmt — изменение учетной записи (перемещение в группу, переименование, назначение прав и так далее);
  • Logon Events — вход в учетную запись / выход из нее;
  • Directory Service — присоединение объектов из Active Directory;
  • Object Access — аудит доступа к какому-либо объекту ОС;
  • Policy Change— изменение политики безопасности;
  • Privilege Use — выполнение каких-либо команд от имени администратора или другого привилегированного пользователя;
  • Process Tracking — трекинг событий, связанных с системными процессами;
  • System Events — загрузка и завершение работы ОС (в том числе сбои).

Более подробный список событий безопасности с принадлежащими им ID можно глянуть в хорошей статье на Хабре и на страничке проекта GitHub.

Следующий шаг — это LNK file analysis, или поиск ярлыков на программы, которые были установлены, запущены или позднее удалены в какой-то момент. В работе будем использовать уже знакомый нам пак EnCase Forensic.

LNK file analysis в Magnet AXIOM for computers
LNK file analysis в Magnet AXIOM for computers

Ну и в завершение всех процедур мы еще на всякий случай просканим встроенные в систему пользовательские App’ы — Skype, OneDrive и Edge, вдруг найдем там что-нибудь интересное. Для браузера Edge заюзаем уже известный нам Belkasoft Evidence Center. Той же программой кое-какие данные мы попытаемся извлечь из файла подкачки Pagefile.sys.

Окно выбора объектов поиска в Belkasoft Evidence Center 2018
Окно выбора объектов поиска в Belkasoft Evidence Center 2018

Напоследок ко всему перечисленному добавим Skype. Кстати, для скайпа профиль с полезной для нас информацией хранится в директории

хотя не помешало бы поискать папку с именем Skype по всему винту, поскольку мессенджер мог быть установлен кастомно или запущен как portable-версия.

Наша тулза Belkasoft Evidence Center извлекает данные из указанного файла профиля, в том числе SQLite-листы, неразмеченную область диска, синхронизированные файлы из чатов, данные из pagefile.sys и hiberfil.sys. Есть и еще одна замечательная утилита — SkypeLogView от все тех же ребят из NirSoft.

Результаты вывода данных из локального профиля Skype утилитой SkypeLogView
Результаты вывода данных из локального профиля Skype утилитой SkypeLogView

Несмотря на то что это может показаться детской забавой, в Windows-системах можно извлечь даже историю оповещений из системного трея. Информация о нотификации хранится в директории

Имя базы данных, содержащей историю нотификации, может меняться на каждой машине и зависит от каких-то внутренних параметров (расширение файла не обязательно будет именно .db). Чтобы ее открыть, понадобится SQLite manager. Запустив SQLite, нужно найти файлы .db в

и, просто добавив в менеджер, получить окно встроенного вьювера.

Аналогичная тема с голосовым помощником Cortana: у нее тоже есть база данных, хранящая историю, и располагается она по пути

Несколько слов об OneDrive. Если была включена опция синхронизации (например, с Android-смартфоном), то часть файлов можно найти в гаджете по пути

Если речь идет про десктопную версию, то логи загрузки/выгрузки, синхронизации и подобных событий можно посмотреть в текстовых документах по пути

Результаты расследования

Мы собрали всю доступную информацию, и что же в сухом остатке?

Среди прочих файлов в Shadow Copy мы нашли неизвестный исполняемый файл, который, как потом выяснилось, представлял собой код малвари, заточенной под кражу логинов/паролей, набранных с клавиатуры символов, буфера обмена, файлов coockie. Причем файл этот никак не детектится установленным AV. Также было замечено, что во внешний мир на несколько IP-адресов серверов, расположенных в Западной Европе, висят установленные соединения, не типичные для софта, инсталлированного на пациенте. По логам системы ДБО было отмечено, что логин в систему происходил в обеденное время, когда казначей, которому принадлежит данный ноутбук, отсутствовал в офисе и не мог произвести эти операции. Большой оплошностью специалиста было оставлять USB-ключи с ЭП вставленными постоянно в порт компьютера.

В сотрудничестве с антивирусными аналитиками нам удалось восстановить весьма вероятный сценарий взлома.

Итак, ноутбук за неделю до инцидента передавали в службу поддержки для установки ПО и оптимизации производительности. Именно тогда на клиента был закинут вредоносный код, который прописал себя в автозагрузку. В течение недели малварь собирала все данные, вводимые с клавиатуры, сделала дамп реестра, анализировала часы активности пользователя и передала все это на управляющий сервер злоумышленника. Далее малварь отработала как дроппер: подтянула из сети компоненты бэкдора (что позволило установить защищенный канал удаленной связи к компьютеру жертвы), предположительно использовав инкапсуляцию в DNS-протокол.

В день Х, когда сотрудник отправился на обед, хакер подключился к инфицированной машине, залогинился в ДБО, используя подключенные ЭП-ключи на USB-токене, провел финансовые транзакции и замел следы: удалил из системы малварь, модули бэкдора, зачистил %TEMP%, часть security и пользовательских логов, на которые хватило полномочий.

Ввиду «инертности системы бухгалтерского учета» (всем, кто работает с бухгалтерией, рекомендуем взять этот эвфемизм на вооружение 🙂 — Прим. ред.) корпоративная служба безопасности узнала об инциденте только через два дня, когда злоумышленник уже успел обналичить переведенные средства. Однако артефакты, оставшиеся на выключенном ноутбуке, хоть и не вернули деньги, но все-таки позволили восстановить картину происходящего.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *