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
37facc3139
commit
910bb37804
@ -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)
|
||||
|
@ -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
|
||||
|
@ -0,0 +1,122 @@
|
||||
# Форензика резервних копій iOS (триаж, орієнтований на повідомлення)
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
||||
Ця сторінка описує практичні кроки для відтворення та аналізу резервних копій iOS на предмет ознак доставки 0‑click експлойтів через вкладення в месенджерах. Зосереджено на перетворенні хешованої структури резервної копії 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 для кожного збереженого об'єкта до його відновленого шляху
|
||||
|
||||
Приклад робочого процесу з інструментом, що реалізує це end‑to‑end (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, щоб отримати on‑disk 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 file‑format 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 (CVE‑2021‑30860): неможливі стани словника JBIG2
|
||||
- WebP/VP8L BLASTPASS (CVE‑2023‑4863): надмірно великі конструкції таблиць Huffman
|
||||
- TrueType TRIANGULATION (CVE‑2023‑41990): незадокументовані опкоди bytecode
|
||||
- DNG/TIFF CVE‑2025‑43300: невідповідності між 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}}
|
@ -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}}
|
||||
|
@ -0,0 +1,173 @@
|
||||
# Structural File‑Format Exploit Detection (0‑Click Chains)
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
На цій сторінці узагальнено практичні методи виявлення 0‑click 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 set‑ups
|
||||
|
||||
Нижче — конкретні, перевірені в полі шаблони для кількох високовпливових chains.
|
||||
|
||||
---
|
||||
|
||||
## PDF/JBIG2 – FORCEDENTRY (CVE‑2021‑30860)
|
||||
|
||||
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 (CVE‑2023‑4863)
|
||||
|
||||
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 (CVE‑2023‑41990)
|
||||
|
||||
Target: TrueType bytecode inside fpgm/prep/glyf programs.
|
||||
|
||||
Структурні сигнали:
|
||||
- Наявність undocumented/forbidden opcodes в Apple’s 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 – CVE‑2025‑43300
|
||||
|
||||
Target: метадані зображення DNG/TIFF проти фактичної кількості компонентів у закодованому потоці (наприклад, JPEG‑Lossless 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 теги
|
||||
- Знайти та розпарсити вбудований заголовок JPEG‑Lossless (SOF3) і порівняти кількість компонентів
|
||||
|
||||
Notes:
|
||||
- Повідомлялося про експлуатацію в реальних умовах; відмінний кандидат для перевірок структурної узгодженості
|
||||
|
||||
---
|
||||
|
||||
## Implementation patterns and performance
|
||||
|
||||
A practical scanner should:
|
||||
- Автоматично визначати тип файлу та запускати тільки релевантні аналізатори (PDF/JBIG2, WebP/VP8L, TTF, DNG/TIFF)
|
||||
- Парсити в потоковому/частковому режимі, щоб мінімізувати виділення пам'яті та дозволити раннє завершення
|
||||
- Запускати аналізи паралельно (thread‑pool) для масового 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 real‑time 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: re‑baseline 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 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