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

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

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

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

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

Категории

Все категории
Loading categories
avml — Портативный инструмент сбора оперативной памяти Linux для криминалистики и реагирования на инциденты, снимающий совместимые с LiME образы с опциональным сжатием и удалённой потоковой передачей. | Kitploit
Инструменты/GitHubGitHub/microsoft/avml
Криминалистика памятиФорензикаЦифровая криминалистикаРеагирование на Инциденты
GitHubmicrosoft/avml

avml

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

Репозиторий
1.1k964 дней назадПроверено Kitploit

Популярное

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

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

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

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

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

AVML (Acquire Volatile Memory for Linux)

Краткое описание

Портативный инструмент сбора энергозависимой памяти для Linux.

AVML — это инструмент сбора энергозависимой памяти в пользовательском пространстве для архитектуры X86_64, написанный на Rust и предназначенный для развёртывания в виде статического бинарного файла. AVML позволяет собирать память без предварительного знания дистрибутива целевой ОС или ядра. Не требуется ни компиляция на целевой машине, ни fingerprinting.

Возможности

  • Сохранение полученных образов во внешние хранилища через Azure Blob Store или HTTP PUT
  • Загрузки в Azure Blob Storage повторяют временные сбои, используя стандартную политику экспоненциальной задержки Azure SDK (8 попыток, суммарно не более одной минуты).
  • Опциональное сжатие на уровне страниц с помощью Snappy.
  • Использует формат вывода LiME (когда сжатие не используется).

Источники памяти

  • /dev/crash
  • /proc/kcore
  • /dev/mem

Если источник памяти не указан в командной строке, AVML перебирает источники памяти, пока не найдёт работоспособный.

ПРИМЕЧАНИЕ. Если включена функция ядра kernel_lockdown, AVML не сможет собрать память.

Протестированные дистрибутивы

  • Ubuntu: 12.04, 14.04, 16.04, 18.04, 18.10, 19.04, 19.10, 20.04, 21.04, 22.04
  • Centos: 6.5, 6.6, 6.7, 6.8, 6.9, 6.10, 7.0, 7.1, 7.2, 7.3, 7.4, 7.5, 7.6, 7.9
  • RHEL: 6.7, 6.8, 6.9, 7.0, 7.2, 7.3, 7.4, 7.5, 7.7, 8.5, 9.0
  • Debian: 8, 9, 10, 11, 12
  • Oracle Linux: 6.8, 6.9, 6.10, 7.3, 7.4, 7.5, 7.6, 7.9, 8.5, 9.0
  • CBL-Mariner: 1.0, 2.0

Подкоманды

avml — это один бинарный файл с подкомандами. Каждая подкоманда включается фичей Cargo, поэтому минимальная сборка содержит только необходимые вам возможности:

Соберите минимальный бинарный файл только с подкомандой acquire: cargo build --release --no-default-features.

Начало работы

Снятие сжатого образа памяти

На целевой машине:

root@kitploit:~
avml acquire --compress output.lime.compressed

Снятие несжатого образа памяти

На целевой машине:

root@kitploit:~
avml acquire output.lime

Снятие образа памяти и загрузка в Azure Blob Store

На защищённой машине с учётными данными az cli создайте SAS URL.

root@kitploit:~
EXPIRY=$(date -d '1 day' '+%Y-%m-%dT%H:%MZ')
SAS_URL=$(az storage blob generate-sas --account-name ACCOUNT --container CONTAINER test.lime --full-uri --permissions c --output tsv --expiry ${EXPIRY})

На целевой машине выполните avml с полученным SAS-токеном.

root@kitploit:~
avml acquire --sas-url ${SAS_URL} --delete output.lime

Передача образа памяти без записи на локальный диск

Для машин, где запись снимка сначала в локальный файл нежелательна (корневая файловая система только для чтения, ограниченный диск, требования к судебной цепочке хранения улик), используйте подкоманду stream. Она один раз выбирает источник памяти (в том же порядке предпочтения, что и путь /dev/stdout у acquire — сначала /proc/kcore, затем /dev/crash, затем /dev/mem; укажите --source, чтобы переопределить) и последовательно записывает байты в выбранный пункт назначения. Источник нельзя сменить в середине потока, поэтому автоматического переключения источника не предусмотрено.

В Azure Block Blob Storage

root@kitploit:~
avml stream blob ${SAS_URL}
  • Размер блока вычисляется автоматически, чтобы снимок укладывался в лимит Azure в 50 000 блоков на один blob. Параметр --sas-block-size (МиБ) действует как нижняя граница; если вычисленный минимум оказывается больше, используется большее значение.
  • Параметр --sas-block-concurrency ограничивает количество одновременных вызовов stage_block. Пиковое использование ОЗУ составляет примерно (concurrency + 1) * block_size.
  • Если передача снимка прервётся на полпути, подготовленные блоки будут отброшены без фиксации; Azure удалит их автоматически в соответствии со своей стандартной политикой.

В удалённый TCP-приёмник

