mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
Translated ['src/generic-methodologies-and-resources/basic-forensic-meth
This commit is contained in:
parent
d5e8d38cd6
commit
3b90bde3d9
@ -41,6 +41,7 @@
|
||||
- [Anti-Forensic Techniques](generic-methodologies-and-resources/basic-forensic-methodology/anti-forensic-techniques.md)
|
||||
- [Docker Forensics](generic-methodologies-and-resources/basic-forensic-methodology/docker-forensics.md)
|
||||
- [Image Acquisition & Mount](generic-methodologies-and-resources/basic-forensic-methodology/image-acquisition-and-mount.md)
|
||||
- [Ios Backup Forensics](generic-methodologies-and-resources/basic-forensic-methodology/ios-backup-forensics.md)
|
||||
- [Linux Forensics](generic-methodologies-and-resources/basic-forensic-methodology/linux-forensics.md)
|
||||
- [Malware Analysis](generic-methodologies-and-resources/basic-forensic-methodology/malware-analysis.md)
|
||||
- [Memory dump analysis](generic-methodologies-and-resources/basic-forensic-methodology/memory-dump-analysis/README.md)
|
||||
@ -61,6 +62,7 @@
|
||||
- [Office file analysis](generic-methodologies-and-resources/basic-forensic-methodology/specific-software-file-type-tricks/office-file-analysis.md)
|
||||
- [PDF File analysis](generic-methodologies-and-resources/basic-forensic-methodology/specific-software-file-type-tricks/pdf-file-analysis.md)
|
||||
- [PNG tricks](generic-methodologies-and-resources/basic-forensic-methodology/specific-software-file-type-tricks/png-tricks.md)
|
||||
- [Structural File Format Exploit Detection](generic-methodologies-and-resources/basic-forensic-methodology/specific-software-file-type-tricks/structural-file-format-exploit-detection.md)
|
||||
- [Video and Audio file analysis](generic-methodologies-and-resources/basic-forensic-methodology/specific-software-file-type-tricks/video-and-audio-file-analysis.md)
|
||||
- [ZIPs tricks](generic-methodologies-and-resources/basic-forensic-methodology/specific-software-file-type-tricks/zips-tricks.md)
|
||||
- [Windows Artifacts](generic-methodologies-and-resources/basic-forensic-methodology/windows-forensics/README.md)
|
||||
|
@ -4,13 +4,15 @@
|
||||
|
||||
## Criando e Montando uma Imagem
|
||||
|
||||
|
||||
{{#ref}}
|
||||
../../generic-methodologies-and-resources/basic-forensic-methodology/image-acquisition-and-mount.md
|
||||
{{#endref}}
|
||||
|
||||
## Análise de Malware
|
||||
|
||||
Isso **não é necessariamente o primeiro passo a ser realizado uma vez que você tenha a imagem**. Mas você pode usar essas técnicas de análise de malware de forma independente se tiver um arquivo, uma imagem de sistema de arquivos, imagem de memória, pcap... então é bom **manter essas ações em mente**:
|
||||
Isso **não é necessariamente o primeiro passo a executar assim que você tiver a imagem**. Mas você pode usar estas técnicas de análise de malware independentemente se tiver um arquivo, uma imagem do sistema de arquivos, imagem de memória, pcap... então é bom **manter estas ações em mente**:
|
||||
|
||||
|
||||
{{#ref}}
|
||||
malware-analysis.md
|
||||
@ -18,36 +20,74 @@ malware-analysis.md
|
||||
|
||||
## Inspecionando uma Imagem
|
||||
|
||||
Se você receber uma **imagem forense** de um dispositivo, pode começar **a analisar as partições, o sistema de arquivos** utilizado e **recuperar** potencialmente **arquivos interessantes** (mesmo os deletados). Aprenda como em:
|
||||
se você receber uma **imagem forense** de um dispositivo, você pode começar **analisando as partições, o sistema de arquivos** usado e **recuperando** possivelmente **arquivos interessantes** (até mesmo excluídos). Aprenda como em:
|
||||
|
||||
|
||||
{{#ref}}
|
||||
partitions-file-systems-carving/
|
||||
{{#endref}}# Metodologia Forense Básica
|
||||
|
||||
|
||||
|
||||
## Criando e Montando uma Imagem
|
||||
|
||||
|
||||
{{#ref}}
|
||||
../../generic-methodologies-and-resources/basic-forensic-methodology/image-acquisition-and-mount.md
|
||||
{{#endref}}
|
||||
|
||||
## Análise de Malware
|
||||
|
||||
Isso **não é necessariamente o primeiro passo a executar assim que você tiver a imagem**. Mas você pode usar estas técnicas de análise de malware independentemente se tiver um arquivo, uma imagem do sistema de arquivos, imagem de memória, pcap... então é bom **manter estas ações em mente**:
|
||||
|
||||
|
||||
{{#ref}}
|
||||
malware-analysis.md
|
||||
{{#endref}}
|
||||
|
||||
## Inspecionando uma Imagem
|
||||
|
||||
se você receber uma **imagem forense** de um dispositivo, você pode começar **analisando as partições, o sistema de arquivos** usado e **recuperando** possivelmente **arquivos interessantes** (até mesmo excluídos). Aprenda como em:
|
||||
|
||||
|
||||
{{#ref}}
|
||||
partitions-file-systems-carving/
|
||||
{{#endref}}
|
||||
|
||||
Dependendo dos sistemas operacionais utilizados e até mesmo da plataforma, diferentes artefatos interessantes devem ser pesquisados:
|
||||
Dependendo dos OSs usados e até mesmo da plataforma, diferentes artefatos interessantes devem ser pesquisados:
|
||||
|
||||
|
||||
{{#ref}}
|
||||
windows-forensics/
|
||||
{{#endref}}
|
||||
|
||||
|
||||
{{#ref}}
|
||||
linux-forensics.md
|
||||
{{#endref}}
|
||||
|
||||
|
||||
{{#ref}}
|
||||
docker-forensics.md
|
||||
{{#endref}}
|
||||
|
||||
## Inspeção Profunda de Tipos de Arquivos Específicos e Software
|
||||
|
||||
Se você tiver um **arquivo** muito **suspeito**, então **dependendo do tipo de arquivo e do software** que o criou, vários **truques** podem ser úteis.\
|
||||
{{#ref}}
|
||||
ios-backup-forensics.md
|
||||
{{#endref}}
|
||||
|
||||
## Inspeção aprofundada de tipos de arquivo específicos e Software
|
||||
|
||||
Se você tiver um arquivo muito **suspeito**, então **dependendo do tipo de arquivo e do software** que o criou, vários **truques** podem ser úteis.\
|
||||
Leia a página a seguir para aprender alguns truques interessantes:
|
||||
|
||||
|
||||
{{#ref}}
|
||||
specific-software-file-type-tricks/
|
||||
{{#endref}}
|
||||
|
||||
Quero fazer uma menção especial à página:
|
||||
Faço uma menção especial à página:
|
||||
|
||||
|
||||
{{#ref}}
|
||||
specific-software-file-type-tricks/browser-artifacts.md
|
||||
@ -55,12 +95,14 @@ specific-software-file-type-tricks/browser-artifacts.md
|
||||
|
||||
## Inspeção de Dump de Memória
|
||||
|
||||
|
||||
{{#ref}}
|
||||
memory-dump-analysis/
|
||||
{{#endref}}
|
||||
|
||||
## Inspeção de Pcap
|
||||
|
||||
|
||||
{{#ref}}
|
||||
pcap-inspection/
|
||||
{{#endref}}
|
||||
@ -69,12 +111,63 @@ pcap-inspection/
|
||||
|
||||
Tenha em mente o possível uso de técnicas anti-forenses:
|
||||
|
||||
|
||||
{{#ref}}
|
||||
anti-forensic-techniques.md
|
||||
{{#endref}}
|
||||
|
||||
## Caça a Ameaças
|
||||
|
||||
|
||||
{{#ref}}
|
||||
file-integrity-monitoring.md
|
||||
{{#endref}}
|
||||
|
||||
|
||||
|
||||
## Inspeção aprofundada de tipos de arquivo específicos e Software
|
||||
|
||||
Se você tiver um arquivo muito **suspeito**, então **dependendo do tipo de arquivo e do software** que o criou, vários **truques** podem ser úteis.\
|
||||
Leia a página a seguir para aprender alguns truques interessantes:
|
||||
|
||||
|
||||
{{#ref}}
|
||||
specific-software-file-type-tricks/
|
||||
{{#endref}}
|
||||
|
||||
Faço uma menção especial à página:
|
||||
|
||||
|
||||
{{#ref}}
|
||||
specific-software-file-type-tricks/browser-artifacts.md
|
||||
{{#endref}}
|
||||
|
||||
## Inspeção de Dump de Memória
|
||||
|
||||
|
||||
{{#ref}}
|
||||
memory-dump-analysis/
|
||||
{{#endref}}
|
||||
|
||||
## Inspeção de Pcap
|
||||
|
||||
|
||||
{{#ref}}
|
||||
pcap-inspection/
|
||||
{{#endref}}
|
||||
|
||||
## **Técnicas Anti-Forenses**
|
||||
|
||||
Tenha em mente o possível uso de técnicas anti-forenses:
|
||||
|
||||
|
||||
{{#ref}}
|
||||
anti-forensic-techniques.md
|
||||
{{#endref}}
|
||||
|
||||
## Caça a Ameaças
|
||||
|
||||
|
||||
{{#ref}}
|
||||
file-integrity-monitoring.md
|
||||
{{#endref}}
|
||||
|
@ -0,0 +1,124 @@
|
||||
# Forense de Backup iOS (Triagem centrada em mensagens)
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
||||
Esta página descreve passos práticos para reconstruir e analisar backups iOS em busca de sinais de entrega de exploits 0‑click via anexos de apps de mensagens. Ela foca em transformar o layout de backup com nomes hash da Apple em caminhos legíveis por humanos, e então enumerar e escanear anexos em apps comuns.
|
||||
|
||||
Objetivos:
|
||||
- Reconstruir caminhos legíveis a partir do Manifest.db
|
||||
- Enumerar bancos de dados de mensagens (iMessage, WhatsApp, Signal, Telegram, Viber)
|
||||
- Resolver caminhos de anexos, extrair objetos embutidos (PDF/Imagens/Fontes) e enviá‑los para detectores estruturais
|
||||
|
||||
|
||||
## Reconstruindo um backup iOS
|
||||
|
||||
Backups armazenados em MobileSync usam nomes de arquivo hashados que não são legíveis por humanos. O banco de dados SQLite Manifest.db mapeia cada objeto armazenado para seu caminho lógico.
|
||||
|
||||
Procedimento de alto nível:
|
||||
1) Abra o Manifest.db e leia os registros de arquivo (domain, relativePath, flags, fileID/hash)
|
||||
2) Recrie a hierarquia original de pastas com base em domain + relativePath
|
||||
3) Copie ou crie um hardlink de cada objeto armazenado para seu caminho reconstruído
|
||||
|
||||
Exemplo de fluxo de trabalho com uma ferramenta que implementa isso de ponta a ponta (ElegantBouncer):
|
||||
```bash
|
||||
# Rebuild the backup into a readable folder tree
|
||||
$ elegant-bouncer --ios-extract /path/to/backup --output /tmp/reconstructed
|
||||
[+] Reading Manifest.db ...
|
||||
✓ iOS backup extraction completed successfully!
|
||||
```
|
||||
Notas:
|
||||
- Lide com backups criptografados fornecendo a senha do backup ao seu extrator
|
||||
- Preserve timestamps/ACLs originais quando possível para valor probatório
|
||||
|
||||
|
||||
## Enumeração de anexos de apps de mensagens
|
||||
|
||||
Após a reconstrução, enumere os anexos dos apps mais populares. O esquema exato varia por app/versão, mas a abordagem é similar: consulte o banco de dados de mensagens, faça join entre message e attachment, e resolva os caminhos no disco.
|
||||
|
||||
### iMessage (sms.db)
|
||||
Tabelas-chave: message, attachment, message_attachment_join (MAJ), chat, chat_message_join (CMJ)
|
||||
|
||||
Consultas de exemplo:
|
||||
```sql
|
||||
-- List attachments with basic message linkage
|
||||
SELECT
|
||||
m.ROWID AS message_rowid,
|
||||
a.ROWID AS attachment_rowid,
|
||||
a.filename AS attachment_path,
|
||||
m.handle_id,
|
||||
m.date,
|
||||
m.is_from_me
|
||||
FROM message m
|
||||
JOIN message_attachment_join maj ON maj.message_id = m.ROWID
|
||||
JOIN attachment a ON a.ROWID = maj.attachment_id
|
||||
ORDER BY m.date DESC;
|
||||
|
||||
-- Include chat names via chat_message_join
|
||||
SELECT
|
||||
c.display_name,
|
||||
a.filename AS attachment_path,
|
||||
m.date
|
||||
FROM chat c
|
||||
JOIN chat_message_join cmj ON cmj.chat_id = c.ROWID
|
||||
JOIN message m ON m.ROWID = cmj.message_id
|
||||
JOIN message_attachment_join maj ON maj.message_id = m.ROWID
|
||||
JOIN attachment a ON a.ROWID = maj.attachment_id
|
||||
ORDER BY m.date DESC;
|
||||
```
|
||||
Os caminhos dos anexos podem ser absolutos ou relativos à árvore reconstruída em Library/SMS/Attachments/.
|
||||
|
||||
### WhatsApp (ChatStorage.sqlite)
|
||||
Ligação comum: message table ↔ media/attachment table (os nomes variam conforme a versão). Consulte as linhas da tabela media para obter os caminhos no disco.
|
||||
|
||||
Exemplo (genérico):
|
||||
```sql
|
||||
SELECT
|
||||
m.Z_PK AS message_pk,
|
||||
mi.ZMEDIALOCALPATH AS media_path,
|
||||
m.ZMESSAGEDATE AS message_date
|
||||
FROM ZWAMESSAGE m
|
||||
LEFT JOIN ZWAMEDIAITEM mi ON mi.ZMESSAGE = m.Z_PK
|
||||
WHERE mi.ZMEDIALOCALPATH IS NOT NULL
|
||||
ORDER BY m.ZMESSAGEDATE DESC;
|
||||
```
|
||||
Adjust table/column names to your app version (ZWAMESSAGE/ZWAMEDIAITEM are common in iOS builds).
|
||||
|
||||
### Signal / Telegram / Viber
|
||||
- Signal: o DB de mensagens está criptografado; no entanto, anexos em cache no disco (e miniaturas) geralmente podem ser escaneados
|
||||
- Telegram: inspecione os diretórios de cache (caches de foto/vídeo/documento) e mapeie para chats quando possível
|
||||
- Viber: Viber.sqlite contém tabelas de mensagem/anexo com referências em disco
|
||||
|
||||
Dica: mesmo quando os metadados estão criptografados, escanear os diretórios media/cache ainda revela objetos maliciosos.
|
||||
|
||||
|
||||
## Scanning attachments for structural exploits
|
||||
|
||||
Uma vez que você tenha caminhos de anexos, alimente-os em detectores estruturais que validam invariantes do formato de arquivo em vez de assinaturas. Exemplo com ElegantBouncer:
|
||||
```bash
|
||||
# Recursively scan only messaging attachments under the reconstructed tree
|
||||
$ elegant-bouncer --scan --messaging /tmp/reconstructed
|
||||
[+] Found N messaging app attachments to scan
|
||||
✗ THREAT in WhatsApp chat 'John Doe': suspicious_document.pdf → FORCEDENTRY (JBIG2)
|
||||
✗ THREAT in iMessage: photo.webp → BLASTPASS (VP8L)
|
||||
```
|
||||
Detecções cobertas por regras estruturais incluem:
|
||||
- PDF/JBIG2 FORCEDENTRY (CVE‑2021‑30860): estados de dicionário JBIG2 impossíveis
|
||||
- WebP/VP8L BLASTPASS (CVE‑2023‑4863): construções de tabelas Huffman superdimensionadas
|
||||
- TrueType TRIANGULATION (CVE‑2023‑41990): opcodes de bytecode não documentados
|
||||
- DNG/TIFF CVE‑2025‑43300: incompatibilidades entre metadados e componentes de stream
|
||||
|
||||
|
||||
## Validação, ressalvas e falsos positivos
|
||||
|
||||
- Conversões de tempo: iMessage armazena datas em Apple epochs/units em algumas versões; converta adequadamente ao relatar
|
||||
- Deriva de esquema: schemas SQLite de apps mudam ao longo do tempo; confirme nomes de tabelas/colunas por build do dispositivo
|
||||
- Extração recursiva: PDFs podem embutir streams JBIG2 e fontes; extraia e escaneie objetos internos
|
||||
- Falsos positivos: heurísticas estruturais são conservadoras, mas podem sinalizar mídias raras malformadas porém benignas
|
||||
|
||||
|
||||
## Referências
|
||||
|
||||
- [ELEGANTBOUNCER: When You Can't Get the Samples but Still Need to Catch the Threat](https://www.msuiche.com/posts/elegantbouncer-when-you-cant-get-the-samples-but-still-need-to-catch-the-threat/)
|
||||
- [ElegantBouncer project (GitHub)](https://github.com/msuiche/elegant-bouncer)
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
@ -1,4 +1,4 @@
|
||||
# Truques Específicos de Software/Tipo de Arquivo
|
||||
# Truques Específicos de Software/Tipos de Arquivo
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
@ -35,6 +35,11 @@ pdf-file-analysis.md
|
||||
{{#endref}}
|
||||
|
||||
|
||||
{{#ref}}
|
||||
structural-file-format-exploit-detection.md
|
||||
{{#endref}}
|
||||
|
||||
|
||||
{{#ref}}
|
||||
png-tricks.md
|
||||
{{#endref}}
|
||||
|
@ -0,0 +1,173 @@
|
||||
# Detecção Estrutural de Exploits em Formatos de Arquivo (0‑Click Chains)
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
Esta página resume técnicas práticas para detectar arquivos de exploit 0‑click para dispositivos móveis validando invariantes estruturais de seus formatos em vez de depender de assinaturas de bytes. A abordagem se generaliza entre amostras, variantes polimórficas e explorações futuras que abusem da mesma lógica do parser.
|
||||
|
||||
Ideia chave: codificar impossibilidades estruturais e inconsistências entre campos que só aparecem quando um estado vulnerável do decoder/parser é atingido.
|
||||
|
||||
Veja também:
|
||||
|
||||
{{#ref}}
|
||||
pdf-file-analysis.md
|
||||
{{#endref}}
|
||||
|
||||
|
||||
## Por que estrutura, não assinaturas
|
||||
|
||||
Quando amostras armadas não estão disponíveis e os bytes do payload mutam, padrões tradicionais IOC/YARA falham. A detecção estrutural inspeciona o layout declarado do container versus o que é matematicamente ou semanticamente possível para a implementação do formato.
|
||||
|
||||
Verificações típicas:
|
||||
- Validar tamanhos de tabelas e limites derivados da especificação e de implementações seguras
|
||||
- Sinalizar opcodes ilegais/não documentados ou transições de estado em bytecode embutido
|
||||
- Conferir metadados VS componentes reais do fluxo codificado
|
||||
- Detectar campos contraditórios que indiquem confusão do parser ou armadilhas para integer overflow
|
||||
|
||||
A seguir estão padrões concretos, testados em campo, para múltiplas cadeias de alto impacto.
|
||||
|
||||
---
|
||||
|
||||
## PDF/JBIG2 – FORCEDENTRY (CVE‑2021‑30860)
|
||||
|
||||
Target: JBIG2 symbol dictionaries embedded inside PDFs (often used in mobile MMS parsing).
|
||||
|
||||
Sinais estruturais:
|
||||
- Estado contraditório do dicionário que não pode ocorrer em conteúdo benigno, mas que é necessário para disparar o estouro na decodificação aritmética.
|
||||
- Uso suspeito de segmentos globais combinado com contagens de símbolos anormais durante o refinement coding.
|
||||
|
||||
Pseudo‑lógica:
|
||||
```pseudo
|
||||
# Detecting impossible dictionary state used by FORCEDENTRY
|
||||
if input_symbols_count == 0 and (ex_syms > 0 and ex_syms < 4):
|
||||
mark_malicious("JBIG2 impossible symbol dictionary state")
|
||||
```
|
||||
Triagem prática:
|
||||
- Identificar e extrair streams JBIG2 do PDF
|
||||
- pdfid/pdf-parser/peepdf para localizar e volcar streams
|
||||
- Verificar os arithmetic coding flags e os parâmetros do symbol dictionary em relação à especificação JBIG2
|
||||
|
||||
Notes:
|
||||
- Funciona sem embedded payload signatures
|
||||
- Baixa taxa de FP na prática porque o estado sinalizado é matematicamente inconsistente
|
||||
|
||||
---
|
||||
|
||||
## WebP/VP8L – BLASTPASS (CVE‑2023‑4863)
|
||||
|
||||
Alvo: tabelas Huffman de prefix‑code do WebP lossless (VP8L).
|
||||
|
||||
Sinais estruturais:
|
||||
- O tamanho total das tabelas Huffman construídas excede o limite superior seguro esperado pelas implementações de referência/patchadas, implicando a precondição de overflow.
|
||||
|
||||
Pseudo‑lógica:
|
||||
```pseudo
|
||||
# Detect malformed Huffman table construction triggering overflow
|
||||
let total_size = sum(table_sizes)
|
||||
if total_size > 2954: # example bound: FIXED_TABLE_SIZE + MAX_TABLE_SIZE
|
||||
mark_malicious("VP8L oversized Huffman tables")
|
||||
```
|
||||
Triagem prática:
|
||||
- Verificar chunks do container WebP: VP8X + VP8L
|
||||
- Analisar VP8L prefix codes e calcular os tamanhos reais das tabelas alocadas
|
||||
|
||||
Notas:
|
||||
- Robusto contra o polimorfismo a nível de bytes do payload
|
||||
- O limite é derivado de limites upstream/análise de patches
|
||||
|
||||
---
|
||||
|
||||
## TrueType – TRIANGULATION (CVE‑2023‑41990)
|
||||
|
||||
Target: TrueType bytecode inside fpgm/prep/glyf programs.
|
||||
|
||||
Sinais estruturais:
|
||||
- Presença de opcodes não documentados/proibidos no interpretador da Apple usados pela exploit chain.
|
||||
|
||||
Pseudo‑lógica:
|
||||
```pseudo
|
||||
# Flag undocumented TrueType opcodes leveraged by TRIANGULATION
|
||||
switch opcode:
|
||||
case 0x8F, 0x90:
|
||||
mark_malicious("Undocumented TrueType bytecode")
|
||||
default:
|
||||
continue
|
||||
```
|
||||
Triagem prática:
|
||||
- Extrair tabelas de fontes (por exemplo, usando fontTools/ttx) e verificar programas fpgm/prep/glyf
|
||||
- Não é necessário emular totalmente o interpretador para extrair valor de checagens de presença
|
||||
|
||||
Notes:
|
||||
- Pode produzir FPs raros se fontes não padronizadas incluírem opcodes desconhecidos; valide com ferramentas secundárias
|
||||
|
||||
---
|
||||
|
||||
## DNG/TIFF – CVE‑2025‑43300
|
||||
|
||||
Target: DNG/TIFF image metadata VS actual component count in encoded stream (e.g., JPEG‑Lossless SOF3).
|
||||
|
||||
Sinais estruturais:
|
||||
- Inconsistência entre os campos EXIF/IFD (SamplesPerPixel, PhotometricInterpretation) e a contagem de componentes analisada a partir do cabeçalho do fluxo de imagem usado pelo pipeline.
|
||||
|
||||
Pseudo‑lógica:
|
||||
```pseudo
|
||||
# Metadata claims 2 samples per pixel but stream header exposes only 1 component
|
||||
if samples_per_pixel == 2 and sof3_components == 1:
|
||||
mark_malicious("DNG/TIFF metadata vs. stream mismatch")
|
||||
```
|
||||
Triagem prática:
|
||||
- Analisar as tags IFD e EXIF primárias
|
||||
- Localizar e analisar o cabeçalho JPEG‑Lossless embutido (SOF3) e comparar contagens de componentes
|
||||
|
||||
Notas:
|
||||
- Relatado como explorado em ambientes reais; excelente candidato para verificações de consistência estrutural
|
||||
|
||||
---
|
||||
|
||||
## Padrões de implementação e desempenho
|
||||
|
||||
Um scanner prático deve:
|
||||
- Detectar automaticamente o tipo de arquivo e acionar apenas os analisadores relevantes (PDF/JBIG2, WebP/VP8L, TTF, DNG/TIFF)
|
||||
- Processar por streaming/parse parcial para minimizar alocações e permitir término antecipado
|
||||
- Executar análises em paralelo (thread‑pool) para triagem em massa
|
||||
|
||||
Exemplo de fluxo de trabalho com ElegantBouncer (implementação open‑source em Rust dessas verificações):
|
||||
```bash
|
||||
# Scan a path recursively with structural detectors
|
||||
$ elegant-bouncer --scan /path/to/directory
|
||||
|
||||
# Optional TUI for parallel scanning and real‑time alerts
|
||||
$ elegant-bouncer --tui --scan /path/to/samples
|
||||
```
|
||||
---
|
||||
|
||||
## Dicas de DFIR e casos de borda
|
||||
|
||||
- Objetos embutidos: PDFs podem embutir imagens (JBIG2) e fontes (TrueType); extrair e escanear recursivamente
|
||||
- Segurança na descompressão: use bibliotecas que limitem estritamente tabelas/buffers antes da alocação
|
||||
- Falsos positivos: mantenha regras conservadoras, favoreça contradições que sejam impossíveis segundo a especificação
|
||||
- Deriva de versão: reestabelecer limites de referência (e.g., tamanhos de tabela VP8L) quando parsers a montante mudarem limites
|
||||
|
||||
---
|
||||
|
||||
## Ferramentas relacionadas
|
||||
|
||||
- ElegantBouncer – scanner estrutural para as detecções acima
|
||||
- pdfid/pdf-parser/peepdf – extração de objetos PDF e análise estática
|
||||
- pdfcpu – linter/sanitizador de PDF
|
||||
- fontTools/ttx – extrair tabelas TrueType e bytecode
|
||||
- exiftool – ler metadados TIFF/DNG/EXIF
|
||||
- dwebp/webpmux – analisar metadados e chunks WebP
|
||||
|
||||
---
|
||||
|
||||
## Referências
|
||||
|
||||
- [ELEGANTBOUNCER: When You Can't Get the Samples but Still Need to Catch the Threat](https://www.msuiche.com/posts/elegantbouncer-when-you-cant-get-the-samples-but-still-need-to-catch-the-threat/)
|
||||
- [ElegantBouncer project (GitHub)](https://github.com/msuiche/elegant-bouncer)
|
||||
- [Researching FORCEDENTRY: Detecting the exploit with no samples](https://www.msuiche.com/posts/researching-forcedentry-detecting-the-exploit-with-no-samples/)
|
||||
- [Researching BLASTPASS – Detecting the exploit inside a WebP file (Part 1)](https://www.msuiche.com/posts/researching-blastpass-detecting-the-exploit-inside-a-webp-file-part-1/)
|
||||
- [Researching BLASTPASS – Analysing the Apple & Google WebP PoC file (Part 2)](https://www.msuiche.com/posts/researching-blastpass-analysing-the-apple-google-webp-poc-file-part-2/)
|
||||
- [Researching TRIANGULATION – Detecting CVE‑2023‑41990 with single‑byte signatures](https://www.msuiche.com/posts/researching-triangulation-detecting-cve-2023-41990-with-single-byte-signatures/)
|
||||
- [CVE‑2025‑43300: Critical vulnerability found in Apple’s DNG image processing](https://www.msuiche.com/posts/cve-2025-43300-critical-vulnerability-found-in-apples-dng-image-processing/)
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
Loading…
x
Reference in New Issue
Block a user