SlideShare uma empresa Scribd logo
1 de 12
Baixar para ler offline
   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
Análise de dumps
 de memória no
   GNU/Linux



    www.4linux.com.br   3 / 12
O que é um dump?

→ É uma imagem perfeita do conteúdo de uma
memória volátil. Ou seja, é uma cópia de todos os
bytes numa determinada região de memória.
Geralmente esta cópia é gravada num arquivo em
disco ou pen drive. Este arquivo, chamado de
dump, é um amontoado de bytes agregados e
sua interpretação requer análise.




                    www.4linux.com.br         4 / 12
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
Acesso à memória no Linux

/dev/mem é um dispositivo que nos permite mapear qualquer endereço
físico, incluindo os da RAM e de memórias de periféricos. Um erro
comum é pensar que o /dev/mem só mapeia a RAM utilizada pelo
sistema operacional.

Um dump completo, que incluirá o que está em RAM, é possível com:

# dd if=/dev/mem of=/root/dump.bin

ou

# apt-get install memdump
# memdump -v > dump.bin




                            www.4linux.com.br                   6 / 12
Proteção de memória
# grep DEVMEM /boot/config-$(uname -r)
CONFIG_STRICT_DEVMEM=y

Dessa forma, tanto leitura quanto escrita são proibidas, no entanto,
conforme comentário no fonte init.c do kernel, o acesso ao primeiro
megabyte desta área é concecido, porque nele reside o código do BIOS e
dados 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
Bypass da proteção
A proteção inutiliza o dd:

# dd if=/dev/mem of=dump.bin
dd: lendo "/dev/mem": Operação não permitida
2056+0 registros de entrada
2056+0 registros de saída
1052672 bytes (1,1 MB) copiados, 0,0462861 s, 22,7 MB/s

Mas podemos utilizar o módulo fmem (antigo fdump), que criará o
dispoistivo /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
Análise do dump
# dd bs=1M count=8006 if=/dev/fmem of=dump.bin

