Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
avml — Tragbares Linux-Tool zur RAM-Erfassung für Forensik und Incident Response, das LiME-kompatible Images mit optionaler Komprimierung und Remote-Streaming erfasst. | Kitploit
Tools/GitHubGitHub/microsoft/avml
SpeicherforensikForensikDigitale ForensikIncident Response
GitHubmicrosoft/avml

avml

Tragbares Linux-Tool zur RAM-Erfassung für Forensik und Incident Response, das LiME-kompatible Images mit optionaler Komprimierung und Remote-Streaming erfasst.

Repository anzeigen
1.1k96vor 4 TagenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

AVML (Acquire Volatile Memory for Linux)

Zusammenfassung

Ein portables Tool zur Erfassung von flüchtigem Speicher für Linux.

AVML ist ein Tool zur Erfassung von flüchtigem Speicher im X86_64-Userland, geschrieben in Rust, das für die Bereitstellung als statische Binärdatei vorgesehen ist. AVML kann zum Erfassen von Speicher verwendet werden, ohne die Ziel-OS-Distribution oder den Kernel a priori zu kennen. Es ist keine Kompilierung auf dem Zielsystem oder Fingerprinting erforderlich.

Funktionen

  • Erfasste Images über Azure Blob Store oder HTTP PUT an externe Speicherorte übertragen
  • Azure-Blob-Storage-Uploads wiederholen vorübergehende Fehler über die standardmäßige exponentielle Backoff-Richtlinie des Azure SDK (8 Versuche, begrenzt auf insgesamt eine Minute).
  • Optionale Komprimierung auf Seitenebene mit Snappy.
  • Verwendet das LiME-Ausgabeformat (wenn keine Komprimierung verwendet wird).

Speicherquellen

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

Wenn die Speicherquelle nicht in der Befehlszeile angegeben wird, iteriert AVML über die Speicherquellen, um eine funktionierende Quelle zu finden.

HINWEIS: Wenn das Kernel-Feature kernel_lockdown aktiviert ist, kann AVML keinen Speicher erfassen.

Getestete Distributionen

  • 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

Unterbefehle

avml ist eine einzelne Binärdatei mit Unterbefehlen. Jeder Unterbefehl wird durch ein Cargo-Feature abgesichert, sodass ein minimaler Build nur die benötigte Funktionalität enthält:

Erstellen Sie eine minimale Nur-Acquire-Binärdatei mit cargo build --release --no-default-features.

Erste Schritte

Erfassen eines komprimierten Speicherabbilds

Auf dem Zielhost:

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

Erfassen eines unkomprimierten Speicherabbilds

Auf dem Zielhost:

root@kitploit:~
avml acquire output.lime

Erfassen eines Speicherabbilds und Hochladen in Azure Blob Store

Generieren Sie auf einem sicheren Host mit az cli-Anmeldedaten eine 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})

Führen Sie auf dem Zielhost avml mit dem generierten SAS-Token aus.

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

Streamen eines Speicherabbilds ohne Schreiben auf die lokale Festplatte

Für Hosts, bei denen das vorherige Schreiben des Snapshots in eine lokale Datei unerwünscht ist (schreibgeschütztes Root-Dateisystem, begrenzter Speicherplatz, Bedenken bezüglich der forensischen Beweiskette), verwenden Sie den Unterbefehl stream. Dieser wählt die Speicherquelle einmal zu Beginn aus (gleiche Präferenzreihenfolge wie der /dev/stdout-Pfad von acquire — /proc/kcore, dann /dev/crash, dann /dev/mem; --source zum Überschreiben) und schreibt die Bytes sequenziell an das gewählte Ziel. Die Quelle kann mitten im Stream nicht gewechselt werden, daher gibt es keinen automatischen Fallback auf eine andere Quelle.

An Azure Block Blob Storage

  • Die Blockgröße wird automatisch abgeleitet, sodass der Snapshot innerhalb des Azure-Limits von 50.000 Blöcken pro Blob liegt. --sas-block-size (MiB) fungiert als Untergrenze; wenn das abgeleitete Minimum größer ist, gewinnt der größere Wert.
  • --sas-block-concurrency begrenzt die Anzahl der gleichzeitig laufenden stage_block-Aufrufe. Der RAM-Spitzenwert beträgt ungefähr (concurrency + 1) * block_size.
  • Wenn der Snapshot mitten im Upload fehlschlägt, werden die bereitgestellten Blöcke ohne Commit verworfen; Azure verwirft sie gemäß seiner Standardrichtlinie automatisch.

