Tshark ile Ağ Paketi (PCAP) Analizi: Terminalin Gücünü Keşfedin

Wireshark’ın grafik arayüzünün (GUI) olmadığı sunucu ortamlarında, otomasyon süreçlerinde veya hızlı sonuç alınması gereken Mavi Takım (Blue Team) operasyonlarında Tshark tartışmasız en güçlü araçlardan biridir. Özellikle komut satırı üzerinden ağ trafiğini filtrelemek, CTF yarışmalarında analiz yapmak veya şüpheli MITM (Ortadaki Adam) aktivitelerini tespit etmek için vazgeçilmezdir.

Siber güvenlik alanında ağ analizi denildiğinde akla ilk gelen araç genellikle Wireshark olur. Ancak, grafik arayüzün bulunmadığı bir Linux sunucusunda işlem yapıyorsanız veya yüzlerce PCAP dosyası üzerinde Python/Bash scriptleri ile otomatize edilmiş bir analiz yürütmeniz gerekiyorsa, çözüm Wireshark’ın komut satırı kardeşi olan Tshark'tır.

Bu makalede, Tshark kullanarak ağ paketlerini (PCAP) nasıl okuyacağımızı, filtreleyeceğimizi ve kritik verileri nasıl ayıklayacağımızı inceleyeceğiz.

Tshark Kurulumu

Pardus, Debian veya Ubuntu tabanlı sistemlerde Tshark kurulumu oldukça basittir:

Bash
sudo apt update
sudo apt install tshark

Not: Kurulum sırasında Tshark'ın "root" olmayan kullanıcılar tarafından çalıştırılıp çalıştırılmayacağı sorulabilir. Güvenlik ve erişim kolaylığı dengesi için kendi senaryonuza uygun olanı seçebilirsiniz.

1. Temel Kullanım: Paketleri Okumak ve Dinlemek

Tshark hem anlık olarak ağ arayüzlerini dinleyebilir hem de daha önceden kaydedilmiş .pcap veya .pcapng dosyalarını analiz edebilir.

  • Ağ Arayüzlerini Listelemek: Hangi arayüzlerin dinlenebileceğini görmek için:

    Bash
    tshark -D
    
  • Canlı Trafik Dinlemek: Belirli bir arayüzü (örneğin eth0) dinlemek için:

    Bash
    tshark -i eth0
    
  • PCAP Dosyası Okumak: Kaydedilmiş bir paket dosyasını analiz etmek için -r (read) parametresi kullanılır:

    Bash
    tshark -r analiz_dosyasi.pcap
    

2. Görüntüleme Filtreleri (Display Filters)

Tshark'ın en güçlü yanı, devasa PCAP dosyalarındaki samanlıkta iğne bulmayı sağlayan filtreleme yeteneğidir. -Y parametresi ile tıpkı Wireshark'taki gibi filtreler uygulayabilirsiniz.

Hedef veya Kaynak IP Adresine Göre Filtreleme: Sadece 192.168.1.50 IP adresiyle ilgili (giden veya gelen) trafiği görmek için:

Bash
tshark -r analiz_dosyasi.pcap -Y "ip.addr == 192.168.1.50"

Sadece Belirli Bir Protokolü İnceleme: Sadece HTTP isteklerini veya DNS sorgularını filtrelemek için:

Bash
tshark -r analiz_dosyasi.pcap -Y "http"
tshark -r analiz_dosyasi.pcap -Y "dns"

Zararlı Yazılım Analizi (Örn: Şüpheli POST İstekleri): Özellikle oltalama (phishing) veya komuta kontrol (C2) sunucusu iletişimlerini tespit etmek için HTTP POST isteklerini ayıklamak oldukça faydalıdır:

Bash
tshark -r analiz_dosyasi.pcap -Y "http.request.method == POST"

3. İleri Seviye Veri Ayıklama (Data Extraction)

Tshark'ı otomasyon scriptlerinde (örneğin yazdığınız bir Python veya Bash aracında) kullanılabilir kılan en önemli özellik -T fields parametresidir. Bu sayede sadece belirlediğiniz alanları ekrana yazdırabilirsiniz.

Kullanıcı Adı ve Parolaları Yakalamak (Cleartext Trafik): Eğer ağda şifrelenmemiş (HTTP, FTP vb.) bir kimlik doğrulama işlemi varsa, bu verileri doğrudan ayıklayabilirsiniz:

Bash
tshark -r analiz_dosyasi.pcap -Y "http.request.method == POST" -T fields -e ip.src -e http.file_data

Bu komut, isteği yapan kaynak IP adresini ve gönderilen veri yükünü (genellikle form verileri veya JSON içerikleri) yazdırır.

Ziyaret Edilen Web Sitelerini (Host) Çıkarmak: Ağdaki bir kullanıcının hangi domainlere eriştiğini listelemek için:

Bash
tshark -r analiz_dosyasi.pcap -Y "http.request" -T fields -e ip.src -e http.host

4. İstatistiksel Analizler

Ağ trafiğine kuş bakışı bakmak, anormallikleri (örneğin bir DDoS saldırısı veya ağ taraması) tespit etmek için istatistikler hayat kurtarır. -z parametresi ile çeşitli özet raporlar oluşturabilirsiniz.

Protokol Hiyerarşisi: Paketlerin yüzde kaçı TCP, yüzde kaçı UDP veya HTTP?

Bash
tshark -r analiz_dosyasi.pcap -z io,phs -q

Not: -q (quiet) parametresi, her paketin satır satır ekrana yazdırılmasını engeller, sadece işlem bittiğinde istatistik tablosunu gösterir.

