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

This commit is contained in:
Translator 2025-08-26 20:11:52 +00:00
parent f31f6776b9
commit 8589c19df7
5 changed files with 415 additions and 18 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 @@
# Podstawowa Metodologia Kryminalistyczna
# Podstawowa metodologia informatyki śledczej
{{#include ../../banners/hacktricks-training.md}}
## Tworzenie i Montowanie Obrazu
## Tworzenie i montowanie obrazu
{{#ref}}
../../generic-methodologies-and-resources/basic-forensic-methodology/image-acquisition-and-mount.md
{{#endref}}
## Analiza Złośliwego Oprogramowania
## Malware Analysis
To **niekoniecznie jest pierwszy krok do wykonania po otrzymaniu obrazu**. Jednak możesz używać tych technik analizy malware niezależnie, jeśli masz plik, obraz systemu plików, obraz pamięci, pcap... więc warto **mieć te działania na uwadze**:
To **nie jest koniecznie pierwszy krok do wykonania, gdy masz obraz**. Ale możesz używać tych technik analizy złośliwego oprogramowania niezależnie, jeśli masz plik, obraz systemu plików, obraz pamięci, pcap... więc dobrze jest **mieć te działania na uwadze**:
{{#ref}}
malware-analysis.md
{{#endref}}
## Inspekcja Obrazu
## Analiza obrazu
Jeśli otrzymasz **obraz forensyczny** urządzenia, możesz rozpocząć **analizę partycji i używanego systemu plików** oraz **odzyskiwanie** potencjalnie **interesujących plików** (nawet usuniętych). Dowiedz się jak w:
{{#ref}}
partitions-file-systems-carving/
{{#endref}}# Podstawowa metodologia informatyki śledczej
## Tworzenie i montowanie obrazu
{{#ref}}
../../generic-methodologies-and-resources/basic-forensic-methodology/image-acquisition-and-mount.md
{{#endref}}
## Malware Analysis
To **niekoniecznie jest pierwszy krok do wykonania po otrzymaniu obrazu**. Jednak możesz używać tych technik analizy malware niezależnie, jeśli masz plik, obraz systemu plików, obraz pamięci, pcap... więc warto **mieć te działania na uwadze**:
{{#ref}}
malware-analysis.md
{{#endref}}
## Analiza obrazu
Jeśli otrzymasz **obraz forensyczny** urządzenia, możesz rozpocząć **analizę partycji i używanego systemu plików** oraz **odzyskiwanie** potencjalnie **interesujących plików** (nawet usuniętych). Dowiedz się jak w:
Jeśli otrzymasz **obraz kryminalistyczny** urządzenia, możesz zacząć **analizować partycje, system plików** używany i **odzyskiwać** potencjalnie **interesujące pliki** (nawet usunięte). Dowiedz się jak w:
{{#ref}}
partitions-file-systems-carving/
{{#endref}}
W zależności od używanych systemów operacyjnych, a nawet platform, należy szukać różnych interesujących artefaktów:
W zależności od używanych systemów operacyjnych i platform, należy szukać różnych potencjalnie interesujących artefaktów:
{{#ref}}
windows-forensics/
{{#endref}}
{{#ref}}
linux-forensics.md
{{#endref}}
{{#ref}}
docker-forensics.md
{{#endref}}
## Głęboka inspekcja specyficznych typów plików i oprogramowania
Jeśli masz bardzo **podejrzany** **plik**, to **w zależności od typu pliku i oprogramowania**, które go stworzyło, kilka **sztuczek** może być przydatnych.\
Przeczytaj następującą stronę, aby poznać kilka interesujących sztuczek:
{{#ref}}
ios-backup-forensics.md
{{#endref}}
## Szczegółowa analiza konkretnych typów plików i oprogramowania
Jeśli masz bardzo **podejrzany** **plik**, to **w zależności od typu pliku i oprogramowania**, które go stworzyło, przydatnych może być kilka **sztuczek**.\
Przeczytaj następującą stronę, aby poznać kilka ciekawych trików:
{{#ref}}
specific-software-file-type-tricks/
{{#endref}}
Chcę szczególnie wspomnieć o stronie:
Chcę szczególnie wskazać stronę:
{{#ref}}
specific-software-file-type-tricks/browser-artifacts.md
{{#endref}}
## Inspekcja Zrzutu Pamięci
## Analiza zrzutu pamięci
{{#ref}}
memory-dump-analysis/
{{#endref}}
## Inspekcja Pcap
## Analiza pcap
{{#ref}}
pcap-inspection/
{{#endref}}
## **Techniki Anty-Kryminalistyczne**
## **Techniki anty-forensyczne**
Miej na uwadze możliwe użycie technik anty-forensycznych:
Pamiętaj o możliwym użyciu technik anty-kryminalistycznych:
{{#ref}}
anti-forensic-techniques.md
{{#endref}}
## Polowanie na Zagrożenia
## Threat Hunting
{{#ref}}
file-integrity-monitoring.md
{{#endref}}
## Szczegółowa analiza konkretnych typów plików i oprogramowania
Jeśli masz bardzo **podejrzany** **plik**, to **w zależności od typu pliku i oprogramowania**, które go stworzyło, przydatnych może być kilka **sztuczek**.\
Przeczytaj następującą stronę, aby poznać kilka ciekawych trików:
{{#ref}}
specific-software-file-type-tricks/
{{#endref}}
Chcę szczególnie wskazać stronę:
{{#ref}}
specific-software-file-type-tricks/browser-artifacts.md
{{#endref}}
## Analiza zrzutu pamięci
{{#ref}}
memory-dump-analysis/
{{#endref}}
## Analiza pcap
{{#ref}}
pcap-inspection/
{{#endref}}
## **Techniki anty-forensyczne**
Miej na uwadze możliwe użycie technik anty-forensycznych:
{{#ref}}
anti-forensic-techniques.md
{{#endref}}
## Threat Hunting
{{#ref}}
file-integrity-monitoring.md

View File

@ -0,0 +1,124 @@
# Analiza kopii zapasowych iOS (triage ukierunkowany na komunikatory)
{{#include ../../banners/hacktricks-training.md}}
Ta strona opisuje praktyczne kroki umożliwiające odtworzenie i analizę kopii zapasowych iOS pod kątem śladów dostarczenia exploitów 0click za pomocą załączników w aplikacjach komunikacyjnych. Koncentruje się na przekształceniu haszowanego układu kopii zapasowej Apple w czytelne ścieżki, a następnie na enumeracji i skanowaniu załączników w popularnych aplikacjach.
Cele:
- Odtworzyć czytelne ścieżki z Manifest.db
- Wyenumerować bazy danych komunikatorów (iMessage, WhatsApp, Signal, Telegram, Viber)
- Rozwiązać ścieżki załączników, wyodrębnić osadzone obiekty (PDF/obrazy/czcionki) i przekazać je do detektorów strukturalnych
## Odtwarzanie kopii zapasowej iOS
Kopie zapasowe przechowywane w MobileSync używają haszowanych nazw plików, które nie są czytelne dla człowieka. Baza danych SQLite Manifest.db mapuje każdy przechowywany obiekt na jego logiczną ścieżkę.
Procedura ogólna:
1) Otwórz Manifest.db i odczytaj rekordy plików (domain, relativePath, flags, fileID/hash)
2) Odtwórz oryginalną hierarchię folderów w oparciu o domain + relativePath
3) Skopiuj lub utwórz hardlink dla każdego przechowywanego obiektu do jego odtworzonej ścieżki
Przykładowy przebieg za pomocą narzędzia, które realizuje to 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!
```
Notatki:
- Obsłuż zaszyfrowane kopie zapasowe, podając extractorowi hasło do backupu
- Zachowaj oryginalne znaczniki czasowe/ACL, gdy to możliwe ze względu na wartość dowodową
## Enumeracja załączników aplikacji wiadomości
Po rekonstrukcji wyodrębnij listę załączników dla popularnych aplikacji. Dokładna struktura schematu różni się w zależności od aplikacji/wersji, ale podejście jest podobne: zapytaj bazę danych wiadomości, połącz wiadomości z załącznikami i rozwiąż ścieżki na dysku.
### iMessage (sms.db)
Kluczowe tabele: message, attachment, message_attachment_join (MAJ), chat, chat_message_join (CMJ)
Przykładowe zapytania:
```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;
```
Attachment paths may be absolute or relative to the reconstructed tree under Library/SMS/Attachments/.
### WhatsApp (ChatStorage.sqlite)
Typowe powiązanie: tabela message ↔ tabela media/attachment (nazewnictwo różni się w zależności od wersji). Zapytaj wiersze tabeli media, aby uzyskać ścieżki na dysku.
Example (generic):
```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;
```
Dostosuj nazwy tabel/kolumn do wersji aplikacji (ZWAMESSAGE/ZWAMEDIAITEM są powszechne w buildach iOS).
### Signal / Telegram / Viber
- Signal: message DB jest zaszyfrowana; jednak załączniki buforowane na dysku (i miniatury) zwykle dają się przeskanować
- Telegram: sprawdź katalogi cache (photo/video/document caches) i powiąż z czatami, gdy to możliwe
- Viber: Viber.sqlite zawiera tabele wiadomości/załączników z odniesieniami na dysku
Wskazówka: nawet gdy metadane są zaszyfrowane, skanowanie katalogów media/cache nadal ujawnia złośliwe obiekty.
## Skanowanie załączników pod kątem structural exploits
Gdy masz ścieżki do załączników, przekaż je do structural detectors, które walidują fileformat invariants zamiast 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)
```
Detections covered by structural rules include:
- PDF/JBIG2 FORCEDENTRY (CVE202130860): niemożliwe stany słownika JBIG2
- WebP/VP8L BLASTPASS (CVE20234863): nadmiernie rozbudowane konstrukcje tabel Huffmana
- TrueType TRIANGULATION (CVE202341990): niedokumentowane bytecode opcodes
- DNG/TIFF CVE202543300: niezgodności między metadanymi a komponentami strumienia
## Walidacja, zastrzeżenia i fałszywe pozytywy
- Konwersje czasu: iMessage przechowuje daty w epokach/jednostkach Apple w niektórych wersjach; przelicz odpowiednio podczas raportowania
- Schema drift: schematy SQLite aplikacji zmieniają się w czasie; potwierdź nazwy tabel/kolumn dla wersji urządzenia
- Recursive extraction: PDF-y mogą osadzać strumienie JBIG2 i fonty; wydobądź i przeskanuj wewnętrzne obiekty
- False positives: heurystyki strukturalne są konserwatywne, ale mogą zgłaszać rzadkie, niepoprawne, lecz nieszkodliwe media
## 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 @@
# Sztuczki dotyczące konkretnych typów plików/oprogramowania
# Specyficzne sztuczki dla oprogramowania i typów plików
{{#include ../../../banners/hacktricks-training.md}}
Tutaj znajdziesz interesujące sztuczki dotyczące konkretnych typów plików i/lub oprogramowania:
Poniżej znajdziesz interesujące sztuczki dotyczące konkretnych typów plików i/lub oprogramowania:
{{#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}}
Ta strona podsumowuje praktyczne techniki wykrywania mobilnych plikóweksploitów 0click poprzez weryfikację niezmienników strukturalnych ich formatów zamiast polegania na sygnaturach bajtowych. Podejście uogólnia się na próbki, warianty polimorficzne oraz przyszłe exploity wykorzystujące tę samą logikę parsera.
Kluczowa idea: zakodować strukturalne niemożliwości i niespójności między polami, które pojawiają się tylko gdy osiągnięty zostaje podatny stan dekodera/parsera.
Zobacz też:
{{#ref}}
pdf-file-analysis.md
{{#endref}}
## Dlaczego struktura, a nie sygnatury
Gdy próbki uzbrojone są niedostępne a bajty ładunku mutują, tradycyjne wzorce IOC/YARA zawodzą. Wykrywanie strukturalne sprawdza zadeklarowany układ kontenera w porównaniu z tym, co jest matematycznie lub semantycznie możliwe dla implementacji formatu.
Typowe kontrole:
- Weryfikuj rozmiary tabel i zakresy wyprowadzone ze specyfikacji i bezpiecznych implementacji
- Oznacz nielegalne/nieudokumentowane opcodes lub przejścia stanów w osadzonym bytecode
- Porównaj metadata z rzeczywistymi zakodowanymi komponentami strumienia
- Wykryj sprzeczne pola wskazujące na zamieszanie parsera lub przygotowania do integer overflow
Poniżej znajdują się konkretne, w praktyce przetestowane wzorce dla wielu łańcuchów o dużym znaczeniu.
---
## PDF/JBIG2 FORCEDENTRY (CVE202130860)
Target: JBIG2 symbol dictionaries embedded inside PDFs (often used in mobile MMS parsing).
Structural signals:
- Sprzeczny stan słownika, który nie występuje w treści nieszkodliwej, ale jest wymagany do wywołania overflow w arithmetic decoding.
- Podejrzane wykorzystanie global segments połączone z nieprawidłową liczbą symboli podczas refinement coding.
Pseudologika:
```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")
```
Praktyczny triaż:
- Zidentyfikuj i wyodrębnij strumienie JBIG2 z PDF
- pdfid/pdf-parser/peepdf do zlokalizowania i zrzucenia strumieni
- Zweryfikuj flagi kodowania arytmetycznego i parametry słownika symboli względem specyfikacji JBIG2
Uwagi:
- Działa bez osadzonych sygnatur payloadu
- Niskie FP w praktyce, ponieważ oznaczony stan jest matematycznie niespójny
---
## WebP/VP8L BLASTPASS (CVE20234863)
Target: WebP lossless (VP8L) Huffman prefixcode tables.
Sygnały strukturalne:
- Całkowity rozmiar skonstruowanych tablic Huffmana przekracza bezpieczny górny limit oczekiwany przez implementacje referencyjne/załatane, co sugeruje warunek wstępny przepełnienia.
Pseudologika:
```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")
```
Practical triage:
- Sprawdź WebP container chunks: VP8X + VP8L
- Parsuj VP8L prefix codes i oblicz faktyczne zaalokowane rozmiary tabel
Notes:
- Odporny na polimorfizm payloadu na poziomie bajtów
- Granica wynika z analizy limitów i poprawek upstream
---
## TrueType TRIANGULATION (CVE202341990)
Target: TrueType bytecode inside fpgm/prep/glyf programs.
Structural signals:
- Obecność nieudokumentowanych/zabronionych opcodes w interpreterze Apple używanym przez exploit chain.
Pseudologic:
```pseudo
# Flag undocumented TrueType opcodes leveraged by TRIANGULATION
switch opcode:
case 0x8F, 0x90:
mark_malicious("Undocumented TrueType bytecode")
default:
continue
```
Praktyczne triage:
- Zrzucić tabele fontów (np. używając fontTools/ttx) i przeskanować programy fpgm/prep/glyf
- Nie trzeba w pełni emulować interpretera, aby uzyskać wartość ze sprawdzeń obecności
Uwaga:
- Może powodować rzadkie fałszywe pozytywy (FP), jeśli niestandardowe fonty zawierają nieznane opcodes; zweryfikuj za pomocą dodatkowych narzędzi
---
## DNG/TIFF CVE202543300
Target: DNG/TIFF image metadata VS actual component count in encoded stream (e.g., JPEGLossless SOF3).
Structural signals:
- Niespójność między polami EXIF/IFD (SamplesPerPixel, PhotometricInterpretation) a liczbą komponentów sparsowaną z nagłówka strumienia obrazu używanego przez 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")
```
Practical triage:
- Parsuj główne tagi IFD i EXIF
- Znajdź i parsuj osadzony nagłówek JPEGLossless (SOF3) oraz porównaj liczbę komponentów
Notes:
- Zgłaszano wykorzystania w rzeczywistych atakach; doskonały kandydat do kontroli spójności strukturalnej
---
## Wzorce implementacji i wydajność
Praktyczny skaner powinien:
- Automatycznie wykrywać typ pliku i uruchamiać tylko odpowiednie analizatory (PDF/JBIG2, WebP/VP8L, TTF, DNG/TIFF)
- Przetwarzać strumieniowo/parsować częściowo, aby zminimalizować alokacje i umożliwić wcześniejsze zakończenie
- Uruchamiać analizy równolegle (threadpool) przy przetwarzaniu wsadowym
Przykładowy przebieg pracy z ElegantBouncer (otwartoźródłowa implementacja w Rust tych sprawdzeń):
```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
```
---
## Wskazówki DFIR i przypadki brzegowe
- Embedded objects: Pliki PDF mogą osadzać obrazy (JBIG2) i fonty (TrueType); wyodrębnij je i przeskanuj rekurencyjnie
- Decompression safety: używaj bibliotek, które narzucają twarde limity na tabele/bufory przed alokacją
- Fałszywe alarmy: utrzymuj reguły konserwatywne, preferuj sprzeczności, które są niemożliwe zgodnie ze specyfikacją
- Version drift: ponownie ustal granice (np. rozmiary tabel VP8L), gdy parsery upstream zmieniają limity
---
## Related tools
- ElegantBouncer skaner strukturalny dla powyższych detekcji
- pdfid/pdf-parser/peepdf ekstrakcja obiektów PDF i analiza statyczna
- pdfcpu linter/sanitizer dla PDF
- fontTools/ttx wyodrębnianie tabel TrueType i bytecode
- exiftool czytanie metadanych TIFF/DNG/EXIF
- dwebp/webpmux parsowanie metadanych i chunków WebP
---
## 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}}