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

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

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

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

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

Категории

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

Популярное

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

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

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

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

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

avml

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

Репозиторий

AVML (Acquire Volatile Memory for Linux)

Обзор

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

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

Возможности

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

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

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

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

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

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

Матрица тестирования виртуальных машин Azure определена в eng/images.txt и в настоящее время охватывает:

  • Ubuntu: 16.04, 18.04, 20.04, 22.04, 24.04, 26.04
  • CentOS: 7.9
  • RHEL: 7.9, 8.5, 8.10, 9.0, 9.8, 10.2
  • Debian: 11, 12, 13
  • Oracle Linux: 8.10, 9.8, 10.2
  • CBL-Mariner: 2.0
  • Azure Linux: 3.0
  • SUSE Linux Enterprise Server: 12 SP5, 15 SP7, 16.0
  • AlmaLinux: 8, 9, 10

Подкоманды

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

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

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

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

Захват сжатого образа памяти

На целевом хосте:

avml acquire --compress output.lime.compressed

Захват несжатого образа памяти

На целевом хосте:

avml acquire output.lime

Захват образа памяти и загрузка в Azure Blob Store

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

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-токеном.

avml acquire --sas-url ${SAS_URL} --delete output.lime

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

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

В Azure Block Blob Storage

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

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

На хосте-коллекторе:

nc -l 9000 > snapshot.lime

На целевом хосте:

avml stream tcp collector.example.com:9000

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

Загрузка ранее захваченного снимка

avml upload put  ./output.lime ${URL}              # HTTP PUT
avml upload blob ./output.lime ${SAS_URL}          # Azure Block Blob

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

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

  1. Сгенерируйте SAS URL (см. выше)
  2. Создайте config.json, содержащий следующую информацию:
{
    "commandToExecute": "./avml acquire --compress --sas-url <GENERATED_SAS_URL> --delete",
    "fileUris": ["https://FULL.URL.TO.AVML.example.com/avml"]
}
  1. Выполните расширение customScript с указанным config.json
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

На защищённом хосте сгенерируйте S3 pre-signed URL или сгенерируйте GCP pre-signed URL.

На целевом хосте выполните avml со сгенерированным pre-signed URL.

avml acquire --url ${URL} --delete output.lime

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

avml convert ./compressed.lime ./uncompressed.lime

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

avml convert --source-format lime --format lime_compressed ./uncompressed.lime ./compressed.lime

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

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

# 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

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

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