En Çok Konuşanlar (Endpoints): Ağı en çok meşgul eden IP adreslerini listelemek için:

Bash
tshark -r analiz_dosyasi.pcap -z endpoints,ip -q

Sonuç

Tshark, komut satırı yetkinlikleriyle siber güvenlik profesyonelleri ve sistem yöneticileri için çok yönlü bir "İsviçre Çakısı"dır. Buradaki komutları kendi geliştireceğiniz Python (örneğin subprocess modülü ile) betiklerine entegre ederek, ağ savunma sistemlerinizi çok daha proaktif bir hale getirebilirsiniz.

Öğrencilerin siber güvenlik farkındalığını artırmak ve komut satırı becerilerini geliştirmek için harika bir CTF (Capture The Flag) laboratuvarı hazırlayalım. Bu senaryoyu, siber güvenlik atölyenizde Pardus laboratuvar ortamına uygun olarak doğrudan terminal üzerinden uygulanabilecek şekilde kurgulandı.

Operasyon 1: "Açık Ağ" (Cleartext Capture)

Senaryo Hikayesi: Okulun yerel ağına sızdığını düşünen bir iç tehdit aktörü, merkezi yönetim paneline şifresiz (HTTP) bir bağlantı üzerinden giriş yapmaya çalışmaktadır. Mavi Takım (Blue Team) analistlerinin görevi, ağı dinleyerek bu saldırganın giriş yaptığı kimlik bilgilerini ve gizli bayrağı (Flag) ağ paketleri arasından çıkarmaktır.

Hedeflenen Kazanımlar:

  • Komut satırında ağ arayüzlerini dinleme yeteneği kazanmak.

  • Elde edilen PCAP dosyasını filtreleyerek POST isteklerini ayıklamak.

  • Şifrelenmemiş protokollerin (HTTP) güvenlik risklerini uygulamalı olarak görmek.

1. Hazırlık Aşaması (Koordinatör/Öğretmen Tarafı)

Bu aşama, laboratuvar başlamadan önce sizin yapacağınız ufak bir hazırlıktır. Öğrencilerin trafiği dinleyebileceği hedef bir sunucuya ihtiyacımız var.

Python Django ile geliştirdiğiniz bir yönetim panelini bu iş için kullanabileceğiniz gibi, çok daha hızlı bir laboratuvar kurulumu için herhangi bir Pardus makinesinde geçici bir HTTP sunucusu da başlatabilirsiniz:

Bash
# Laboratuvardaki bir makinede (Hedef Sunucu) basit bir dinleyici başlatın:
python3 -m http.server 8080

(Bu makinenin IP adresini not alın, örneğin: 192.168.1.100)

2. Görev Adımları (Öğrenci Tarafı)

Öğrencileri gruplara ayırabilir veya bireysel çalıştırabilirsiniz. Uygulama Pardus laboratuvarlarınızdaki Cinnamon masaüstü ortamında yer alan terminal üzerinden yapılacaktır.

Adım 1: Ağı Dinlemeye Başlamak

Öğrencilerden, kendi makinelerinde (Analist Makinesi) Tshark'ı çalıştırarak trafiği bir dosyaya kaydetmelerini isteyin.

Bash
# eth0 arayüzünü dinle ve trafiği gorev1.pcap dosyasına kaydet
sudo tshark -i eth0 -w gorev1.pcap

Tshark dinleme modundayken terminalde bekleyecektir.

Adım 2: Zafiyetli Trafiğin Üretilmesi