An einen entfernten TCP-Listener

Auf dem Collector-Host:

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

Auf dem Zielhost:

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

avml verbindet sich einmalig und schreibt den Snapshot sequenziell. Wenn die Verbindung mitten im Stream abbricht, wird der Snapshot abgebrochen; ein Fortsetzen ist nicht möglich. Kein TLS — kombinieren Sie es bei Bedarf mit einem SSH-Tunnel oder stunnel für Vertraulichkeit und Integrität.

Hochladen eines zuvor erfassten Snapshots

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

Erfassen eines Speicherabbilds einer Azure-VM mithilfe von VM-Erweiterungen

Führen Sie auf einem sicheren Host mit az cli-Anmeldedaten Folgendes aus:

  1. Generieren Sie eine SAS-URL (siehe oben)
  2. Erstellen Sie config.json mit den folgenden Informationen:
root@kitploit:~
{
    "commandToExecute": "./avml acquire --compress --sas-url <GENERATED_SAS_URL> --delete",
    "fileUris": ["https://FULL.URL.TO.AVML.example.com/avml"]
}
  1. Führen Sie die customScript-Erweiterung mit der angegebenen config.json aus
root@kitploit:~
az vm extension set -g RESOURCE_GROUP --vm-name VM_NAME --publisher Microsoft.Azure.Extensions -n customScript --settings config.json

Für den Upload zu AWS S3 oder GCP Cloud Storage

Generieren Sie auf einem sicheren Host eine S3-vorsignierte URL oder eine GCP-vorsignierte URL.

Führen Sie auf dem Zielhost avml mit der generierten vorsignierten URL aus.

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

Zum Dekomprimieren eines AVML-komprimierten Images

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

Zum Komprimieren eines unkomprimierten LiME-Images

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

Verwendung

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)

Führen Sie avml <COMMAND> --help aus, um die Optionen der jeweiligen Befehle anzuzeigen.

Erstellen unter 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

Testen unter Azure

Die Testskripte erstellen, verwenden und bereinigen eine Reihe von Ressourcengruppen, virtuellen Maschinen und ein Speicherkonto.

  1. Installieren Sie az cli
  2. Melden Sie sich mit az login bei Ihrem Azure-Abonnement an
  3. Erstellen Sie avml (siehe oben)
  4. ./eng/test-on-azure.sh

Mitwirken

Dieses Projekt begrüßt Beiträge und Vorschläge. Für die meisten Beiträge müssen Sie einer Contributor License Agreement (CLA) zustimmen, die bestätigt, dass Sie das Recht haben, uns die Rechte zur Nutzung Ihres Beitrags zu gewähren, und dies auch tatsächlich tun. Weitere Informationen finden Sie unter https://cla.microsoft.com.

Wenn Sie einen Pull Request einreichen, ermittelt ein CLA-Bot automatisch, ob Sie eine CLA bereitstellen müssen, und kennzeichnet den PR entsprechend (z. B. Label, Kommentar). Befolgen Sie einfach die Anweisungen des Bots. Sie müssen dies nur einmal für alle Repositories tun, die unsere CLA verwenden.

Dieses Projekt hat den Microsoft Open Source Code of Conduct übernommen. Weitere Informationen finden Sie in den FAQ zum Code of Conduct oder wenden Sie sich bei weiteren Fragen oder Kommentaren an [email protected].

Sicherheitsprobleme melden

Sicherheitsprobleme und Fehler sollten vertraulich per E-Mail an das Microsoft Security Response Center (MSRC) unter [email protected] gemeldet werden. Sie sollten innerhalb von 24 Stunden eine Antwort erhalten. Falls Sie aus irgendeinem Grund keine erhalten, setzen Sie sich bitte per E-Mail erneut mit uns in Verbindung, um sicherzustellen, dass wir Ihre ursprüngliche Nachricht erhalten haben. Weitere Informationen, einschließlich des MSRC-PGP-Schlüssels, finden Sie im Security TechCenter.

Tool herunterladen
UnterbefehlFeatureDefaultFunktion
acquire(immer)yesSpeicher-Snapshot in einer lokalen Datei sichern (optional anschließender Upload).
convertconvertyesZwischen AVML-, LiME- und Raw-Formaten konvertieren.
uploaduploadyesEine lokale Datei per HTTP PUT oder an Azure Block Blob hochladen.
streamstreamyesSnapshot direkt zu einem Ziel streamen, ohne lokale Datei.