Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
avml — 포렌식 및 침해 대응을 위한 휴대용 Linux RAM 수집 도구로, 선택적 압축 및 원격 스트리밍을 지원하며 LiME 호환 이미지를 캡처합니다. | Kitploit
도구/GitHubGitHub/microsoft/avml
Memory ForensicsForensicsDigital ForensicsIncident ResponseDigital Forensics #10위Forensics #10위Incident Response #11위Memory Forensics #3위
GitHub
1.1k95424일 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
microsoft/avml

avml

포렌식 및 침해 대응을 위한 휴대용 Linux RAM 수집 도구로, 선택적 압축 및 원격 스트리밍을 지원하며 LiME 호환 이미지를 캡처합니다.

저장소 보기

AVML (Linux용 휘발성 메모리 획득)

요약

Linux용 휴대용 휘발성 메모리 획득 도구.

AVML은 Rust로 작성된 X86_64 사용자 영역(userland) 휘발성 메모리 획득 도구로, 정적 바이너리로 배포되도록 설계되었습니다. AVML은 대상 OS 배포판이나 커널을 사전에 알지 못해도 메모리를 획득할 수 있습니다. 대상 시스템에서의 컴파일이나 핑거프린팅이 필요하지 않습니다.

기능

  • Azure Blob Store 또는 HTTP PUT을 통해 캡처한 이미지를 외부 위치에 저장
  • Azure Blob Storage 업로드는 Azure SDK의 기본 지수 백오프 정책을 통해 일시적 오류를 재시도합니다(최대 8회 시도, 총 경과 시간 1분으로 제한).
  • Snappy를 사용한 선택적 페이지 수준 압축
  • (압축을 사용하지 않을 때) LiME 출력 형식 사용

메모리 소스

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

메모리 소스가 명령줄에 지정되지 않은 경우, AVML은 메모리 소스를 순회하여 사용 가능한 소스를 찾습니다.

참고: 커널 기능 kernel_lockdown이 활성화되어 있으면 AVML은 메모리를 획득할 수 없습니다.

테스트된 배포판

  • 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

하위 명령어

avml은 하위 명령어를 포함하는 단일 바이너리입니다. 각 하위 명령어는 Cargo 기능(feature)으로 제어되므로 최소 빌드에는 필요한 기능만 포함됩니다:

하위 명령어기능(feature)기본값설명
acquire(항상)예메모리를 로컬 파일로 스냅샷(선택적으로 이후 업로드).
convertconvert예AVML / LiME / raw 형식 간 변환.
uploadupload예로컬 파일을 HTTP PUT 또는 Azure Block Blob으로 업로드.
streamstream예스냅샷을 로컬 파일 없이 대상으로 직접 스트리밍.

획득(acquire) 전용 최소 바이너리는 cargo build --release --no-default-features로 빌드합니다.

시작하기

압축된 메모리 이미지 캡처

대상 호스트에서:

avml acquire --compress output.lime.compressed

압축되지 않은 메모리 이미지 캡처

대상 호스트에서:

avml acquire output.lime

메모리 이미지 캡처 및 Azure Blob Store 업로드

az cli 자격 증명이 있는 보안 호스트에서 SAS URL을 생성합니다.

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

대상 호스트에서 생성된 SAS 토큰으로 avml을 실행합니다.

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

로컬 디스크에 쓰지 않고 메모리 이미지 스트리밍

스냅샷을 먼저 로컬 파일로 쓰는 것이 바람직하지 않은 호스트(읽기 전용 루트 파일시스템, 디스크 공간 제한, 포렌식 증거 관리(chain-of-custody) 문제)에서는 stream 하위 명령어를 사용하세요. 이 명령은 메모리 소스를 처음에 한 번 선택하고(acquire의 /dev/stdout 경로와 동일한 우선순위 순서 — /proc/kcore, 그다음 /dev/crash, 마지막으로 /dev/mem; 재정의하려면 --source를 전달) 선택한 대상에 바이트를 순차적으로 기록합니다. 스트리밍 중에는 소스를 변경할 수 없으므로 자동 소스 대체(fallback)는 없습니다.

Azure Block Blob Storage로

