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
33443652d4
commit
8e7b49edce
@ -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 @@
|
||||
# Βασική Εγκληματολογική Μεθοδολογία
|
||||
# Βασική Μεθοδολογία Forensic
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
||||
## Δημιουργία και Τοποθέτηση μιας Εικόνας
|
||||
## Δημιουργία και Προσάρτηση ενός Image
|
||||
|
||||
|
||||
{{#ref}}
|
||||
../../generic-methodologies-and-resources/basic-forensic-methodology/image-acquisition-and-mount.md
|
||||
{{#endref}}
|
||||
|
||||
## Ανάλυση Κακόβουλου Λογισμικού
|
||||
## Malware Analysis
|
||||
|
||||
Αυτό **δεν είναι απαραίτητα το πρώτο βήμα που πρέπει να εκτελέσετε μόλις έχετε το image**. Αλλά μπορείτε να χρησιμοποιήσετε αυτές τις malware analysis τεχνικές ανεξάρτητα αν έχετε ένα αρχείο, ένα file-system image, memory image, pcap... οπότε είναι καλό να **έχετε αυτές τις ενέργειες στο μυαλό**:
|
||||
|
||||
Αυτό **δεν είναι απαραίτητο το πρώτο βήμα που πρέπει να εκτελέσετε μόλις έχετε την εικόνα**. Αλλά μπορείτε να χρησιμοποιήσετε αυτές τις τεχνικές ανάλυσης κακόβουλου λογισμικού ανεξάρτητα αν έχετε ένα αρχείο, μια εικόνα συστήματος αρχείων, εικόνα μνήμης, pcap... οπότε είναι καλό να **κρατάτε αυτές τις ενέργειες στο μυαλό σας**:
|
||||
|
||||
{{#ref}}
|
||||
malware-analysis.md
|
||||
{{#endref}}
|
||||
|
||||
## Επιθεώρηση μιας Εικόνας
|
||||
## Έλεγχος ενός Image
|
||||
|
||||
αν σας δοθεί μια **forensic image** μιας συσκευής μπορείτε να ξεκινήσετε **να αναλύετε τα partitions, το file-system** που χρησιμοποιείται και **να ανακτάτε** ενδεχομένως **ενδιαφέροντα αρχεία** (ακόμη και διαγραμμένα). Μάθετε πώς στο:
|
||||
|
||||
|
||||
{{#ref}}
|
||||
partitions-file-systems-carving/
|
||||
{{#endref}}# Βασική Μεθοδολογία Forensic
|
||||
|
||||
|
||||
|
||||
## Δημιουργία και Προσάρτηση ενός Image
|
||||
|
||||
|
||||
{{#ref}}
|
||||
../../generic-methodologies-and-resources/basic-forensic-methodology/image-acquisition-and-mount.md
|
||||
{{#endref}}
|
||||
|
||||
## Malware Analysis
|
||||
|
||||
Αυτό **δεν είναι απαραίτητα το πρώτο βήμα που πρέπει να εκτελέσετε μόλις έχετε το image**. Αλλά μπορείτε να χρησιμοποιήσετε αυτές τις malware analysis τεχνικές ανεξάρτητα αν έχετε ένα αρχείο, ένα file-system image, memory image, pcap... οπότε είναι καλό να **έχετε αυτές τις ενέργειες στο μυαλό**:
|
||||
|
||||
|
||||
{{#ref}}
|
||||
malware-analysis.md
|
||||
{{#endref}}
|
||||
|
||||
## Έλεγχος ενός Image
|
||||
|
||||
αν σας δοθεί μια **forensic image** μιας συσκευής μπορείτε να ξεκινήσετε **να αναλύετε τα partitions, το file-system** που χρησιμοποιείται και **να ανακτάτε** ενδεχομένως **ενδιαφέροντα αρχεία** (ακόμη και διαγραμμένα). Μάθετε πώς στο:
|
||||
|
||||
Αν σας δοθεί μια **εγκληματολογική εικόνα** μιας συσκευής μπορείτε να ξεκινήσετε **να αναλύετε τις κατατμήσεις, το σύστημα αρχείων** που χρησιμοποιείται και **να ανακτάτε** δυνητικά **ενδιαφέροντα αρχεία** (ακόμα και διαγραμμένα). Μάθετε πώς στο:
|
||||
|
||||
{{#ref}}
|
||||
partitions-file-systems-carving/
|
||||
{{#endref}}
|
||||
|
||||
Ανάλογα με τα χρησιμοποιούμενα λειτουργικά συστήματα και ακόμη και την πλατφόρμα, θα πρέπει να αναζητηθούν διάφορα ενδιαφέροντα τεκμήρια:
|
||||
Ανάλογα με τα χρησιμοποιούμενα OSs και ακόμη την πλατφόρμα, πρέπει να αναζητηθούν διαφορετικά ενδιαφέροντα artifacts:
|
||||
|
||||
|
||||
{{#ref}}
|
||||
windows-forensics/
|
||||
{{#endref}}
|
||||
|
||||
|
||||
{{#ref}}
|
||||
linux-forensics.md
|
||||
{{#endref}}
|
||||
|
||||
|
||||
{{#ref}}
|
||||
docker-forensics.md
|
||||
{{#endref}}
|
||||
|
||||
## Βαθιά επιθεώρηση συγκεκριμένων τύπων αρχείων και Λογισμικού
|
||||
|
||||
Αν έχετε ένα πολύ **ύποπτο** **αρχείο**, τότε **ανάλογα με τον τύπο αρχείου και το λογισμικό** που το δημιούργησε, αρκετές **τεχνικές** μπορεί να είναι χρήσιμες.\
|
||||
Διαβάστε την παρακάτω σελίδα για να μάθετε μερικές ενδιαφέρουσες τεχνικές:
|
||||
{{#ref}}
|
||||
ios-backup-forensics.md
|
||||
{{#endref}}
|
||||
|
||||
## Βαθύς έλεγχος συγκεκριμένων τύπων αρχείων και Software
|
||||
|
||||
Αν έχετε ένα πολύ **ύποπτο** **αρχείο**, τότε **ανάλογα με τον τύπο αρχείου και το software** που το δημιούργησε, διάφορα **κόλπα** μπορεί να είναι χρήσιμα.\
|
||||
Διαβάστε την παρακάτω σελίδα για να μάθετε μερικά ενδιαφέροντα κόλπα:
|
||||
|
||||
|
||||
{{#ref}}
|
||||
specific-software-file-type-tricks/
|
||||
{{#endref}}
|
||||
|
||||
Θέλω να κάνω μια ειδική αναφορά στη σελίδα:
|
||||
Θέλω να κάνω ειδική μνεία στη σελίδα:
|
||||
|
||||
|
||||
{{#ref}}
|
||||
specific-software-file-type-tricks/browser-artifacts.md
|
||||
{{#endref}}
|
||||
|
||||
## Επιθεώρηση Dump Μνήμης
|
||||
## Memory Dump Inspection
|
||||
|
||||
|
||||
{{#ref}}
|
||||
memory-dump-analysis/
|
||||
{{#endref}}
|
||||
|
||||
## Επιθεώρηση Pcap
|
||||
## Pcap Inspection
|
||||
|
||||
|
||||
{{#ref}}
|
||||
pcap-inspection/
|
||||
{{#endref}}
|
||||
|
||||
## **Αντι-Εγκληματολογικές Τεχνικές**
|
||||
## **Anti-Forensic Techniques**
|
||||
|
||||
Λάβετε υπόψη τη πιθανή χρήση anti-forensic techniques:
|
||||
|
||||
Λάβετε υπόψη τη δυνατότητα χρήσης αντι-εγκληματολογικών τεχνικών:
|
||||
|
||||
{{#ref}}
|
||||
anti-forensic-techniques.md
|
||||
{{#endref}}
|
||||
|
||||
## Κυνήγι Απειλών
|
||||
## Threat Hunting
|
||||
|
||||
|
||||
{{#ref}}
|
||||
file-integrity-monitoring.md
|
||||
{{#endref}}
|
||||
|
||||
|
||||
|
||||
## Βαθύς έλεγχος συγκεκριμένων τύπων αρχείων και Software
|
||||
|
||||
Αν έχετε ένα πολύ **ύποπτο** **αρχείο**, τότε **ανάλογα με τον τύπο αρχείου και το software** που το δημιούργησε, διάφορα **κόλπα** μπορεί να είναι χρήσιμα.\
|
||||
Διαβάστε την παρακάτω σελίδα για να μάθετε μερικά ενδιαφέροντα κόλπα:
|
||||
|
||||
|
||||
{{#ref}}
|
||||
specific-software-file-type-tricks/
|
||||
{{#endref}}
|
||||
|
||||
Θέλω να κάνω ειδική μνεία στη σελίδα:
|
||||
|
||||
|
||||
{{#ref}}
|
||||
specific-software-file-type-tricks/browser-artifacts.md
|
||||
{{#endref}}
|
||||
|
||||
## Memory Dump Inspection
|
||||
|
||||
|
||||
{{#ref}}
|
||||
memory-dump-analysis/
|
||||
{{#endref}}
|
||||
|
||||
## Pcap Inspection
|
||||
|
||||
|
||||
{{#ref}}
|
||||
pcap-inspection/
|
||||
{{#endref}}
|
||||
|
||||
## **Anti-Forensic Techniques**
|
||||
|
||||
Λάβετε υπόψη τη πιθανή χρήση anti-forensic techniques:
|
||||
|
||||
|
||||
{{#ref}}
|
||||
anti-forensic-techniques.md
|
||||
{{#endref}}
|
||||
|
||||
## Threat Hunting
|
||||
|
||||
|
||||
{{#ref}}
|
||||
file-integrity-monitoring.md
|
||||
|
@ -0,0 +1,124 @@
|
||||
# iOS Ανάλυση Backup (Τριάρισμα εστιασμένο σε μηνύματα)
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
||||
Αυτή η σελίδα περιγράφει πρακτικά βήματα για την ανακατασκευή και ανάλυση iOS backups για ενδείξεις παράδοσης 0‑click exploits μέσω συνημμένων σε messaging apps. Εστιάζει στην μετατροπή της κατακερματισμένης διάταξης backup της Apple σε διαδρομές αναγνώσιμες από άνθρωπο και στη συνέχεια στην απαρίθμηση και σάρωση συνημμένων σε κοινές εφαρμογές.
|
||||
|
||||
Στόχοι:
|
||||
- Ανακατασκευή αναγνώσιμων διαδρομών από το Manifest.db
|
||||
- Απαρίθμηση βάσεων δεδομένων μηνυμάτων (iMessage, WhatsApp, Signal, Telegram, Viber)
|
||||
- Επίλυση διαδρομών συνημμένων, εξαγωγή ενσωματωμένων αντικειμένων (PDF/Images/Fonts) και τροφοδότηση τους σε structural detectors
|
||||
|
||||
|
||||
## Ανακατασκευή backup iOS
|
||||
|
||||
Τα backups που αποθηκεύονται στο 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!
|
||||
```
|
||||
Σημειώσεις:
|
||||
- Χειριστείτε τα encrypted backups παρέχοντας το backup password στον extractor σας
|
||||
- Διατηρήστε τα original timestamps/ACLs όταν είναι δυνατόν, για την αξία τους ως αποδεικτικό υλικό
|
||||
|
||||
|
||||
## Απαρίθμηση συνημμένων σε εφαρμογές μηνυμάτων
|
||||
|
||||
Μετά την ανακατασκευή, απαριθμήστε τα συνημμένα για δημοφιλείς εφαρμογές. Το ακριβές schema διαφέρει ανά app/version, αλλά η προσέγγιση είναι παρόμοια: query στη messaging database, κάντε join τα messages με τα attachments και επιλύστε τα paths στο δίσκο.
|
||||
|
||||
### iMessage (sms.db)
|
||||
Key tables: message, attachment, message_attachment_join (MAJ), chat, chat_message_join (CMJ)
|
||||
|
||||
Example queries:
|
||||
```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 για να αποκτήσετε τις διαδρομές στο δίσκο.
|
||||
|
||||
Παράδειγμα (γενικό):
|
||||
```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;
|
||||
```
|
||||
Προσαρμόστε τα ονόματα πινάκων/στηλών στην έκδοση της εφαρμογής σας (ZWAMESSAGE/ZWAMEDIAITEM είναι συνηθισμένα σε iOS builds).
|
||||
|
||||
### Signal / Telegram / Viber
|
||||
- Signal: η message DB είναι encrypted; ωστόσο, τα attachments που είναι cached on disk (και τα thumbnails) συνήθως είναι scan‑able
|
||||
- Telegram: επιθεωρήστε τα cache directories (photo/video/document caches) και συσχετίστε τα με chats όταν είναι δυνατόν
|
||||
- Viber: το Viber.sqlite περιέχει message/attachment tables με on‑disk references
|
||||
|
||||
Tip: ακόμα κι όταν τα metadata είναι encrypted, το σκανάρισμα των media/cache directories εξακολουθεί να αποκαλύπτει malicious objects.
|
||||
|
||||
|
||||
## Σάρωση attachments για structural exploits
|
||||
|
||||
Μόλις αποκτήσετε attachment paths, περάστε τα σε structural detectors που επικυρώνουν file‑format invariants αντί για signatures. Παράδειγμα με 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 opcodes
|
||||
- DNG/TIFF CVE‑2025‑43300: ασυμφωνίες μεταξύ metadata και stream component
|
||||
|
||||
|
||||
## Επαλήθευση, προειδοποιήσεις και false positives
|
||||
|
||||
- Μετατροπές χρόνου: το iMessage αποθηκεύει ημερομηνίες σε Apple epochs/units σε κάποιες εκδόσεις· μετατρέψτε κατάλληλα κατά την αναφορά
|
||||
- Schema drift: τα app SQLite schemas αλλάζουν με την πάροδο του χρόνου· επιβεβαιώστε τα ονόματα πινάκων/στηλών ανά build συσκευής
|
||||
- Αναδρομική εξαγωγή: τα PDFs μπορεί να ενσωματώνουν JBIG2 streams και fonts· εξαγάγετε και σαρώστε τα εσωτερικά αντικείμενα
|
||||
- False positives: οι δομικές ευριστικές μέθοδοι είναι συντηρητικές αλλά μπορεί να επισημάνουν σπάνια κακώς μορφοποιημένα αλλά ακίνδυνα μέσα
|
||||
|
||||
|
||||
## Αναφορές
|
||||
|
||||
- [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 @@
|
||||
# Ανίχνευση Εκμεταλλεύσεων Μορφής Αρχείων (0‑Click Chains)
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
Αυτή η σελίδα συνοψίζει πρακτικές τεχνικές για τον εντοπισμό 0‑click mobile exploit αρχείων επαληθεύοντας δομικές αμεταβλητές των φορμάτ αντί να βασίζεται σε byte signatures. Η προσέγγιση γενικεύει μεταξύ δειγμάτων, πολυμορφικών παραλλαγών και μελλοντικών exploits που καταχρώνται την ίδια λογική parser.
|
||||
|
||||
Κύρια ιδέα: κωδικοποιήστε δομικές αδυνατότητες και ασυμφωνίες μεταξύ πεδίων που εμφανίζονται μόνο όταν επιτυγχάνεται κατάσταση ευάλωτου decoder/parser.
|
||||
|
||||
See also:
|
||||
|
||||
{{#ref}}
|
||||
pdf-file-analysis.md
|
||||
{{#endref}}
|
||||
|
||||
|
||||
## Γιατί δομή, όχι signatures
|
||||
|
||||
Όταν weaponized samples δεν είναι διαθέσιμα και τα payload bytes μεταλλάσσονται, τα παραδοσιακά IOC/YARA patterns αποτυγχάνουν. Η δομική ανίχνευση εξετάζει τη δηλωμένη διάταξη του container σε σχέση με το τι είναι μαθηματικά ή σημασιολογικά δυνατό για την υλοποίηση του format.
|
||||
|
||||
Τυπικοί έλεγχοι:
|
||||
- Validate table sizes and bounds derived from the spec and safe implementations
|
||||
- Flag illegal/undocumented opcodes or state transitions in embedded bytecode
|
||||
- Cross‑check metadata VS actual encoded stream components
|
||||
- Detect contradictory fields that indicate parser confusion or integer overflow set‑ups
|
||||
|
||||
Παρακάτω υπάρχουν συγκεκριμένα, field‑tested μοτίβα για πολλαπλές high‑impact αλυσίδες.
|
||||
|
||||
---
|
||||
|
||||
## PDF/JBIG2 – FORCEDENTRY (CVE‑2021‑30860)
|
||||
|
||||
Στόχος: JBIG2 symbol dictionaries ενσωματωμένα μέσα σε PDFs (συχνά χρησιμοποιούνται στο mobile MMS parsing).
|
||||
|
||||
Δομικά σήματα:
|
||||
- Αντιφατική κατάσταση dictionary που δεν μπορεί να συμβεί σε αβλαβές περιεχόμενο αλλά απαιτείται για να πυροδοτήσει το overflow στην arithmetic decoding.
|
||||
- Ύποπτη χρήση global segments συνδυασμένη με μη φυσιολογικούς αριθμούς symbols κατά τη διάρκεια refinement coding.
|
||||
|
||||
Pseudo‑logic:
|
||||
```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")
|
||||
```
|
||||
Practical triage:
|
||||
- Εντοπίστε και εξαγάγετε JBIG2 streams από το PDF
|
||||
- pdfid/pdf-parser/peepdf για εντοπισμό και dump των streams
|
||||
- Επαληθεύστε τα arithmetic coding flags και τα symbol dictionary parameters σε σχέση με το JBIG2 spec
|
||||
|
||||
Notes:
|
||||
- Λειτουργεί χωρίς embedded payload signatures
|
||||
- Χαμηλό FP στην πράξη επειδή η επισημασμένη κατάσταση είναι μαθηματικά ασυνεπής
|
||||
|
||||
---
|
||||
|
||||
## WebP/VP8L – BLASTPASS (CVE‑2023‑4863)
|
||||
|
||||
Target: WebP lossless (VP8L) Huffman prefix‑code tables.
|
||||
|
||||
Structural signals:
|
||||
- Το συνολικό μέγεθος των κατασκευασμένων Huffman πινάκων υπερβαίνει το ασφαλές άνω όριο που αναμένεται από τις reference/patched implementations, υπονοώντας την προϋπόθεση overflow.
|
||||
|
||||
Pseudo‑logic:
|
||||
```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 container chunks: VP8X + VP8L
|
||||
- Αναλύστε τους κώδικες προθέματος VP8L και υπολογίστε τα πραγματικά εκχωρημένα μεγέθη πινάκων
|
||||
|
||||
Σημειώσεις:
|
||||
- Ανθεκτικό απέναντι στο byte‑level polymorphism του payload
|
||||
- Το όριο προκύπτει από την ανάλυση upstream limits/patch
|
||||
|
||||
---
|
||||
|
||||
## TrueType – TRIANGULATION (CVE‑2023‑41990)
|
||||
|
||||
Στόχος: TrueType bytecode μέσα σε προγράμματα fpgm/prep/glyf.
|
||||
|
||||
Δομικά σήματα:
|
||||
- Παρουσία μη τεκμηριωμένων/απαγορευμένων 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
|
||||
- Δεν είναι αναγκαία η πλήρης προσομοίωση του interpreter για να αντληθεί χρήσιμη πληροφορία από ελέγχους παρουσίας
|
||||
|
||||
Σημειώσεις:
|
||||
- Μπορεί να παράγει σπάνια FPs αν μη-τυπικές γραμματοσειρές περιέχουν άγνωστα opcodes· επικυρώστε με δευτερογενή εργαλεία
|
||||
|
||||
---
|
||||
|
||||
## DNG/TIFF – CVE‑2025‑43300
|
||||
|
||||
Στόχος: τα metadata εικόνας DNG/TIFF έναντι του πραγματικού αριθμού συστατικών στο κωδικοποιημένο stream (π.χ., JPEG‑Lossless SOF3).
|
||||
|
||||
Δομικά σήματα:
|
||||
- Ασυμφωνία μεταξύ πεδίων EXIF/IFD (SamplesPerPixel, PhotometricInterpretation) και του πλήθους συστατικών που αναλύεται από την κεφαλίδα του image stream που χρησιμοποιείται από την 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")
|
||||
```
|
||||
Πρακτική ταξινόμηση:
|
||||
- Ανάλυση των κύριων ετικετών IFD και EXIF
|
||||
- Εντοπισμός και ανάλυση του ενσωματωμένου JPEG‑Lossless header (SOF3) και σύγκριση του αριθμού των συστατικών
|
||||
|
||||
Σημειώσεις:
|
||||
- Αναφέρθηκε ότι έχει εκμεταλλευτεί στο φυσικό περιβάλλον· εξαιρετικός υποψήφιος για ελέγχους δομικής συνέπειας
|
||||
|
||||
---
|
||||
|
||||
## Πρότυπα υλοποίησης και απόδοση
|
||||
|
||||
Ένας πρακτικός σαρωτής θα πρέπει να:
|
||||
- Αυτόματη ανίχνευση τύπου αρχείου και δρομολόγηση μόνο στους σχετικούς αναλυτές (PDF/JBIG2, WebP/VP8L, TTF, DNG/TIFF)
|
||||
- Χρήση stream/μερικής ανάλυσης για ελαχιστοποίηση των κατανομών μνήμης και δυνατότητα πρώιμου τερματισμού
|
||||
- Εκτέλεση αναλύσεων παράλληλα (thread‑pool) για μαζική ταξινόμηση
|
||||
|
||||
Example workflow with ElegantBouncer (open‑source Rust implementation of these checks):
|
||||
```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 και οριακές περιπτώσεις
|
||||
|
||||
- Ενσωματωμένα αντικείμενα: Τα PDFs μπορεί να ενσωματώνουν εικόνες (JBIG2) και fonts (TrueType)· εξάγετε και σαρώστε αναδρομικά
|
||||
- Ασφάλεια αποσυμπίεσης: χρησιμοποιήστε βιβλιοθήκες που επιβάλλουν αυστηρούς περιορισμούς σε πίνακες/buffers πριν την κατανομή
|
||||
- Ψευδώς θετικά: κρατήστε τους κανόνες συντηρητικούς, προτιμήστε αντιφάσεις που είναι αδύνατες σύμφωνα με την προδιαγραφή
|
||||
- Απόκλιση έκδοσης: επαναπροσδιορίστε τα όρια (π.χ., VP8L table sizes) όταν οι upstream parsers αλλάζουν τα όριά τους
|
||||
|
||||
---
|
||||
|
||||
## Σχετικά εργαλεία
|
||||
|
||||
- ElegantBouncer – δομικός σαρωτής για τις παραπάνω ανιχνεύσεις
|
||||
- pdfid/pdf-parser/peepdf – εξαγωγή αντικειμένων PDF και στατική ανάλυση
|
||||
- pdfcpu – ελεγκτής/καθαριστής PDF
|
||||
- fontTools/ttx – εξαγωγή πινάκων TrueType και bytecode
|
||||
- exiftool – ανάγνωση μεταδεδομένων TIFF/DNG/EXIF
|
||||
- dwebp/webpmux – ανάλυση μεταδεδομένων και chunks WebP
|
||||
|
||||
---
|
||||
|
||||
## Αναφορές
|
||||
|
||||
- [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