Come posso scaricare la memoria fisica in Linux?


22

Come si potrebbe creare un dump della memoria fisica (RAM) in Linux?

Quale software è disponibile per questo scopo?

Ho letto che non si dovrebbe scrivere su un disco locale ma piuttosto inviare i dati in rete. Qualcuno conosce le peculiarità qui? Ethernet funzionerebbe a questo scopo o ci sono dei comandi che riducono al minimo la quantità di cache prima di inviarla al disco?

WinHex su Windows ha una tale funzionalità:

inserisci qui la descrizione dell'immagine

Sto cercando qualcosa di simile su Linux.

Risposte:


22

Ecco una pagina eHow su come scaricare la memoria Linux

Linux fornisce due dispositivi virtuali per questo scopo, ' /dev/mem' e ' /dev/kmem', sebbene molte distribuzioni li disabilitino di default per motivi di sicurezza. ' /dev/mem' è collegato alla memoria del sistema fisico, mentre ' /dev/kmem' è mappato all'intero spazio di memoria virtuale, incluso qualsiasi scambio. Entrambi i dispositivi funzionano come file normali e possono essere utilizzati con dd o qualsiasi altro strumento di manipolazione dei file.

Questo porta alla pagina di ForensicsWiki su Memory Imaging Tools con la sezione Linux / Unix ,

  1. dd Sui sistemi Unix, il programma dd può essere utilizzato per acquisire il contenuto della memoria fisica utilizzando un file dispositivo (ad esempio / dev / mem e / dev / kmem). Negli ultimi kernel Linux, / dev / kmem non è più disponibile. Nei kernel ancora più recenti, / dev / mem ha restrizioni aggiuntive. E nel più recente / dev / mem non è più disponibile per impostazione predefinita. Durante tutta la serie di kernel 2.6 la tendenza è stata quella di ridurre l'accesso diretto alla memoria tramite file pseudo-dispositivo. Vedi, ad esempio, il messaggio che accompagna questa patch: http://lwn.net/Articles/267427/ . Sui sistemi Red Hat (e distribuzioni derivate come CentOS), il driver del crash può essere caricato per creare uno pseudo-dispositivo per l'accesso alla memoria ("crash del modprobe").
  2. Secondo aspetto Questo prodotto di analisi della memoria commerciale ha la capacità di acquisire memoria dai sistemi Linux, localmente o da una destinazione remota tramite DMA o sulla rete. Viene fornito con moduli PMAD (Physical Memory Access Driver) precompilati per centinaia di kernel delle distribuzioni Linux più comunemente utilizzate.
  3. Idetect (Linux)
  4. fmem (Linux)
    fmem è il modulo del kernel, che crea device / dev / fmem, simile a / dev / mem ma senza limitazioni. Questo dispositivo (RAM fisica) può essere copiato usando dd o altri strumenti. Funziona su kernel Linux 2.6. Sotto GNU GPL.
  5. Goldfish
    Goldfish è uno strumento forense live di Mac OS X che può essere utilizzato solo dalle forze dell'ordine. Il suo scopo principale è fornire un'interfaccia facile da usare per scaricare la RAM di sistema di una macchina target tramite una connessione Firewire. Quindi estrae automaticamente la password di accesso dell'utente corrente e tutti i frammenti di conversazione AOL Instant Messenger aperti che potrebbero essere disponibili. Le forze dell'ordine possono contattare goldfish.ae per informazioni sul download.

Vedi anche: Analisi della memoria Linux .
C'è anche GDB comunemente disponibile sulla maggior parte dei Linux.
Inoltre, si consiglia sempre di evitare di scrivere su una memoria sconosciuta, poiché può portare alla corruzione del sistema.


1
Qualcuno ha provato questo su un recente sistema Ubuntu?

1
no / dev / mem o / dev / kmem sul mio sistema debian.
Rob

L'ho appena fatto sulla mia VM CentOS 7.x.
slm,

4

La volatilità sembra funzionare bene ed è compatibile con Windows e Linux.

Dal loro sito Web:

