Buscar

Modulo_1_Introducao_Linux

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 71 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 71 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 71 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Análise Forense do 
Sistema Operacional Linux
Módulo 1 – Introdução ao Sistema 
Operacional Linux
Professor: Msc. Rodrigo Albernaz Bezerra
Versão 2019
1
Sumário
1. Histórico
2. Principais Distribuições
3. Kernel do Linux
4. Estrutura de Diretórios/Arquivos
5. Principais Comandos para Forense
2
Sumário
1. Histórico
2. Principais Distribuições
3. Kernel do Linux
4. Estrutura de Diretórios/Arquivos
5. Principais Comandos para Forense
3
Histórico
O MIT, o Guru e a Impressora – onde tudo começou... (80’s)
4
Histórico
1984: O CARA N° 1! THE GUY NUMBER 1!
Richard Mathew Stallman
– Famoso hacker dos anos 80
– Ativista político e ideológico do FOSS
• Free Open Source Software
– Fundador do Projeto GNU
– Autor da GNU GPL (General Public License)
– Acreditava que o software deveria ser livre de
restriçoes contra cópia ou modificações, de
forma a tornar os programas de
computadores mais eficientes
– 1983: S.O. GNU – livre compatível com Unix
– Ferramentas concluídas (make, gcc, etc), mas
sem um kernel/SO
5
Histórico
1991: O CARA N ° 2! THE GUY NUMBER 2!
Linus Torvalds
 Cientista da Computação
 Criador do Linux (Freax -> Linux)
 Um famoso professor de computação –
Andrew Tanenbaum desenvolveu um sistema
operacional para ser usado em suas aulas –
MINIX – uma versão simplificada do UNIX que
roda em IBM PC
 Minix: alto preço pelo código
 Setembro de 1991, Linus, estudante da
