Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
avml — フォレンジックおよびインシデントレスポンス向けのポータブルLinux RAM取得ツールで、オプションの圧縮とリモートストリーミングに対応したLiME互換イメージをキャプチャします。 | Kitploit
ツール/GitHubGitHub/microsoft/avml
メモリフォレンジックフォレンジックデジタルフォレンジックインシデントレスポンス
GitHubmicrosoft/avml

avml

フォレンジックおよびインシデントレスポンス向けのポータブルLinux RAM取得ツールで、オプションの圧縮とリモートストリーミングに対応したLiME互換イメージをキャプチャします。

リポジトリを見る
1.1k964日前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

AVML (Acquire Volatile Memory for Linux)

概要

Linux用のポータブル揮発性メモリ取得ツール。

AVMLは、Rustで書かれたX86_64ユーザーランド揮発性メモリ取得ツールで、静的バイナリとして配備することを目的としています。 AVMLは、対象OSのディストリビューションやカーネルを事前に知らなくてもメモリを取得できます。ターゲット上でのコンパイルやフィンガープリンティングは不要です。

特徴

  • Azure Blob StoreまたはHTTP PUTを介して、取得したイメージを外部の場所に保存する
  • Azure Blob Storageへのアップロードは、Azure SDKのデフォルトの指数バックオフポリシー(8回試行、合計経過時間は最大1分)に従って一時的な障害を再試行します。
  • 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フィーチャーによって制御されるため、最小限のビルドには必要な機能だけが含まれます。

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})

対象ホスト上で、生成したSASトークンを指定してavmlを実行します。

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

ローカルディスクに書き込まずにメモリイメージをストリーミングする

スナップショットを先にローカルファイルに書き込みたくないホスト(読み取り専用ルート、ディスク容量の制限、フォレンジックにおける証拠の保管連鎖(チェーン・オブ・カストディ)に関する懸念など)では、streamサブコマンドを使用します。このコマンドは、メモリソースを事前に1つ選択し(acquireの/dev/stdoutパスと同じ優先順位 — /proc/kcore、次に/dev/crash、最後に/dev/mem。上書きするには--sourceを指定)、選択した宛先にバイト列を順番に書き込みます。ストリーミング途中でソースを変更できないため、自動的なソースのフォールバックはありません。

Azure Block Blob Storageへのストリーミング

root@kitploit:~
avml stream blob ${SAS_URL}
  • ブロックサイズは、スナップショットがAzureのblobごとの50,000ブロック制限に収まるように自動的に算出されます。--sas-block-size(MiB)は下限として機能し、算出された最小値がそれより大きい場合は、大きい方の値が採用されます。
  • --sas-block-concurrencyは、実行中のstage_block呼び出し数の上限を設定します。ピークRAMはおおよそ(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

VM拡張機能を使用したAzure VMのメモリイメージの取得

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. 指定したconfig.jsonを使用してcustomScript拡張機能を実行します
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へのアップロード

セキュアなホスト上で、S3事前署名付きURLまたはGCP事前署名付きURLを生成します。

対象ホスト上で、生成した事前署名付きURLを指定してavmlを実行します。

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. az loginを使用してAzureサブスクリプションにログインします
  3. avmlをビルドします(上記参照)
  4. ./eng/test-on-azure.sh

コントリビューション

このプロジェクトでは、コントリビューションと提案を歓迎します。ほとんどのコントリビューションには、あなたのコントリビューションを使用する権利を実際に当社に付与する権限があることを宣言するコントリビューターライセンス契約(CLA)への同意が必要です。詳細については、https://cla.microsoft.com をご覧ください。

プルリクエストを送信すると、CLAボットがCLAの提供が必要かどうかを自動的に判断し、PRに適切なラベルやコメントを付けます。ボットから提供される指示に従ってください。この手続きは、当社のCLAを使用するすべてのリポジトリで一度だけ行う必要があります。

このプロジェクトは、Microsoftオープンソースの行動規範を採用しています。 詳細については、行動規範FAQを参照するか、追加の質問やコメントがある場合は[email protected]までお問い合わせください。

セキュリティ問題の報告

セキュリティ問題やバグは、[email protected]宛てにメールでマイクロソフトセキュリティレスポンスセンター(MSRC)へ非公開で報告してください。24時間以内に返信が届きます。何らかの理由で返信が届かない場合は、こちらのメールが確実に届いていることを確認するため、メールでフォローアップしてください。MSRC PGPキーを含む詳細情報は、Security TechCenterに記載されています。

ツールをダウンロード
サブコマンドフィーチャーデフォルト機能
acquire(常に)はいメモリスナップショットをローカルファイルに保存します(保存後にオプションでアップロード)。
convertconvertはいAVML / LiME / raw形式間の変換を行います。
uploaduploadはいローカルファイルをHTTP PUTまたはAzure Block Blobにアップロードします。
streamstreamはいスナップショットをローカルファイルに書き込まず、直接宛先にストリーミングします。