Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
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é.

··Flux·Contact·Confidentialité·© 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 Incidents
GitHubmicrosoft/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
1.1k96il y a 4 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

AVML (Acquérir la mémoire volatile pour Linux)

Résumé

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

AVML est un outil X86_64 d'acquisition de mémoire volatile en espace utilisateur écrit en Rust, conçu pour être déployé en tant que binaire statique. AVML peut être utilisé pour acquérir la mémoire sans connaître au préalable la distribution du système d'exploitation cible ni le noyau. Aucune compilation sur la cible ni prise d'empreintes 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 en cas d'échecs transitoires via la politique de backoff exponentiel par défaut du SDK Azure (8 tentatives, plafonnées à une minute au total).
  • Compression facultative au niveau des pages à l'aide de Snappy.
  • Utilise le format de sortie de 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 en ligne de commande, AVML parcourt 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

  • 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

Sous-commandes

avml est un binaire unique avec des sous-commandes. Chaque sous-commande est conditionnée par une fonctionnalité Cargo, de sorte qu'une compilation minimale n'inclut que la capacité dont vous avez besoin :

Compilez un binaire minimal d'acquisition seule avec cargo build --release --no-default-features.

Pour commencer

Capture d'une image mémoire compressée

Sur l'hôte cible :

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

Capture d'une image mémoire non compressée

Sur l'hôte cible :

root@kitploit:~
avml acquire output.lime

Capture d'une image mémoire et envoi vers Azure Blob Store

Sur un hôte sécurisé avec les informations d'identification az cli, générez une URL SAS.

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

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

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

Diffusion d'une image mémoire sans écriture sur le disque local

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

Vers Azure Block Blob Storage

root@kitploit:~
avml stream blob ${SAS_URL}
  • La taille des blocs est dérivée automatiquement afin que l'instantané tienne dans la limite d'Azure de 50 000 blocs par blob. --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 d'environ (concurrency + 1) * block_size.
  • Si l'instantané échoue en cours de téléversement, les blocs mis en attente sont abandonnés sans être validés ; Azure les supprime automatiquement selon sa politique standard.

Vers un écouteur TCP distant

Sur l'hôte collecteur :

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

Sur l'hôte cible :

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

avml se connecte une fois et écrit l'instantané séquentiellement. Si la connexion est interrompue en cours de diffusion, l'instantané est annulé ; 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.

Envoi d'un instantané précédemment capturé

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

Capture d'une image mémoire d'une machine virtuelle Azure à l'aide des extensions de machine virtuelle

Sur un hôte sécurisé avec les informations d'identification 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 :
root@kitploit:~
{
    "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é
root@kitploit:~
az vm extension set -g RESOURCE_GROUP --vm-name VM_NAME --publisher Microsoft.Azure.Extensions -n customScript --settings config.json

Pour envoyer vers AWS S3 ou GCP Cloud Storage

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

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

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

Pour décompresser une image compressée par AVML

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

Pour compresser une image LiME non compressée

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

Utilisation

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)

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

Compilation sous 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

Tests sur Azure

Les scripts de test créeront, utiliseront et nettoieront des groupes de ressources, des machines virtuelles et un compte de stockage.

  1. Installez az cli
  2. Connectez-vous à votre abonnement Azure à l'aide de : az login
  3. Compilez avml (voir ci-dessus)
  4. ./eng/test-on-azure.sh

Contribution

Ce projet accueille favorablement les contributions et suggestions. La plupart des contributions nécessitent que vous acceptiez un contrat de licence de contributeur (CLA) déclarant que vous avez le droit d'accorder, et que vous accordez effectivement, les droits d'utilisation de votre contribution. Pour plus de détails, consultez https://cla.microsoft.com.

Lorsque vous soumettez une pull request, un CLA-bot détermine automatiquement si vous devez fournir un CLA et décore la PR en conséquence (par exemple, étiquette, commentaire). Suivez simplement les instructions fournies par le bot. Vous n'aurez à le faire qu'une seule fois dans tous les dépôts utilisant notre CLA.

Ce projet a adopté le Code de conduite open source de Microsoft. Pour plus d'informations, consultez la FAQ sur le Code de conduite ou contactez [email protected] pour toute question ou tout commentaire supplémentaire.

Signaler des problèmes de sécurité

Les problèmes et bogues de sécurité doivent être signalés en privé, par courrier électronique, au Microsoft Security Response Center (MSRC) à l'adresse [email protected]. Vous devriez recevoir une réponse sous 24 heures. Si, pour une raison quelconque, ce n'est pas le cas, veuillez relancer par courrier électronique pour vous assurer que nous avons bien reçu votre message initial. De plus amples informations, y compris la clé PGP du MSRC, sont disponibles dans le Security TechCenter.

Télécharger l’outil
Sous-commandeFonctionnalitéDéfautDescription
acquire(always)ouiCapture un instantané de la mémoire dans un fichier local (envoi facultatif 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.