Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
avml — Outil portable d'acquisition de la RAM sous Linux pour la forensique et la réponse aux incidents, capturant des images compatibles LiME avec compression optionnelle et streaming à distance. | Kitploit
Outils/GitHubGitHub/microsoft/avml
Criminalistique MémoireAnalyse ForensiqueCriminalistique NumériqueRéponse aux IncidentsTop en Criminalistique Numérique n°10Top en Analyse Forensique n°10Top en Réponse aux Incidents n°11Top en Criminalistique Mémoire n°3
1.1k9658il y a 3 joursVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
GitHub
microsoft/avml

avml

Outil portable d'acquisition de la RAM sous Linux pour la forensique et la réponse aux incidents, capturant des images compatibles LiME avec compression optionnelle et streaming à distance.

Voir le dépôt

AVML (Acquire Volatile Memory for Linux)

Résumé

Un outil portable d'acquisition de mémoire volatile pour Linux.

AVML est un outil d'acquisition de mémoire volatile en espace utilisateur X86_64 écrit en Rust, destiné à être déployé sous forme de binaire statique. AVML peut être utilisé pour acquérir la mémoire sans connaître a priori la distribution du système d'exploitation cible ni le noyau. Aucune compilation ni empreinte sur la cible n'est nécessaire.

Fonctionnalités

  • Enregistrer les images capturées vers des emplacements externes via Azure Blob Store ou HTTP PUT
  • Les téléversements vers Azure Blob Storage réessaient les échecs transitoires via la politique de backoff exponentiel par défaut du SDK Azure (8 tentatives, plafonnées à une minute au total).
  • Compression optionnelle au niveau des pages via Snappy.
  • Utilise le format de sortie LiME (lorsque la compression n'est pas utilisée).

Sources de mémoire

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

Si la source de mémoire n'est pas spécifiée sur la ligne de commande, AVML parcourra les sources de mémoire pour trouver une source fonctionnelle.

REMARQUE : Si la fonctionnalité du noyau kernel_lockdown est activée, AVML ne pourra pas acquérir la mémoire.

Distributions testées

La matrice de tests des VM Azure est définie dans eng/images.txt et couvre actuellement :

  • 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

Sous-commandes

avml est un binaire unique avec des sous-commandes. Chaque sous-commande est contrôlée par une fonctionnalité Cargo afin qu'une compilation minimale n'inclue que la capacité dont vous avez besoin :

Sous-commandeFonctionnalitéPar défautCe qu'elle fait
acquire(toujours)ouiCapture la mémoire vers un fichier local (téléversement optionnel ensuite).
convertconvertouiConvertit entre les formats AVML / LiME / brut.
uploaduploadouiTéléverse un fichier local via HTTP PUT ou vers Azure Block Blob.
streamstreamouiDiffuse un instantané directement vers une destination, sans fichier local.

Compilez un binaire minimal limité à l'acquisition avec cargo build --release --no-default-features.

Pour commencer

Capturer une image mémoire compressée

Sur l'hôte cible :

avml acquire --compress output.lime.compressed

Capturer une image mémoire non compressée

Sur l'hôte cible :

avml acquire output.lime

Capturer une image mémoire et la téléverser vers Azure Blob Store

Sur un hôte sécurisé disposant des identifiants az cli, générez une URL SAS.

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

Sur l'hôte cible, exécutez avml avec le jeton SAS généré.

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

Diffuser une image mémoire sans écrire sur le disque local

Pour les hôtes où écrire d'abord l'instantané dans un fichier local n'est pas souhaitable (racine en lecture seule, disque limité, préoccupations de chaîne de custody forensique), utilisez la sous-commande stream. Elle choisit la source de mémoire une fois au préalable (même ordre de préférence que le chemin /dev/stdout d'acquire — /proc/kcore, puis /dev/crash, puis /dev/mem ; passez --source pour la remplacer) et écrit les octets séquentiellement vers la destination choisie. La source ne peut pas être changée en cours de flux, il n'y a donc pas de repli automatique de source.

Vers Azure Block Blob Storage

avml stream blob ${SAS_URL}
  • La taille de bloc est dérivée automatiquement afin que l'instantané tienne dans la limite de 50 000 blocs par blob d'Azure. --sas-block-size (MiB) agit comme un plancher ; si le minimum dérivé est plus grand, la valeur la plus grande l'emporte.
  • --sas-block-concurrency plafonne le nombre d'appels stage_block en vol. La RAM maximale est approximativement (concurrency + 1) * block_size.
  • Si l'instantané échoue en cours de téléversement, les blocs préparés sont abandonnés sans être validés ; Azure les rejette automatiquement selon sa politique standard.

Vers un écouteur TCP distant

Sur l'hôte collecteur :

nc -l 9000 > snapshot.lime

Sur l'hôte cible :

avml stream tcp collector.example.com:9000

avml se connecte une fois et écrit l'instantané séquentiellement. Si la connexion tombe en cours de flux, l'instantané est interrompu ; il n'y a pas de reprise. Pas de TLS — associez-le à un tunnel SSH ou stunnel pour la confidentialité et l'intégrité si nécessaire.

Téléverser un instantané précédemment capturé

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

Capturer une image mémoire d'une VM Azure à l'aide des extensions de VM

Sur un hôte sécurisé disposant des identifiants az cli, procédez comme suit :

  1. Générez une URL SAS (voir ci-dessus)
  2. Créez config.json contenant les informations suivantes :
{
    "commandToExecute": "./avml acquire --compress --sas-url <GENERATED_SAS_URL> --delete",
    "fileUris": ["https://FULL.URL.TO.AVML.example.com/avml"]
}
  1. Exécutez l'extension customScript avec le config.json spécifié
az vm extension set -g RESOURCE_GROUP --vm-name VM_NAME --publisher Microsoft.Azure.Extensions -n customScript --settings config.json

Pour téléverser vers AWS S3 ou GCP Cloud Storage

Sur un hôte sécurisé, générez une URL pré-signée S3 ou générez une URL pré-signée GCP.

Sur l'hôte cible, exécutez avml avec l'URL pré-signée générée.

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

Pour décompresser une image compressée par AVML

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

Pour compresser une image LiME non compressée

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

Utilisation

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)

Exécutez avml <COMMAND> --help pour les options propres à chaque commande.

Compilation sur 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
Télécharger l’outil