Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
lmg — Скрипт для автоматизации захвата и анализа памяти Linux | Kitploit
Инструменты/GitHubGitHub/halpomeranz/lmg
Криминалистика памятиФорензикаЦифровая криминалистикаРеагирование на Инциденты
GitHubhalpomeranz/lmg

lmg

Скрипт для автоматизации захвата и анализа памяти Linux

Репозиторий
27548666 лет назадПроверено Kitploit

Популярное

Смотреть все →

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

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Linux Memory Grabber Скрипт для дампа памяти Linux и создания профилей Volatility(TM). Hal Pomeranz ([email protected]), 2020-02-01

БЛАГОДАРНОСТИ!

«Если я видел дальше, то только потому, что стоял на плечах гигантов.» ~ Исаак Ньютон

Многие заслуживают благодарности за то, что сделали возможным этот простой маленький инструмент:

-- Добрые люди из Microsoft за то, что сделали AVML доступным

-- Джо Сайлв за его работу над LiME

-- Вся команда разработчиков Volatility(TM) за их постоянную работу. Особо хочу отметить Эндрю Кейса, который ответил на ряд моих назойливых вопросов во время разработки моего инструмента.

-- Дэвид Андерсон за его постоянную поддержку libdwarf и dwarfdump

-- Мэтт Суиш из MoonSols. Когда я собирал свой инструмент, моей целью было «сделать его таким же простым в использовании, как DumpIt» (если вам нужно захватить память Windows, я не знаю более простого инструмента). Так что спасибо за вдохновение, Мэтт!

-- Люди, которые предоставляли идеи и код для улучшения инструмента:

   Julien — Альтернативные каталоги вывода/сборки и метки идентификатора дела,
       прерывание, если не запущен от root
   Jonathon Poling — идеи, похожие на идеи Julien
   Jeff Bryner — Создание файлов volatilityrc для каждого захвата

Сообщество становится лучше благодаря всем этим усилиям. Я решил сделать свой инструмент доступным под лицензией Creative Commons «С указанием авторства» (CC BY), чтобы сделать его максимально широко доступным.

ОБ ИНСТРУМЕНТЕ

Чтобы проанализировать память Linux, сначала нужно уметь захватывать память Linux. AVML отлично работает, но если в вашей системе нет /proc/kcore или /dev/crash, вам понадобится Linux Memory Extractor (LiME) от Джо Сайлва. Но вам нужен модуль LiME, скомпилированный для ядра той системы, на которой вы хотите захватить RAM.

Volatility(TM) отлично подходит для анализа образов памяти Linux. Но ему нужен профиль, соответствующий системе, где была захвачена память. Создание профиля означает компиляцию программы на C на соответствующей системе и использование dwarfdump для получения адресов важных структур данных ядра. Вам также понадобится копия файла System.map из каталога /boot.

Если у вас есть дубликат вашей целевой системы, вы можете собрать профиль Volatility(TM) на клоне и при необходимости собрать LiME для захвата и анализа памяти с вашей цели. Но есть много ситуаций, когда дубликат целевой системы недоступен. Поэтому вам, возможно, придется строить профиль Volatility(TM) и LiME на вашей целевой машине.

И это не для слабонервных. Есть ряд шагов, и некоторые довольно низкоуровневые команды Linux. Моей целью было создать пакет, который можно установить (специалистом) на флешку и распространить среди агентов на местах. Пользователь флешки должен иметь возможность вставить флешку, запустить одну команду и успешно получить образ памяти целевой машины и рабочий профиль Volatility(TM). Результатом является мой скрипт lmg (Linux Memory Grabber).

О КРИМИНАЛИСТИЧЕСКОЙ ЧИСТОТЕ

Если вы педантичны в отношении криминалистической чистоты, это, вероятно, не инструмент для вас. Давайте обсудим некоторые способы взаимодействия моего инструмента с целевой системой:

Сменные носители — Инструмент предназначен для запуска с портативного USB-устройства, такого как флешка. Вы будете подключать записываемое устройство к вашей целевой системе, где оно потенциально может быть атаковано злоумышленниками или вредоносным ПО, находящимся в системе. Сам факт подключения устройства к системе изменит состояние машины (например, создаст записи в журнале, записи mtab и т.д.). Если устройство не монтируется автоматически операционной системой, пользователь должен вручную смонтировать устройство через root-оболочку.

Компиляция — Создание профиля Volatility(TM) включает компиляцию кода на целевой машине. То же самое касается сборки LiME, когда AVML не работает. Таким образом, будут выполняться gcc, читаться заголовочные файлы, связываться библиотеки и т.д. lmg пытается минимизировать влияние на файловую систему целевой машины, устанавливая TMPDIR в каталог на USB-устройстве, с которого запускается lmg. Это означает, что промежуточные файлы, создаваемые компилятором, будут записываться на флешку, а не в локальную файловую систему целевой машины.

Зависимости — Для компиляции кода ядра в Linux целевой машине требуется рабочая среда разработки с gcc, make и т.д. и все соответствующие include-файлы и общие библиотеки. И в частности, заголовочные файлы ядра должны присутствовать на локальной машине. Эти зависимости могут отсутствовать на целевой. В этом случае пользователь сталкивается с выбором: установить соответствующие зависимости (если возможно) или не иметь возможности собрать профиль Volatility(TM) для системы.

Вредоносное ПО — lmg использует /bin/bash, gcc, zip и множество других программ с целевой машины. Если система скомпрометирована, приложения, используемые lmg, могут быть ненадежными. Более полным решением было бы создать безопасную среду выполнения для lmg на портативном USB-устройстве, но это выходит за рамки данной первоначальной концепции.

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

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

Обратите внимание: если AVML завершается неудачей, lmg ищет уже существующий модуль LiME на USB-устройстве, который соответствует версии ядра и архитектуре процессора целевой машины. Если найден, lmg не будет перекомпилировать. Аналогично, вы можете решить не создавать профиль Volatility(TM) для цели, чтобы минимизировать влияние на целевую систему.

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

ИСПОЛЬЗОВАНИЕ LMG

Сначала подготовьте флешку в соответствии с инструкциями в документе INSTALL, прилагаемом к lmg.

Когда вы захотите захватить RAM, вставьте флешку в вашу целевую систему. В большинстве систем Linux новые USB-устройства автоматически монтируются в /media. Предположим, ваше устройство оказывается в /media/LMG.

Теперь, от имени root, выполните «/media/LMG/lmg». Это интерактивный режим, и пользователю будет предложено подтверждение перед тем, как lmg соберет модуль LiME для системы и/или создаст профиль Volatility(TM). Если вы не хотите, чтобы вас запрашивали, используйте «/media/LMG/lmg -y».

Все остальное автоматизировано. После выполнения скрипта на флешке появится новый каталог с именем

«.../capture/-YYYY-MM-DD_hh.mm.ss»

lmg поддерживает опцию -c для указания имени каталога ID дела, которое будет использоваться вместо каталога по умолчанию «-YYYY-MM-DD_hh.mm.ss».

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

-YYYY-MM-DD_hh.mm.ss-memory.lime — захват RAM -YYYY-MM-DD_hh.mm.ss-profile.zip — профиль Volatility(TM) -YYYY-MM-DD_hh.mm.ss-bash — копия /bin/bash цели volatilityrc — пример конфигурационного файла Volatility

Файл volatilityrc определяет соответствующие местоположения для захваченной памяти и плагина. См. ПРИМЕР ИСПОЛЬЗОВАНИЯ ниже для информации о том, как использовать этот файл.

Скачать инструмент