Pull to refresh

Знакомство с Velociraptor

Level of difficultyMedium
Reading time5 min
Views5.9K

Если такие понятия как DFIR, Threat Hunting, Security Monitoring, для вас не пустой звук, то эта статья будет вам интересна. Я расскажу про утилиту Velociraptor, которая часто помогает мне в работе. К моему удивлению, на Habr даже нет упоминания про нее, попробую это исправить. 

Velociraptor(github, docs) - согласно официальной документации это утилита для выполнения Digital Forensics and Incident Response (DFIR) задач. Но из практики можно сказать, что это настоящий швейцарский нож для сбора и анализа информации с конечных устройств (серверов и рабочих станций). 

Технические особенности

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

  • Обычно Velociraptor используется в клиент-серверной архитектуре, но также может быть использован в качестве offline коллектора с заранее определенной задачей по сбору данных с устройства.

  • Программа написана на Golang и работает на всех платформах поддерживаемых Go. На github, релизы выходят для Windows, Linux, Darwin(MacOS), FreeBSD.

  • Клиентская и серверная часть это один и тот же бинарный файл без внешних зависимостей. Запуск бинарного файла с разными конфигурационными файлами делает его или сервером или клиентом. Текущий размер бинарника ~ 50 MB.

  • Ключевым элементом вокруг которого построена вся утилита является встроенный язык запросов VQL(Velociraptor Query Language). Да-да, ещё один язык запросов, но не спешите закрывать эту статью, вероятно, вам будет достаточно функционала который уже сеть в Velociraptor и создавать что-то вручную не будет необходимости, хотя бы на первых порах.

  • При клиент-серверной архитектуре сервер посылает задания клиентам. То есть клиенты выполняют вычисления и возвращают результаты. Таким образом вычисления происходят распределенным образом.

  • Использование CPU и оперативной памяти при выполнении задач клиентом, возможно контролировать с сервера. Такой подход помогает избежать избыточной нагрузки на клиентах.

Практическое знакомство

Вам потребуется минимум усилий, чтобы повторить следующую практическую часть. Зато с её помощью вы попробуете Velociraptor на вкус 😉.

Последние релизы вы можете найти на GitHub(0.6.7 на момент написания статьи). Скачайте подходящий под вашу операционную систему (в статье будет использоваться Windows). Теперь у вас есть все, чтобы запустить Velociraptor, у него есть командный(CLI) и web интерфейсы. Запустите Velociraptor в командной строке(с правами Администратора) со следующими параметрами:

.\velociraptor.exe gui --datastore temp

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

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

Если все запустилось успешно, то в командной строке вы будете видеть логи в реальном времени, а по адресу https://127.0.0.1:8889/app/index.html#/ будет доступен web интерфейс.

Приветственное окно
Приветственное окно

Ранее я уже упомянул, что встроенный язык запросов VQL является ключевым элементом и он используется для описания команд, которые выполняются на клиентах. Это значит, что если вы захотите создать что-то кастомное, вам будет необходимо использовать VQL. Но к счастью, сообщество уже неплохо поработало в этом направлении и создало большую библиотеку таких инструкций/команд, называемых артефактами/Artifacts.

Перейдите в меню “View Artifacts”, в правой боковой панели вы можете видеть все артефакты, что идут вместе с исполняемым файлом. Используйте фильтр, чтобы посмотреть например те, что относятся к Windows.

Artefacts
Artefacts

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

Теперь давайте попробуем запустить один из артефактов. Я выбрал Windows.Network.Netstat для целей демонстрации. Чтобы запустить этот артефакт на конкретном клиенте, его необходимо выбрать как активный. Для этого в верхнем левом углу нажмите на иконку поиска, далее нажмите на Client ID вашего клиента.

Теперь ваш клиент является основным, с которым вы будете работать.

Перейдите в раздел Collected Artifacts, нажмите иконку + в левом верхнем углу окна.