Universidade de Helsinki, desenvolve o Linux
versão 0.01
6
Histórico
7
Sumário
1. Histórico
2. Principais Distribuições
3. Kernel do Linux
4. Estrutura de Diretórios/Arquivos
5. Principais Comandos para Forense
8
Distribuições Linux
9
Distribuições Linux
10
Distribuições Forenses
11
Sumário
1. Histórico
2. Principais Distribuições
3. Kernel do Linux
4. Estrutura de Diretórios/Arquivos
5. Principais Comandos para Forense
12
Kernel
• Conceito:
– Núcleo ou cerne do sistema operacional (é a parte do
software do sistema operacional mais próxima do
hardware)
– Termo Linux se refere-se ao kernel – Kernel Linux
– O Kernel provê os serviços básicos para todas as outras
partes do sistema operacional
– Contrasta com o shell (parte mais distante do hardware
que interage com os comandos do usuários)
– Terminologia raramente usada em ambientes Windows
13
Kernel
• Funções básicas:
– Gerenciador de interrupções: chamadas de I/O que
competem pelos serviços do kernel
– Agendador de processos: determina qual processo irá ser
executado e em qual ordem na CPU
– Gerenciador de memória: controla o espaço de
endereçamento do sistema operacional, compartilhando
espaço entre todos os componentes do sistema e do usuário
– A interação entre a área do usuário e o kernel é feita através
de chamadas de sistema (system calls)
14
Kernel
15
16
Kernel – Versão
• Versão do kernel:
– $ uname -a
– $ uname -r
– $ cat /proc/version
– $ dmesg | grep Linux
– $ ls /boot (buscar pelo arquivo vmlinuz.x.x-x)
– Cada versão atual é representada por 3 números distintos separados por
pontos, podendo haver um quarto número extra
• Exemplo: Versão 2.6.26.18
• 1º número: versão do kernel (1994 -> 1.0 / 1996 -> 2.0)
• 2º número: última revisão feita (par – estável / ímpar – instável)
• 3º número: revisão menor realizada (novos drivers adicionados)
• 4º número/letras: correções de bugs / rc1 (release candidate), ac (Alan Cox), ck (Con
Kolivas), etc
17
Versões do Kernel
Primeira Versão do Kernel: 
Versão 0.01 (Setembro de 1991)
Versão estável mais recente:
Versão 5.3.7 (Outubro de 2019)
18
Sumário
1. Histórico
2. Principais Distribuições
3. Kernel do Linux
4. Estrutura de Diretórios/Arquivos
5. Principais Comandos para Forense
19
Diretórios Linux
20
Diretórios Linux
• /boot
– Arquivos de boot/executam as rotinas de boot
– Arquivos interessantes:
config-x -> módulos compilados no kernel
System.map-x -> símbolos usados pelo kernel
vmlinuz-x -> kernel compactado
/grub -> pasta de configuração do grub
21
Diretórios Linux
• /dev Espécie de Device Manager
– Drivers para os dispositivos do hardware
(device drivers) – tipo bloco e character
– Arquivos que se comunicam com o hardware
– Exemplos:
/dev/cdrom -> arquivo para o device cdrom
/dev/hda -> identificação do disco ide hda
/dev/hda1 -> partição 1 do disco hda
/dev/sdb -> identificação do disco sata sdb
/dev/sdb2 -> partição 2 do disco sdb
/dev/psaux -> mouse ps/2
/dev/lp0 -> porta paralela 0
/dev/ttyUSB0 -> porta usb0
/dev/null -> buraco negro (limbo intergaláctico)
22
Diretórios Linux
• /etc [%SystemRoot%/System32/config]
– Arquivos de configuração do sistema
– Exemplos:
/etc/passwd -> arquivo de configuração de usuários
/etc/shadow -> arquivo de configuração de usuários e senha
/etc/hosts -> mapeamento local host/IP
/etc/hostname -> nome do servidor/PC
/etc/resolv.conf -> lista de servidores de DNS
/etc/fstab -> partições que devem ser montadas no boot
/etc/crontab -> agendador de tarefas
/etc/group -> informações de grupos
23
Diretórios Linux
• /bin
– Binários do sistema, incluindo o shell
– Contém os comandos normalmente executados no
shell, como por exemplo o comando “chmod”
– Exemplos:
/bin/ls
/bin/cat
/bin/chmod
/bin/gzip
/bin/touch
/bin/kill
24
Diretórios Linux
• /sbin
– Binários de super-usuário
– Só podem ser executados pelo root
– Exemplos:
/sbin/fdisk
/sbin/ifconfig
/sbin/fsck.*
/sbin/hdparm
/sbin/mkfs.*
25
Diretórios Linux
• /home [%USERPROFILE%]
– Diretório dos arquivos de Usuário
• /root
– Diretório dos arquivos do administrador do
sistema
– Arquivos interessantes:
.bash_history -> histórico de comandos
.bash_profile -> script de login
.bash_logout -> script para logout
.bashrc -> outro script de login
26
Diretórios Linux
• /lib (equivalente aos arquivos .dll do Windows)
– Bibliotecas compartilhadas pelas aplicações
do sistema (*.so.*)
– Módulos do kernel (/lib/modules/’kernel-version’)
• Arquivos *.ko
27
Diretórios Linux
• /mnt
– Ponto de montagem genérico de sistemas de
arquivos
– Utilizado para partições e sistemas de
arquivos diversos presentes no disco do
sistema
• /mnt/hda1
• /mnt/sda2
• /media
– Ponto de montagem para dispositivos externos
(cdrom / pendrives)
• /media/cdrom0
• /media/cdrom1
• /media/pendrive
28
Diretórios Linux
• /proc
– Sistema de arquivos virtual de uso do kernel
e status de processos em arquivos texto
– Sempre que um processo é criado, um arquivo
texto também é gerado nesta pasta
– Arquivos possuem tamanho 0 e estão apenas em
memória
– Exemplos:
/proc/{pid} -> Informações sobre processos
/proc/cpuinfo -> Informações da CPU do sistema
/proc/devices -> dispositivos configurados no sistema
/proc/filesystems -> sistemas de arquivos suportados
/proc/iomem -> mapa da memória
/proc/modules -> módulos do kernel carregados no sistema
29
Diretórios Linux
• /usr
– Vasta quantidade de arquivos
– Softwares de nível de usuário
– Não são utilizados durante o boot do sistema
– Pastas interessantes:
• /usr/include -> C library
• /usr/src/’linux’-> códigos do kernel
• /usr/share/man -> páginas man
• /usr/bin
• /usr/sbin
30
Diretórios Linux
• /var [Windows event logs]
– Arquivos diversos: e-mails, spool, logs
– Arquivos interessantes:
• /var/log/messages -> logs gerais do sistema
• /var/log/wtmp -> autenticações de usuários
• /var/log/dmesg -> buffer do kernel
• /var/spool -> spool de impressão
• /var/mail -> caixas de e-mail
• /var/lib -> banco de dados, endereços IP
• /tmp
– Arquivos temporários do sistema
31
Arquivos - Linux
• Conceito:
– Tudo são arquivos no Linux. O controle de tudo no sistema operacional é 
feito por arquivos. 
• Tipos de arquivos:
– Arquivo regular:
• São os arquivos comuns: arquivos textos, binários ELF, etc.
– Diretórios:
• Arquivos especiais que contém referências a nomes dos arquivos
armazenados em sua estrutura de grupo.
– Dispositivos:
• Arquivos especiaisrepresentando devices no sistema: discos (bloco),
impressoras e mouse (caractere) e fifos.
– Links:
• Fazem referências a outros arquivos. Hard (diretos) e Soft (simbólicos)
32
Tipos de Arquivos
Tipo de Arquivo Símbolo Descrição
Arquivo REGULAR - Arquivo de texto, de imagem, vídeo, programa
executável, etc. etc
Arquivo de DIRETÓRIO d Contém um conjunto de arquivos de quaisquer tipos,
inclusive de outros diretórios.
Arquivos de DISPOSITIVO
(dispositivo orientado a bloco)
b Operações de entrada e saída são realizadas em blocos
de modo aleatório.
Arquivos de DISPOSITIVO
(dispositivo orientado a caractere)
c Operações de entrada e saída são realizadas byte a byte
de modo sequêncial.
SOCKET s Usado para a comunicação bidirecional entre dois
processos via rede.
Named pipe (ou FIFO) p Permite a comunicação entre dois processos executados
no mesmo Sistema Operacional.
LINK l Hard link: dois arquivos apontando para o mesmo inode.
Symbolic link: ponteiro para um arquivo existente.
33
Permissões - Linux
• Agrupamento:
– Usuário proprietário (U)
– Grupo Proprietário (G)
– Outros (O)
• Tipos: 
– R – Leitura
– W – Escrita
– X – Execução
$ chmod u+rwx, g+rx-w, o-wx+r arquivo
$ chmod u=rwx arquivo2
$ chmod 754 arquivo3 (modo octal)*
* Somente proprietário e root pode mudar as permissões
34
• SUID-bit “s” ou “S”
– Quando setado, os arquivos adquirem as permissões do
proprietário e não do usuário que executou.
– Se ao invés de um “s” houver um “S”, indica SUID ativado e
as permissões de execução (x) para o dono desativadas.
– $ chmod u+s arquivo
– $ find / -user root -perm -4000
Permissões Adicionais
35
Permissões Adicionais
• GUID-bit “s” ou “S”
– Função em diretórios:
• Todos os arquivos criados no respectivo diretório possuirão como
padrão o grupo do diretório e não do usuário que criou o arquivo.
– Função em executáveis:
• Possuirá permissões atribuídas ao grupo do arquivo e não ao grupo
do usuário.
– Se ao invés de um “s” houver um “S”, indica GUID ativado e as
permissões de execução (x) para o grupo desativadas.
– $ find / -perm -2000
36
Permissões Adicionais
• Stick-bit “t”
– Restrição de deleção para diretórios/arquivos
– Modo append only (somente dono pode apagar)
– Comumente usado no /tmp
– $ chmod o+t /diretorio
– $ find / -user root -perm -1000
37
Tipos de usuários
• Root
– Administrador do sistema (controle total)
– Qualquer user com UID 0 é root
• Usuários comuns
– Podem se conectar
– UID acima de 1000
• Usuários de sistema
– Não podem se conectar
– Usados para fins específicos no sistema, geralmente
associados a serviços (ex: lp manipula solicitações de
impressão)
38
Usuários e Grupos
• UID (User ID)
– Arquivos recebem um UID (216 possibilidades)
– 0 – UID root
– A partir de 1000 – UID de usuários comuns
• GID (Group ID):
– Arquivos recebem um GID (216 possibilidades)
– Cada usuário deve ter pelo menos um grupo, usado para
gerar atributos na criação de objetos (/etc/passwd)
– Caso haja outros grupos, serão configurados em /etc/group,
servem para permitir acesso a objetos
39
Sumário
1. Histórico
2. Principais Distribuições
3. Kernel do Linux
4. Estrutura de Diretórios/Arquivos
5. Principais Comandos para Forense
40
Shell Linux
• Shell
– Do inglês – concha, carapaça
– É a interface que fica entre o usuário e S.O. propriamente dito
– Tudo que interage com o S.O. tem que passar pelo crivo do Shell
– Similar ao MS-DOS (mas no Linux, pode-se selecionar diferentes shells)
– GUI do Linux roda sobre o shell
– O Shell é um interpretador de comandos com uma linguagem e comandos
de alto nível
– É possível programar em Shell (criar laços, usar variáveis, tomadas de
decisões, etc) – shell scripts
– Exemplos de shells: sh (Bourne Shell), ksh (Korn Shell), bash (Bourne Again
Shell) e o csh (C Shell)
41
Shell Linux
Bash Zsh
42
Comandos Básicos
• Comandos de sessão / utilitários de terminal
– Inicialização de sessão
$ login
– Encerramento de sessão
$ logout
– Encerramento do shell corrente
$ exit
– Finaliza, reinicializa e ambos, respectivamente
$ halt / $ reboot / $ shutdown –r now
– Apelido para comando a ser executado com outro nome
$ alias list='ls –lha'
43
Comandos Básicos
• Comandos de arquivos e diretórios
– Imprime o diretório atual
$ pwd
– Deslocamento entre os diretórios
$ cd /media/sf_Shared
– Cópia de arquivos e diretórios
$ cp arquivo /root
$ cp –R /pasta /root/tmp
– Move arquivos e diretórios/renomeia arquivos
$ mv /media/sf_Shared/file1 /root/file1
$ mv nome_atual nome_novo
– Listagem de arquivos e diretórios
$ ls -lha
44
Comandos Básicos
• Comandos de arquivos e diretórios
– Criação de diretórios
$ mkdir /mnt/hd_periciado
– Apagar diretório
$ rm -rf /mnt/hd_periciado
– Criação de arquivos
$ touch nome_do_arquivo
– Apagar arquivo
$ rm nome_do_arquivo
– Limpar terminal
$ clear
– Imprime o conteúdo de um arquivo
$ cat /etc/passwd
45
Comandos Básicos
• Comandos de ajuda/documentação, data e hora
– Manual de comandos
$ man
$ man –k comando
$ man 1 passwd
 Manpages são divididas em 8 seções:
 Comandos de usuário (user commands)
 Chamadas de sistema (system calls)
 Chamadas de bibliotecas (libc calls)
 Dispositivos (devices)
 Formato de arquivos e protocolos (file formats and
protocols)
 Jogos (games)
 Conveções (conventions, macro packages and so forth)
 Administração do sistema (system administration)
