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

This commit is contained in:
Translator 2025-08-26 20:10:37 +00:00
parent 37facc3139
commit 910bb37804
5 changed files with 412 additions and 17 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

@ -1,79 +1,172 @@
# Основна Судово-Медична Методологія
# Базова методологія цифрової судової експертизи
{{#include ../../banners/hacktricks-training.md}}
## Створення та Монтування Зображення
## Створення та підключення образу
{{#ref}}
../../generic-methodologies-and-resources/basic-forensic-methodology/image-acquisition-and-mount.md
{{#endref}}
## Аналіз Шкідливого ПЗ
## Аналіз шкідливого ПЗ
This **isn't necessary the first step to perform once you have the image**. Але ви можете використовувати ці техніки аналізу шкідливого ПЗ незалежно, якщо у вас є файл, образ файлової системи, memory image, pcap... тому корисно **мати ці дії на увазі**:
Це **не обов'язково перший крок, який потрібно виконати після отримання зображення**. Але ви можете використовувати ці техніки аналізу шкідливого ПЗ незалежно, якщо у вас є файл, образ файлової системи, образ пам'яті, pcap... тому добре **тримати ці дії в пам'яті**:
{{#ref}}
malware-analysis.md
{{#endref}}
## Інспекція Зображення
## Огляд образу
Якщо вам надали **судовий образ** пристрою, ви можете почати **аналізувати розділи, файлову систему**, що використовується, та **відновлювати** потенційно **цікаві файли** (навіть видалені). Дізнайтеся як у:
{{#ref}}
partitions-file-systems-carving/
{{#endref}}# Базова методологія цифрової судової експертизи
## Створення та підключення образу
{{#ref}}
../../generic-methodologies-and-resources/basic-forensic-methodology/image-acquisition-and-mount.md
{{#endref}}
## Аналіз шкідливого ПЗ
This **isn't necessary the first step to perform once you have the image**. Але ви можете використовувати ці техніки аналізу шкідливого ПЗ незалежно, якщо у вас є файл, образ файлової системи, memory image, pcap... тому корисно **мати ці дії на увазі**:
{{#ref}}
malware-analysis.md
{{#endref}}
## Огляд образу
Якщо вам надали **судовий образ** пристрою, ви можете почати **аналізувати розділи, файлову систему** що використовується та **відновлювати** потенційно **цікаві файли** (навіть видалені). Дізнайтеся як у:
Якщо вам надано **судово-медичне зображення** пристрою, ви можете почати **аналізувати розділи, файлову систему** та **відновлювати** потенційно **цікаві файли** (навіть видалені). Дізнайтеся, як це зробити в:
{{#ref}}
partitions-file-systems-carving/
{{#endref}}
В залежності від використовуваних ОС та навіть платформи слід шукати різні цікаві артефакти:
Залежно від використовуваної ОС та навіть платформи слід шукати різні цікаві артефакти:
{{#ref}}
windows-forensics/
{{#endref}}
{{#ref}}
linux-forensics.md
{{#endref}}
{{#ref}}
docker-forensics.md
{{#endref}}
## Глибока інспекція специфічних типів файлів та ПЗ
Якщо у вас є дуже **підозрілий** **файл**, тоді **в залежності від типу файлу та програмного забезпечення**, яке його створило, можуть бути корисні кілька **трюків**.\
{{#ref}}
ios-backup-forensics.md
{{#endref}}
## Глибокий огляд конкретних типів файлів та програмного забезпечення
Якщо у вас є дуже **підозрілий** **файл**, то **залежно від типу файлу та програмного забезпечення**, що його створило, кілька **трюків** можуть бути корисними.\
Прочитайте наступну сторінку, щоб дізнатися деякі цікаві трюки:
{{#ref}}
specific-software-file-type-tricks/
{{#endref}}
Я хочу особливо згадати сторінку:
Хочу особливо відзначити сторінку:
{{#ref}}
specific-software-file-type-tricks/browser-artifacts.md
{{#endref}}
## Інспекція Дампів Пам'яті
## Аналіз дампу пам'яті
{{#ref}}
memory-dump-analysis/
{{#endref}}
## Інспекція Pcap
## Аналіз pcap
{{#ref}}
pcap-inspection/
{{#endref}}
## **Анти-Судово-Медичні Техніки**
## **Контрфорензичні техніки**
Майте на увазі можливе використання контрфорензичних технік:
Майте на увазі можливе використання анти-судово-медичних технік:
{{#ref}}
anti-forensic-techniques.md
{{#endref}}
## Полювання на Загрози
## Threat Hunting
{{#ref}}
file-integrity-monitoring.md
{{#endref}}
## Глибокий огляд конкретних типів файлів та програмного забезпечення
Якщо у вас є дуже **підозрілий** **файл**, то **залежно від типу файлу та програмного забезпечення**, що його створило, кілька **трюків** можуть бути корисними.\
Прочитайте наступну сторінку, щоб дізнатися деякі цікаві трюки:
{{#ref}}
specific-software-file-type-tricks/
{{#endref}}
Хочу особливо відзначити сторінку:
{{#ref}}
specific-software-file-type-tricks/browser-artifacts.md
{{#endref}}
## Аналіз дампу пам'яті
{{#ref}}
memory-dump-analysis/
{{#endref}}
## Аналіз pcap
{{#ref}}
pcap-inspection/
{{#endref}}
## **Контрфорензичні техніки**
Майте на увазі можливе використання контрфорензичних технік:
{{#ref}}
anti-forensic-techniques.md
{{#endref}}
## Threat Hunting
{{#ref}}
file-integrity-monitoring.md

View File

@ -0,0 +1,122 @@
# Форензика резервних копій iOS (триаж, орієнтований на повідомлення)
{{#include ../../banners/hacktricks-training.md}}
Ця сторінка описує практичні кроки для відтворення та аналізу резервних копій iOS на предмет ознак доставки 0click експлойтів через вкладення в месенджерах. Зосереджено на перетворенні хешованої структури резервної копії Apple у людино‑читабельні шляхи, а також на переліченні та скануванні вкладень у поширених додатках.
Цілі:
- Відновити читабельні шляхи з Manifest.db
- Перерахувати бази даних повідомлень (iMessage, WhatsApp, Signal, Telegram, Viber)
- Розв’язати шляхи вкладень, витягти вбудовані об’єкти (PDF/Images/Fonts) та передати їх у структурні детектори
## Відновлення резервної копії iOS
Резервні копії, що зберігаються в MobileSync, використовують хешовані імена файлів, які не читаються людиною. База даних Manifest.db (SQLite) відображає кожен збережений об'єкт на його логічний шлях.
Загальна процедура:
1) Відкрити Manifest.db і прочитати записи файлів (domain, relativePath, flags, fileID/hash)
2) Відтворити оригінальну структуру папок на основі domain + relativePath
3) Скопіювати або створити hardlink для кожного збереженого об'єкта до його відновленого шляху
Приклад робочого процесу з інструментом, що реалізує це 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!
```
Примітки:
- Обробляйте зашифровані резервні копії, передаючи пароль резервної копії вашому екстрактору
- Зберігайте оригінальні часові відмітки/ACLs коли це можливо для доказової цінності
## Перерахування вкладень у додатках обміну повідомленнями
Після реконструкції перераховуйте вкладення для популярних додатків. Конкретна схема залежить від додатка/версії, але підхід схожий: запитуйте базу даних повідомлень, зв'язуйте повідомлення з вкладеннями й визначайте шляхи на диску.
### iMessage (sms.db)
Ключові таблиці: message, attachment, message_attachment_join (MAJ), chat, chat_message_join (CMJ)
Приклади запитів:
```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;
```
Шляхи вкладень можуть бути абсолютними або відносними до відновленого дерева під Library/SMS/Attachments/.
### WhatsApp (ChatStorage.sqlite)
Типове зв'язування: message table ↔ media/attachment table (іменування може відрізнятися залежно від версії). Запитуйте media rows, щоб отримати ondisk paths.
```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: база даних повідомлень (DB) зашифрована; проте вкладення, кешовані на диску (та мініатюри), зазвичай піддаються скануванню
- Telegram: перевіряйте каталоги кешу (photo/video/document caches) і по можливості зіставляйте їх з чатами
- Viber: Viber.sqlite містить таблиці message/attachment з посиланнями на диску
Tip: навіть коли метадані зашифровані, сканування каталогів медіа/кеш (media/cache directories) все ще виявляє шкідливі об'єкти.
## Scanning attachments for structural exploits
Once you have attachment paths, feed them into structural detectors that validate fileformat invariants instead of signatures. Example with 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)
```
Виявлення, покриті структурними правилами, включають:
- PDF/JBIG2 FORCEDENTRY (CVE202130860): неможливі стани словника JBIG2
- WebP/VP8L BLASTPASS (CVE20234863): надмірно великі конструкції таблиць Huffman
- TrueType TRIANGULATION (CVE202341990): незадокументовані опкоди bytecode
- DNG/TIFF CVE202543300: невідповідності між metadata та компонентами потоку
## Валідація, застереження та помилкові спрацьовування
- Перетворення часу: iMessage зберігає дати в епохах/одиницях Apple у деяких версіях; перетворюйте відповідно під час звітування
- Schema drift: схеми SQLite додатку змінюються з часом; підтверджуйте імена таблиць/стовпців для конкретної збірки пристрою
- Recursive extraction: PDFs можуть містити вбудовані потоки JBIG2 та шрифти; витягуйте та скануйте внутрішні об'єкти
- False positives: структурні евристики є консервативними, але можуть позначати рідкісні пошкоджені, але нешкідливі медіафайли
## References
- [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 @@
# Специфічні трюки з програмного забезпечення/типів файлів
# Специфічні трюки для програмного забезпечення та типів файлів
{{#include ../../../banners/hacktricks-training.md}}
Тут ви можете знайти цікаві трюки для специфічних типів файлів та/або програмного забезпечення:
Тут ви можете знайти цікаві трюки для конкретних типів файлів та/або програмного забезпечення:
{{#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 @@
# Structural FileFormat Exploit Detection (0Click Chains)
{{#include ../../../banners/hacktricks-training.md}}
На цій сторінці узагальнено практичні методи виявлення 0click mobile exploit files шляхом перевірки структурних інваріант формату замість покладання на byte signatures. Підхід узагальнюється на різні зразки, поліморфні варіанти та майбутні експлойти, що зловживають тією самою parser логікою.
Ключова ідея: кодувати структурні неможливості та міжполе невідповідності, які з'являються лише коли досягається вразливий decoder/parser стан.
See also:
{{#ref}}
pdf-file-analysis.md
{{#endref}}
## Why structure, not signatures
Коли weaponized samples недоступні, а payload bytes мутують, традиційні IOC/YARA патерни зазнають поразки. Structural detection перевіряє заявлену розмітку контейнера проти того, що математично або семантично можливо для реалізації формату.
Типові перевірки:
- Валідувати розміри таблиць і межі, виведені зі spec та безпечних імплементацій
- Позначати illegal/undocumented opcodes або state transitions в embedded bytecode
- Перевіряти metadata VS фактичні компоненти закодованого stream
- Виявляти суперечливі поля, які вказують на parser confusion або integer overflow setups
Нижче — конкретні, перевірені в полі шаблони для кількох високовпливових chains.
---
## PDF/JBIG2 FORCEDENTRY (CVE202130860)
Target: JBIG2 symbol dictionaries embedded inside PDFs (often used in mobile MMS parsing).
Structural signals:
- Contradictory dictionary state that cannot occur in benign content but is required to trigger the overflow in arithmetic decoding.
- Suspicious use of global segments combined with abnormal symbol counts during refinement coding.
Псевдо‑логіка:
```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")
```
Практичний тріаж:
- Виявити та витягти JBIG2-потоки з PDF
- pdfid/pdf-parser/peepdf для знаходження та дампу потоків
- Перевірити прапори арифметичного кодування та параметри словника символів відповідно до JBIG2 spec
Notes:
- Works without embedded payload signatures
- Low FP in practice because the flagged state is mathematically inconsistent
---
## WebP/VP8L BLASTPASS (CVE20234863)
Target: префіксні таблиці кодів Huffman для WebP lossless (VP8L).
Структурні ознаки:
- Загальний розмір збудованих таблиць Huffman перевищує безпечну верхню межу, очікувану референсними/запатченими реалізаціями, що вказує на передумову переповнення.
Псевдо‑логіка:
```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")
```
Практична перевірка:
- Перевірити чанки контейнера WebP: VP8X + VP8L
- Розібрати VP8L prefix codes і обчислити фактичні розміри виділених таблиць
Примітки:
- Стійкий до байтового поліморфізму payload
- Межа виведена з аналізу upstream limits/patch
---
## TrueType TRIANGULATION (CVE202341990)
Target: TrueType bytecode inside fpgm/prep/glyf programs.
Структурні сигнали:
- Наявність undocumented/forbidden opcodes в Apples interpreter, які використовуються exploit chain.
Псевдо‑логіка:
```pseudo
# Flag undocumented TrueType opcodes leveraged by TRIANGULATION
switch opcode:
case 0x8F, 0x90:
mark_malicious("Undocumented TrueType bytecode")
default:
continue
```
Практичний тріаж:
- Вивантажити таблиці шрифтів (наприклад, за допомогою fontTools/ttx) та просканувати програми fpgm/prep/glyf
- Немає потреби повністю емулювати інтерпретатор, щоб отримати користь від перевірок на наявність
Примітки:
- Може давати рідкісні FPs, якщо нестандартні шрифти містять невідомі опкоди; перевірте за допомогою додаткових інструментів
---
## DNG/TIFF CVE202543300
Target: метадані зображення DNG/TIFF проти фактичної кількості компонентів у закодованому потоці (наприклад, JPEGLossless SOF3).
Структурні ознаки:
- Невідповідність між полями EXIF/IFD (SamplesPerPixel, PhotometricInterpretation) та кількістю компонентів, розібраною з заголовка потоку зображення, що використовується в pipeline.
Псевдо‑логіка:
```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")
```
Practical triage:
- Розпарсити первинні IFD і EXIF теги
- Знайти та розпарсити вбудований заголовок JPEGLossless (SOF3) і порівняти кількість компонентів
Notes:
- Повідомлялося про експлуатацію в реальних умовах; відмінний кандидат для перевірок структурної узгодженості
---
## Implementation patterns and performance
A practical scanner should:
- Автоматично визначати тип файлу та запускати тільки релевантні аналізатори (PDF/JBIG2, WebP/VP8L, TTF, DNG/TIFF)
- Парсити в потоковому/частковому режимі, щоб мінімізувати виділення пам'яті та дозволити раннє завершення
- Запускати аналізи паралельно (threadpool) для масового triage
Example workflow with ElegantBouncer (відкрита реалізація на Rust цих перевірок):
```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
```
---
## DFIR поради та крайові випадки
- Embedded objects: PDFs may embed images (JBIG2) and fonts (TrueType); extract and recursively scan
- Безпека декомпресії: використовуйте бібліотеки, що жорстко обмежують таблиці/буфери перед виділенням пам'яті
- Хибні спрацьовування: тримайте правила консервативними, віддавайте перевагу протиріччям, які неможливі за специфікацією
- Version drift: rebaseline bounds (e.g., VP8L table sizes) when upstream parsers change limits
---
## Пов'язані інструменти
- ElegantBouncer структурний сканер для наведених вище виявлень
- pdfid/pdf-parser/peepdf витяг об'єктів PDF та статичний аналіз
- pdfcpu лінтер/санітизатор PDF
- fontTools/ttx дамп таблиць TrueType та байткоду
- exiftool читати метадані TIFF/DNG/EXIF
- dwebp/webpmux parse WebP metadata and chunks
---
## References
- [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}}