Öğrencilerinizden birini (örneğin Mehmet Emin'i veya kurgusal bir "Kırmızı Takım" üyesini) saldırgan rolüne atayarak ağda bu zafiyetli trafiği üretmesini sağlayabilirsiniz. Başka bir terminal penceresi açarak hedef sunucuya şu curl isteği gönderilir:

Bash
curl -d "kullanici=admin&parola=TSOMTAL{Tshark_1l3_B4yr4g1_Y4k4l4}" -X POST http://192.168.1.100:8080/login

Adım 3: Kaydı Durdurma

İstek gönderildikten sonra, Tshark'ın çalıştığı ilk terminale dönüp CTRL+C kombinasyonu ile dinleme işlemi sonlandırılır. Artık elimizde incelenecek bir gorev1.pcap dosyası var.

Adım 4: Analiz ve Filtreleme

Öğrencilerin şimdi bu dosya içindeki kalabalık trafiği filtrelemesi gerekiyor. Sadece HTTP üzerinden yapılan POST isteklerini bulmaları istenir:

Bash
tshark -r gorev1.pcap -Y "http.request.method == POST"

(Ekranda sadece hedefe giden POST paketinin bilgisi görünecektir.)

Adım 5: Bayrağı (Flag) Yakalama

Son ve en kritik adım, filtrelenen bu paketin içerisindeki "form verisini" (gönderilen kullanıcı adı ve parola bilgilerini) terminale yazdırmaktır:

Bash
tshark -r gorev1.pcap -Y "http.request.method == POST" -T fields -e ip.src -e http.file_data

Beklenen Başarılı Çıktı: Öğrencinin terminalinde kendi IP adresi ve yanında gizli bayrak belirmelidir: 192.168.1.55 kullanici=admin&parola=TSOMTAL{Tshark_1l3_B4yr4g1_Y4k4l4}

💡 Değerlendirme ve Kapanış Soruları

Bayrağı bulan öğrencilere modül sonunda şu tartışma sorularını yöneltebilirsiniz:

  1. Bu şifre ve bayrak bilgisi neden Tshark ekranında düz metin (cleartext) olarak açıkça görülebildi?

  2. Eğer bu istek HTTPS (Port 443) üzerinden yapılmış olsaydı, http.file_data kısmında ne görecektik? Parolayı bu kadar kolay elde edebilir miydik?

Bu senaryo, öğrencilerin hem terminal okuryazarlığını artıracak hem de ağ protokollerinin çalışma mantığını pratik bir rekabet (CTF) ortamında kavramalarını sağlayacaktır.

Madem siber güvenlik farkındalığı ve Mavi Takım (Blue Team) yetenekleri üzerine çalışıyoruz, bu kez Ağ İçi Yönlendirme (MITM) ve Oltalama (Phishing) tespiti üzerine kurulu yeni bir laboratuvar senaryosu hazırlayalım.

Bu senaryo, öğrencilerin DNS (Alan Adı Sistemi) trafiğini analiz ederek sahte bir web sitesine yönlendirme girişimini tespit etmelerini sağlayacaktır. TSOMTAL siber güvenlik atölyesindeki Pardus makinelerinde kolayca uygulayabilirsiniz.

Operasyon 2: "Sahte Kılavuz" (DNS Spoofing Tespiti)

Senaryo Hikayesi: Okul ağındaki bazı kullanıcılar, popüler bir e-posta servisine veya okulun yönetim paneline girmeye çalıştıklarında tarayıcılarının hata verdiğini veya sitenin farklı göründüğünü bildirmektedir. Kırmızı Takım (Red Team) rolündeki bir saldırganın, ağda DNS Spoofing (ARP Zehirlenmesi ile) yaparak kullanıcıları kendi hazırladığı sahte bir oltalama (phishing) sayfasına yönlendirdiğinden şüphelenilmektedir.

Mavi Takım (Blue Team) analistlerinin görevi, ağ trafiğini Tshark ile inceleyerek hangi alan adının sahte bir IP adresine yönlendirildiğini bulmak ve saldırganın IP'sini tespit etmektir.

Hedeflenen Kazanımlar:

  • DNS trafiğini filtreleme ve okuma becerisi.

  • Tshark ile belirli alanlara (fields) odaklanarak veri madenciliği yapma.

  • Oltalama saldırılarının ağ seviyesinde nasıl göründüğünü anlama.

1. Hazırlık Aşaması (Öğretmen / Koordinatör Tarafı)

Bu laboratuvar için öğrencilere önceden hazırlanmış bir oltalama_trafik.pcap dosyası dağıtabilirsiniz. Bu dosyayı hazırlamak için laboratuvar ortamında kendi makinenizden sahte bir DNS yanıtı üretebilir (örneğin Ettercap veya Bettercap kullanarak) veya internette bulunan hazır "DNS Spoofing PCAP" dosyalarından birini öğrencilerin çalışma dizinine indirebilirsiniz.

Varsayım: guvenli-okul-paneli.com adresi normalde 10.0.0.50 IP'sine gitmelidir, ancak saldırgan bunu kendi IP'si olan 192.168.1.99'a yönlendirmektedir.

2. Görev Adımları (Öğrenci Tarafı)

Öğrenciler Pardus terminallerini açarak dağıttığınız oltalama_trafik.pcap dosyasını analiz etmeye başlarlar.

Adım 1: Sadece DNS Trafiğini Ayıklamak

Öğrencilerden ilk olarak dosyadaki tüm kalabalığı (TCP, HTTP, vs.) filtreleyip sadece DNS sorgularına bakmaları istenir:

Bash
tshark -r oltalama_trafik.pcap -Y "dns"

Bu komut çok fazla çıktı üretebilir. Öğrenciler filtreyi daraltmaları gerektiğini fark etmelidir.

Adım 2: Sadece "Yanıtlanan" DNS Sorgularını Görmek

Bizi ilgilendiren kısım, kullanıcıların hangi IP adreslerine yönlendirildiğidir. Sadece DNS yanıtlarını (Response) görmek için filtre geliştirilir:

Bash
tshark -r oltalama_trafik.pcap -Y "dns.flags.response == 1"

Adım 3: Alan Adı ve IP Eşleşmelerini Listelemek (Veri Ayıklama)

Şimdi en kritik adıma geçiyoruz. Öğrenciler karmaşık paket çıktıları yerine, sadece sorgulanan alan adını ve dönen IP adresini yan yana yazdırmalıdır.

Bash
tshark -r oltalama_trafik.pcap -Y "dns.flags.response == 1" -T fields -e dns.qry.name -e dns.a

Beklenen Çıktı Örneği:

Plaintext
google.com 142.250.186.46
whatsapp.com 157.240.214.60
guvenli-okul-paneli.com 10.0.0.50
guvenli-okul-paneli.com 192.168.1.99

Adım 4: Anormalliği Tespit Etmek ve Bayrağı Bulmak

Öğrenci çıktıyı incelediğinde, guvenli-okul-paneli.com adresi için iki farklı IP adresi döndüğünü görecektir. Biri gerçek sunucu, diğeri ise saldırganın IP adresidir.

Eğer saldırgan IP'sini tespit ettilerse, bir sonraki hamle bu IP'ye doğru giden HTTP trafiğini kontrol edip oltaya düşen (parolasını giren) cihazları tespit etmek olabilir:

Bash
tshark -r oltalama_trafik.pcap -Y "ip.dst == 192.168.1.99 and http"

💡 Değerlendirme ve Kapanış Soruları

Uygulama bittikten sonra öğrencilere şu soruları yönelterek konuyu pekiştirebilirsiniz:

  1. Normal şartlarda bir alan adı için birden fazla IP adresi dönebilir mi? (Cevap: Evet, Load Balancing/CDN durumlarında dönebilir. Farkı nasıl anlarız?)

  2. Bu tür bir "Ortadaki Adam" (MITM) saldırısından korunmak için ağ yapısında veya istemci tarafında ne gibi önlemler alınabilir? (Cevap: Statik ARP, Port Security, DNSSEC vb.)

Siber güvenlik atölyesindeki simülasyonları bir adım daha ileri taşıyalım. Önceki senaryolarda şifresiz ağları, DNS yönlendirmelerini ve ağ keşfini inceledik. Bu dördüncü senaryomuz ise doğrudan sistem erişimine yönelik agresif bir saldırıyı, yani "Kaba Kuvvet" (Brute Force) atağını tespit etmeye odaklanıyor.

Öğrenciler bu senaryoda, şifrelenmiş bir protokolde parolaları göremeseler bile saldırının varlığını ağdaki trafik hacminden ve davranış kalıplarından nasıl çıkaracaklarını öğrenecekler.

Harika bir ilerleme! Kırmızı Takım / Mavi Takım (Red Team / Blue Team) simülasyonları için laboratuvar ortamında uygulanabilecek çok pratik ve öğretici bir senaryo daha hazırladım.

Bu kez senaryomuz, siber saldırıların ilk adımı olan "Bilgi Toplama ve Ağ Keşfi" (Reconnaissance / Port Scanning) üzerine odaklanıyor. Öğrenciler, ağda sessizce gezindiğini sanan bir tarayıcıyı (Nmap) Tshark ile yakalamayı öğrenecekler.

Operasyon 3: "Sessiz Tarama" (Nmap Ağ Keşfi Tespiti)

Senaryo Hikayesi: Laboratuvar ağındaki akıllı tahtalara ve ana sunuculara yönelik izinsiz bir erişim hazırlığı olduğundan şüphelenilmektedir. Kırmızı Takım rolündeki bir öğrenci, ağdaki açık portları (özellikle SSH - Port 22 ve HTTP - Port 80) bulmak için "Sessiz Tarama" (Stealth SYN Scan) gerçekleştirmektedir.

Mavi Takım analistlerinin görevi, Tshark kullanarak bu yoğun tarama trafiğini tespit etmek, saldırganın IP adresini bulmak ve tam olarak hangi cihazların/portların hedef alındığını raporlamaktır.

Hedeflenen Kazanımlar:

  • Ağdaki anormal trafik artışlarını istatistiksel olarak analiz etme.

  • TCP bayraklarını (Flags) anlayarak "Half-Open (SYN)" taramalarını filtreleme.

  • Siber saldırıların "Keşif" (Recon) aşamasını ağ paketleri üzerinden tanıma.

1. Hazırlık Aşaması (Öğretmen / Koordinatör Tarafı)

Öğrencilere analiz etmeleri için bir tarama_analiz.pcap dosyası verebilirsiniz. Bu dosyayı oluşturmak için laboratuvardaki bir makineden ağa kısa bir Nmap taraması yapıp arka planda trafiği kaydedebilirsiniz:

Bash
# Kırmızı Takım (Saldırgan) Makinesinde yapılacak örnek tarama:
sudo nmap -sS -p 22,80,443,3389 192.168.1.0/24

(Bu işlem sırasında alınan PCAP kaydını öğrencilere dağıtın).

2. Görev Adımları (Öğrenci Tarafı)

Öğrenciler Pardus terminalleri üzerinden dağıttığınız PCAP dosyasını incelemeye başlarlar.

Adım 1: Ağa Kuş Bakışı Bakmak (İstatistik Çıkarma)

Öğrencilerin öncelikle dosyada ne tür bir trafik yoğunluğu olduğunu görmeleri gerekir. Sadece paket sayısına ve protokol dağılımına bakarlar:

Bash
tshark -r tarama_analiz.pcap -z io,phs -q

Öğrenciler, çok kısa süre içinde binlerce TCP paketinin üretildiğini fark etmelidir. Bu, bir taramanın (scan) en büyük belirtisidir.

Adım 2: En Çok Konuşan IP'yi Bulmak (Saldırganı Tespit)

Trafik yoğunluğunu gördükten sonra, bu trafiği kimin ürettiğini bulmak için "Endpoints" (Uç Noktalar) istatistiği kullanılır:

Bash
tshark -r tarama_analiz.pcap -z endpoints,ip -q

Bu komutun çıktısında, en çok paket gönderen IP adresi en üst sıralarda yer alacaktır. Öğrenciler bu IP'yi (Örn: 192.168.1.45) saldırgan olarak not almalıdır.

Adım 3: Nmap SYN Taramasının İmzasını Filtrelemek

Nmap "Sessiz Tarama" yaparken hedef porta sadece SYN bayraklı paket gönderir. Hedef "Açık" (SYN/ACK) yanıtı verse bile bağlantıyı kurmadan keser (RST). Öğrencilerden sadece SYN bayrağı 1, ACK bayrağı 0 olan ilk tanışma paketlerini filtrelemeleri istenir:

Bash
tshark -r tarama_analiz.pcap -Y "tcp.flags.syn == 1 and tcp.flags.ack == 0 and ip.src == 192.168.1.45"

(Burada 192.168.1.45 yerine bir önceki adımda buldukları saldırgan IP'sini yazmalıdırlar).

Adım 4: Hedeflenen Portları Çıkarmak (Veri Madenciliği)

Saldırganın ağı taradığından eminiz. Peki hangi servisleri arıyor? Tshark ile sadece hedef portları ekrana yazdırıp, benzersiz olanları listelemek için Linux komut satırı araçlarıyla (sort, uniq) birleştirme yaparlar:

Bash
tshark -r tarama_analiz.pcap -Y "tcp.flags.syn == 1 and tcp.flags.ack == 0 and ip.src == 192.168.1.45" -T fields -e tcp.dstport | sort | uniq

Beklenen Çıktı Örneği:

Plaintext
22
80
443
3389

Öğrenciler bu çıktıyı gördüklerinde Kırmızı Takımın SSH, HTTP, HTTPS ve RDP portlarını aradığını kesin olarak kanıtlamış olurlar.

💡 Değerlendirme ve Kapanış Soruları

Bu uygulamanın ardından sınıfça tartışılabilecek sorular:

  1. Nmap neden geleneksel bir bağlantı (3-Way Handshake) kurmak yerine "Half-Open" (Sadece SYN) taraması yapar? (Cevap: Hedef sistemdeki loglara veya güvenlik duvarlarına daha az yakalanmak için).

  2. Ağımızda bu tarz tarama faaliyetlerini otomatik olarak engelleyebilmek için ne tür güvenlik önlemleri alabiliriz? (Cevap: IPS/IDS sistemleri, Port Knocking, Rate Limiting vb.).

Bu üç senaryo (Cleartext, DNS Spoofing, Port Tarama) bir Mavi Takım eğitimi için oldukça sağlam bir temel oluşturur. Bu laboratuvar çalışmalarını desteklemek için, Pardus makinelerinde bu zararlı trafikleri otomatik olarak simüle eden (örneğin tek tıkla ağa Nmap taraması yapıp sahte DNS paketleri fırlatan) bir Python veya Bash betiği hazırlamamı ister misiniz?

Operasyon 4: "Kaba Kuvvet" (SSH Brute Force Tespiti)

Senaryo Hikayesi: Okul ağındaki etkileşimli tahtalara yetkisiz bir erişim girişimi olduğundan şüphelenilmektedir. Kırmızı Takım rolündeki saldırgan, özellikle "9-A" sınıfındaki Pardus ETAP cihazına (veya laboratuvardaki bir test makinesine) SSH (Port 22) üzerinden ardı ardına parola denemeleri yapmaktadır.

Mavi Takım analistlerinin görevi, Tshark kullanarak bu yoğun SSH bağlantı denemelerini tespit etmek, hedeflenen cihazın IP adresini bulmak ve saniyeler içinde kaç parola tahmini yapıldığını istatistiksel olarak ortaya koymaktır.

Hedeflenen Kazanımlar:

  • Şifreli protokollerde (SSH) gerçekleşen saldırıları bağlantı sıklığına göre tespit etme.

  • Tshark ile belirli bir zaman aralığındaki paket sayısını hesaplama.

  • Brute Force saldırılarının ağda bıraktığı "gürültülü" izleri (noise) tanıma.

1. Hazırlık Aşaması (Öğretmen / Koordinatör Tarafı)

Öğrencilere analiz etmeleri için bir kaba_kuvvet.pcap dosyası hazırlamalısınız. Pardus kurulu bir hedef makineye (örneğin sınıf tahtasını simüle eden bir cihaza) kendi bilgisayarınızdan popüler bir araç olan Hydra ile kısa bir SSH Brute Force saldırısı yapıp bu trafiği kaydedebilirsiniz:

Bash
# Kırmızı Takım (Saldırgan) Makinesinde yapılacak örnek saldırı:
hydra -l ogretmen -P rockyou.txt ssh://192.168.1.15

(Bu işlem sırasında alınan PCAP kaydını öğrencilerin çalışma ortamına aktarın).

2. Görev Adımları (Öğrenci Tarafı)

Öğrenciler terminallerine geçerek dağıttığınız PCAP dosyasını incelemeye başlarlar.

Adım 1: Sadece SSH Bağlantı Girişimlerini Filtrelemek

Öğrencilerin ilk yapması gereken, sadece hedef porta (SSH varsayılan portu 22) yeni bir bağlantı başlatmak için gönderilen paketleri bulmaktır. Bunun için SYN bayraklı TCP paketlerini filtrelerler:

Bash
tshark -r kaba_kuvvet.pcap -Y "tcp.dstport == 22 and tcp.flags.syn == 1"

Bu komut çalıştırıldığında ekrandan yüzlerce veya binlerce satır hızla akacaktır. Öğrenciler bu durumu "Anormal bir durum var, biri sürekli bağlantı açmaya çalışıyor" şeklinde yorumlamalıdır.

Adım 2: Saldırganı ve Hedefi Netleştirmek

Bu kadar çok bağlantı isteğini kimin gönderdiğini ve nereye gittiğini bulmak için, filtreyi genişletip uç noktaları (endpoints) listelerler:

Bash
tshark -r kaba_kuvvet.pcap -Y "tcp.dstport == 22 and tcp.flags.syn == 1" -z endpoints,ip -q

Beklenen Çıktı Mantığı: Listede bir IP'nin (Saldırgan) gönderdiği paket sayısı binlerle ifade edilirken, diğer IP (Hedef 9-A Tahtası) bu paketleri alan taraf olarak görünecektir. Öğrenciler bu iki IP'yi not alır.

Adım 3: Saniyedeki Saldırı Hızını Ölçmek (Gelişmiş İstatistik)

Saldırının şiddetini görmek için Tshark'ın I/O (Input/Output) istatistik modülünü kullanırlar. Öğrencilerden, SSH trafiğinin saniyelik yoğunluğunu ölçmeleri istenir:

Bash
tshark -r kaba_kuvvet.pcap -q -z io,stat,1,"tcp.dstport==22"

Bu komut, her 1 saniyelik zaman diliminde (interval) SSH portuna kaç paket gönderildiğini tablo halinde çizer.

Adım 4: Başarılı Bir Giriş Oldu mu? (Tahmin Yürütme)

Öğrencilerden ağ trafiğinin boyutuna bakarak şifrenin kırılıp kırılmadığına dair bir ipucu bulmaları istenir. Başarısız bir SSH denemesi genellikle küçük boyutlu paketlerle hemen sonlanır. Ancak saldırgan şifreyi bulup içeri girerse ve komut çalıştırmaya başlarsa (örneğin terminalde gezinirse), paket boyutları ve bağlantı süresi aniden uzar.

Öğrenciler SSH trafiğindeki büyük paketleri (örneğin 1000 byte'tan büyük) arayarak uzun süren bir oturum olup olmadığını kontrol edebilirler:

Bash
tshark -r kaba_kuvvet.pcap -Y "tcp.srcport == 22 and tcp.len > 1000"

💡 Değerlendirme ve Kapanış Soruları

Simülasyonun ardından öğrencilere şu soruları yöneltebilirsiniz:

  1. İlk senaryomuzdaki HTTP trafiğinde şifreyi düz metin (cleartext) olarak görebilmiştik. Peki bu senaryoda saldırganın denediği parolaları Tshark ekranında görebildik mi? Neden? (Cevap: Hayır, çünkü SSH tüneli şifrelidir (Encrypted). Bu yüzden sadece davranış analizine odaklandık).

  2. Sistemlerimizi (sunucuları veya tahtaları) bu tür Kaba Kuvvet saldırılarına karşı nasıl koruyabiliriz? (Cevap: Fail2Ban gibi araçlar kurmak, güçlü parola politikaları zorunlu kılmak, varsayılan SSH portunu değiştirmek veya IP beyaz listesi (Whitelist) kullanmak).

Bu senaryo, ağ analizinin sadece veri okumak olmadığını, aynı zamanda hacim ve davranış anormalliklerini fark etme sanatı olduğunu öğrencilere çok net bir şekilde gösterecektir.

Harika bir tercih! Nmap SYN taramasını az önce incelediğimiz için, bu kez siber güvenliğin en sinsi ve tespiti zor konularından biri olan Veri Sızıntısı (Data Exfiltration) üzerine bir senaryo kurgulayalım.

Normalde ağlarda ping (ICMP) paketleri sorun giderme amacıyla engellenmez. Kırmızı Takımlar, güvenlik duvarlarını ve içerik filtreleme sistemlerini (örneğin e2guardian gibi vekil sunucuları) aşmak için çalınan verileri işte bu masum görünen ICMP paketlerinin içine saklayarak dışarı kaçırabilirler (ICMP Tunneling / Exfiltration).

Öğrencileriniz için terminal okuryazarlığını zirveye taşıyacak yeni senaryomuz:

Operasyon 5: "Fısıldayan Ping" (ICMP Veri Sızıntısı Tespiti)

Senaryo Hikayesi: TSOMTAL laboratuvar ağındaki sıkı güvenlik duvarı kuralları sayesinde dışarıya dosya yükleme (HTTP POST, FTP) işlemleri engellenmiştir. Ancak bir Kırmızı Takım üyesi, sistem odasındaki bir sunucudan ele geçirdiği gizli bir metin dosyasını ağdan dışarı çıkarmak için sinsi bir "Gizli Kanal" (Covert Channel) oluşturmuştur. Saldırgan, veriyi parça parça ping paketlerinin veri yüküne (payload) gizleyerek dışarıdaki bir sunucuya göndermektedir.

Mavi Takım analistlerinin görevi; Tshark kullanarak bu anormal ICMP trafiğini yakalamak, paketlerin içindeki gizli verileri (Hexadecimal/Onaltılık formatta) ayıklamak ve terminal araçlarıyla bu veriyi birleştirip çalınan asıl metni (ve bayrağı) ortaya çıkarmaktır.

Hedeflenen Kazanımlar:

  • Ağ savunmasında "Gizli Kanal" (Covert Channel) mantığını kavramak.

  • ICMP protokolünün yapısını (Echo Request / Echo Reply) ve Data alanını incelemek.

  • Tshark çıktılarını Linux komut satırı araçlarıyla (xxd, tr) işleyerek veri dönüştürme (Hex to ASCII) yapmak.

1. Hazırlık Aşaması (Öğretmen / Koordinatör Tarafı)

Öğrencilere analiz etmeleri için bir icmp_sizintisi.pcap dosyası hazırlamalısınız. Bunu laboratuvar ortamında hping3 veya basit bir Python betiği kullanarak yapabilirsiniz.

Örnek Veri Sızdırma (Kırmızı Takım simülasyonu): Linux sistemlerde ping komutunun -p parametresi ile paketin içine hex formatında veri eklenebilir. Veya terminalde şu şekilde basit bir döngüyle bir metni (örneğin "TSOMTAL{Ping_Tunn3l_K4p4nd1}") dışarı gönderebilirsiniz:

(Bu trafiği bir PCAP dosyasına kaydedip öğrencilerin Pardus cihazlarına dağıtın).

2. Görev Adımları (Öğrenci Tarafı)

Öğrenciler terminallerine geçerek PCAP dosyasını analiz etmeye başlarlar.

Adım 1: Sadece "Giden" ICMP Trafiğini Filtrelemek

Öğrencilerin öncelikle sadece dışarıya giden (Echo Request - Type 8) Ping paketlerini filtrelemesi gerekir:

Bash
tshark -r icmp_sizintisi.pcap -Y "icmp.type == 8"

Öğrenciler çok sayıda ping isteği göreceklerdir. Sadece bir IP adresine (saldırganın dış sunucusuna) sürekli ping atıldığını tespit edip hedef IP'yi not alırlar.

Adım 2: Paketlerin İçindeki Gizli Veriyi Ayıklamak

Normal bir ping paketi standart padding (doldurma) verileri içerir (örneğin abcd...). Ancak bu paketlerin içinde çalınan dosyanın parçaları vardır. Tshark ile sadece bu "Veri" (Data) kısmını çekmeleri gerekir:

Bash
tshark -r icmp_sizintisi.pcap -Y "icmp.type == 8" -T fields -e data.data

Beklenen Çıktı Örneği:

Plaintext
54534f4d
54414c7b
50696e67
...

Ekrana sadece anlamsız görünen onaltılık (Hex) karakterler dökülecektir. Öğrenciler veriyi yakaladıklarını ama henüz okuyamadıklarını fark ederler.

Adım 3: Hex Veriyi İnsan Okunabilir Metne (ASCII) Çevirmek

Burası laboratuvarın en keyifli ve terminal becerisi gerektiren kısmıdır. Tshark'tan gelen bu Hex çıktılarını, Linux'un yerleşik araçlarından xxd (Hex dump/reverse aracı) ile okunabilir metne çevirmek için komutları "Boru" (Pipe - |) ile birbirine bağlarlar:

Bash
tshark -r icmp_sizintisi.pcap -Y "icmp.type == 8" -T fields -e data.data | tr -d '\n' | xxd -r -p
  • tr -d '\n': Alt alta çıkan hex verilerini tek bir satırda birleştirir.

  • xxd -r -p: Hexadecimal veriyi tersine çevirerek düz metin (ASCII) formatına sokar.

Adım 4: Bayrağı Yakalamak

Komut başarıyla çalıştığında, öğrencilerin terminalinde çalınan dosyanın tam içeriği belirecektir:

Beklenen Çıktı: Sistem odasi e2guardian loglari temizlendi. Gizli kod: TSOMTAL{Ping_Tunn3l_K4p4nd1}

💡 Değerlendirme ve Kapanış Soruları

Operasyon başarıyla tamamlandığında şu kritik soruları yöneltebilirsiniz:

  1. Güvenlik duvarımız (Firewall) dosyaların dışarı çıkmasını engelliyordu. Bu veri nasıl dışarı sızabildi? (Cevap: Kurum ağlarında genellikle ağın "canlı" olup olmadığını test etmek için Ping/ICMP protokolüne izin verilir. Saldırgan, bu izin verilen masum protokolün içindeki boşlukları (data alanını) kargo aracı olarak kullanmıştır.)

  2. Bu tür ICMP sızıntılarını (Data Exfiltration) engellemek veya tespit etmek için ne yapabiliriz? (Cevap: ICMP paket boyutlarını sınırlamak (büyük ping paketlerini droplamak), ağda IDS/IPS (Saldırı Tespit Sistemleri) kullanarak anormal ICMP trafik kalıplarını analiz etmek veya dışarıya yönelik ICMP trafiğini tamamen yasaklayıp sadece belirli izleme sunucularına izin vermek.)

Bu laboratuvar senaryosu; sadece bir analiz aracı kullanmayı değil, işletim sisteminin diğer güçlü komut satırı araçlarıyla (tr, xxd, pipe) entegre çalışmayı öğreterek öğrencilere tam bir "Siber Güvenlik Analisti" deneyimi yaşatacaktır.

Siber güvenlik eğitimlerinde Kırmızı ve Mavi takımın en büyük mücadele alanlarından biri olan Zararlı Yazılım (Malware) ve Komuta Kontrol (C2) İletişimi üzerine yeni bir senaryo hazırladım.

Bu senaryo, ağda gizlenmeye çalışan bir RAT (Remote Access Trojan - Uzaktan Erişim Truva Atı) aktivitesini tespit etmeye odaklanıyor. Öğrenciler bu kez sadece neyin gönderildiğine değil, "ne sıklıkla" gönderildiğine bakarak ritmik (beaconing) davranışları analiz edecekler.

Operasyon 6: "Uyuyan Yılan" (RAT C2 Sinyal Tespiti)

Senaryo Hikayesi: TSOMTAL ağ yönetim sisteminden gelen uyarılara göre, 10-B sınıfındaki akıllı tahtanın internet trafiğinde tuhaf bir hareketlilik var. Tahta aktif olarak kullanılmamasına rağmen, sürekli dışarıdaki bilinmeyen bir sunucuya doğru çok düşük boyutlu paketler gönderiyor. Mavi Takım analistlerinin görevi; Tshark kullanarak bu ritmik sinyal (beacon) trafiğini yakalamak, Kırmızı Takım'ın kullandığı C2 (Komuta Kontrol) sunucusunun IP adresini tespit etmek ve bu RAT'ın ağda ne kadar sürede bir "Ben buradayım" mesajı gönderdiğini (beacon interval) hesaplamaktır.

Hedeflenen Kazanımlar:

  • Zararlı yazılımların Komuta Kontrol (Command & Control) mimarisini anlamak.

  • Tshark ile paketler arası zaman farkını (Time Delta) hesaplayarak ritmik trafiği (Beaconing) tespit etmek.

  • Standart dışı portlara (Örn: 4444, 8888) yapılan şüpheli bağlantıları ayıklamak.

1. Hazırlık Aşaması (Öğretmen / Koordinatör Tarafı)

Öğrencilere analiz etmeleri için bir rat_trafiği.pcap dosyası hazırlamalısınız. Bunu laboratuvar ortamında basit bir Python betiği (veya Metasploit gibi bir araç) kullanarak simüle edebilirsiniz.

Örneğin, hedef makineden dışarıdaki bir sunucuya (örneğin 4444 portuna) her 5 saniyede bir basit bir HTTP GET isteği gönderen bir arka plan görevi çalıştırıp trafiği kaydedebilirsiniz.

2. Görev Adımları (Öğrenci Tarafı)

Öğrenciler terminallerini açar ve dağıttığınız PCAP dosyasını analiz etmeye başlarlar.

Adım 1: Standart Dışı Portları Filtrelemek

Öğrenciler ağ trafiğinde sadece 80 (HTTP) ve 443 (HTTPS) gibi standart portlara bakmaya alışkındır. Ancak RAT'lar genellikle 4444, 1337 veya 8080 gibi portlar üzerinden iletişim kurmayı dener. İlk adım, en çok hangi portlara gidildiğini bulmaktır:

Bash
tshark -r rat_trafiği.pcap -T fields -e tcp.dstport | sort | uniq -c | sort -nr

Bu komut, paketlerin gittiği hedef portları listeler ve kullanım sıklığına göre sıralar. Öğrenciler en üstte 4444 veya 8080 gibi şüpheli bir port görürse ilk ipucunu yakalamış olurlar.

Adım 2: C2 Sunucusunu (Saldırgan IP'yi) Bulmak

Hedef portu bulduktan sonra (örneğin 4444 olduğunu varsayalım), bu portla konuşan dış IP adresini filtrelemeleri gerekir:

Bash
tshark -r rat_trafiği.pcap -Y "tcp.dstport == 4444" -T fields -e ip.dst | sort | uniq

(Öğrenciler bu adımla Komuta Kontrol sunucusunun IP adresini, yani saldırganın merkezini tespit etmiş olurlar).

Adım 3: Sinyal Ritmini (Beacon Interval) Ölçmek

Bu laboratuvarın en teknik kısmı burasıdır. Bir trafiğin RAT sinyali (beacon) olduğunu kanıtlamanın en iyi yolu, paketlerin düzenli aralıklarla gidip gitmediğine bakmaktır. İnsanlar rastgele zamanlarda web sitelerine girer, ama yazılımlar koda yazılan sürelerde (örneğin tam 5 saniyede bir) istek atar.

Öğrenciler, bu şüpheli IP'ye giden paketler arasındaki zaman farkını (delta time) ekrana yazdırmak için şu Tshark komutunu kullanırlar:

Bash
tshark -r rat_trafiği.pcap -Y "ip.dst == C2_IP_ADRESI" -T fields -e frame.number -e frame.time_delta_displayed

(C2_IP_ADRESI yerine bir önceki adımda buldukları adresi yazmalıdırlar).

Beklenen Çıktı Örneği:

Plaintext
14 0.000000000
58 5.002145000
112 5.001988000
175 4.998751000
240 5.000342000

Öğrenciler bu çıktıyı gördüklerinde: "Evet, bu cihaz tam olarak her 5 saniyede bir dışarıya sinyal gönderiyor. Bu kesinlikle otomatik çalışan bir zararlı yazılım!" çıkarımını yapacaklardır.

Adım 4: Bağlantıyı Koparmak (Savunma Hamlesi)

Zararlı yazılım tespit edildikten sonra öğrencilerden teorik olarak bu iletişimi nasıl kesecekleri istenir. Öğrenciler, sistemin güvenlik duvarı (iptables veya ufw) üzerinden bu C2 sunucusuna giden trafiği engelleyen komutu yazarak görevi tamamlarlar:

Bash
sudo iptables -A OUTPUT -d C2_IP_ADRESI -j DROP

💡 Değerlendirme ve Kapanış Soruları

Simülasyon sonunda şu sorularla konuyu tartışmaya açabilirsiniz:

  1. Saldırganlar bu ritmik sinyalleri (beaconing) gizlemek için saniyeleri (örneğin 5 saniyede bir yerine) nasıl değiştirebilirler? (Cevap: Jitter (sapma) adı verilen bir teknik kullanırlar. İstekler 5 saniye, sonra 7 saniye, sonra 3 saniye gibi rastgele aralıklarla gönderilerek güvenlik cihazlarının ritmi tespit etmesi zorlaştırılır).

  2. Eğer bu RAT, trafiğini standart HTTPS (Port 443) üzerinden şifreli bir şekilde gönderseydi, bu durumu firewall loglarından tespit etmemiz mümkün olur muydu? (Cevap: Evet, şifreli olsa bile "zamanlama" ve "bağlantı boyutu" analiziyle (Behavioral Analysis) bu ritmik davranışı fark edebilirdik).

Hazırladığımız bu senaryolarla Tshark'ın tüm temel analiz yeteneklerini (Cleartext okuma, filtreleme, hacim analizi, veri ayıklama ve zamanlama analizi) laboratuvar ortamına taşımış olduk.

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