<summary><strong>Aprenda hacking AWS do zero ao herói com</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
Um disco rígido ou um **disco SSD pode conter diferentes partições** com o objetivo de separar fisicamente os dados.\
A **unidade mínima** de um disco é o **setor** (normalmente composto por 512B). Portanto, o tamanho de cada partição precisa ser um múltiplo desse tamanho.
É alocado no **primeiro setor do disco após os 446B do código de inicialização**. Este setor é essencial para indicar ao PC o que e de onde uma partição deve ser montada.\
Ele permite até **4 partições** (no máximo **apenas 1** pode ser ativa/**inicializável**). No entanto, se você precisar de mais partições, pode usar **partições estendidas**. O **último byte** deste primeiro setor é a assinatura do registro de inicialização **0x55AA**. Apenas uma partição pode ser marcada como ativa.\
Dos **bytes 440 a 443** do MBR, você pode encontrar a **Assinatura do Disco do Windows** (se o Windows for usado). A letra da unidade lógica do disco rígido depende da Assinatura do Disco do Windows. Alterar esta assinatura pode impedir o Windows de inicializar (ferramenta: [**Active Disk Editor**](https://www.disk-editor.org/index.html)**)**.
**Endereçamento de bloco lógico** (**LBA**) é um esquema comum usado para **especificar a localização de blocos** de dados armazenados em dispositivos de armazenamento de computador, geralmente sistemas de armazenamento secundário como discos rígidos. O LBA é um esquema de endereçamento linear particularmente simples; **os blocos são localizados por um índice inteiro**, sendo o primeiro bloco o LBA 0, o segundo LBA 1, e assim por diante.
Em um disco MBR, a partição e os dados de inicialização são armazenados em um único local. Se esses dados forem sobrescritos ou corrompidos, você terá problemas. Em contraste, o **GPT armazena várias cópias desses dados em todo o disco**, sendo muito mais robusto e capaz de recuperar os dados danificados.
O GPT também armazena valores de **verificação de redundância cíclica (CRC)** para verificar se seus dados estão íntegros. Se os dados estiverem corrompidos, o GPT pode detectar o problema e **tentar recuperar os dados danificados** de outra localização no disco.
Para compatibilidade limitada com versões anteriores, o espaço do MBR legado ainda é reservado na especificação do GPT, mas agora é usado de uma **maneira que impede que utilitários de disco baseados em MBR reconheçam erroneamente e possivelmente sobrescrevam discos GPT**. Isso é chamado de MBR protetor.
Em sistemas operacionais que suportam **inicialização baseada em GPT por meio de serviços BIOS** em vez de EFI, o primeiro setor também pode ser usado para armazenar o primeiro estágio do código do **carregador de inicialização**, mas **modificado** para reconhecer **partições GPT**. O carregador de inicialização no MBR não deve assumir um tamanho de setor de 512 bytes.
O cabeçalho da tabela de partição define os blocos utilizáveis no disco. Também define o número e o tamanho das entradas de partição que compõem a tabela de partição (deslocamentos 80 e 84 na tabela).
| 12 (0x0C) | 4 bytes | Tamanho do cabeçalho em little-endian (em bytes, geralmente 5Ch 00h 00h 00h ou 92 bytes) |
| 16 (0x10) | 4 bytes | [CRC32](https://en.wikipedia.org/wiki/CRC32) do cabeçalho (deslocamento +0 até o tamanho do cabeçalho) em little-endian, com este campo zerado durante o cálculo |
| 20 (0x14) | 4 bytes | Reservado; deve ser zero |
| 24 (0x18) | 8 bytes | LBA atual (localização desta cópia do cabeçalho) |
| 32 (0x20) | 8 bytes | LBA de backup (localização da outra cópia do cabeçalho) |
| 40 (0x28) | 8 bytes | Primeiro LBA utilizável para partições (último LBA da tabela de partição primária + 1) |
| 48 (0x30) | 8 bytes | Último LBA utilizável (primeiro LBA da tabela de partição secundária − 1) |
| 56 (0x38) | 16 bytes | GUID do disco em endian misto |
| 72 (0x48) | 8 bytes | LBA inicial de uma matriz de entradas de partição (sempre 2 na cópia primária) |
| 80 (0x50) | 4 bytes | Número de entradas de partição na matriz |
| 84 (0x54) | 4 bytes | Tamanho de uma única entrada de partição (geralmente 80h ou 128) |
| 88 (0x58) | 4 bytes | CRC32 da matriz de entradas de partição em little-endian |
| 92 (0x5C) | \* | Reservado; deve ser zeros para o restante do bloco (420 bytes para um tamanho de setor de 512 bytes; mas pode ser mais com tamanhos de setor maiores) |
Mais tipos de partições em [https://en.wikipedia.org/wiki/GUID\_Partition\_Table](https://en.wikipedia.org/wiki/GUID\_Partition\_Table)
### Inspeção
Após montar a imagem forense com [**ArsenalImageMounter**](https://arsenalrecon.com/downloads/), você pode inspecionar o primeiro setor usando a ferramenta do Windows [**Active Disk Editor**](https://www.disk-editor.org/index.html)**.** Na imagem a seguir, um **MBR** foi detectado no **setor 0** e interpretado:
![](<../../../.gitbook/assets/image(494).png>)
Se fosse uma **tabela GPT em vez de um MBR**, deveria aparecer a assinatura _EFI PART_ no **setor 1** (que na imagem anterior está vazio).
O sistema de arquivos **FAT (File Allocation Table)** é nomeado por seu método de organização, a tabela de alocação de arquivos, que reside no início do volume. Para proteger o volume, **duas cópias** da tabela são mantidas, caso uma seja danificada. Além disso, as tabelas de alocação de arquivos e a pasta raiz devem ser armazenadas em uma **localização fixa** para que os arquivos necessários para iniciar o sistema possam ser localizados corretamente.
O antigo **FAT12** tinha endereços de cluster de valores de **12 bits** com até **4078 clusters**; permitia até 4084 clusters com UNIX. O mais eficiente **FAT16** aumentou para endereço de cluster de **16 bits** permitindo até **65.517 clusters** por volume. O FAT32 usa endereço de cluster de 32 bits permitindo até **268.435.456 clusters** por volume.
O **tamanho máximo de arquivo permitido pelo FAT é de 4GB** (menos um byte) porque o sistema de arquivos usa um campo de 32 bits para armazenar o tamanho do arquivo em bytes, e 2^32 bytes = 4 GiB. Isso ocorre para FAT12, FAT16 e FAT32.
O **diretório raiz** ocupa uma **posição específica** tanto para FAT12 quanto para FAT16 (no FAT32, ele ocupa uma posição como qualquer outra pasta). Cada entrada de arquivo/pasta contém estas informações:
Quando um arquivo é "excluído" usando um sistema de arquivos FAT, a entrada do diretório permanece quase **inalterada**, exceto pelo **primeiro caractere do nome do arquivo** (modificado para 0xE5), preservando a maior parte do nome do arquivo "excluído", juntamente com seu carimbo de tempo, comprimento do arquivo e — mais importante — sua localização física no disco. A lista de clusters de disco ocupados pelo arquivo será, no entanto, apagada da Tabela de Alocação de Arquivos, marcando esses setores como disponíveis para uso por outros arquivos criados ou modificados posteriormente. No caso do FAT32, há também um campo apagado adicional responsável pelos 16 bits superiores do valor do cluster de início do arquivo.
**Ext2** é o sistema de arquivos mais comum para **partições sem journaling** (**partições que não mudam muito**) como a partição de inicialização. **Ext3/4** são **com journaling** e são usados geralmente para as **outras partições**.
Alguns arquivos contêm metadados. Essas informações são sobre o conteúdo do arquivo, que às vezes pode ser interessante para um analista, pois dependendo do tipo de arquivo, pode conter informações como:
Você pode usar ferramentas como [**exiftool**](https://exiftool.org) e [**Metadiver**](https://www.easymetadata.com/metadiver-2/) para obter os metadados de um arquivo.
Como visto anteriormente, existem vários locais onde o arquivo ainda é salvo após ser "excluído". Isso ocorre porque geralmente a exclusão de um arquivo de um sistema de arquivos apenas o marca como excluído, mas os dados não são tocados. Portanto, é possível inspecionar os registros dos arquivos (como o MFT) e encontrar os arquivos excluídos.
Além disso, o sistema operacional geralmente salva muitas informações sobre alterações no sistema de arquivos e backups, então é possível tentar usá-los para recuperar o arquivo ou o máximo de informações possível.
**Escultura de arquivos** é uma técnica que tenta **encontrar arquivos no volume de dados**. Existem 3 principais maneiras como ferramentas desse tipo funcionam: **Com base nos cabeçalhos e rodapés dos tipos de arquivo**, com base nas **estruturas dos tipos de arquivo** e com base no **próprio conteúdo**.
Observe que essa técnica **não funciona para recuperar arquivos fragmentados**. Se um arquivo **não estiver armazenado em setores contíguos**, então essa técnica não será capaz de encontrá-lo ou pelo menos parte dele.
A Escultura de Fluxo de Dados é semelhante à Escultura de Arquivos, mas **em vez de procurar arquivos completos, ela procura fragmentos interessantes** de informações.\
Por exemplo, em vez de procurar um arquivo completo contendo URLs registrados, essa técnica procurará URLs.
Obviamente, existem maneiras de **excluir arquivos "de forma segura" e parte dos logs sobre eles**. Por exemplo, é possível **sobrescrever o conteúdo** de um arquivo com dados inúteis várias vezes e, em seguida, **remover** os **logs** do **$MFT** e **$LOGFILE** sobre o arquivo, e **remover as Cópias de Sombra do Volume**.\
Você pode notar que mesmo realizando essa ação, pode haver **outras partes onde a existência do arquivo ainda está registrada**, e isso é verdade e faz parte do trabalho do profissional forense encontrar essas informações.