Webcast Tutorial: Análise de dumps de memória no GNU/Linux

586 views
541 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
586
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
25
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Webcast Tutorial: Análise de dumps de memória no GNU/Linux

  1. 1.  Experiência em missão crítica de missão crítica Pioneira no ensino de Linux à distância Parceira de treinamento IBM Primeira com LPI no Brasil + de 30.000 alunos satisfeitos Reconhecimento internacional Inovação com Hackerteen e Boteconet www.4linux.com.br 2 / 12
  2. 2. Análise de dumps de memória no GNU/Linux www.4linux.com.br 3 / 12
  3. 3. O que é um dump?→ É uma imagem perfeita do conteúdo de umamemória volátil. Ou seja, é uma cópia de todos osbytes numa determinada região de memória.Geralmente esta cópia é gravada num arquivo emdisco ou pen drive. Este arquivo, chamado dedump, é um amontoado de bytes agregados esua interpretação requer análise. www.4linux.com.br 4 / 12
  4. 4. Acesso à memória no Linux/dev/mem ???$ man man 1 Executable programs or shell commands 2 System calls (functions provided by the kernel) 3 Library calls (functions within program libraries) 4 Special files (usually found in /dev) 5 File formats and conventions eg /etc/passwd 6 Games 7 Miscellaneous (including macro packages and conventions) 8 System administration commands (usually only for root) 9 Kernel routines [Non standard]$ man 4 mem www.4linux.com.br 5 / 12
  5. 5. Acesso à memória no Linux/dev/mem é um dispositivo que nos permite mapear qualquer endereçofísico, incluindo os da RAM e de memórias de periféricos. Um errocomum é pensar que o /dev/mem só mapeia a RAM utilizada pelosistema operacional.Um dump completo, que incluirá o que está em RAM, é possível com:# dd if=/dev/mem of=/root/dump.binou# apt-get install memdump# memdump -v > dump.bin www.4linux.com.br 6 / 12
  6. 6. Proteção de memória# grep DEVMEM /boot/config-$(uname -r)CONFIG_STRICT_DEVMEM=yDessa forma, tanto leitura quanto escrita são proibidas, no entanto,conforme comentário no fonte init.c do kernel, o acesso ao primeiromegabyte desta área é concecido, porque nele reside o código do BIOS edados utilizados pelo X:/* * devmem_is_allowed() checks to see if /dev/mem access to a certain address * is valid. The argument is a physical page number. * * * On x86, access has to be given to the first megabyte of ram because that area * contains bios code and data regions used by X and dosemu and similar apps. * Access has to be given to non-kernel-ram areas as well, these contain the PCI * mmio resources as well as potential bios/acpi data regions. */https://github.com/torvalds/linux/blob/master/arch/x86/mm/init.c#L303 www.4linux.com.br 7 / 12
  7. 7. Bypass da proteçãoA proteção inutiliza o dd:# dd if=/dev/mem of=dump.bindd: lendo "/dev/mem": Operação não permitida2056+0 registros de entrada2056+0 registros de saída1052672 bytes (1,1 MB) copiados, 0,0462861 s, 22,7 MB/sMas podemos utilizar o módulo fmem (antigo fdump), que criará odispoistivo /dev/fmem – sem as limitações do /dev/mem:$ wget -c http://hysteria.sk/~niekt0/foriana/foriana_current.tgz$ tar xzf foriana_current.tgz$ cd fmem_1.6-1/$ make$ sudo ./run.sh www.4linux.com.br 8 / 12
  8. 8. Análise do dump# dd bs=1M count=8006 if=/dev/fmem of=dump.binO parâmetro count é obrigatório pode ser o total de RAM no sistema (defato, só será dumpado o que estiver mapeado pelo SO para uso). Vocêpode checar com free -m.$ strings -t x dump.bin > str.txt$ sudo apt-get install foremost$ mkdir recover$ foremost -v -b 1024 -i dump.bin -o recover/O foremost suporta vários tipos de arquivos, como jpg, bmp, gif, png,exe, dll, documentos do Office, LibreOffice, zip, rar etc. www.4linux.com.br 9 / 12
  9. 9. Recuperados com o Foremost# ls ­R recover/recover/:audit.txt  bmp dll  gif  htm  jpg  pdf  pngrecover/bmp:00005248.bmprecover/dll:00004622.dllrecover/gif:00962274.gif  00979531.gif  01001291_1.gif 00968056.gif  00981979.gif  01001291_2.gif00968193.gif  00982418.gif  01001291.gif   00975759.gif  00985118.gif  01002993.gif00979265.gif  00998234.gif  01002994.gifrecover/htm:00943193.htm  01039003.htm  01042419.htmrecover/jpg:00982590.jpg  00987601.jpg  00990427.jpgrecover/pdf:00941876.pdfrecover/png:00970880.png  00990424.png  00997986.png  00979102.png  00990425.png  00998151.png00979105.png  00990426.png  00998160.png  00980376.png  00990430.png  00998214.png00980378.png  00994364.png  00998228.png  00980389.png  00996290.png  00998256.png00980398.png  00997938.png  00998852.png  00982704.png  00997948.png  00999042.png www.4linux.com.br 10 / 12
  10. 10. Obrigado Perguntas? www.4linux.com.br 11 / 12
  11. 11. Obrigado Fernando Mercês fernando.merces@4linux.com.br www.4linux.com.br www.hackerteen.com twitter.com/4LinuxBR Tel: 55-11-2125-4747 www.4linux.com.br 12 / 12

×