avml stream blob ${SAS_URL}
  • 블록 크기는 스냅샷이 Azure의 blob당 50,000블록 제한에 맞도록 자동으로 계산됩니다. --sas-block-size(MiB)는 최소값으로 작동하며, 계산된 최소값이 더 크면 더 큰 값이 적용됩니다.
  • --sas-block-concurrency는 동시 진행 중인 stage_block 호출 수를 제한합니다. 최대 RAM 사용량은 약 (concurrency + 1) * block_size입니다.
  • 업로드 도중 스냅샷이 실패하면 스테이징된 블록은 커밋되지 않고 버려집니다. Azure는 표준 정책에 따라 이를 자동으로 삭제합니다.

원격 TCP 리스너로

수집 호스트에서:

nc -l 9000 > snapshot.lime

대상 호스트에서:

avml stream tcp collector.example.com:9000

avml은 한 번 연결하여 스냅샷을 순차적으로 기록합니다. 스트리밍 중 연결이 끊어지면 스냅샷은 중단되며 재개(resume) 기능은 없습니다. TLS가 없으므로, 필요하다면 기밀성과 무결성을 위해 SSH 터널이나 stunnel과 함께 사용하세요.

이전에 캡처한 스냅샷 업로드

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

VM 확장을 사용하여 Azure VM의 메모리 이미지 캡처

az cli 자격 증명이 있는 보안 호스트에서 다음을 수행합니다:

  1. SAS URL 생성(위 참조)
  2. 다음 정보가 포함된 config.json 생성:
{
    "commandToExecute": "./avml acquire --compress --sas-url <GENERATED_SAS_URL> --delete",
    "fileUris": ["https://FULL.URL.TO.AVML.example.com/avml"]
}
  1. 지정된 config.json으로 customScript 확장을 실행합니다.
az vm extension set -g RESOURCE_GROUP --vm-name VM_NAME --publisher Microsoft.Azure.Extensions -n customScript --settings config.json

AWS S3 또는 GCP Cloud Storage에 업로드

보안 호스트에서 S3 사전 서명 URL 또는 GCP 사전 서명 URL을 생성합니다.

대상 호스트에서 생성된 사전 서명 URL로 avml을 실행합니다.

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

AVML 압축 이미지 압축 해제

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

압축되지 않은 LiME 이미지 압축

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

사용법

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)

각 명령의 옵션을 보려면 avml <COMMAND> --help를 실행하세요.

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

Azure에서 테스트

테스트 스크립트는 여러 리소스 그룹, 가상 머신 및 스토리지 계정을 생성, 사용 및 정리합니다.

  1. az cli 설치
  2. az login을 사용하여 Azure 구독에 로그인
  3. avml 빌드(위 참조)
  4. ./eng/test-on-azure.sh

기여

이 프로젝트는 기여와 제안을 환영합니다. 대부분의 기여는 기여 내용을 사용할 권리를 당사에 부여할 자격이 있으며 실제로 그 권리를 부여한다는 내용의 기여자 라이선스 계약(CLA)에 동의해야 합니다. 자세한 내용은 https://cla.microsoft.com을 방문하세요.

풀 리퀘스트를 제출하면 CLA-bot이 CLA 제공이 필요한지 자동으로 판단하고 적절히 PR을 처리합니다(예: 라벨, 코멘트). 봇이 제공하는 지침을 따르기만 하면 됩니다. 이 작업은 당사의 CLA를 사용하는 모든 저장소에서 한 번만 수행하면 됩니다.

이 프로젝트는 Microsoft 오픈소스 행동 강령을 채택했습니다. 자세한 내용은 행동 강령 FAQ를 참조하거나 추가 질문이나 의견이 있으면 [email protected]으로 문의하세요.

보안 문제 신고

보안 문제와 버그는 이메일을 통해 Microsoft 보안 대응 센터(MSRC) [email protected]로 비공개로 신고해 주세요. 24시간 이내에 응답을 받을 수 있습니다. 어떤 이유로든 응답을 받지 못한 경우, 원래 메시지를 받았는지 확인할 수 있도록 이메일로 후속 연락을 취해 주시기 바랍니다. MSRC PGP 키를 포함한 추가 정보는 Security TechCenter에서 확인할 수 있습니다.

도구 다운로드