В появившемся представлении найдите нужный вам артефакт, в моем случае это будет Windows.Network.Netstat.

Windows.Network.Netstat Artefact
Windows.Network.Netstat Artefact

Следующая вкладка Configure Parameters здесь обычно можно задать динамические параметры артефакта, но в моем случае таких параметров нет.

Далее в Specify Resources вы можете произвести тонкую настройку ресурсов, которые будет потреблять ваш артефакт. Эти параметры действительно помогают минимизировать загрузку клиентов и не допускать воздействия на какие-либо рабочие процессы.

Specify Resources Tab
Specify Resources Tab

В моем случае параметров по умолчанию достаточно, нажимаю Launch.

Несколько секунд ожидания и информация собрана. В нижней части окна во вкладке Results представлена информация по всем сетевым соединениям на моём клиенте. Предлагаю вам самостоятельно просмотреть и запустить еще несколько интересных для вас артефактов. Здесь вы можете посмотреть какие артефакты встроены в исполняемый файл по умолчанию.

Offline коллектор

Следующий интересный пример, который я бы хотел осветить в этой статье, это создание offline коллектора. Исполняемый файл Velociraptor'а может быть сконфигурирован таким образом, что при его запуске он выполнит сбор и отправку нужной информации после чего завершит работу. Когда это может понадобиться? Часто в работе бывают случаи когда существуют подозрения на компрометацию лэптопа, доступ к которому ограничен или отсутствует вовсе. В таких случаях хорошо бы иметь файл, который легко запустить пользователю и который соберет всю необходимую информацию.

Такой файл достаточно просто создать в Velociraptor. Перейдите в Server Artefacts и левом верхнем меню нажмите на иконку самолетика.

В качестве артефакта для коллектора предлагаю рассмотреть Windows.KapeFiles.Targets. Если вы не знакомы с KapeFiles, то подробнее можете ознакомится в репозитории проекта. А в двух словах, KapeFiles это структурированная информация о месторасположении многих файлах в системе Windows, которые могут быть полезны при проведении расследования. Изначально KapeFiles созданы для использования в программе Kape, но как видите их можно трансформировать и для других утилит.

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

Следующая вкладка Configure Collection настраивает необходимые действия по завершению работы артефакта. Тут и шифрование и отправка файлов на сетевые хранилища и простое создание zip архива.

Вкладка Specify Resources как и в прошлый раз поможет вам избежать чрезмерного потребления ресурсов на клиентской машине, если это необходимо.

Нажимаем Launch и через несколько секунд создание Offline коллектора будет завершено. Исполняемый файл вы сможете найти в нижней части окна во вкладке Uploaded Files. Теперь все, что вам остается это скачать файл и передать его пользователю для запуска на лэптопе. Важно отметить, что запуск Offline коллектора лучше производить с правами администратора, в противном случае доступ не ко всем файлам системы будет возможен.

Вместо заключения

Добавлю ещё несколько фактов, которые, вероятно, смогут ответить на некоторые появившиеся вопросы.

Velociraptor распространяется под лицензией AGPLv3 и в соответствии с духом FOSS. Другими словами с программой можно делать все, кроме её продажи. Думаю, это вам неинтересно 😉.

Не так давно компания Rapid7 взяла этот проект под свое крыло. Эта новость хорошая, потому что проект остается открытым и с AGPLv3 лицензией, а Rapid7 выделяет бюджет на поддержание разработки и построение сообщества, попутно рекламируя себя.  

Задать вопрос и получить техническую поддержку можно на Discord сервере. Этот канал более чем живой. Mike Cohen - автор и вдохновитель проекта, отвечает на вопросы очень быстро, зачастую в течении нескольких минут.  

Я планирую сделать серию статей, подобных этой, с примерами использования Velociraptor. Надеюсь после прочтения вы найдете эту утилиту полезной и возможно она займет место среди других инструментов в вашем SOC.

Tags:
Hubs:
Total votes 6: ↑6 and ↓0+6
Comments3

Articles