Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
avml — Ferramenta portátil de aquisição de RAM para Linux, voltada para perícia forense e resposta a incidentes, capturando imagens compatíveis com LiME com compactação opcional e streaming remoto. | Kitploit
Ferramentas/GitHubGitHub/microsoft/avml
Forensia de MemóriaAnálise ForenseForensia DigitalResposta a IncidentesTop em Forensia Digital nº10Top em Análise Forense nº10Top em Resposta a Incidentes nº11Top em Forensia de Memória nº3
GitHubmicrosoft/avml

avml

Ferramenta portátil de aquisição de RAM para Linux, voltada para perícia forense e resposta a incidentes, capturando imagens compatíveis com LiME com compactação opcional e streaming remoto.

Ver Repositório
1.1k9542há 4 diasRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

AVML (Adquirir Memória Volátil para Linux)

Resumo

Uma ferramenta portátil de aquisição de memória volátil para Linux.

AVML é uma ferramenta de aquisição de memória volátil em espaço de usuário para X86_64 escrita em Rust, projetada para ser implantada como um binário estático. AVML pode ser usado para adquirir memória sem conhecer a distribuição do sistema operacional alvo ou o kernel a priori. Nenhuma compilação ou fingerprinting no alvo é necessário.

Recursos

  • Salvar imagens gravadas em locais externos via Azure Blob Store ou HTTP PUT
  • Os uploads do Azure Blob Storage tentam novamente falhas transitórias por meio da política de backoff exponencial padrão do SDK do Azure (8 tentativas, limitadas a um minuto de tempo total decorrido).
  • Compressão opcional em nível de página usando Snappy.
  • Usa o formato de saída do LiME (quando não estiver usando compressão).

Fontes de Memória

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

Se a fonte de memória não for especificada na linha de comando, o AVML percorrerá as fontes de memória para encontrar uma fonte funcional.

NOTA: Se o recurso do kernel kernel_lockdown estiver habilitado, o AVML não conseguirá adquirir memória.

Distribuições Testadas

  • 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

Subcomandos

avml é um único binário com subcomandos. Cada subcomando é controlado por um recurso Cargo, para que uma compilação mínima inclua apenas a capacidade que você precisa:

SubcomandoRecursoPadrãoO que faz
acquire(sempre)simCaptura um snapshot da memória para um arquivo local (upload opcional depois).
convertconvertsimConverte entre formatos AVML / LiME / bruto.
uploaduploadsimEnvia um arquivo local via HTTP PUT ou para o Azure Block Blob.
streamstreamsimTransmite um snapshot diretamente para um destino, sem arquivo local.

Compile um binário mínimo somente de aquisição com cargo build --release --no-default-features.

Primeiros Passos

Capturando uma imagem de memória compactada

No host de destino:

avml acquire --compress output.lime.compressed

Capturando uma imagem de memória não compactada

No host de destino:

avml acquire output.lime

Capturando uma imagem de memória e enviando para o Azure Blob Store

Em um host seguro com credenciais do az cli, gere uma 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})

No host de destino, execute o avml com o token SAS gerado.

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

Transmitindo uma imagem de memória sem gravar no disco local

Para hosts onde gravar o snapshot em um arquivo local primeiro é indesejável (raiz somente leitura, disco limitado, preocupações com cadeia de custódia forense), use o subcomando stream. Ele escolhe a fonte de memória uma vez no início (mesma ordem de preferência do caminho /dev/stdout do acquire — /proc/kcore, depois /dev/crash, depois /dev/mem; use --source para substituir) e grava os bytes sequencialmente no destino escolhido. A fonte não pode ser alterada no meio da transmissão, portanto não há fallback automático de fonte.

Para o Azure Block Blob Storage

avml stream blob ${SAS_URL}
  • O tamanho do bloco é derivado automaticamente para que o snapshot caiba dentro do limite de 50.000 blocos por blob do Azure. --sas-block-size (MiB) atua como um piso; se o mínimo derivado for maior, o valor maior vence.
  • --sas-block-concurrency limita o número de chamadas stage_block em andamento. O pico de RAM é de aproximadamente (concurrency + 1) * block_size.
  • Se o snapshot falhar durante o upload, os blocos em estágio são abandonados sem serem confirmados; o Azure os descarta automaticamente de acordo com sua política padrão.

Para um listener TCP remoto

No host coletor:

nc -l 9000 > snapshot.lime

No host de destino:

avml stream tcp collector.example.com:9000

O avml conecta uma vez e grava o snapshot sequencialmente. Se a conexão cair no meio da transmissão, o snapshot é abortado; não há retomada. Sem TLS — utilize um túnel SSH ou stunnel para confidencialidade e integridade, se necessário.

Enviando um snapshot capturado anteriormente

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

Capturando uma imagem de memória de uma VM do Azure usando Extensões de VM

Em um host seguro com credenciais do az cli, faça o seguinte:

  1. Gere uma URL SAS (veja acima)
  2. Crie config.json contendo as seguintes informações:
{
    "commandToExecute": "./avml acquire --compress --sas-url <GENERATED_SAS_URL> --delete",
    "fileUris": ["https://FULL.URL.TO.AVML.example.com/avml"]
}
  1. Execute a extensão customScript com o config.json especificado
az vm extension set -g RESOURCE_GROUP --vm-name VM_NAME --publisher Microsoft.Azure.Extensions -n customScript --settings config.json

Para enviar para AWS S3 ou GCP Cloud Storage

Em um host seguro, gere uma URL pré-assinada do S3 ou gere uma URL pré-assinada do GCP.

No host de destino, execute o avml com a URL pré-assinada gerada.

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

Para descompactar uma imagem compactada pelo AVML

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

Para compactar uma imagem LiME não compactada

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)

Execute avml <COMMAND> --help para obter opções por comando.

Compilando no 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

Testes no Azure

Os scripts de teste criarão, usarão e limparão vários grupos de recursos, máquinas virtuais e uma conta de armazenamento.

Baixar ferramenta