A empresa oferece treinamentos em Linux, tendo treinado mais de 30.000 alunos. Ela foi pioneira no ensino à distância de Linux no Brasil e é parceira de treinamento da IBM. A empresa também se destaca por inovações como o projeto Hackerteen e a rede Boteconet.
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