Translated ['src/generic-methodologies-and-resources/basic-forensic-meth

This commit is contained in:
Translator 2025-08-26 20:10:10 +00:00
parent 6df0ac4483
commit 099d4b988f
5 changed files with 409 additions and 12 deletions

View File

@ -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)

View File

@ -4,56 +4,97 @@
## Creación y Montaje de una Imagen
{{#ref}}
../../generic-methodologies-and-resources/basic-forensic-methodology/image-acquisition-and-mount.md
{{#endref}}
## Análisis de Malware
## Malware Analysis
This **isn't necessary the first step to perform once you have the image**. But you can use this malware analysis techniques independently if you have a file, a file-system image, memory image, pcap... so it's good to **keep these actions in mind**:
Esto **no es necesariamente el primer paso a realizar una vez que tienes la imagen**. Pero puedes usar estas técnicas de análisis de malware de forma independiente si tienes un archivo, una imagen de sistema de archivos, imagen de memoria, pcap... así que es bueno **tener en cuenta estas acciones**:
{{#ref}}
malware-analysis.md
{{#endref}}
## Inspección de una Imagen
## Inspeccionar una Imagen
si te entregan una **imagen forense** de un dispositivo puedes comenzar a **analizar las particiones, el sistema de archivos** utilizado y **recuperar** potencialmente **archivos interesantes** (incluso eliminados). Aprende cómo en:
{{#ref}}
partitions-file-systems-carving/
{{#endref}}# Metodología Forense Básica
## Creación y Montaje de una Imagen
{{#ref}}
../../generic-methodologies-and-resources/basic-forensic-methodology/image-acquisition-and-mount.md
{{#endref}}
## Malware Analysis
This **isn't necessary the first step to perform once you have the image**. But you can use this malware analysis techniques independently if you have a file, a file-system image, memory image, pcap... so it's good to **keep these actions in mind**:
{{#ref}}
malware-analysis.md
{{#endref}}
## Inspeccionar una Imagen
si te entregan una **imagen forense** de un dispositivo puedes comenzar a **analizar las particiones, el sistema de archivos** utilizado y **recuperar** potencialmente **archivos interesantes** (incluso eliminados). Aprende cómo en:
Si se te proporciona una **imagen forense** de un dispositivo, puedes comenzar **a analizar las particiones, el sistema de archivos** utilizado y **recuperar** potencialmente **archivos interesantes** (incluso los eliminados). Aprende cómo en:
{{#ref}}
partitions-file-systems-carving/
{{#endref}}
Dependiendo de los sistemas operativos utilizados e incluso de la plataforma, se deben buscar diferentes artefactos interesantes:
Dependiendo de los sistemas operativos utilizados e incluso de la plataforma, deberían buscarse diferentes artefactos interesantes:
{{#ref}}
windows-forensics/
{{#endref}}
{{#ref}}
linux-forensics.md
{{#endref}}
{{#ref}}
docker-forensics.md
{{#endref}}
## Inspección Profunda de Tipos de Archivos Específicos y Software
Si tienes un **archivo** muy **sospechoso**, entonces **dependiendo del tipo de archivo y del software** que lo creó, varios **trucos** pueden ser útiles.\
{{#ref}}
ios-backup-forensics.md
{{#endref}}
## Inspección profunda de tipos de archivo y software específicos
Si tienes un archivo muy **sospechoso**, entonces **dependiendo del tipo de archivo y del software** que lo creó, varios **trucos** pueden ser útiles.\
Lee la siguiente página para aprender algunos trucos interesantes:
{{#ref}}
specific-software-file-type-tricks/
{{#endref}}
Quiero hacer una mención especial a la página:
{{#ref}}
specific-software-file-type-tricks/browser-artifacts.md
{{#endref}}
{{#endref}
## Inspección de volcado de memoria
## Inspección de Volcado de Memoria
{{#ref}}
memory-dump-analysis/
@ -61,6 +102,7 @@ memory-dump-analysis/
## Inspección de Pcap
{{#ref}}
pcap-inspection/
{{#endref}}
@ -69,11 +111,62 @@ pcap-inspection/
Ten en cuenta el posible uso de técnicas anti-forenses:
{{#ref}}
anti-forensic-techniques.md
{{#endref}}
## Caza de Amenazas
## Threat Hunting
{{#ref}}
file-integrity-monitoring.md
{{#endref}}
## Inspección profunda de tipos de archivo y software específicos
Si tienes un archivo muy **sospechoso**, entonces **dependiendo del tipo de archivo y del software** que lo creó, varios **trucos** pueden ser útiles.\
Lee la siguiente página para aprender algunos trucos interesantes:
{{#ref}}
specific-software-file-type-tricks/
{{#endref}}
Quiero hacer una mención especial a la página:
{{#ref}}
specific-software-file-type-tricks/browser-artifacts.md
{{#endref}}
## Inspección de volcado de memoria
{{#ref}}
memory-dump-analysis/
{{#endref}}
## Inspección de Pcap
{{#ref}}
pcap-inspection/
{{#endref}}
## **Técnicas Anti-Forenses**
Ten en cuenta el posible uso de técnicas anti-forenses:
{{#ref}}
anti-forensic-techniques.md
{{#endref}}
## Threat Hunting
{{#ref}}
file-integrity-monitoring.md

View File

@ -0,0 +1,124 @@
# Forense de backups de iOS (triaje centrado en mensajería)
{{#include ../../banners/hacktricks-training.md}}
Esta página describe pasos prácticos para reconstruir y analizar backups de iOS en busca de señales de entrega de exploits 0click vía adjuntos de apps de mensajería. Se centra en convertir el layout de backups hasheados de Apple en rutas legibles por humanos, y luego enumerar y escanear adjuntos en apps comunes.
Goals:
- Reconstruir rutas legibles a partir de Manifest.db
- Enumerar bases de datos de mensajería (iMessage, WhatsApp, Signal, Telegram, Viber)
- Resolver rutas de adjuntos, extraer objetos incrustados (PDF/Imágenes/Fuentes), y pasarlos a detectores estructurales
## Reconstrucción de un backup de iOS
Los backups almacenados bajo MobileSync usan nombres de archivo hasheados que no son legibles por humanos. La base de datos SQLite Manifest.db mapea cada objeto almacenado a su ruta lógica.
Highlevel procedure:
1) Open Manifest.db and read the file records (domain, relativePath, flags, fileID/hash)
2) Recreate the original folder hierarchy based on domain + relativePath
3) Copy or hardlink each stored object to its reconstructed path
Example workflow with a tool that implements this endtoend (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:
- Maneje las copias de seguridad cifradas suministrando la contraseña de la copia de seguridad a su extractor
- Preserve marcas de tiempo/ACLs originales cuando sea posible por su valor probatorio
## Enumeración de adjuntos de aplicaciones de mensajería
Después de la reconstrucción, enumere los adjuntos de las apps populares. El esquema exacto varía según la app/version, pero el enfoque es similar: consulte la base de datos de mensajería, una mensajes con adjuntos y resuelva las rutas en el disco.
### iMessage (sms.db)
Tablas clave: message, attachment, message_attachment_join (MAJ), chat, chat_message_join (CMJ)
Consultas de ejemplo:
```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;
```
Las rutas de los archivos adjuntos pueden ser absolutas o relativas al árbol reconstruido bajo Library/SMS/Attachments/.
### WhatsApp (ChatStorage.sqlite)
Vinculación común: message table ↔ media/attachment table (naming varies by version). Consulta las filas de media para obtener las rutas en disco.
Ejemplo (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;
```
Ajusta los nombres de tablas/columnas a la versión de tu app (ZWAMESSAGE/ZWAMEDIAITEM son comunes en iOS builds).
### Signal / Telegram / Viber
- Signal: el message DB está cifrado; sin embargo, los attachments cached on disk (y thumbnails) suelen ser scanable
- Telegram: inspecciona cache directories (photo/video/document caches) y mapea a chats cuando sea posible
- Viber: Viber.sqlite contiene message/attachment tables con referencias ondisk
Tip: incluso cuando la metadata está cifrada, escanear los media/cache directories sigue revelando malicious objects.
## Escaneo de attachments para structural exploits
Una vez que tengas attachment paths, introdúcelos en structural detectors que validen fileformat invariants en lugar de signatures. Ejemplo con 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)
```
Detections covered by structural rules include:
- PDF/JBIG2 FORCEDENTRY (CVE202130860): estados de diccionario JBIG2 imposibles
- WebP/VP8L BLASTPASS (CVE20234863): construcciones de tablas de Huffman sobredimensionadas
- TrueType TRIANGULATION (CVE202341990): opcodes de bytecode no documentados
- DNG/TIFF CVE202543300: desajustes entre metadatos y componentes del flujo
## Validación, advertencias y falsos positivos
- Conversiones de tiempo: iMessage almacena fechas en epochs/unidades de Apple en algunas versiones; conviértelas apropiadamente al elaborar el informe
- Deriva de esquema: los esquemas SQLite de la app cambian con el tiempo; confirma los nombres de tablas/columnas según la versión del dispositivo
- Extracción recursiva: los PDFs pueden incrustar flujos JBIG2 y fuentes; extrae y analiza los objetos internos
- Falsos positivos: las heurísticas estructurales son conservadoras pero pueden marcar medios raramente malformados que, sin embargo, son benignos
## Referencias
- [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}}

View File

@ -1,8 +1,8 @@
# Trucos Específicos de Software/Tipo de Archivo
# Trucos específicos de software/tipo de archivo
{{#include ../../../banners/hacktricks-training.md}}
Aquí puedes encontrar trucos interesantes para tipos de archivos y/o software específicos:
Aquí puedes encontrar trucos interesantes para tipos de archivo y/o software específicos:
{{#ref}}
@ -35,6 +35,11 @@ pdf-file-analysis.md
{{#endref}}
{{#ref}}
structural-file-format-exploit-detection.md
{{#endref}}
{{#ref}}
png-tricks.md
{{#endref}}

View File

@ -0,0 +1,173 @@
# Detección de Exploits en Formatos Estructurales de Archivos (0Click Chains)
{{#include ../../../banners/hacktricks-training.md}}
Esta página resume técnicas prácticas para detectar archivos exploit móviles de 0click validando invariantes estructurales de sus formatos en lugar de depender de firmas de bytes. El enfoque se generaliza entre muestras, variantes polimórficas y futuros exploits que abusen de la misma lógica del parser.
Idea clave: codificar imposibilidades estructurales e inconsistencias entre campos que solo aparecen cuando se alcanza un estado vulnerable del decodificador/parser.
Ver también:
{{#ref}}
pdf-file-analysis.md
{{#endref}}
## Por qué la estructura, no las firmas
Cuando muestras weaponized no están disponibles y los bytes del payload mutan, los patrones tradicionales IOC/YARA fallan. La detección estructural inspecciona la disposición declarada del contenedor frente a lo que es matemática o semánticamente posible para la implementación del formato.
Comprobaciones típicas:
- Validar tamaños de tablas y límites derivados de la especificación y de implementaciones seguras
- Señalar opcodes ilegales/no documentados o transiciones de estado en bytecode embebido
- Contrastar metadata VS los componentes reales del stream codificado
- Detectar campos contradictorios que indican confusión del parser o preparaciones para integer overflow
Abajo hay patrones concretos, probados en campo, para varias cadenas de alto impacto.
---
## PDF/JBIG2 FORCEDENTRY (CVE202130860)
Target: JBIG2 symbol dictionaries embedded inside PDFs (often used in mobile MMS parsing).
Señales estructurales:
- Estado contradictorio del diccionario que no puede ocurrir en contenido benigno pero es necesario para disparar el desbordamiento en la decodificación aritmética.
- Uso sospechoso de segmentos globales combinado con conteos anormales de símbolos durante la codificación de refinamiento.
Pseudoló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")
```
Triaje práctico:
- Identificar y extraer streams JBIG2 del PDF
- pdfid/pdf-parser/peepdf para localizar y volcar streams
- Verificar flags de codificación aritmética y parámetros del diccionario de símbolos contra la especificación JBIG2
Notas:
- Funciona sin firmas de payload embebido
- Bajo FP en la práctica porque el estado marcado es matemáticamente inconsistente
---
## WebP/VP8L BLASTPASS (CVE20234863)
Objetivo: WebP lossless (VP8L) tablas de códigos prefijo Huffman.
Señales estructurales:
- El tamaño total de las tablas Huffman construidas excede el límite superior seguro esperado por las implementaciones de referencia/parchadas, lo que implica la precondición de desbordamiento.
Pseudoló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")
```
Triaje práctico:
- Comprueba los chunks del contenedor WebP: VP8X + VP8L
- Analiza los códigos de prefijo de VP8L y calcula los tamaños reales de las tablas asignadas
Notas:
- Robusto frente al polimorfismo a nivel de bytes del payload
- El límite se deriva del análisis de límites/parches upstream
---
## TrueType TRIANGULATION (CVE202341990)
Objetivo: bytecode de TrueType dentro de los programas fpgm/prep/glyf.
Señales estructurales:
- Presencia de opcodes no documentados/prohibidos en el intérprete de Apple utilizado por la cadena de exploit.
Pseudológica:
```pseudo
# Flag undocumented TrueType opcodes leveraged by TRIANGULATION
switch opcode:
case 0x8F, 0x90:
mark_malicious("Undocumented TrueType bytecode")
default:
continue
```
Practical triage:
- Extraer tablas de fuentes (p. ej., usando fontTools/ttx) y escanear programas fpgm/prep/glyf
- No es necesario emular completamente el intérprete para obtener valor de las comprobaciones de presencia
Notes:
- Puede producir FPs raros si fuentes no estándar incluyen opcodes desconocidos; validar con herramientas secundarias
---
## DNG/TIFF CVE202543300
Target: DNG/TIFF image metadata VS actual component count in encoded stream (e.g., JPEGLossless SOF3).
Structural signals:
- Inconsistency between EXIF/IFD fields (SamplesPerPixel, PhotometricInterpretation) and the component count parsed from the image stream header used by the pipeline.
Pseudologic:
```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")
```
Triaje práctico:
- Analizar las etiquetas primarias IFD y EXIF
- Localizar y parsear el JPEGLossless header (SOF3) embebido y comparar el conteo de componentes
Notas:
- Reportado explotado en entornos reales; excelente candidato para comprobaciones de consistencia estructural
---
## Patrones de implementación y rendimiento
Un escáner práctico debería:
- Detectar automáticamente el tipo de archivo y ejecutar solo los analizadores relevantes (PDF/JBIG2, WebP/VP8L, TTF, DNG/TIFF)
- Procesar en streaming/parsear parcialmente para minimizar asignaciones y permitir terminación temprana
- Ejecutar análisis en paralelo (threadpool) para triaje masivo
Ejemplo de flujo de trabajo con ElegantBouncer (implementación en Rust de código abierto de estas comprobaciones):
```bash
# Scan a path recursively with structural detectors
$ elegant-bouncer --scan /path/to/directory
# Optional TUI for parallel scanning and realtime alerts
$ elegant-bouncer --tui --scan /path/to/samples
```
---
## Consejos DFIR y casos límite
- Objetos embebidos: los PDFs pueden incrustar imágenes (JBIG2) y fuentes (TrueType); extraer y escanear recursivamente
- Seguridad en la descompresión: usar bibliotecas que limiten de forma estricta tablas/buffers antes de la asignación
- Falsos positivos: mantener las reglas conservadoras, favorecer contradicciones que sean imposibles según la especificación
- Deriva de versiones: recalibrar los límites de referencia (p. ej., tamaños de tablas VP8L) cuando los parsers upstream cambien los límites
---
## Herramientas relacionadas
- ElegantBouncer escáner estructural para las detecciones anteriores
- pdfid/pdf-parser/peepdf extracción de objetos PDF y análisis estático
- pdfcpu linter/sanitizador de PDF
- fontTools/ttx volcar tablas TrueType y bytecode
- exiftool leer metadatos TIFF/DNG/EXIF
- dwebp/webpmux analizar metadatos y chunks de WebP
---
## Referencias
- [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 CVE202341990 with singlebyte signatures](https://www.msuiche.com/posts/researching-triangulation-detecting-cve-2023-41990-with-single-byte-signatures/)
- [CVE202543300: Critical vulnerability found in Apples DNG image processing](https://www.msuiche.com/posts/cve-2025-43300-critical-vulnerability-found-in-apples-dng-image-processing/)
{{#include ../../../banners/hacktricks-training.md}}