La volatilità supporta i dump di memoria da tutte le principali versioni e service pack di Windows a 32 e 64 bit, inclusi XP, 2003 Server, Vista, Server 2008, Server 2008 R2 e Seven. Sia che il dump della memoria sia in formato non elaborato, un dump di arresto anomalo di Microsoft, un file di ibernazione o un'istantanea della macchina virtuale, Volatility è in grado di funzionare con esso. Ora supportiamo anche i dump della memoria Linux in formato raw o LiME e includiamo oltre 35 plug-in per l'analisi dei kernel Linux a 32 e 64 bit da 2.6.11 a 3.5.xe distribuzioni come Debian, Ubuntu, OpenSuSE, Fedora, CentOS e Mandragora. Supportiamo 38 versioni di dump di memoria Mac OSX da 10.5 a 10.8.3 Mountain Lion, sia a 32 che a 64 bit. Sono supportati anche telefoni Android con processori ARM.



0

Come conferma sono stato in grado di scaricare la memoria della mia VM CentOS 7.x usando questo metodo:

$ head /dev/mem | hexdump -C
00000000  53 ff 00 f0 53 ff 00 f0  53 ff 00 f0 53 ff 00 f0  |S...S...S...S...|
00000010  53 ff 00 f0 53 ff 00 f0  cc e9 00 f0 53 ff 00 f0  |S...S.......S...|
00000020  a5 fe 00 f0 87 e9 00 f0  53 ff 00 f0 46 e7 00 f0  |........S...F...|
00000030  46 e7 00 f0 46 e7 00 f0  57 ef 00 f0 53 ff 00 f0  |F...F...W...S...|
00000040  22 00 00 c0 4d f8 00 f0  41 f8 00 f0 fe e3 00 f0  |"...M...A.......|
00000050  39 e7 00 f0 59 f8 00 f0  2e e8 00 f0 d4 ef 00 f0  |9...Y...........|
00000060  a4 f0 00 f0 f2 e6 00 f0  6e fe 00 f0 53 ff 00 f0  |........n...S...|
00000070  ed ef 00 f0 53 ff 00 f0  c7 ef 00 f0 ed 57 00 c0  |....S........W..|
00000080  53 ff 00 f0 53 ff 00 f0  53 ff 00 f0 53 ff 00 f0  |S...S...S...S...|
*
00000100  59 ec 00 f0 3d 00 c0 9f  53 ff 00 f0 ed 69 00 c0  |Y...=...S....i..|
00000110  53 ff 00 f0 53 ff 00 f0  53 ff 00 f0 53 ff 00 f0  |S...S...S...S...|
*
00000180  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000afea0  00 00 00 00 00 00 00 00  aa aa aa 00 aa aa aa 00  |................|
000afeb0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
...
...
000b0000  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
*
000c0000  55 aa 40 e9 62 0a 00 00  00 00 00 00 00 00 00 00  |U.@.b...........|
000c0010  00 00 00 00 00 00 00 00  00 00 00 00 00 00 49 42  |..............IB|
000c0020  4d 00 9c 80 fc 0f 75 06  e8 4f 01 e9 bc 00 80 fc  |M.....u..O......|

Dato questo 55aah che si verifica nell'intervallo c0000h-effffh, è probabilmente l'intestazione di espansione PNP:

Riferimento: specifica di avvio del BIOS

3.3 Dispositivi con intestazioni di espansione PnP

Tutti i dispositivi IPL con ROM opzionali devono contenere un'intestazione ROM opzionale valida che risiede tra gli indirizzi di memoria di sistema C0000h ed EFFFFh su un confine 2k e inizia con 55AAh. L'avvio di un dispositivo può essere controllato solo se ha un'intestazione di espansione PnP. L'intestazione di espansione, il cui indirizzo risiede nell'intestazione ROM dell'opzione standard a offset + 1Ah, contiene informazioni importanti utilizzate per configurare il dispositivo. Contiene inoltre i puntatori al codice nella ROM opzionale del dispositivo (BCV o BEV) che il BIOS chiamerà per l'avvio dal dispositivo. Vedere l'appendice A per la struttura dell'intestazione di espansione PnP. Esistono due modi per avviare un dispositivo IPL con un'intestazione di espansione PnP. Deve contenere un BCV o un BEV.

Riferimenti

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.