Сегодня продолжим заниматься Форензикой (компьютерной криминалистикой). На этот раз поговорим о форензике в Windows. Я расскажу о полезных инструментах, которые помогут вам найти и вытащить данные о работе пользователя в Windows.
Поиск артефактов на компьютере в OS Windows
В самом начале неплохо бы получить некоторую информацию о профиле пользователя. Сделаем мы это с помощью ForensicUserInfo. Утилита извлекает системную информацию о RID, сроке действия учетной записи и смене пароля; LM/NT-хеш; количество входов в системы, даты неудачных попыток; имеющиеся группы и путь к профилю пользователя.
Начнем с самого простого, а именно глянем список пользовательских и системных процессов. Самый быстрый способ — это запустить из CMD встроенную утилиту tasklist:
- c:\>tasklist — вывод списка всех процессов в текущем окне;
- c:\>tasklist /svc — вывод списка всех работающих сервисов в системе;
- c:\>tasklist > c:\processes_list.txt — вывод данных о процессах (сервисах) в текстовый файл с именем processes_list.txt.
Еще один неплохой вариант — это любой альтернативный Task Manager, к примеру AnVir Task Manager или Process Explorer.
А теперь достанем из загашника несколько специально заточенных под форензику утилит, входящих в комплект под общим названием Sleuth Kit.
Для просмотра доступной информации о памяти набираем команду mmstat.
Мы знаем тип системного тома, и после исполнения команды mmls она позволит просмотреть неразмеченные области диска:
1 |
mmls -t dos X:RAM_Img_Forensic.E01 |
Далее мы можем использовать FileName Layer Tools, позволяющий просмотреть удаленные файлы и неразмеченные сегменты.
1 |
fls -o 1435648 X:RAM_Img_Forensic.E01 |
Что теперь? Создадим некий bodyfile — файл-заготовку с помощью все той же fls. Это позволит нам выстроить историю активности в системе (англ. timelines of file activity). Записываем полученные данные в файл bodyfile.txt.
1 |
fls -r -m "/" -o 1435648 X:RAM_Img_Forensic.E01 > bodyfile.txt |
После того как мы создали bodyfile.txt, мы можем запустить утилитку mactime и выстроить временную шкалу активности (удаления, создания, переименования) файлов в системе c экспортом в Excel-подобный вид:
1 |
mactime.pl -b bodyfile.txt -d > timeline.csv |
Кстати, вот вам небольшая шпаргалка по используемым утилитам из пакета Sleuth Kit:
- mmstat — информация о типе системных томов и таблице разделов диска;
- mmls — информация о занятом месте, удаленных и allocated файлов;
- fsstat — информация о ФС, включая серийный номер тома, ID, размер кластера, смещение от начала;
- fls — поиск allocated и удаленных файлов в директории или всем диске;
- mactime — создание таймлайна активности файловой системы из данных, полученных от fls.
Дальше попробуем найти удаленные файлы или то, что от них еще осталось. Одна из самых лучших утилит для этого — Autopsy из сборника Sleuth Kit.
Неплохим вариантом будет еще пройтись NirSoft’овской утилитой ShadowCopyView и пошукать остатки файлов, сохранившихся в теневых копиях Windows.
Следующим шагом будет анализ системного реестра. В ход пойдут три инструмента Windows Registry analysis из пакета Magnet AXIOM, RegRipper и Registry Explorer.
Для того чтобы просмотреть удаленный софт, можно ковырнуть файл — базу данных NTUSER.DAT по пути в системной директории:
1 |
NTUSER.DAT\SOFTWARE\Microsoft\UserData\UninstallTimes |
А также можно поднять сохраненные URL-адреса, если юзался старый добрый ослик IE:
1 |
NTUSER.DAT\SOFTWARE\Microsoft\InternetExplorer\TypedURLs |
И там же попробовать достать пароли, если пользователь настроил автосохранение введенных данных:
1 |
NTUSER.DAT\Software\Microsoft\Internet Explorer\IntelliForms |
Интересные места реестра Windows
Список последних используемых файлов (Most Recent Used — MRU) находится по пути
1 |
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU |
Глобальные уникальные идентификаторы (ID), которые содержат в себе зашифрованные записи каждого объекта ОС, приложения (программы), исполняемого exe-файла, к которому пользователь обращался в системе, хранятся в ветке
1 |
HKEY_CURRENT_USER\Software\Mcirosoft\Windows\CurrentVersion\Explorer\UserAssist |
Все когда-либо ранее подключавшиеся к компьютеру USB-устройства также отмечаются в ветке реестра
1 |
HKEY_LOCAL_MACHINE\System\ControlSet00x\Enum\USBSTOR |
Беспроводные сети (Wi-Fi SSID), к которым компьютер когда-либо подключался, будут храниться в ветке
1 |
HKEY_LOCAL_MACHINE\Software\microsoft\WZCSVC\Parameters\Interface |
Для тех, кто хочет больше узнать об интересных местах Windows Registry, очень хорошо подойдет статья Forensic Analysis Of The Windows Registry.
Анализ сетевых подключений
Для просмотра сетевых подключений на скорую руку можно воспользоваться обычной командой шелла netstat:
1 |
netstat -a |
Среди всего вывода нас больше всего интересуют следующие статусы:
- CLOSED — соединение закрыто, сокет не используется;
- LISTEN (LISTENING) — ожидает входящих соединений;
- ESTABLISHED — соединение установлено (данные передаются).
И еще дополнительные опции вывода:
1 2 3 4 5 6 |
// Список соединений TCP netstat -at // Список соединений UDP netstat -au // Список всех открытых входящих портов netstat -n |
Аналогичный вывод можно посмотреть и в графическом режиме, используя крохотную утилиту TCPViewer.
Еще одна специальная тулза — NetworkMiner. Помимо фич, которые имеются у описанных выше программ, в NetworkMiner есть опции извлечения файлов из протоколов FTP, TFTP, HTTP, POP3, IMAP, экстракт сертификатов X.509 certificates из SSL-сессий, декапсуляция GRE, 802.1Q, PPPoE, VXLAN, определения геолокации по IP, экспорт результатов в CSV, Excel, XML, CASE, JSON-LD.
Анализ корзины Windows
Не секрет, что часть данных, побывавших в корзине, все еще можно просмотреть, даже если файлы были удалены (в терминологии Windows, «корзина очищена»). Использовать будем большой пак под названием EnCase Forensic.
Вот и дошла очередь до анализа логов (системных журналов). В работе будут участвовать FullEventLogView от уже известной команды разработчиков NirSoft, а также 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.
Ну и в завершение всех процедур мы еще на всякий случай просканим встроенные в систему пользовательские App’ы — Skype, OneDrive и Edge, вдруг найдем там что-нибудь интересное. Для браузера Edge заюзаем уже известный нам Belkasoft Evidence Center. Той же программой кое-какие данные мы попытаемся извлечь из файла подкачки Pagefile.sys.
Напоследок ко всему перечисленному добавим Skype. Кстати, для скайпа профиль с полезной для нас информацией хранится в директории
1 |
C:\Users\%USERNAME%\AppData\Roaming\Skype\ |
хотя не помешало бы поискать папку с именем Skype по всему винту, поскольку мессенджер мог быть установлен кастомно или запущен как portable-версия.
Наша тулза Belkasoft Evidence Center извлекает данные из указанного файла профиля, в том числе SQLite-листы, неразмеченную область диска, синхронизированные файлы из чатов, данные из pagefile.sys и hiberfil.sys. Есть и еще одна замечательная утилита — SkypeLogView от все тех же ребят из NirSoft.
Несмотря на то что это может показаться детской забавой, в Windows-системах можно извлечь даже историю оповещений из системного трея. Информация о нотификации хранится в директории
1 |
\Users\%Username%\AppData\Local\Microsoft\Windows\Notifications |
Имя базы данных, содержащей историю нотификации, может меняться на каждой машине и зависит от каких-то внутренних параметров (расширение файла не обязательно будет именно .db). Чтобы ее открыть, понадобится SQLite manager. Запустив SQLite, нужно найти файлы .db в
1 |
C:\Users\Username\AppData\Local\Microsoft\Windows\Notifications |
и, просто добавив в менеджер, получить окно встроенного вьювера.
Аналогичная тема с голосовым помощником Cortana: у нее тоже есть база данных, хранящая историю, и располагается она по пути
1 |
C:\Users[User]\AppData\Local\Packages\Microsoft.Windows.Cortana_xxxx\LocalState\ESEDatabase_CortanaCoreInstance\CortanaCoreDb |
Несколько слов об OneDrive. Если была включена опция синхронизации (например, с Android-смартфоном), то часть файлов можно найти в гаджете по пути
1 |
/mnt/sdcard/Android/data/com.microsoft.skydrive |
Если речь идет про десктопную версию, то логи загрузки/выгрузки, синхронизации и подобных событий можно посмотреть в текстовых документах по пути
1 |
C:\Users\<USERNAME>\AppData\Local\Microsoft\OneDrive\logs |
На этом все. Теперь вы знаете, как найти следы работы в Windows.
Еще по теме: Дистрибутивы для криминалистического анализа
ShadowDefender и пусть обыщутся… 29 09 2024