На принимающей машине:

root@kitploit:~
nc -l 9000 > snapshot.lime

На целевой машине:

root@kitploit:~
avml stream tcp collector.example.com:9000

avml подключается один раз и последовательно записывает снимок. Если соединение обрывается в середине потока, снимок прерывается; возобновление невозможно. TLS не используется — при необходимости обеспечьте конфиденциальность и целостность с помощью SSH-туннеля или stunnel.

Загрузка ранее снятого снимка

root@kitploit:~
avml upload put  ./output.lime ${URL}              # HTTP PUT
avml upload blob ./output.lime ${SAS_URL}          # Azure Block Blob

Снятие образа памяти виртуальной машины Azure с помощью VM Extensions

На защищённой машине с учётными данными az cli сделайте следующее:

  1. Создайте SAS URL (см. выше)
  2. Создайте config.json со следующей информацией:
root@kitploit:~
{
    "commandToExecute": "./avml acquire --compress --sas-url <GENERATED_SAS_URL> --delete",
    "fileUris": ["https://FULL.URL.TO.AVML.example.com/avml"]
}
  1. Запустите расширение customScript с указанным config.json
root@kitploit:~
az vm extension set -g RESOURCE_GROUP --vm-name VM_NAME --publisher Microsoft.Azure.Extensions -n customScript --settings config.json

Загрузка в AWS S3 или GCP Cloud Storage

На защищённой машине создайте предварительно подписанный URL S3 или предварительно подписанный URL GCP.

На целевой машине выполните avml с полученным предварительно подписанным URL.

root@kitploit:~
avml acquire --url ${URL} --delete output.lime

Распаковка сжатого образа AVML

root@kitploit:~
avml convert ./compressed.lime ./uncompressed.lime

Сжатие несжатого образа LiME

root@kitploit:~
avml convert --source-format lime --format lime_compressed ./uncompressed.lime ./compressed.lime

Использование

root@kitploit:~
A portable volatile memory acquisition tool for Linux

Usage: avml <COMMAND>

Commands:
  acquire  Acquire a memory snapshot to a local file (and optionally upload it)
  convert  Convert between AVML and LiME snapshot formats and a raw memory image
  upload   Upload an already-acquired snapshot file to remote storage
  stream   Stream a memory snapshot directly to remote storage, without writing it to a local file
  help     Print this message or the help of the given subcommand(s)

Выполните avml <COMMAND> --help, чтобы увидеть параметры каждой команды.

Сборка в Ubuntu

root@kitploit:~
# Install MUSL
sudo apt-get install musl-dev musl-tools musl

# Install Rust via rustup
curl https://sh.rustup.rs -sSf | sh -s -- -y

# Add the MUSL target for Rust
rustup target add x86_64-unknown-linux-musl

# Build
cargo build --release --target x86_64-unknown-linux-musl

# Build without upload functionality
cargo build --release --target x86_64-unknown-linux-musl --no-default-features

Тестирование в Azure

Тестовые скрипты создают, используют и удаляют несколько групп ресурсов, виртуальных машин и учётную запись хранения.

  1. Установите az cli
  2. Войдите в свою подписку Azure с помощью: az login
  3. Соберите avml (см. выше)
  4. ./eng/test-on-azure.sh

Участие в разработке

Этот проект приветствует вклад и предложения. Для большинства вкладов требуется согласие с лицензионным соглашением участника (CLA), подтверждающее, что вы имеете право и действительно предоставляете нам права на использование вашего вклада. Подробнее: https://cla.microsoft.com.

Когда вы отправляете pull request, CLA-бот автоматически определит, нужно ли вам оформить CLA, и соответствующим образом оформит PR (например, добавит метку или комментарий). Просто следуйте инструкциям бота. Вам нужно будет сделать это только один раз во всех репозиториях, использующих наше CLA.

Этот проект принял Правила поведения для проектов с открытым исходным кодом Microsoft. Дополнительную информацию см. в FAQ по Правилам поведения или обращайтесь по адресу [email protected] с любыми дополнительными вопросами или комментариями.

Сообщение о проблемах безопасности

О проблемах безопасности и ошибках следует сообщать конфиденциально по электронной почте в Центр реагирования на угрозы безопасности Microsoft (MSRC) по адресу [email protected]. Вы должны получить ответ в течение 24 часов. Если по какой-то причине этого не произошло, отправьте повторное письмо, чтобы убедиться, что мы получили ваше исходное сообщение. Дополнительная информация, включая ключ MSRC PGP, доступна в Security TechCenter.

Скачать инструмент
ПодкомандаФичаПо умолчаниюНазначение
acquire(всегда)даСоздаёт снимок памяти в локальном файле (опционально с последующей загрузкой).
convertconvertдаКонвертирует между форматами AVML / LiME / raw.
uploaduploadдаЗагружает локальный файл через HTTP PUT или в Azure Block Blob.
streamstreamдаПередаёт снимок напрямую в пункт назначения, без локального файла.