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
7704bb4c60
commit
daae1f28ea
@ -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)
|
||||
|
@ -2,25 +2,52 @@
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
||||
## Bir Görüntü Oluşturma ve Bağlama
|
||||
## Bir İmaj Oluşturma ve Bağlama
|
||||
|
||||
|
||||
{{#ref}}
|
||||
../../generic-methodologies-and-resources/basic-forensic-methodology/image-acquisition-and-mount.md
|
||||
{{#endref}}
|
||||
|
||||
## Kötü Amaçlı Yazılım Analizi
|
||||
## Malware Analysis
|
||||
|
||||
Bu **görüntüyü aldıktan sonra gerçekleştirilecek ilk adım olmak zorunda değil**. Ancak bir dosyanız, bir dosya sistemi görüntüsü, bellek görüntüsü, pcap... varsa bu kötü amaçlı yazılım analiz tekniklerini bağımsız olarak kullanabilirsiniz, bu yüzden **bu eylemleri aklınızda bulundurmak iyi**:
|
||||
Bu **imajı elde ettikten sonra yapılması gereken ilk adım olmak zorunda değil**. Ancak bir dosyanız, bir dosya-sistemi imajı, bellek imajı, pcap... varsa bu malware analysis tekniklerini bağımsız olarak kullanabilirsiniz; bu yüzden bu eylemleri **akılda tutmak** iyidir:
|
||||
|
||||
|
||||
{{#ref}}
|
||||
malware-analysis.md
|
||||
{{#endref}}
|
||||
|
||||
## Bir Görüntüyü İnceleme
|
||||
## İmajı İnceleme
|
||||
|
||||
Eğer size bir **adli görüntü** verilmişse, **bölümleri, kullanılan dosya sistemini** analiz etmeye ve **potansiyel olarak ilginç dosyaları** (silinmiş olanlar dahil) **geri kazanmaya** başlayabilirsiniz. Bunu nasıl yapacağınızı öğrenin:
|
||||
Eğer size bir cihazın **adli imajı** verildiyse, kullanılan **bölümleri, dosya sistemi**ni **analiz etmeye** ve potansiyel olarak **ilginç dosyaları** (hatta silinmiş olanları) **kurtarmaya** başlayabilirsiniz. Nasıl yapılacağını öğrenin:
|
||||
|
||||
|
||||
{{#ref}}
|
||||
partitions-file-systems-carving/
|
||||
{{#endref}}# Temel Adli Metodoloji
|
||||
|
||||
|
||||
|
||||
## Bir İmaj Oluşturma ve Bağlama
|
||||
|
||||
|
||||
{{#ref}}
|
||||
../../generic-methodologies-and-resources/basic-forensic-methodology/image-acquisition-and-mount.md
|
||||
{{#endref}}
|
||||
|
||||
## Malware Analysis
|
||||
|
||||
Bu **imajı elde ettikten sonra yapılması gereken ilk adım olmak zorunda değil**. Ancak bir dosyanız, bir dosya-sistemi imajı, bellek imajı, pcap... varsa bu malware analysis tekniklerini bağımsız olarak kullanabilirsiniz; bu yüzden bu eylemleri **akılda tutmak** iyidir:
|
||||
|
||||
|
||||
{{#ref}}
|
||||
malware-analysis.md
|
||||
{{#endref}}
|
||||
|
||||
## İmajı İnceleme
|
||||
|
||||
Eğer size bir cihazın **adli imajı** verildiyse, kullanılan **bölümleri, dosya sistemi**ni **analiz etmeye** ve potansiyel olarak **ilginç dosyaları** (hatta silinmiş olanları) **kurtarmaya** başlayabilirsiniz. Nasıl yapılacağını öğrenin:
|
||||
|
||||
|
||||
{{#ref}}
|
||||
@ -44,17 +71,22 @@ linux-forensics.md
|
||||
docker-forensics.md
|
||||
{{#endref}}
|
||||
|
||||
## Belirli Dosya Türleri ve Yazılımlarının Derin İncelemesi
|
||||
|
||||
Eğer çok **şüpheli** bir **dosyanız** varsa, o zaman **dosya türüne ve onu oluşturan yazılıma** bağlı olarak birkaç **numara** faydalı olabilir.\
|
||||
Bazı ilginç numaraları öğrenmek için aşağıdaki sayfayı okuyun:
|
||||
{{#ref}}
|
||||
ios-backup-forensics.md
|
||||
{{#endref}}
|
||||
|
||||
## Belirli Dosya Türleri ve Yazılımların Derin İncelenmesi
|
||||
|
||||
Eğer çok **şüpheli** bir **dosyanız** varsa, onu oluşturan **dosya tipi ve yazılıma** bağlı olarak birkaç **püf noktası** faydalı olabilir.\
|
||||
Bazı ilginç püf noktalarını öğrenmek için aşağıdaki sayfayı okuyun:
|
||||
|
||||
|
||||
{{#ref}}
|
||||
specific-software-file-type-tricks/
|
||||
{{#endref}}
|
||||
|
||||
Özellikle şu sayfayı belirtmek istiyorum:
|
||||
Özellikle şu sayfaya değinmek istiyorum:
|
||||
|
||||
|
||||
{{#ref}}
|
||||
@ -82,13 +114,62 @@ Anti-adli tekniklerin olası kullanımını aklınızda bulundurun:
|
||||
|
||||
{{#ref}}
|
||||
anti-forensic-techniques.md
|
||||
{{#endref}}
|
||||
{{#endref}
|
||||
|
||||
## Tehdit Avı
|
||||
## Tehdit Avcılığı
|
||||
|
||||
|
||||
{{#ref}}
|
||||
file-integrity-monitoring.md
|
||||
{{#endref}
|
||||
|
||||
|
||||
|
||||
## Belirli Dosya Türleri ve Yazılımların Derin İncelenmesi
|
||||
|
||||
Eğer çok **şüpheli** bir **dosyanız** varsa, onu oluşturan **dosya tipi ve yazılıma** bağlı olarak birkaç **püf noktası** faydalı olabilir.\
|
||||
Bazı ilginç püf noktalarını öğrenmek için aşağıdaki sayfayı okuyun:
|
||||
|
||||
|
||||
{{#ref}}
|
||||
specific-software-file-type-tricks/
|
||||
{{#endref}}
|
||||
|
||||
Özellikle şu sayfaya değinmek istiyorum:
|
||||
|
||||
|
||||
{{#ref}}
|
||||
specific-software-file-type-tricks/browser-artifacts.md
|
||||
{{#endref}
|
||||
|
||||
## Bellek Dökümü İncelemesi
|
||||
|
||||
|
||||
{{#ref}}
|
||||
memory-dump-analysis/
|
||||
{{#endref}
|
||||
|
||||
## Pcap İncelemesi
|
||||
|
||||
|
||||
{{#ref}}
|
||||
pcap-inspection/
|
||||
{{#endref}
|
||||
|
||||
## **Anti-Adli Teknikler**
|
||||
|
||||
Anti-adli tekniklerin olası kullanımını aklınızda bulundurun:
|
||||
|
||||
|
||||
{{#ref}}
|
||||
anti-forensic-techniques.md
|
||||
{{#endref}
|
||||
|
||||
## Tehdit Avcılığı
|
||||
|
||||
|
||||
{{#ref}}
|
||||
file-integrity-monitoring.md
|
||||
{{#endref}
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
@ -0,0 +1,124 @@
|
||||
# iOS Yedekleme Adli Bilişim (Messaging‑centric triage)
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
||||
Bu sayfa, iOS yedeklerini mesajlaşma uygulaması ekleri aracılığıyla 0‑click exploit dağıtımına dair izler açısından yeniden oluşturmak ve analiz etmek için pratik adımları açıklar. Odak, Apple’ın hashed backup düzenini insan‑okunur yollara dönüştürmek ve ardından ortak uygulamalarda ekleri listeleyip taramaktır.
|
||||
|
||||
Amaçlar:
|
||||
- Manifest.db'den okunabilir yolları yeniden oluşturmak
|
||||
- Mesajlaşma veritabanlarını listelemek (iMessage, WhatsApp, Signal, Telegram, Viber)
|
||||
- Ek yollarını çözümlemek, gömülü nesneleri çıkarmak (PDF/Görseller/Yazı tipleri) ve bunları yapısal dedektörlere vermek
|
||||
|
||||
|
||||
## iOS yedeğinin yeniden oluşturulması
|
||||
|
||||
MobileSync altında saklanan yedekler, insan‑tarafından okunamayan hashed dosya adları kullanır. Manifest.db SQLite veritabanı, saklanan her nesneyi mantıksal yoluna eşler.
|
||||
|
||||
Genel prosedür:
|
||||
1) Manifest.db'yi açın ve dosya kayıtlarını okuyun (domain, relativePath, flags, fileID/hash)
|
||||
2) domain + relativePath temel alınarak orijinal klasör hiyerarşisini yeniden oluşturun
|
||||
3) Her saklanan nesneyi yeniden oluşturulan yoluna kopyalayın veya hardlink yapın
|
||||
|
||||
Bunu uçtan uca uygulayan bir araçla örnek iş akışı (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!
|
||||
```
|
||||
Notes:
|
||||
- Şifreli yedeklemeleri, yedekleme parolasını extractor'ınıza sağlayarak işleyin
|
||||
- Orijinal zaman damgalarını/ACL'leri mümkünse delil değeri için koruyun
|
||||
|
||||
|
||||
## Mesajlaşma uygulaması eklerinin listelenmesi
|
||||
|
||||
Yeniden oluşturma sonrası, popüler uygulamalar için ekleri listeleyin. Kesin şema uygulama/sürüme göre değişir, ancak yaklaşım benzerdir: mesajlaşma veritabanını sorgulayın, mesajları eklerle ilişkilendirin ve diskteki yolları çözün.
|
||||
|
||||
### 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;
|
||||
```
|
||||
Eklenti yolları Library/SMS/Attachments/ altında yeniden oluşturulan ağaca göre mutlak veya göreli olabilir.
|
||||
|
||||
### WhatsApp (ChatStorage.sqlite)
|
||||
Yaygın bağlantı: message table ↔ media/attachment table (isimlendirme sürüme göre değişir). On‑disk yolları elde etmek için media satırlarını sorgulayın.
|
||||
|
||||
Örnek (genel):
|
||||
```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: message DB şifrelenmiştir; ancak diske cached attachments (ve thumbnails) genellikle taranabilir
|
||||
- Telegram: cache directories (photo/video/document caches) inceleyin ve mümkünse sohbetlere eşleyin
|
||||
- Viber: Viber.sqlite, diskteki referanslarla birlikte message/attachment tabloları içerir
|
||||
|
||||
Tip: metadata şifreli olsa bile, media/cache dizinlerini taramak hâlâ kötü amaçlı öğeleri ortaya çıkarır.
|
||||
|
||||
|
||||
## 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)
|
||||
```
|
||||
Yapısal kurallar tarafından kapsanan tespitler şunlardır:
|
||||
- PDF/JBIG2 FORCEDENTRY (CVE‑2021‑30860): mümkün olmayan JBIG2 sözlük durumları
|
||||
- WebP/VP8L BLASTPASS (CVE‑2023‑4863): aşırı büyük Huffman tablo yapıları
|
||||
- TrueType TRIANGULATION (CVE‑2023‑41990): belgelendirilmeyen bytecode opcode'ları
|
||||
- DNG/TIFF CVE‑2025‑43300: metadata ile stream bileşen uyumsuzlukları
|
||||
|
||||
|
||||
## Doğrulama, çekinceler ve yanlış pozitifler
|
||||
|
||||
- Zaman dönüşümleri: iMessage bazı sürümlerde tarihleri Apple epoch/birimlerinde saklar; raporlama sırasında uygun şekilde dönüştürün
|
||||
- Şema kayması: uygulamanın SQLite şemaları zamanla değişir; cihaz build'ine göre tablo/sütun adlarını doğrulayın
|
||||
- Özyinelemeli çıkarım: PDF'ler JBIG2 stream'leri ve font'ları gömebilir; iç nesneleri çıkarın ve tarayın
|
||||
- Yanlış pozitifler: yapısal heuristikler temkinlidir ancak nadir hatalı ama zararsız medya dosyalarını işaretleyebilir
|
||||
|
||||
|
||||
## Referanslar
|
||||
|
||||
- [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 @@
|
||||
# Belirli Yazılım/Dosya Türü Hileleri
|
||||
# Belirli Yazılım/Dosya Türü Püf Noktaları
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
Burada belirli dosya türleri ve/veya yazılımlar için ilginç hileler bulabilirsiniz:
|
||||
Burada belirli dosya türleri ve/veya yazılımlar için ilginç püf noktalarını bulabilirsiniz:
|
||||
|
||||
|
||||
{{#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 @@
|
||||
# Yapısal Dosya Formatı İstismar Tespiti (0‑Click Chains)
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
Bu sayfa, byte imzalarına dayanmak yerine formatların yapısal invariyantlarını doğrulayarak 0‑click mobil exploit dosyalarını tespit etmeye yönelik pratik teknikleri özetler. Yaklaşım, aynı parser mantığını kötüye kullanan örnekler, polimorfik varyantlar ve gelecekteki exploitler arasında genelleştirilebilir.
|
||||
|
||||
Ana fikir: yalnızca zayıf bir decoder/parser durumuna ulaşıldığında görünen yapısal imkansızlıkları ve alanlar arası tutarsızlıkları kodlamak.
|
||||
|
||||
See also:
|
||||
|
||||
{{#ref}}
|
||||
pdf-file-analysis.md
|
||||
{{#endref}}
|
||||
|
||||
|
||||
## Neden yapı, imzalar değil
|
||||
|
||||
Silahlandırılmış örnekler mevcut olmadığında ve payload byte'ları değiştiğinde, geleneksel IOC/YARA desenleri başarısız olur. Yapısal tespit, konteynerin beyan edilen düzenini format uygulaması için matematiksel veya semantik olarak mümkün olanla karşılaştırır.
|
||||
|
||||
Tipik kontroller:
|
||||
- Spec ve güvenli uygulamalardan türetilen tablo boyutlarını ve sınırlarını doğrulayın
|
||||
- Gömülü bytecode içindeki yasadışı/dokümante edilmemiş opcod'ları veya durum geçişlerini işaretleyin
|
||||
- Metadata'yı gerçek kodlanmış akış bileşenleriyle çapraz kontrol edin
|
||||
- Parser karışıklığına veya integer overflow kuruluma işaret eden çelişkili alanları tespit edin
|
||||
|
||||
Aşağıda birden çok yüksek etkili zincir için saha testli somut desenler bulunmaktadır.
|
||||
|
||||
---
|
||||
|
||||
## PDF/JBIG2 – FORCEDENTRY (CVE‑2021‑30860)
|
||||
|
||||
Target: JBIG2 symbol dictionaries embedded inside PDFs (often used in mobile MMS parsing).
|
||||
|
||||
Yapısal sinyaller:
|
||||
- Benign içerikte oluşamayacak, ancak aritmetik çözümlemede taşmayı tetiklemek için gerekli olan çelişkili sözlük durumu.
|
||||
- refinement coding sırasında anormal sembol sayılarıyla birleşen global segmentlerin şüpheli kullanımı.
|
||||
|
||||
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 triyaj:
|
||||
- PDF'ten JBIG2 akışlarını belirleyin ve çıkarın
|
||||
- Akışları bulmak ve dökmek için pdfid/pdf-parser/peepdf kullanın
|
||||
- Aritmetik kodlama bayraklarını ve sembol sözlüğü parametrelerini JBIG2 spesifikasyonuna göre doğrulayın
|
||||
|
||||
Notes:
|
||||
- Gömülü payload imzaları olmadan çalışır
|
||||
- Pratikte yanlış pozitif (FP) oranı düşüktür çünkü işaretli durum matematiksel olarak tutarsızdır
|
||||
|
||||
---
|
||||
|
||||
## WebP/VP8L – BLASTPASS (CVE‑2023‑4863)
|
||||
|
||||
Target: WebP kayıpsız (VP8L) Huffman prefix‑code tabloları.
|
||||
|
||||
Yapısal sinyaller:
|
||||
- Oluşturulan Huffman tablolarının toplam boyutu, referans/düzeltilmiş uygulamaların beklediği güvenli üst sınırı aşıyor; bu, taşma (overflow) önkoşulunu gösterir.
|
||||
|
||||
Sözde-mantik:
|
||||
```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")
|
||||
```
|
||||
Pratik triyaj:
|
||||
- WebP container chunk'larını kontrol et: VP8X + VP8L
|
||||
- VP8L prefix kodlarını ayrıştır ve gerçek ayrılan tablo boyutlarını hesapla
|
||||
|
||||
Notlar:
|
||||
- Payload'ın bayt‑düzeyindeki polimorfizmine karşı dayanıklı
|
||||
- Sınır, upstream limitleri ve yama analizinden türetilir
|
||||
|
||||
---
|
||||
|
||||
## TrueType – TRIANGULATION (CVE‑2023‑41990)
|
||||
|
||||
Hedef: fpgm/prep/glyf programları içindeki TrueType bytecode.
|
||||
|
||||
Yapısal sinyaller:
|
||||
- Exploit zincirinin kullandığı Apple’ın interpreter'ında belgelenmemiş/yasak opcode'ların varlığı.
|
||||
|
||||
Sözde‑mantık:
|
||||
```pseudo
|
||||
# Flag undocumented TrueType opcodes leveraged by TRIANGULATION
|
||||
switch opcode:
|
||||
case 0x8F, 0x90:
|
||||
mark_malicious("Undocumented TrueType bytecode")
|
||||
default:
|
||||
continue
|
||||
```
|
||||
Pratik triaj:
|
||||
- Font tablolarını dök (ör. fontTools/ttx kullanarak) ve fpgm/prep/glyf programlarını tara
|
||||
- Varlık kontrollerinden değer elde etmek için yorumlayıcıyı tamamen emüle etmeye gerek yok
|
||||
|
||||
Notes:
|
||||
- Standart dışı fontlar bilinmeyen opcode'lar içeriyorsa nadir yanlış pozitifler (FP) üretebilir; ikincil araçlarla doğrula
|
||||
|
||||
---
|
||||
|
||||
## DNG/TIFF – CVE‑2025‑43300
|
||||
|
||||
Hedef: DNG/TIFF görüntü metadata'sı ile kodlanmış akıştaki gerçek bileşen sayısı arasındaki uyumsuzluk (ör. JPEG‑Lossless SOF3).
|
||||
|
||||
Yapısal sinyaller:
|
||||
- EXIF/IFD alanları (SamplesPerPixel, PhotometricInterpretation) ile pipeline tarafından kullanılan görüntü akış başlığından ayrıştırılan bileşen sayısı arasındaki tutarsızlık.
|
||||
|
||||
Sözde mantık:
|
||||
```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")
|
||||
```
|
||||
Pratik ön değerlendirme:
|
||||
- Birincil IFD ve EXIF etiketlerini ayrıştırın
|
||||
- Gömülü JPEG‑Lossless header (SOF3)'ü bulun ve ayrıştırarak bileşen sayılarını karşılaştırın
|
||||
|
||||
Notlar:
|
||||
- Sahada exploit edildiği bildirildi; yapısal tutarlılık kontrolleri için mükemmel bir aday
|
||||
|
||||
---
|
||||
|
||||
## Uygulama kalıpları ve performans
|
||||
|
||||
Pratik bir tarayıcı şunları yapmalıdır:
|
||||
- Dosya türünü otomatik algılayıp yalnızca ilgili analizörlere yönlendirin (PDF/JBIG2, WebP/VP8L, TTF, DNG/TIFF)
|
||||
- Tahsisleri en aza indirmek ve erken sonlandırmaya izin vermek için stream/partial‑parse kullanın
|
||||
- Toplu ön değerlendirme için analizleri paralel (thread‑pool) çalıştırın
|
||||
|
||||
ElegantBouncer ile örnek iş akışı (bu kontrollerin açık kaynaklı Rust uygulaması):
|
||||
```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 ipuçları ve uç durumlar
|
||||
|
||||
- Gömülü nesneler: PDF'ler görüntüleri (JBIG2) ve yazı tiplerini (TrueType) içerebilir; çıkarın ve özyinelemeli olarak tarayın
|
||||
- Decompression safety: tahsisattan önce tabloları/buffer'ları katı bir şekilde sınırlandıran kütüphaneleri kullanın
|
||||
- False positives: kuralları ihtiyatlı tutun, spesifikasyona göre imkansız olan çelişkileri tercih edin
|
||||
- Version drift: upstream parser'lar limitleri değiştirdiğinde sınırları yeniden belirleyin (ör. VP8L tablo boyutları)
|
||||
|
||||
---
|
||||
|
||||
## İlgili araçlar
|
||||
|
||||
- ElegantBouncer – yukarıdaki tespitler için yapısal tarayıcı
|
||||
- pdfid/pdf-parser/peepdf – PDF nesne çıkarımı ve statik analiz
|
||||
- pdfcpu – PDF linter/temizleyici
|
||||
- fontTools/ttx – TrueType tablolarını ve bytecode'u dökme
|
||||
- exiftool – TIFF/DNG/EXIF meta verilerini okuma
|
||||
- dwebp/webpmux – WebP meta verilerini ve chunk'ları ayrıştırma
|
||||
|
||||
---
|
||||
|
||||
## Kaynaklar
|
||||
|
||||
- [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