Como despejar imagem de memória do sistema linux?

18

Eu sei despejar imagens de memória no Windows. (por exemplo, dumpit) Mas não sei como despejar imagens de memória no Linux.

Eu quero obter imagens de memória no Linux e do Linux para o Linux com conexão ssh ou algo assim.

Como posso entrar no Linux?

bakie
fonte
5
Você está tentando obter memória de um processo em execução, memória do kernel ou memória física bruta? Todos estão disponíveis, mas os métodos de acesso diferem. Veja / dev / kmem, / dev / mem, / proc / kcore, / proc / $ pid / maps e / proc / $ pid / mem.
quer
Dê uma olhada nestas perguntas e respostas: superuser.com/questions/164960/…
slm

Respostas:

26

No Wiki do Forensic: Ferramentas: Imagens de memória

excerto

Linux

/ dev / mem

Em sistemas Linux mais antigos, o programa dd pode ser usado para ler o conteúdo da memória física no arquivo do dispositivo / dev / mem. Em sistemas Linux recentes, no entanto, / dev / mem fornece acesso apenas a um intervalo restrito de endereços, em vez da memória física completa de um sistema. Em outros sistemas, pode não estar disponível. Em toda a série 2.6 do kernel Linux, a tendência era reduzir o acesso direto à memória via arquivos de pseudo-dispositivo. Veja, por exemplo, a mensagem que acompanha este patch: http://lwn.net/Articles/267427/ .

/ dev / crash

Nos sistemas Red Hat (e naqueles que executam distribuições relacionadas, como Fedora ou CentOS), o driver de falha pode ser carregado para criar pseudo-dispositivo / dev / crash para acesso bruto à memória física (via comando "modprobe crash"). Este módulo também pode ser compilado para outras distribuições Linux com pouco esforço (veja, por exemplo, http://gleeda.blogspot.com/2009/08/devcrash-driver.html ). Quando o driver de falha é modificado, compilado e carregado em outros sistemas, o dispositivo de acesso à memória resultante não é seguro para a imagem na sua totalidade. Deve-se tomar cuidado para evitar endereços que não sejam suportados por RAM. No Linux, / proc / iomem expõe os intervalos de endereços corretos à imagem, marcados com "RAM do sistema".

Segundo olhar: Linux Memory Forensics

Este produto forense de memória comercial é fornecido com uma versão modificada do driver de falha e um script para descarregar com segurança a memória usando o driver original ou modificado em qualquer sistema Linux.

fmem fmem - repositório do github

O fmem é um módulo do kernel que cria o dispositivo / dev / fmem, semelhante ao / dev / mem, mas sem limitações. Este dispositivo (RAM física) pode ser copiado usando o dd ou outra ferramenta. Funciona em kernels 2.6 do Linux. Sob GNU GPL.

LiME - Extrator de memória Linux

O Linux Memory Extractor (LiME) é um LKM (Loadable Kernel Module), que permite a aquisição de memória volátil de dispositivos baseados em Linux e Linux, como aqueles equipados com Android. A ferramenta suporta o despejo de memória no sistema de arquivos do dispositivo ou na rede.

Eu encontrei este exemplo de fmemem uso, que parece ser a maneira mais fácil de despejar memória para fins de análise, você não pode mais usar /dev/memapós os kernels 2.6.x, pelo que entendi.

Exemplo fmem

$ ./run.sh
...
----Memory areas: -----
reg00: base=0x000000000 (    0MB), size= 1024MB, count=1: write-back
reg01: base=0x0c8800000 ( 3208MB), size=    2MB, count=1: write-combining
-----------------------
!!! Don't forget add "count=" to dd !!!


$ ls /dev/f*
/dev/fb0  /dev/fd0  /dev/fmem  /dev/full  /dev/fuse


$ sudo dd if=/dev/fmem of=/tmp/fmem_dump.dd bs=1MB count=10
10+0 records in
10+0 records out
10000000 bytes (10 MB) copied, 0.0331212 s, 302 MB/s

* Fonte: Como posso despejar toda a memória física em um arquivo?

Exemplo do LiME

Para analisar a memória volátil, há também esta página, intitulada: Linux Memory Analysis . Há um exemplo completo neste tutorial em vídeo que mostra o uso do LiME e do Volatility para coletar um despejo de memória e depois analisá-lo, extraindo o histórico de Bash do usuário do despejo de memória.

O quê mais?

Também há uma sessão de perguntas e respostas sobre questões de perguntas e respostas intitulada: Como despejar a memória completa do sistema? que tem exemplos e informações adicionais.

slm
fonte
-3
dc3dd if=/proc/kcore of=/mount/.
Larytet
fonte
2
Alguma explicação seria legal.
Phd #