46
Comandos Básicos
• Comandos de ajuda/documentação, data e hora
– Opção --help - exibe a sintaxe do comando
$ cat --help
– Data do sistema
$ date
– Exibe um calendário simples
$ cal
– Histórico de comandos
$ history
$ history 1 (mostra o último comando digitado)
$ history –c (limpa o histórico)
47
Comandos Básicos
• Comandos de informações do sistema
– Mostra espaço em disco usado pelas partições
$ df -h
– Tamanho de arquivos e/ou diretórios
$ du –h
– Imprime a memória RAM do sistema
$ free -h
– Imprime informações do sistema (kernel/distribuição)
$ uname –a
– Todos os usuários logados no sistema
$ who
– Usuário em uso
$ whoami
48
Comandos Básicos
• Comandos de gerenciamento de processos
– Mostrar processos em execução
$ ps –aux (a=todos usuários, u=Usuário, x=outros terminais)
– Árvore de processos
$ pstree
– Mostra o consumo de recursos dos processos (dinamicamente)
$ top (Crtl+c ou ‘q’ finaliza)
– Envia sinais aos processos (PID / Nome / Atributos)
$ kill -9 firefox
49
Comandos Básicos
• Comandos de compressão/descompressão
– Compactar pasta /var/log com o zip
$ zip arquivo.zip /var/log/*
– Descompactar um zip
$ unzip arquivo.zip
– Compactar com o tar
$ tar cvpzf arquivo.tg.gz /tmp
– Descompactar um tgz (tar.gz)
$ tar xvzf arquivo.tgz
– Descompactar um tgz para pasta
$ tar xvzf arquivo.tgz –C /tmp
50
Comando tar
Compactação
z – Utiliza o gzip
j – Utiliza o bzip
Operações
x – Extrai arquivos de um arquivo tar
c – Cria um arquivo tar
t – Exibe conteúdo de um arquivo tar
Opções diversas
v – Exibe as operações que estão sendo feitas (verbose)
f – Especifica o arquivo tar ser utilizado
p – Preserva permissões e proprietário dos arquivos
C – Especifica o diretório a ser armazenado
W – Verificação após a cópia para o tar
Comandos para Forense
cópia bit-a-bit (clonagem de discos)
usado para determiner a estrutura do disco
busca por padrões em arquivos
montagem de sistemas de arquivos / imagens periciais
hash de arquivos
Identificação de format dos arquivos
hexdump
extrai informações alfanuméricas de arquivos
51
dd
sfdisk/fdisk/gdisk
grep/cut/awk
mount/loop
md5sum/sha1sum
file
xxd
strings
Comandos para Forense
52
$ file – assinatura de arquivos
Busca pelo formato dos arquivos
Somente o mime-types dos arquivos 
Determinar o sistema de arquivos de uma partição ou imagem forense de partição (-s – special files /dev)
Comandos para Forense
53
$ strings – extrai os caracteres printáveis
Extração dos caracteres printáveis do arquivo, a partir de 4 caracteres(default)
Limitar o tamanho mínimo dos caracteres printáveis a serem apresentados (no exemplo 20 caracteres)
Byte-Offset em decimal do texto printável (-t x para hexa / -t o para octal)
Comandos para Forense
54
$ sha1sum – cálculo de hash
Hashes de arquivos de uma pasta Conferência dos hashes (opção –c)
Aplicativo Algoritmo Tamanho em bits Tamanho em bytes
md5sum MD5 128 16
sha1sum SHA1 160 20
sha256sum SHA2 256 32
sha512sum SHA2 512 64
Comandos para Forense
55
$ sfdisk – extrai a estrutura do disco
Identificação de partições, setores físicos iniciais e finais e tamanho (-l) 
Binários semelhantes
$ fdisk – só entende discos com MBR
$ gdisk – entende discos com GPT
$ sfdisk – fdisk melhorado, entende GPT
Comandos para Forense
56
$ mount – monta partições/sistemas de arquivos
Sintaxe do comando mount: [mount -t filesystem -o options device mountpoint]
Exemplos de uso: HDs e pendrives
$ mount -t vfat /dev/fd0 /mnt/floppy Montagem é um pouco mais complicada
$ cd /mnt/floppy  Boot sectors, partições dentre outras coisas
$ umount /mnt/floppy  Só se monta partições
$ mount -t iso9660 /dev/cdrom /mnt/cdrom /dev/sda – disco SATA primário
$ cd /mnt/cdrom /dev/sda1 – partição 1 do disco SATA primário
$ umount /mnt/cdrom /dev/sda2 – partição 2 do disco SATA primário
Comandos para Forense
57
$ mount – monta partições/sistemas de arquivos
Montagem básica de partições [mount -t filesystem -o options device mountpoint]
$ mkdir /mnt/particaofat
$ mount -t vfat /dev/hda1 /mnt/particaofat
$ umount /mnt/particaofat
Montagem básica de imagens periciais (formato raw ou dd) na forma forense
$ mount -t ext4 -o ro,loop,noexec,noload particao.dd /mnt/particaoforense
[ro] – opção de montar somente leitura (oposto ao rw)
[loop] – trata um arquivo regular (a imagem pericial) como um dispositivo de bloco (disco) – forma correta de montagem
[noexec] – não permitir a execução de binários apartir da imagem pericial montada (opção exec é default)
[noload] – impede o carregamento do journaling da imagem montada
Montagem básica de partições a partir de imagens forenses de discos completos
$ mount -t ext4 -o ro,offset=1048576,loop,noexec,noload disco.dd /mnt/imagemforense
Comandos para Forense
58
$ grep – g/re/p (globally search a regular expression and print)
Filtragem horizontal (linhas)
Comando grep
Recursos
-a força processar o arquivo como se fosse texto, mesmo sendo binário
-b offset da busca em bytes, útil para xxd ou dd
-i caso insensitive (ignora maiúsculas e minúsculas)
-w busca pelo padrão exato
-v busca reverse (elimina as linhas que atendem o padrão indicado)
Uso básico
grep “fred” /etc/passwd # busca linhas contendo 'fred'
Caso insensitivo
grep -i joe users.txt # Busca por joe, Joe, JOe, JOE, etc.
Expressões regulares básicas
grep '^fred' /etc/passwd # Busca linhas que iniciam por ‘fred’
grep '[FG]oo' * # Busca por Foo e Goo em todos os arquivos
grep '[0-9][0-9][0-9]' * # Busca por linhas contendo 3 números
Aplicativos
egrep – grep -E (ativa uso de expressões regulares extendida |,+,...)
fgrep – grep –F (desativa metacaracteres)
zgrep – busca de padrões em arquivos zgip
Comandos para Forense
59
$ cut – filtragem vertical (colunas)
Filtragem com base em um delimitador (parâmetro –d) e coluna (parâmetro –fX)
Filtragem com base em caracteres
Coluna a ser extraída
Apenas 1 caracter
Comandos para Forense
60
$ awk – Pattern-directed scanning and processing language
Filtragem horizontal (linhas)
$ awk ‘/pattern/action’ arquivo
Comandos para Forense
61
$ awk – filtragem horizontal/vertical
Filtragem vertical (colunas)
Coluna final
Comandos para Forense
62
$ awk – filtragem horizontal/vertical
Filtragem vertical (colunas) com outro delimitador que não <space>
Especifica delimitador
Comandos para Forense
63
misc – comandos diversos
$ sort – ordenação alfanumérica $ sort –r (ordenação reversa)
$ sort –u (elimina entradas repetidas) $ sort com uniq (contagem de linhas repetidas)
Comandos para Forense
64
misc – comandos diversos
$ head (imprimir n linhas do início de um arquivo)
$ tail (imprimir n linhas do fim de um arquivo)
$ wc –l (contagem de linhas de um arquivo)
Comandos para Forense
65
$ xxd – hexdump do arquivo
Binários semelhantes
$ hexdump – padrão hexa
$ hd – padrão hexa
$ od – padrão octal
Comandos para Forense
66
$ xxd – hexdump do arquivo
Caso tenha interesse em um pattern/padrão ascii de um arquivo binário, faça a filtragem com o grep lendo o
arquivo como texto para encontrar a localização do pattern e use o xxd para olhar o que há envolta
Byte offset em decimal
Byte offset em hexa
Recursos
-s offset de início
Comandos para Forense
67
$ xxd – hexdump do arquivo
Caso tenha interesse em um pattern/padrão hexa de um arquivo binário, imprima o conteúdo do arquivo com o
xxd e use grep para filtrar as ocorrências
Comandos para Forense
68
$ dd – copy & convert
Espelhamento Básico [dd if=device_de_entrada of=device_saída opções]
Espelhamento disco-a-disco (entrada e saída são devices)
$ dd if=/dev/sda of=/dev/sdb
Espelhamento disco-a-imagem (entrada e saída são devices)
$ dd if=/dev/sda of=/mnt/disco.dd
Opções do dd:
[bs=n] – tamanho da janela de transferência em bytes (aceita unidades em megabytes – ex: 5M) – default 512 bytes
[ibs=n] – tamanho da janela de transferência somente da entrada
[obs=n] – tamanho da janela de transferência somente da saída
[skip=n] – saltos do início do dispositivo de entrada em unidades do tamanho especificado no bs
[count=n] – contagem de unidades de dados a serem copiadas de acordo com o tamanho especificado no bs
[seek=n] – saltos do início do dispositivo de saída em unidades do tamanho especificado no bs
[conv=option] – notrunc (não trunca a saída), noerror (não para a cópia em caso de erros) e sync (manter tamanho)
Binários semelhantes
$ dcfldd – dd avançado com recursos de hash
$ ddrescue – dd para discos com bad sectors/não trunca a saída
$ dc3dd – fork do dd com os melhoramentos do dcfldd
Comandos para Forense
69
$ dd – copy & convert
Espelhamento partição-a-imagem
$ dd if=/dev/sda1 of=/mnt/particao1.dd
Wipe de disco
$ dd if=/dev/zero of=/dev/sda
Split da saída ou comprimindo a saída (partição de destino tem limitação de tamanho de arquivo – FAT32)
$ dd if=/dev/sda | split –b 4G - /mnt/disco.dd. (clonagem)
$ cat /mnt/disco.dd.* > discocompleto.dd (restauração)
[-b] – tamanho em bytes –b200000; kbytes –b nK; megabytes –b nM; gigabytes –b nG
$ dd if=/dev/sda | gzip –c > /mnt/disco.dd.gz (clonagem)
$ gunzip –c /mnt/disco.dd.gz | dd of=disco.dd (restauração)
[-c] – só comprime a saída, deixa a entrada inalterada
Comandos para Forense
70
$ dd – copy & convert
Carving de imagem JPEG
Cada símbolo 4 bits
61 (dois símbolos) = 1 
bytes
Total: 4 bytes
6 bytes até o final de ffd9
Endereço de início: 2aa9c0 + 4 = 2aa9c4
Endereço final: 2ace50 + 6 = 2ace56
Laboratório #1
71

Continue navegando