Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
avml — Herramienta portátil de adquisición de RAM de Linux para análisis forense y respuesta a incidentes, que captura imágenes compatibles con LiME con compresión opcional y transmisión remota. | Kitploit
Herramientas/GitHubGitHub/microsoft/avml
Forensia de MemoriaAnálisis ForenseForensia DigitalRespuesta a IncidentesTop en Forensia Digital #10Top en Análisis Forense #10Top en Respuesta a Incidentes #11Top en Forensia de Memoria #3
1.1k9660hace 3 díasRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
GitHub
microsoft/avml

avml

Herramienta portátil de adquisición de RAM de Linux para análisis forense y respuesta a incidentes, que captura imágenes compatibles con LiME con compresión opcional y transmisión remota.

Ver Repositorio

AVML (Acquire Volatile Memory for Linux)

Resumen

Una herramienta portátil de adquisición de memoria volátil para Linux.

AVML es una herramienta de adquisición de memoria volátil en espacio de usuario para X86_64 escrita en Rust, pensada para ser desplegada como un binario estático. AVML puede usarse para adquirir memoria sin conocer de antemano la distribución del SO objetivo ni el kernel. No se necesita compilación ni fingerprinting en el objetivo.

Características

  • Guardar imágenes grabadas en ubicaciones externas mediante Azure Blob Store o HTTP PUT
  • Las subidas a Azure Blob Storage reintentan fallos transitorios mediante la política de retroceso exponencial predeterminada del SDK de Azure (8 intentos, con un límite de un minuto de tiempo total transcurrido).
  • Compresión opcional a nivel de página usando Snappy.
  • Usa el formato de salida de LiME (cuando no se usa compresión).

Fuentes de memoria

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

Si la fuente de memoria no se especifica en la línea de comandos, AVML iterará sobre las fuentes de memoria para encontrar una fuente funcional.

NOTA: Si la característica del kernel kernel_lockdown está habilitada, AVML no podrá adquirir memoria.

Distribuciones probadas

La matriz de pruebas de VM de Azure se define en eng/images.txt y actualmente cubre:

  • 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

Subcomandos

avml es un único binario con subcomandos. Cada subcomando está controlado por una característica de Cargo, de modo que una compilación mínima solo incluye la capacidad que necesitas:

SubcomandoCaracterísticaPredeterminadoQué hace
acquire(siempre)síCaptura la memoria en un archivo local (con subida opcional después).
convertconvertsíConvierte entre formatos AVML / LiME / raw.
uploaduploadsíSube un archivo local mediante HTTP PUT o a Azure Block Blob.
streamstreamsíTransmite una captura directamente a un destino, sin archivo local.

Compila un binario mínimo solo para adquisición con cargo build --release --no-default-features.

Primeros pasos

Capturar una imagen de memoria comprimida

En el host objetivo:

avml acquire --compress output.lime.compressed

Capturar una imagen de memoria sin comprimir

En el host objetivo:

avml acquire output.lime

Capturar una imagen de memoria y subirla a Azure Blob Store

En un host seguro con credenciales de az cli, genera una URL de 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})

En el host objetivo, ejecuta avml con el token SAS generado.

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

Transmitir una imagen de memoria sin escribir en el disco local

Para hosts en los que no es deseable escribir primero la captura en un archivo local (raíz de solo lectura, disco limitado, preocupaciones de cadena de custodia forense), usa el subcomando stream. Selecciona la fuente de memoria una vez al principio (mismo orden de preferencia que la ruta /dev/stdout de acquire — /proc/kcore, luego /dev/crash, luego /dev/mem; pasa --source para sobrescribir) y escribe los bytes secuencialmente en el destino elegido. La fuente no puede cambiarse a mitad de la transmisión, por lo que no hay respaldo automático de fuente.

A Azure Block Blob Storage

avml stream blob ${SAS_URL}
  • El tamaño de bloque se deriva automáticamente para que la captura quepa dentro del límite de 50.000 bloques por blob de Azure. --sas-block-size (MiB) actúa como un mínimo; si el mínimo derivado es mayor, prevalece el valor mayor.
  • --sas-block-concurrency limita el número de llamadas stage_block en vuelo. El pico de RAM es aproximadamente (concurrency + 1) * block_size.
  • Si la captura falla a mitad de la subida, los bloques preparados se abandonan sin ser confirmados; Azure los descarta automáticamente según su política estándar.

A un receptor TCP remoto

En el host recolector:

nc -l 9000 > snapshot.lime

En el host objetivo:

avml stream tcp collector.example.com:9000

avml se conecta una vez y escribe la captura secuencialmente. Si la conexión se cae a mitad de la transmisión, la captura se aborta; no hay reanudación. Sin TLS — combínalo con un túnel SSH o stunnel para confidencialidad e integridad si es necesario.

Subir una captura previamente adquirida

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

Capturar una imagen de memoria de una VM de Azure usando VM Extensions

En un host seguro con credenciales de az cli, haz lo siguiente:

  1. Genera una URL de SAS (ver arriba)
  2. Crea config.json con la siguiente información:
{
    "commandToExecute": "./avml acquire --compress --sas-url <GENERATED_SAS_URL> --delete",
    "fileUris": ["https://FULL.URL.TO.AVML.example.com/avml"]
}
  1. Ejecuta la extensión customScript con el config.json especificado
az vm extension set -g RESOURCE_GROUP --vm-name VM_NAME --publisher Microsoft.Azure.Extensions -n customScript --settings config.json

Para subir a AWS S3 o GCP Cloud Storage

En un host seguro, genera una URL prefirmada de S3 o genera una URL prefirmada de GCP.

En el host objetivo, ejecuta avml con la URL prefirmada generada.

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

Para descomprimir una imagen comprimida con AVML

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

Para comprimir una imagen LiME sin comprimir

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

Uso

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)

Ejecuta avml <COMMAND> --help para ver las opciones de cada comando.

Compilar en 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

Pruebas en Azure

Descargar herramienta