{"id":538,"date":"2019-09-28T20:40:53","date_gmt":"2019-09-28T18:40:53","guid":{"rendered":"https:\/\/privat.andreas-klingler.de\/itsec\/?p=538"},"modified":"2025-03-21T14:50:34","modified_gmt":"2025-03-21T13:50:34","slug":"forensic","status":"publish","type":"post","link":"https:\/\/infosec.andreas-klingler.de\/?p=538","title":{"rendered":"Memory dump"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">After\u00adwards: <a href=\"https:\/\/andreas-klingler.de\/infosec\/?p=4834\" data-type=\"post\" data-id=\"4834\">See Ana\u00adlyz\u00ading memory<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Linux<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Prozess memory dump<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Find out which mem\u00ado\u00adry seg\u00adments are used by an appli\u00adca\u00adtion via its&nbsp;<span class=\"caps\">PID<\/span>:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">cat \/proc\/&lt;pid&gt;\/maps<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Dump the used mem\u00ado\u00adry from an appli\u00adca\u00adtion: (<a href=\"https:\/\/serverfault.com\/a\/408929\">cred\u00adit<\/a>)<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">#!\/bin\/bash\n\ngrep rw-p \/proc\/$1\/maps \\\n| sed -n 's\/^\\([0-9a-f]*\\)-\\([0-9a-f]*\\) .*$\/\\1 \\2\/p' \\\n| while read start stop; do \\\n  gdb --batch --pid $1 -ex \\\n    \"dump memory $1-$start-$stop.dump 0x$start 0x$stop\"; \\\ndone<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Complete memory dump<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">fmem<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Requires root priv\u00adi\u00adleges. <em>Could be out\u00addat\u00aded and not work on new\u00ader lin\u00adux machines.<\/em><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Down\u00adload fmem ker\u00adnel mod\u00adule: <a href=\"https:\/\/github.com\/NateBrune\/fmem\">https:\/\/github.com\/NateBrune\/fmem<\/a><\/li>\n\n\n\n<li>make <span class=\"amp\">&amp;<\/span><span class=\"amp\">&amp;<\/span> .\/run to com\u00adpile and add it to the kernel<\/li>\n\n\n\n<li>dd if=\/dev\/fmem of=memory.dd bs=<span class=\"caps\">1MB<\/span> count=512 \u2014 for 512 <span class=\"caps\">MB<\/span> <span class=\"caps\">RAM<\/span>. Adjust accordingly.<\/li>\n<\/ol>\n\n\n\n<h4 class=\"wp-block-heading\">lime<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li>git clone https:\/\/github.com\/504ensicsLabs\/LiME<\/li>\n\n\n\n<li>cd src<\/li>\n\n\n\n<li>make<\/li>\n\n\n\n<li>Load the mod\u00adule and cre\u00adate the&nbsp;image:&nbsp;<ol class=\"wp-block-list\">\n<li>Into a local file: ins\u00admod lime-&lt;generated-module&gt;.ko \u201cpath=\/&lt;output-file&gt;.mem format=lime\u201d<\/li>\n\n\n\n<li>Into a remote file:&nbsp;<ol class=\"wp-block-list\">\n<li>On the vic\u00adtim: ins\u00admod lime-&lt;generated-module&gt;.ko \u201cpath=tcp:4444 format=lime\u201d<\/li>\n\n\n\n<li>On the tar\u00adget: nc &lt;vic\u00adtim-ip&gt; 4444 &gt; system.mem<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n\n\n\n<li>Cre\u00adat\u00ading a sys\u00adtem pro\u00adfile (maybe: apt-get install dwarfdump):&nbsp;<ol class=\"wp-block-list\">\n<li>git clone https:\/\/github.com\/volatilityfoundation\/volatility.git<\/li>\n\n\n\n<li>cd volatility\/tools\/linux<\/li>\n\n\n\n<li>make<\/li>\n\n\n\n<li>zip &lt;system-name&gt;.zip module.dwarf \/boot\/Sys\u00adtem-map-of-cur\u00adrent-ker\u00adnel<\/li>\n\n\n\n<li>Copy &lt;system-name&gt;.zip to the tar\u00adget server.<\/li>\n<\/ol>\n<\/li>\n\n\n\n<li>On the tar\u00adget server:&nbsp;<ol class=\"wp-block-list\">\n<li>Copy &lt;system-name&gt;.zip into the plugins\/overlays\/linux\/ directory.<\/li>\n\n\n\n<li>Make sure that the new pro\u00adfile is loaded with python vol.py \u2013info | grep &lt;sys\u00adtem-name&gt;<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n\n\n\n<h4 class=\"wp-block-heading\">Recall<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Frame\u00adwork for mem\u00ado\u00adry inves\u00adti\u00adga\u00adtion: https:\/\/github.com\/google\/rekall<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cheat sheet: https:\/\/digital-forensics.sans.org\/media\/rekall-memory-forensics-cheatsheet.pdf<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Could\u00adn\u2019t build on a Vm.&nbsp;hm\u2026<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Windows<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Files, which also con\u00adtains memory:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>C:\\pagefile.sys<\/li>\n\n\n\n<li>C:\\swapfile.sys<\/li>\n\n\n\n<li>C:\\hiberfil.sys<\/li>\n\n\n\n<li>C:\\Windows\\memory.dmp<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">WinPmem<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Open Source pyh\u00adsi\u00adcal acquisition.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/github.com\/Velocidex\/WinPmem\">GitHub \u2014 Velocidex\/WinPmem: The mul\u00adti-plat\u00adform mem\u00ado\u00adry acqui\u00adsi\u00adtion&nbsp;tool.<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Exterro <span class=\"caps\">FTK<\/span> Imager<\/h3>\n\n\n\n<h3 class=\"wp-block-heading\">Magnet DumpIt<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>After\u00adwards: See Ana\u00adlyz\u00ading mem\u00ado\u00adry Lin\u00adux Prozess mem\u00ado\u00adry dump Find out which mem\u00ado\u00adry seg\u00adments are used by an appli\u00adca\u00adtion via its&nbsp;<span class=\"caps\">PID<\/span>: cat \/proc\/&lt;pid&gt;\/maps Dump the used mem\u00ado\u00adry from an appli\u00adca\u00adtion: (cred\u00adit) #!\/bin\/bash grep rw\u2011p \/proc\/$1\/maps \\ | sed \u2011n \u2018s\/^\\([0\u20139a\u2011f]*\\)-\\([0\u20139a\u2011f]*\\) .*$\/\\1 \\2\/p\u2019 \\ | while read start stop; do \\ gdb \u2013batch \u2013pid $1 \u2011ex \\ [\u2026]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"wp_typography_post_enhancements_disabled":false,"footnotes":""},"categories":[512],"tags":[154,155,61,159,33,153,158],"class_list":["post-538","post","type-post","status-publish","format-standard","hentry","category-incident-response","tag-dump","tag-fmem","tag-forensic","tag-lime","tag-linux","tag-memory","tag-volatility"],"_links":{"self":[{"href":"https:\/\/infosec.andreas-klingler.de\/index.php?rest_route=\/wp\/v2\/posts\/538","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/infosec.andreas-klingler.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/infosec.andreas-klingler.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/infosec.andreas-klingler.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/infosec.andreas-klingler.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=538"}],"version-history":[{"count":21,"href":"https:\/\/infosec.andreas-klingler.de\/index.php?rest_route=\/wp\/v2\/posts\/538\/revisions"}],"predecessor-version":[{"id":4848,"href":"https:\/\/infosec.andreas-klingler.de\/index.php?rest_route=\/wp\/v2\/posts\/538\/revisions\/4848"}],"wp:attachment":[{"href":"https:\/\/infosec.andreas-klingler.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=538"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/infosec.andreas-klingler.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=538"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/infosec.andreas-klingler.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=538"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}