O parâmetro count é obrigatório pode ser o total de RAM no sistema (de
fato, 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
Recuperados com o Foremost
# ls ­R recover/
recover/:
audit.txt  bmp   dll  gif  htm  jpg  pdf  png

recover/bmp:
00005248.bmp

recover/dll:
00004622.dll

recover/gif:
00962274.gif  00979531.gif  01001291_1.gif 00968056.gif  00981979.gif  01001291_2.gif
00968193.gif  00982418.gif  01001291.gif   00975759.gif  00985118.gif  01002993.gif
00979265.gif  00998234.gif  01002994.gif

recover/htm:
00943193.htm  01039003.htm  01042419.htm

recover/jpg:
00982590.jpg  00987601.jpg  00990427.jpg

recover/pdf:
00941876.pdf

recover/png:
00970880.png  00990424.png  00997986.png  00979102.png  00990425.png  00998151.png
00979105.png  00990426.png  00998160.png  00980376.png  00990430.png  00998214.png
00980378.png  00994364.png  00998228.png  00980389.png  00996290.png  00998256.png
00980398.png  00997938.png  00998852.png  00982704.png  00997948.png  00999042.png
                                   www.4linux.com.br                            10 / 12
Obrigado




           Perguntas?



            www.4linux.com.br   11 / 12
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

Mais conteúdo relacionado

Mais procurados

Linux kernel debugging
Linux kernel debuggingLinux kernel debugging
Linux kernel debuggingHao-Ran Liu
 
Linux MMAP & Ioremap introduction
Linux MMAP & Ioremap introductionLinux MMAP & Ioremap introduction
Linux MMAP & Ioremap introductionGene Chang
 
Ceph Month 2021: RADOS Update
Ceph Month 2021: RADOS UpdateCeph Month 2021: RADOS Update
Ceph Month 2021: RADOS UpdateCeph Community
 
Vmlinux: anatomy of bzimage and how x86 64 processor is booted
Vmlinux: anatomy of bzimage and how x86 64 processor is bootedVmlinux: anatomy of bzimage and how x86 64 processor is booted
Vmlinux: anatomy of bzimage and how x86 64 processor is bootedAdrian Huang
 
Project ACRN hypervisor introduction
Project ACRN hypervisor introduction Project ACRN hypervisor introduction
Project ACRN hypervisor introduction Project ACRN
 
PostgreSQL + ZFS best practices
PostgreSQL + ZFS best practicesPostgreSQL + ZFS best practices
PostgreSQL + ZFS best practicesSean Chittenden
 
Kernel Recipes 2015: Linux Kernel IO subsystem - How it works and how can I s...
Kernel Recipes 2015: Linux Kernel IO subsystem - How it works and how can I s...Kernel Recipes 2015: Linux Kernel IO subsystem - How it works and how can I s...
Kernel Recipes 2015: Linux Kernel IO subsystem - How it works and how can I s...Anne Nicolas
 
twlkh-linux-vsyscall-and-vdso
twlkh-linux-vsyscall-and-vdsotwlkh-linux-vsyscall-and-vdso
twlkh-linux-vsyscall-and-vdsoViller Hsiao
 
Linux Kernel vs DPDK: HTTP Performance Showdown
Linux Kernel vs DPDK: HTTP Performance ShowdownLinux Kernel vs DPDK: HTTP Performance Showdown
Linux Kernel vs DPDK: HTTP Performance ShowdownScyllaDB
 
Quick and Easy Device Drivers for Embedded Linux Using UIO
Quick and Easy Device Drivers for Embedded Linux Using UIOQuick and Easy Device Drivers for Embedded Linux Using UIO
Quick and Easy Device Drivers for Embedded Linux Using UIOChris Simmonds
 
REST in Piece - Administration of an Oracle Cluster/Database using REST
REST in Piece - Administration of an Oracle Cluster/Database using RESTREST in Piece - Administration of an Oracle Cluster/Database using REST
REST in Piece - Administration of an Oracle Cluster/Database using RESTChristian Gohmann
 
Black Hat Europe 2017. DPAPI and DPAPI-NG: Decryption Toolkit
Black Hat Europe 2017. DPAPI and DPAPI-NG: Decryption ToolkitBlack Hat Europe 2017. DPAPI and DPAPI-NG: Decryption Toolkit
Black Hat Europe 2017. DPAPI and DPAPI-NG: Decryption ToolkitPaula Januszkiewicz
 
Z OS IBM Utilities
Z OS IBM UtilitiesZ OS IBM Utilities
Z OS IBM Utilitieskapa rohit
 
Q4.11: Using GCC Auto-Vectorizer
Q4.11: Using GCC Auto-VectorizerQ4.11: Using GCC Auto-Vectorizer
Q4.11: Using GCC Auto-VectorizerLinaro
 
Qemu device prototyping
Qemu device prototypingQemu device prototyping
Qemu device prototypingYan Vugenfirer
 
AIXpert - AIX Security expert
AIXpert - AIX Security expertAIXpert - AIX Security expert
AIXpert - AIX Security expertdlfrench
 
Userfaultfd: Current Features, Limitations and Future Development
Userfaultfd: Current Features, Limitations and Future DevelopmentUserfaultfd: Current Features, Limitations and Future Development
Userfaultfd: Current Features, Limitations and Future DevelopmentKernel TLV
 
Profiling your Applications using the Linux Perf Tools
Profiling your Applications using the Linux Perf ToolsProfiling your Applications using the Linux Perf Tools
Profiling your Applications using the Linux Perf ToolsemBO_Conference
 

Mais procurados (20)

Linux kernel debugging
Linux kernel debuggingLinux kernel debugging
Linux kernel debugging
 
Linux MMAP & Ioremap introduction
Linux MMAP & Ioremap introductionLinux MMAP & Ioremap introduction
Linux MMAP & Ioremap introduction
 
Ceph Month 2021: RADOS Update
Ceph Month 2021: RADOS UpdateCeph Month 2021: RADOS Update
Ceph Month 2021: RADOS Update
 
Réseaux de stockage
Réseaux de stockageRéseaux de stockage
Réseaux de stockage
 
Vmlinux: anatomy of bzimage and how x86 64 processor is booted
Vmlinux: anatomy of bzimage and how x86 64 processor is bootedVmlinux: anatomy of bzimage and how x86 64 processor is booted
Vmlinux: anatomy of bzimage and how x86 64 processor is booted
 
Project ACRN hypervisor introduction
Project ACRN hypervisor introduction Project ACRN hypervisor introduction
Project ACRN hypervisor introduction
 
PostgreSQL + ZFS best practices
PostgreSQL + ZFS best practicesPostgreSQL + ZFS best practices
PostgreSQL + ZFS best practices
 
Kernel Recipes 2015: Linux Kernel IO subsystem - How it works and how can I s...
Kernel Recipes 2015: Linux Kernel IO subsystem - How it works and how can I s...Kernel Recipes 2015: Linux Kernel IO subsystem - How it works and how can I s...
Kernel Recipes 2015: Linux Kernel IO subsystem - How it works and how can I s...
 
twlkh-linux-vsyscall-and-vdso
twlkh-linux-vsyscall-and-vdsotwlkh-linux-vsyscall-and-vdso
twlkh-linux-vsyscall-and-vdso
 
Linux Kernel vs DPDK: HTTP Performance Showdown
Linux Kernel vs DPDK: HTTP Performance ShowdownLinux Kernel vs DPDK: HTTP Performance Showdown
Linux Kernel vs DPDK: HTTP Performance Showdown
 
Quick and Easy Device Drivers for Embedded Linux Using UIO
Quick and Easy Device Drivers for Embedded Linux Using UIOQuick and Easy Device Drivers for Embedded Linux Using UIO
Quick and Easy Device Drivers for Embedded Linux Using UIO
 
REST in Piece - Administration of an Oracle Cluster/Database using REST
REST in Piece - Administration of an Oracle Cluster/Database using RESTREST in Piece - Administration of an Oracle Cluster/Database using REST
REST in Piece - Administration of an Oracle Cluster/Database using REST
 
Black Hat Europe 2017. DPAPI and DPAPI-NG: Decryption Toolkit
Black Hat Europe 2017. DPAPI and DPAPI-NG: Decryption ToolkitBlack Hat Europe 2017. DPAPI and DPAPI-NG: Decryption Toolkit
Black Hat Europe 2017. DPAPI and DPAPI-NG: Decryption Toolkit
 
Linux Device Tree
Linux Device TreeLinux Device Tree
Linux Device Tree
 
Z OS IBM Utilities
Z OS IBM UtilitiesZ OS IBM Utilities
Z OS IBM Utilities
 
Q4.11: Using GCC Auto-Vectorizer
Q4.11: Using GCC Auto-VectorizerQ4.11: Using GCC Auto-Vectorizer
Q4.11: Using GCC Auto-Vectorizer
 
Qemu device prototyping
Qemu device prototypingQemu device prototyping
Qemu device prototyping
 
AIXpert - AIX Security expert
AIXpert - AIX Security expertAIXpert - AIX Security expert
AIXpert - AIX Security expert
 
Userfaultfd: Current Features, Limitations and Future Development
Userfaultfd: Current Features, Limitations and Future DevelopmentUserfaultfd: Current Features, Limitations and Future Development
Userfaultfd: Current Features, Limitations and Future Development
 
Profiling your Applications using the Linux Perf Tools
Profiling your Applications using the Linux Perf ToolsProfiling your Applications using the Linux Perf Tools
Profiling your Applications using the Linux Perf Tools
 

Semelhante a Análise de dumps de memória no GNU/Linux

Empacotamento Debian Básico
Empacotamento Debian BásicoEmpacotamento Debian Básico
Empacotamento Debian BásicoMarcelo Lira
 
Procedimentos de Backup
Procedimentos de BackupProcedimentos de Backup
Procedimentos de Backupelliando dias
 
Realizar o gerenciamento básico de arquivos 4Linux
Realizar o gerenciamento básico de arquivos 4LinuxRealizar o gerenciamento básico de arquivos 4Linux
Realizar o gerenciamento básico de arquivos 4LinuxSoftD Abreu
 
Funcionamento kernel
Funcionamento kernelFuncionamento kernel
Funcionamento kernelSENAC RIO
 
DESMISTIFICANDO A FSTAB - Ricardo José Maraschini
DESMISTIFICANDO A FSTAB - Ricardo José Maraschini DESMISTIFICANDO A FSTAB - Ricardo José Maraschini
DESMISTIFICANDO A FSTAB - Ricardo José Maraschini Tchelinux
 
Debian 6: Instalação e Hardening
Debian 6: Instalação e HardeningDebian 6: Instalação e Hardening
Debian 6: Instalação e HardeningBruna Griebeler
 
Linux comandos gerais e servidores de rede
Linux   comandos gerais e servidores de redeLinux   comandos gerais e servidores de rede
Linux comandos gerais e servidores de redefernandao777
 
Linux4all#2
Linux4all#2Linux4all#2
Linux4all#2Daniel
 
Minicurso GNU/Linux básico - Aula1 - Semana Sistemas de Informação 2015 - UNI...
Minicurso GNU/Linux básico - Aula1 - Semana Sistemas de Informação 2015 - UNI...Minicurso GNU/Linux básico - Aula1 - Semana Sistemas de Informação 2015 - UNI...
Minicurso GNU/Linux básico - Aula1 - Semana Sistemas de Informação 2015 - UNI...Marlon Willrich
 
Aula - Comandos Linux - Parte 1
Aula - Comandos Linux - Parte 1Aula - Comandos Linux - Parte 1
Aula - Comandos Linux - Parte 1Leo Amorim
 
Comandos Linux Parte 1
Comandos Linux Parte 1Comandos Linux Parte 1
Comandos Linux Parte 1Leo Amorim
 
Linux comandosgeraiseservidoresderede-120930000057-phpapp01
Linux comandosgeraiseservidoresderede-120930000057-phpapp01Linux comandosgeraiseservidoresderede-120930000057-phpapp01
Linux comandosgeraiseservidoresderede-120930000057-phpapp01Elizabete Bahia
 
Tutorial do shell script para Clonar HDs WIN7 usando Linux
Tutorial do shell script para Clonar HDs WIN7 usando LinuxTutorial do shell script para Clonar HDs WIN7 usando Linux
Tutorial do shell script para Clonar HDs WIN7 usando LinuxLuiz Francisco Bozo
 
Tutorial do ris serviços de instalação remota
Tutorial do ris   serviços de instalação remotaTutorial do ris   serviços de instalação remota
Tutorial do ris serviços de instalação remotafernandao777
 
Sor filesystem-particionamento
Sor filesystem-particionamentoSor filesystem-particionamento
Sor filesystem-particionamentoCarlos Melo
 
DKMS ­ Dynamic Kernel Module Support
DKMS ­ Dynamic Kernel Module SupportDKMS ­ Dynamic Kernel Module Support
DKMS ­ Dynamic Kernel Module SupportRômulo Jales
 

Semelhante a Análise de dumps de memória no GNU/Linux (20)

Empacotamento Debian Básico
Empacotamento Debian BásicoEmpacotamento Debian Básico
Empacotamento Debian Básico
 
Procedimentos de Backup
Procedimentos de BackupProcedimentos de Backup
Procedimentos de Backup
 
Realizar o gerenciamento básico de arquivos 4Linux
Realizar o gerenciamento básico de arquivos 4LinuxRealizar o gerenciamento básico de arquivos 4Linux
Realizar o gerenciamento básico de arquivos 4Linux
 
Linux Ubuntu
Linux   UbuntuLinux   Ubuntu
Linux Ubuntu
 
IntroduçãO Ao Linux
IntroduçãO Ao LinuxIntroduçãO Ao Linux
IntroduçãO Ao Linux
 
Funcionamento kernel
Funcionamento kernelFuncionamento kernel
Funcionamento kernel
 
DESMISTIFICANDO A FSTAB - Ricardo José Maraschini
DESMISTIFICANDO A FSTAB - Ricardo José Maraschini DESMISTIFICANDO A FSTAB - Ricardo José Maraschini
DESMISTIFICANDO A FSTAB - Ricardo José Maraschini
 
Debian 6: Instalação e Hardening
Debian 6: Instalação e HardeningDebian 6: Instalação e Hardening
Debian 6: Instalação e Hardening
 
Linux comandos gerais e servidores de rede
Linux   comandos gerais e servidores de redeLinux   comandos gerais e servidores de rede
Linux comandos gerais e servidores de rede
 
Linux4all#2
Linux4all#2Linux4all#2
Linux4all#2
 
Minicurso GNU/Linux básico - Aula1 - Semana Sistemas de Informação 2015 - UNI...
Minicurso GNU/Linux básico - Aula1 - Semana Sistemas de Informação 2015 - UNI...Minicurso GNU/Linux básico - Aula1 - Semana Sistemas de Informação 2015 - UNI...
Minicurso GNU/Linux básico - Aula1 - Semana Sistemas de Informação 2015 - UNI...
 
Aula - Comandos Linux - Parte 1
Aula - Comandos Linux - Parte 1Aula - Comandos Linux - Parte 1
Aula - Comandos Linux - Parte 1
 
Comandos Linux Parte 1
Comandos Linux Parte 1Comandos Linux Parte 1
Comandos Linux Parte 1
 
Linux comandosgeraiseservidoresderede-120930000057-phpapp01
Linux comandosgeraiseservidoresderede-120930000057-phpapp01Linux comandosgeraiseservidoresderede-120930000057-phpapp01
Linux comandosgeraiseservidoresderede-120930000057-phpapp01
 
Tutorial do shell script para Clonar HDs WIN7 usando Linux
Tutorial do shell script para Clonar HDs WIN7 usando LinuxTutorial do shell script para Clonar HDs WIN7 usando Linux
Tutorial do shell script para Clonar HDs WIN7 usando Linux
 
Tutorial do ris serviços de instalação remota
Tutorial do ris   serviços de instalação remotaTutorial do ris   serviços de instalação remota
Tutorial do ris serviços de instalação remota
 
Linux instalação
Linux instalaçãoLinux instalação
Linux instalação
 
Sor filesystem-particionamento
Sor filesystem-particionamentoSor filesystem-particionamento
Sor filesystem-particionamento
 
Tutorial: Instalação de Ubuntu em uma Gumstix Overo
Tutorial: Instalação de Ubuntu em uma Gumstix OveroTutorial: Instalação de Ubuntu em uma Gumstix Overo
Tutorial: Instalação de Ubuntu em uma Gumstix Overo
 
DKMS ­ Dynamic Kernel Module Support
DKMS ­ Dynamic Kernel Module SupportDKMS ­ Dynamic Kernel Module Support
DKMS ­ Dynamic Kernel Module Support
 

Mais de Diego Santos

Práticas DevOps com Zend Server
Práticas DevOps com Zend ServerPráticas DevOps com Zend Server
Práticas DevOps com Zend ServerDiego Santos
 
HTML5 – O que tem de novo?
HTML5 – O que tem de novo?HTML5 – O que tem de novo?
HTML5 – O que tem de novo?Diego Santos
 
Criando Mapas de rede para monitoramento com Zabbix
Criando Mapas de rede para monitoramento com ZabbixCriando Mapas de rede para monitoramento com Zabbix
Criando Mapas de rede para monitoramento com ZabbixDiego Santos
 
Como lidar com cargas de trabalho mistas - PostgreSQL
Como lidar com cargas de trabalho mistas - PostgreSQLComo lidar com cargas de trabalho mistas - PostgreSQL
Como lidar com cargas de trabalho mistas - PostgreSQLDiego Santos
 
OpenLDAP, criando e explorando um overlay
OpenLDAP, criando e explorando um overlayOpenLDAP, criando e explorando um overlay
OpenLDAP, criando e explorando um overlayDiego Santos
 
KDC Spoofing com Kerberos MIT
KDC Spoofing com Kerberos MITKDC Spoofing com Kerberos MIT
KDC Spoofing com Kerberos MITDiego Santos
 
Arquiteturas híbridas de atendimento em Cloud Computing para otimizar o uso d...
Arquiteturas híbridas de atendimento em Cloud Computing para otimizar o uso d...Arquiteturas híbridas de atendimento em Cloud Computing para otimizar o uso d...
Arquiteturas híbridas de atendimento em Cloud Computing para otimizar o uso d...Diego Santos
 
IaaS: Implantação e gerenciamento de configurações de ambientes Cloud usando...
 IaaS: Implantação e gerenciamento de configurações de ambientes Cloud usando... IaaS: Implantação e gerenciamento de configurações de ambientes Cloud usando...
IaaS: Implantação e gerenciamento de configurações de ambientes Cloud usando...Diego Santos
 
Tenha mais tempo e gerencie seus processos com a Bonita
Tenha mais tempo e gerencie seus processos com a BonitaTenha mais tempo e gerencie seus processos com a Bonita
Tenha mais tempo e gerencie seus processos com a BonitaDiego Santos
 
Socialize os sites da sua empresa com eXo Platform
Socialize os sites da sua empresa com eXo PlatformSocialize os sites da sua empresa com eXo Platform
Socialize os sites da sua empresa com eXo PlatformDiego Santos
 
Programando Software Livre em C
Programando Software Livre em CProgramando Software Livre em C
Programando Software Livre em CDiego Santos
 
Análise estática de malware com o pev
Análise estática de malware com o pevAnálise estática de malware com o pev
Análise estática de malware com o pevDiego Santos
 
Testes em aplicações JEE: Montando sua infra de testes automatizados
Testes em aplicações JEE: Montando sua infra de testes automatizadosTestes em aplicações JEE: Montando sua infra de testes automatizados
Testes em aplicações JEE: Montando sua infra de testes automatizadosDiego Santos
 
Formando Desenvolvedores Efetivos
Formando Desenvolvedores EfetivosFormando Desenvolvedores Efetivos
Formando Desenvolvedores EfetivosDiego Santos
 
As grandes novidades do JSF 2.0!
As grandes novidades do JSF 2.0!As grandes novidades do JSF 2.0!
As grandes novidades do JSF 2.0!Diego Santos
 
Análise de malware com software livre
Análise de malware com software livreAnálise de malware com software livre
Análise de malware com software livreDiego Santos
 

Mais de Diego Santos (17)

Práticas DevOps com Zend Server
Práticas DevOps com Zend ServerPráticas DevOps com Zend Server
Práticas DevOps com Zend Server
 
HTML5 – O que tem de novo?
HTML5 – O que tem de novo?HTML5 – O que tem de novo?
HTML5 – O que tem de novo?
 
Criando Mapas de rede para monitoramento com Zabbix
Criando Mapas de rede para monitoramento com ZabbixCriando Mapas de rede para monitoramento com Zabbix
Criando Mapas de rede para monitoramento com Zabbix
 
Como lidar com cargas de trabalho mistas - PostgreSQL
Como lidar com cargas de trabalho mistas - PostgreSQLComo lidar com cargas de trabalho mistas - PostgreSQL
Como lidar com cargas de trabalho mistas - PostgreSQL
 
Cloud é Linux
Cloud é LinuxCloud é Linux
Cloud é Linux
 
OpenLDAP, criando e explorando um overlay
OpenLDAP, criando e explorando um overlayOpenLDAP, criando e explorando um overlay
OpenLDAP, criando e explorando um overlay
 
KDC Spoofing com Kerberos MIT
KDC Spoofing com Kerberos MITKDC Spoofing com Kerberos MIT
KDC Spoofing com Kerberos MIT
 
Arquiteturas híbridas de atendimento em Cloud Computing para otimizar o uso d...
Arquiteturas híbridas de atendimento em Cloud Computing para otimizar o uso d...Arquiteturas híbridas de atendimento em Cloud Computing para otimizar o uso d...
Arquiteturas híbridas de atendimento em Cloud Computing para otimizar o uso d...
 
IaaS: Implantação e gerenciamento de configurações de ambientes Cloud usando...
 IaaS: Implantação e gerenciamento de configurações de ambientes Cloud usando... IaaS: Implantação e gerenciamento de configurações de ambientes Cloud usando...
IaaS: Implantação e gerenciamento de configurações de ambientes Cloud usando...
 
Tenha mais tempo e gerencie seus processos com a Bonita
Tenha mais tempo e gerencie seus processos com a BonitaTenha mais tempo e gerencie seus processos com a Bonita
Tenha mais tempo e gerencie seus processos com a Bonita
 
Socialize os sites da sua empresa com eXo Platform
Socialize os sites da sua empresa com eXo PlatformSocialize os sites da sua empresa com eXo Platform
Socialize os sites da sua empresa com eXo Platform
 
Programando Software Livre em C
Programando Software Livre em CProgramando Software Livre em C
Programando Software Livre em C
 
Análise estática de malware com o pev
Análise estática de malware com o pevAnálise estática de malware com o pev
Análise estática de malware com o pev
 
Testes em aplicações JEE: Montando sua infra de testes automatizados
Testes em aplicações JEE: Montando sua infra de testes automatizadosTestes em aplicações JEE: Montando sua infra de testes automatizados
Testes em aplicações JEE: Montando sua infra de testes automatizados
 
Formando Desenvolvedores Efetivos
Formando Desenvolvedores EfetivosFormando Desenvolvedores Efetivos
Formando Desenvolvedores Efetivos
 
As grandes novidades do JSF 2.0!
As grandes novidades do JSF 2.0!As grandes novidades do JSF 2.0!
As grandes novidades do JSF 2.0!
 
Análise de malware com software livre
Análise de malware com software livreAnálise de malware com software livre
Análise de malware com software livre
 

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

  • 1.
  • 2. 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
  • 3. Análise de dumps de memória no GNU/Linux www.4linux.com.br 3 / 12
  • 4. O que é um dump? → É uma imagem perfeita do conteúdo de uma memória volátil. Ou seja, é uma cópia de todos os bytes numa determinada região de memória. Geralmente esta cópia é gravada num arquivo em disco ou pen drive. Este arquivo, chamado de dump, é um amontoado de bytes agregados e sua interpretação requer análise. www.4linux.com.br 4 / 12
  • 5. 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
  • 6. Acesso à memória no Linux /dev/mem é um dispositivo que nos permite mapear qualquer endereço físico, incluindo os da RAM e de memórias de periféricos. Um erro comum é pensar que o /dev/mem só mapeia a RAM utilizada pelo sistema operacional. Um dump completo, que incluirá o que está em RAM, é possível com: # dd if=/dev/mem of=/root/dump.bin ou # apt-get install memdump # memdump -v > dump.bin www.4linux.com.br 6 / 12
  • 7. Proteção de memória # grep DEVMEM /boot/config-$(uname -r) CONFIG_STRICT_DEVMEM=y Dessa forma, tanto leitura quanto escrita são proibidas, no entanto, conforme comentário no fonte init.c do kernel, o acesso ao primeiro megabyte desta área é concecido, porque nele reside o código do BIOS e dados 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
  • 8. Bypass da proteção A proteção inutiliza o dd: # dd if=/dev/mem of=dump.bin dd: lendo "/dev/mem": Operação não permitida 2056+0 registros de entrada 2056+0 registros de saída 1052672 bytes (1,1 MB) copiados, 0,0462861 s, 22,7 MB/s Mas podemos utilizar o módulo fmem (antigo fdump), que criará o dispoistivo /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
  • 9. Análise do dump # dd bs=1M count=8006 if=/dev/fmem of=dump.bin O parâmetro count é obrigatório pode ser o total de RAM no sistema (de fato, 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
  • 10. Recuperados com o Foremost # ls ­R recover/ recover/: audit.txt  bmp dll  gif  htm  jpg  pdf  png recover/bmp: 00005248.bmp recover/dll: 00004622.dll recover/gif: 00962274.gif  00979531.gif  01001291_1.gif 00968056.gif  00981979.gif  01001291_2.gif 00968193.gif  00982418.gif  01001291.gif   00975759.gif  00985118.gif  01002993.gif 00979265.gif  00998234.gif  01002994.gif recover/htm: 00943193.htm  01039003.htm  01042419.htm recover/jpg: 00982590.jpg  00987601.jpg  00990427.jpg recover/pdf: 00941876.pdf recover/png: 00970880.png  00990424.png  00997986.png  00979102.png  00990425.png  00998151.png 00979105.png  00990426.png  00998160.png  00980376.png  00990430.png  00998214.png 00980378.png  00994364.png  00998228.png  00980389.png  00996290.png  00998256.png 00980398.png  00997938.png  00998852.png  00982704.png  00997948.png  00999042.png www.4linux.com.br 10 / 12
  • 11. Obrigado Perguntas? www.4linux.com.br 11 / 12
  • 12. 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