Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
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.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
Ferramentas/GitHubGitHub/microsoft/avml
Forensia de MemóriaAnálise ForenseForensia DigitalResposta a Incidentes
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.1k96há 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:

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:

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

Capturando uma imagem de memória não compactada

No host de destino:

root@kitploit:~
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.

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

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

root@kitploit:~
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

root@kitploit:~
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:

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

No host de destino:

root@kitploit:~
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

root@kitploit:~
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:
root@kitploit:~
{
    "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
root@kitploit:~
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.

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

Para descompactar uma imagem compactada pelo AVML

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

Para compactar uma imagem LiME não compactada

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

Uso

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)

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

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

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.

  1. Instale o az cli
  2. Faça login na sua assinatura do Azure usando: az login
  3. Compile o avml (veja acima)
  4. ./eng/test-on-azure.sh

Contribuindo

Este projeto recebe contribuições e sugestões. A maioria das contribuições exige que você concorde com um Contrato de Licença de Contribuidor (CLA) declarando que você tem o direito de nos conceder, e de fato concede, os direitos de usar sua contribuição. Para obter detalhes, visite https://cla.microsoft.com.

Ao enviar um pull request, um bot de CLA determinará automaticamente se você precisa fornecer um CLA e decorará o PR adequadamente (por exemplo, etiqueta, comentário). Basta seguir as instruções fornecidas pelo bot. Você só precisará fazer isso uma vez em todos os repositórios que usam nosso CLA.

Este projeto adotou o Código de Conduta de Código Aberto da Microsoft. Para mais informações, consulte as Perguntas frequentes sobre o Código de Conduta ou entre em contato com [email protected] com quaisquer perguntas ou comentários adicionais.

Relatando Problemas de Segurança

Problemas de segurança e bugs devem ser relatados em particular, por e-mail, ao Microsoft Security Response Center (MSRC) em [email protected]. Você deve receber uma resposta em até 24 horas. Se por algum motivo não receber, envie um e-mail de acompanhamento para garantir que recebemos sua mensagem original. Mais informações, incluindo a chave PGP do MSRC, podem ser encontradas no Security TechCenter.

Baixar ferramenta
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.