Таймлайн_всего_Используем_Plaso_для_сбора_системных_событий_—. Содержание статьи Создание событий
Скачать 2.76 Mb.
|
Содержание статьи Создание событий Plaso Установка Набор инструментов Использование Заключение 01. 02. 02.1 02.2 02.3 Давненько у нас не было новостей с фронтов форензики! А ведь инструменты анализа устаревают, тогда как хакеры придумывают всё новые и новые методы заметать следы, оставляя доблестных бойцов с шевронами на рукавах задумчиво чесать репу. Давай пока отложим устаревший, но оттого не менее острый Scalpel и оглянемся по сторонам. СОЗДАНИЕ СОБЫТИЙ Начнем с подготовки набора данных, который мы будем использовать в исследованиях. INFO Все описанные эксперименты я провожу на VMware Workstation 14 Pro. Соответственно, зависимые от гипервизора команды в статье приведены для нее. Для подготовки тестовых событий нам понадобится две виртуальные машины на одной будет работать Windows 10, на второй — Kali Linux 2021.2. Если будешь собирать тестовую среду самостоятельно, рекомендую не делать большой диск для винды, хватит и 40 Гбайт потом все процессы будут протекать быстрее. Плюс для большей наглядности при анализе рекомендую установить на подопытную машину Sysmon. Про эту утилиту в рубрике «Админ» была статья « ». Когда мы пойдем последам злоумышленника, ты поймешь, в чем ценность этой утилиты для безопасника Описывать заражение и постэксплуатацию системы не буду, чтобы вдаль нейшем нам было интереснее добывать из образа улики. Все равно, если ты внимательно читаешь статьи из рубрики Взлом, ничего нового я тебе не расскажу. После того как мы от души пошалили в подопытной системе, пришла пора снимать маску киберпреступника и доставать чемоданчик криминалиста. INFO Делать именно так, как описано ниже, необязательно. В статье я привожу общий подход для всех подобных ситуаций, в том числе на реальном железе. Инструмент Plaso, которым мы будем пользоваться, успешно скушает и образ от виртуалки, если он у тебя хранится одним файлом После сбора улик с виртуалки я еще раз закину на атакуемую систему шелл, зачищу логи с помощью команды clearev из Meterpreter и сделаю повторный сбор улик. В конце статьи посмотрим, насколько эффективно Meterpreter умеет заметать следы и можно ли на него в этом полагаться. Выключим обе виртуалки, подкинем в Kali вторым жестким диском виртуальный диск от Windows и настроим для Kali Shared Folder на жестком диске твоего хостового компа, где будет достаточно свободного места, чтобы сделать побайтовую копию диска винды. Если ты выделил на нее 40 Гбайт, тона диске должно быть минимум столько же свободного места. Загрузимся в Kali, создадим точку монтирования и подмонтируем Shared Folder: $ sudo mkdir /mnt/hgfs $ sudo /usr/bin/vmhgfs-fuse .host:/ /mnt/hgfs -o Находим интересующий нас жесткий диск sudo fdisk В нашем случае это . Запускаем создание побайтовой копии sudo dd if = /dev/sda of = /mnt/hgfs/dd/disk1.dd Дожидаемся окончания копирования и выключаем виртуалку. Теперь, согласно всем протоколам, осталось посчитать контрольную сумму от полученного образа, и можно вносить флюгергехаймер. PLASO Plaso (рекурсивный акроним от исландского Plaso Langar Að Safna Öllu, или для тех, кто не очень понимает исландский, «Plaso хочет собрать все) — инструмент, разработанный на Python, основная задача которого — построить супертаймлайн‑всего‑возможно- го‑что‑происходило‑в-системе и выплюнуть все это в один гигабайтный CSV. Релиз 1.0.0 состоялся 5 декабря 2012 года, хотя если смотреть глубже, на утилиту log2timeline, написанную на Perl, то первое на Forensics Wiki датируется аж 28 августа го. В те времена некоторые нынешние компьютерные хулиганы еще только начали посещать частные детские дошкольные учреждения, в которых им, к сожалению, ничего про уголовный кодекс не рассказывали. упоминание Установка Для установки Plaso (на момент написания статьи актуальный релиз 20210606) особых скиллов не требуется, на Linux таки вообще все, что тебе нужно, — терминал и доступ в интернет. На случай, если тебе захочется покопаться в исходниках, клонируй если не захочется — используй pip. репозиторий $ sudo apt-install python3-pip pip $ install plaso Далее устанавливаем все требуемые зависимости $ install -r В файле отсутствуют опциональные зависимости chardet, fakeredis и поэтому еще одна команда, и все успешно заведется pip $ install chardet fakeredis На винде дела обстоят посложнее только лишь из‑за того, что тебе придется доустановить в систему Build Tools for Visual Studio. Но проблема решается элементарно, если у тебя есть в загашнике установочный пакет Visual Studio 2017 (именно сниму меня все получилось). Запусти установку и выбери враз деле Individual components компонент VC++ 2015.3 v14.00 (v140) toolset for desktop. После этого все зависимости установятся через Набор инструментов В состав Plaso входит несколько утилит, они находятся в каталоге tools. — утилита для извлечения из устройства или его образа файлов по различным критериям начиная c расширения и путей, заканчивая сигнатурами и временем создания или модификации. Кроме того, данный инструмент после извлечения файлов сгенерирует файл , в который попадут хеш‑значения всех извлеченных файлов для дальнейшей проверки, например на Примеры запуска image_export.py Параметры , и не должны вызвать у тебя никаких вопросов, рассмотрим подробнее только извлечение по сигнатурам --extensions --date-filter py image_export.py --signatures Эта команда выведет все описанные в сигнатуры, которые можно поискать среди исследуемых файлов для извлечения. Понятное дело, в конфиге записаны только базовые сигнатуры на все случаи жизни, но никто не мешает самостоятельно добавить в конфиг строку с необходимой тебе специфической сигнатурой файла, главное при этом — выбрать уникальный идентификатор. data\signatures.conf Например, извлечь все файлы Windows PE можно с использованием готовой сигнатуры py image_export.py --signatures exe_mz disk1.dd — основной инструмент, с которого, собственно, двенадцать лет назад все и началось. Он используется для извлечения разных событий из файлов, каталогов (например, точек монтирования, устройства или его образа. В результате работы утилита формирует файл в формате Plaso, который вдаль нейшем будет использоваться для анализа. log2timeline Вот как выглядит стандартный запуск log2timeline.py --storage-file output_file Все виды файлов, из которых может быть извлечена полезная для формируемого таймлайна информация, находятся в каталоге , а непосредственно сами парсеры размещены в каталоге . Так что, если понадобится доработать либо разработать новый парсер для какого‑то особенного формата файла, ты знаешь, где начинать копать 😉 test_data Отдельно стоит отметить использование опции . Она может сильно увеличить время работы утилиты, однако, как ты понимаешь, в каком‑нибудь архиве может быть случайно обнаружена важная улика, забытая злоумышленником. --process-archives Замечательное свойство log2timeline — интеграция справила ми YARA. Чтобы добавить в результаты таймлайна сведения о срабатываниях правил YARA, необходимо запустить инструмент с ключом --yara_rules py log2timeline.py --storage-file output_file --process-archives --yara_rules где — предварительно подготовленный тобой файл справила ми Если предварительно добыть опенсорсные правила (к примеру, от Clam AV) и сконверти- ровать их в формат YARA, тов итоге из незамысловатой утилиты log2timeline начинает превращаться в мощный инструмент — утилита для вывода информации о содержимом файла Plaso, например версиях, пар- серах, типах событий, попавших в отчет, их количестве и ошибках. pinfo При анализе бывает полезна опция , которая дополнительно выведет подробную информацию об имени компьютера, точную версию ОС и информацию о пользователях — утилита, которая позволит выполнить дополнительную обработку и сконвертировать полученный ранее файл Plaso в формат, в котором будет вестись его дальнейший анализ. При его запуске не забывай использовать опцию для того, чтобы потом входе анализа к временным меткам (которые по умолчанию вне прибавлять нужный тебе часовой пояс. psort --output-time-zone Запуская утилиту с опцией и на основании обработанных событий ты получишь высокоуровневую информацию от плагина, например о наличии среди всех исследуемых файлов вредоносов, когда‑либо загруженных на VirusTotal. Причем запускать этот плагин можно без боязни слить вобла ко какую‑то чувствительную для заказчика информацию, поскольку проверка идет исключительно по хеш‑значениям, посчитанным на этапе сбора данных. Понятно, что для работы с этим плагином потребуется ключ от сервиса. Также есть поддержка работы с фреймворком Viper, в которому тебя могут быть собственные накопления малвари. --analysis Опции и позволяют выбрать определенные события в диапазоне нескольких минут от момента интересующего тебя события, однако их подробно рассматривать в этой статье не будем. --slice --filter Конвертировать события можно враз ные форматы, в том числе в CSV, XLSX и для выбора формата используй опцию . -o — утилита, объединяющая в себе функции log2timeline и psort. Лично я пользовался ей всего один рази то чисто из любопытства. Список опций небольшой. Однако как экспресс средство в каких‑то определенных ситуациях вполне может подойти. psteal Использование Теперь, когда примерно понятно, для чего козе все эти музыкальные инструменты, давай попробуем их в деле. Для начала запустим сбор логов log2timeline.py Статья est_case_1.plaso" "d: \W ork \! Статья Если Plaso обнаружит теневые копии томов, то он радостно отрапортует о том, что готов выгрести все доступные события в том числе и из них. Соглашаемся со всеми его предложениями и идем пить кофе и читать Хакер. Отведенное на это время зависит от ресурсов твоего компа и объема данных, которые поступили на вход. Когда компрометация системы была давно и злодей долгов ней копошился, а в конце почистил за собой логи, из теневых копий иногда все равно можно вытащить много информации, даже без использования Поста тистике, которая пару лет назад попалась мне нагла за,средний период нахождения злоумышленника в скомпрометированной системе составляет почти девять месяцев! Именно поэтому злодеи очень любят при отходе запускать еще и криптолокер. Однако это в большинстве случаев далеко не так эффективно, как кажется напер вый взгляд. По окончании работы утилиты (в моем случае сбор логов занял примерно час) можно переходить кана лизу.Давай запустим pinfo и посмотрим, что он скажет нам об исследуемом образе d: ork py pinfo.py Статья Кроме параметров, с которыми выполнялся сбор данных из образа, мы видим список всех парсеров и плагинов, которые были применены. Если вдруг какого‑то типа событий в образе обнаружить неуда лось, хотя ты уверен, что они там точно должны присутствовать, придется перезапустить log2timeline и принудительно указать интересующий тебя парсер (такое, например бывает, если нужно собирать логи из системы в формате Также pinfo определил версию установленной ОС и ее хостнейм и вывел информацию о пользователях и путях к их домашним каталогам. Эта информация может быть полезна в случаях, если какой‑то домашний каталог хранится на удаленном сервере. Тогда придется дополнительно скармливать Plaso отдельно скопированную с сервера папку с пользовательским каталогом. Итого за почти что час работы Plaso вытащил из образа 1 116 040 событий. Глядя на вывод pinfo, уже сейчас можно примерно предположить, сколько событий из какой категории нам предстоит проанализировать и какие модули для автоматического анализа дадут наиболее интересный результат. Для сравнения давай посмотрим на диаграмму событий, извлеченных из образа, в котором я затирал логи с помощью clearev. Как видишь, Plaso смог извлечь всего натри тысячи меньше событий типа winevtx, и если посмотреть разницу в диаграммах, тоста нет понятно, что картина изменилась несильно, свидетельств компрометации системы, вероятно, стало даже больше. Давай запустим psort и попробуем поработать с результатами его анализа безо всяких расширений -w \W \! Статья Один взгляд на CSV объемом более 300 Мбайт вызывает у неискушенного зрителя смертельную тоску. Давай пока немного попрокрастинируем и посмотрим, что еще можно сделать, прежде чем вставлять себе спички в глаза. Давай предположим, что пользователь компьютера внезапно вспомнил, как го числа текущего месяца ему поступило очень заманчивое предложение получить от Илона Маска биткойн, ссылка на который пришла по почте. Давай посмотрим, чем нам может помочь эта информация и скрипт image_export: $ py image_export.py --date-filter "atime,2021-08-25 09:00:00,2021-08-25 Внезапно в каталоге Downloads пользователя обнаруживается исполняемый файл с крайне подозрительным названием . Давай начнем поиски в нашем таймлайне именно с этого события. Воспользуемся grep. free_bitcoins_from_Musk.exe $ grep free_bitc test_case_1.csv > Так уже намного лучше. Я позволил из полученного вывода в 55 событий отобрать шесть наиболее любопытных. В списке событий перед нами видно, что любопытный пользователь в 16:07:44 с помощью браузера Edge действительно скачал подозрительный бинарь и спустя пару мгновений запустил его. Следующим событием мы наблюдаем установление сетевого соединения от запущенного процесса на удаленный адрес 192.168.79.131:7788. И буквально через 30 секунд видим взаимодействие приложения с процессом Такая последовательность событий очень характерна и свидетельствует о том, что запущенный в контексте процесса Meterpreter успешно перекочевал в контекст процесса дополнений гостевой ОС. Последняя запись на скрине свидетельствует о том, что в 17:08:59 при очередной попытке входа в систему шелл был заново запущен. То есть, пока пользователь не заподозрил что‑то неладное, наш злодей успел закрепиться в системе одним из известных ему способов. Для интереса ищем интересующие нас шесть событий в таймлайне с затертыми следами» и внезапно обнаруживаем, что все шесть из шести событий оказались на месте. It’s a Как минимум мы получили внятные временные отрезки, в которые шло проникновение в систему, и можем теперь отобрать события за этот период. Давай заново запустим psort, только теперь добавим фильтром интересующие нас отрезки времени. Не забывай, что в данном случае мы фильтруем сука занием времени в UTC. d: ork py psort.py --output-time-zone Europe/Moscow --output-format dynamic Ждем пару минут и смотрим на результат. Неплохо, мы сумели уменьшить физический объем враз, а смысловой враз тысяч событий против 1,1 миллиона). Давай немного поскроллим этот файл. ← Ранее < ! ВЗЛОМ Таймлайн всего. Используем Plaso для сбора системных событий , 10 минут назад Комментарии 91 Добавить в закладки " # $ Взлом Приватность Трюки Кодинг Админ Geek Обучение Магазин Windows Linux Android Железо Мессенджеры Утечки Коронавирус Выпуски % Оцени статью: Теги: Kali Linux Linux Plaso Windows Взлом Выбор редактора Криминалистика Статьи утилиты форензика Покажи эту статью друзьям: Комментарий ОТПРАВИТЬ Начиная примерно с записи под номером 1500 и до 30 000 мы наблюдаем одни и те же события. Такая картина свидетельствует о том, что наш противник с использованием автоматического инструмента обходил содержимое диска в поисках чего‑то его интересующего (подсказка: файлов с подстрокой ). Понимая природу этих событий, их можно скрыть из анализа, тем самым снизив нагрузку на себя любимого еще раза в два. passw Дальнейший анализ сводится к фильтрации событий по категориями внимательному анализу их в цепочках. В качестве домашнего задания можешь поиграться с плагином tagging для psort. ЗАКЛЮЧЕНИЕ Сегодня нам с тобой удалось посмотреть например очень эффективной утилиты, дружба с которой открывает криминалисту широкие возможности позволяет взять след киберпрес- тупника и описать его приключения в исследуемой системе. Даже если наш товарищ (который, в общем‑то, нам не товарищ) окажется осторожными попытается замести за собой следы, далеко не всегда это поможет ему. В следующий раз мы поговорим о более высокоуровневых инструментах анализа таймлай- нов, которые генерирует Plaso. © Оставить мнение Таймлайн всего. Используем Plaso для сбора системных событий минут назад Knife. Эксплуатируем нашумевший бэкдор в языке PHP 3 дня назад Реверс-шелл на 237 байт. Изучаем хаки Linux для уменьшения исполняемого файла неделя назад Proper. Пишем tamper для sqlmap и эксплуатируем race condition через RFI 1 неделя назад good! Ставим Linux на шифрованный раздели делаем удобной работу с ним недели назад Картинки с секретами. Тестируем восемь утилит для сокрытия данных недели назад, TrueNAS или Выбираем софт для сетевого хранилища 26.07.2021 Лайфхаки для DevOps. Маленькие хитрости и большие инструменты на каждый день 30.06.2021 Баг в приложении Google мешал пользователям совершать и принимать звонки Релиз Windows 11 запланирован на 5 октября 2021 года В продаже замечен инструмент для сокрытия малвари в графических процессорах AMD и Nvidia Из-за багов домашние охранные системы Fortress можно отключить удаленно В Китае арестованы авторы ботнета Mozi 15 часов назад часов назад часов назад час назад часа назад Вопросы по материалами подписке Отдел рекламы и спецпроектов: yakovleva.a@glc.ru Контент 18+ Сайт защищен Qrator самой забойной защитой отв мире Подписка для физлиц Подписка для юрлиц Реклама на «Хакере» Контакты Последние взломы Компьютерные трюки Свежие новости |