CyberFlow Logo CyberFlow BLOG
Tftp Pentest

Path Traversal: Dizin Atlama Saldırıları ve Önleme Yöntemleri

✍️ Ahmet BİRKAN 📂 Tftp Pentest

Path Traversal (Dizin Atlama) eğitiminde, siber güvenlikte önemli bir zafiyeti keşfedin. Önleme teknikleriyle güvenliği artırın.

Path Traversal: Dizin Atlama Saldırıları ve Önleme Yöntemleri

Dizin atlama saldırılarına yönelik derinlemesine bir rehber. Path Traversal zafiyetinin tanımını ve önleme yöntemlerini keşfedin. Güvenlik için önemli adımları öğrenin.

Giriş ve Konumlandırma

Path Traversal Nedir?

Path Traversal, bir saldırganın hedef bir sistemdeki dosya sistemine yetkisiz erişim sağlamak için kullandığı bir tür zafiyettir. Bu zafiyet, genellikle uygulamaların kullanıcıdan aldığı dosya yolunu yeterince temizlememesi ve bu sayede dosya sisteminde hiyerarşik olarak yukarı çıkabilme imkanı tanımasından kaynaklanır. Örneğin, bir dosya yolu parametresi olarak .. karakterlerini kullanarak bir saldırgan, uygulamanın izin verdiği dizinlerin dışında dosya ve dizinlere erişim sağlamaya çalışabilir.

Neden Önemli?

Path Traversal saldırıları, pek çok sistemde ciddi güvenlik açıklarına yol açabilmektedir. Bu tür saldırılar sonucunda, kritik dosyalar (örneğin, /etc/passwd veya C:\Windows\win.ini gibi) ele geçirilebilir, veri bütünlüğü bozulabilir ve sistemin gizliliği ihlal edilebilir. Saldırganlar, dosyaları okuyarak, kullanıcı bilgilerini, konfigürasyon dosyalarını ya da sistem üzerinde kritik rol oynayan parolaları ele geçirebilir. Bu durum, hem bireysel kullanıcılar hem de kurumsal sistemler için ciddi tehlikeler doğurur.

Siber Güvenlik Bağlamında Path Traversal

Siber güvenlik alanında, Path Traversal zafiyetleri genellikle penetrasyon testlerinde en çok hedef alınan konulardan biridir. Etkili bir penetrasyon testi, bu tür zafiyetlerin belirlenmesi ve exploit edilmesi üzerine kuruludur. Test süreçlerinde, siber güvenlik uzmanları, bir sistemin güvenliğini değerlendirirken Path Traversal zafiyetlerinin varlığını kontrol eder ve bunları raporlayarak, sistem yöneticilerine çözüm önerileri sunar.

Penetrasyon testleri sırasında, sızma testinin temel aşamalarından biri, hedef sistemdeki açık portların belirlenmesidir. Örneğin, bir TFTP (Trivial File Transfer Protocol) servisi üzerinde gerçekleştirilen testlerde, UDP 69 portunun açık olduğunu tespit etmek ilk adımdır. Bu bağlamda, saldırganlar uzaktan yetkisiz dosya akışını sağlayarak sistemin iç yapısı hakkında bilgi edinmek isteyebilir.

Alt Düzey Saldırılar ve Potansiyel Tehditler

Path Traversal saldırıları, genellikle birkaç aşamalı bir süreç içerir. İlk olarak, saldırgan, sistem üzerinde mevcut olan servislerin ve açık portların tespiti için çeşitli tarama araçları kullanır. Bu aşamada, nmap gibi araçlar ile sadece UDP 69 portuna odaklanarak tarama yapabilir.

nmap -sU -p 69 -sV target_ip

Hedef dosyaların yer aldığı dizinler ve işletim sistemi versiyonları gibi bilgilere ulaşmak için arka planda çalışan servislerin açıkları belirlenir. Sonrasında, saldırgan, bir HTTP veya TFTP istemcisi aracılığıyla, uygun traversal kombinasyonları kullanarak, hedef dosyalara erişim sağlamaya çalışır.

TFTP istemcisi kullanarak aşağıdaki gibi bir komut ile bir dosya indirme işlemi gerçekleştirebilirler:

get ../../../etc/passwd

Bu süreçte, sunucudan dönen hata mesajları, saldırının durumunu ve hedefin güvenlik durumunu ortaya koyan önemli ipuçları verir.

Sonuç

Path Traversal zafiyetleri, siber güvenlik alanında kritik öneme sahiptir. Bu tür zafiyetlerin farkında olarak, sistem yöneticileri ve güvenlik uzmanları daha etkili savunma mekanizmaları geliştirebilirler. Güvenlik önlemleri, zafiyetleri önlemek için kullanıcı girişi verilerinin doğru şekilde temizlenmesi, sistemlerin sağlam yapılandırılması ve güvenlik duvarlarının etkin kullanımı ile entegre edilmelidir. Bu bağlamda, konunun derinlemesine incelenmesi ve uygulamalı testlerin gerçekleştirilmesi, potansiyel tehditlerin izlenmesi açısından önemli bir adımdır.

Teknik Analiz ve Uygulama

Dizin Atlama Saldırısı ve Önleme Yöntemleri Üzerine Teknik Analiz

Dizin atlama (Path Traversal) saldırıları, bir saldırganın sunucunun dosya sisteminin dışına sızarak, yetkisiz dosyalara veya verilere erişim sağlamasına olanak tanıyan bir güvenlik zafiyetidir. Bu bölümde, dizin atlama saldırılarının nasıl gerçekleştirildiği ve bu tür saldırılara karşı nasıl önlemler alınabileceği hakkında kapsamlı bir analiz sunulacaktır.

Adım 1: Servis Kapısı Keşfi

Dizin atlama testlerine başlamadan önce, hedef sistemde hangi servislerin çalıştığını belirlemek önemlidir. Bu amaçla, ağda UDP 69 portunun açık olduğunu ve bir TFTP (Trivial File Transfer Protocol) servisinin yanıt verdiğini kontrol etmeliyiz.

nmap -sU -p 69 -sV <hedef_ip>

Bu komut, hedef IP adresindeki açık UDP portlarını tarar ve TFTP sunucusu hakkında bilgi verir.

Adım 2: Hedef Dosyalar ve İşletim Sistemleri

Hedef sistemlerde en sık hedef alınan dosyalar arasında /etc/passwd, C:\Windows\win.ini gibi kritik dosyalar bulunur. Bu dosyalar, kullanıcı kimlik doğrulama verileri gibi hassas bilgileri içermektedir. Farklı işletim sistemleri için de hedef dosyalar değişiklik gösterebilir.

Adım 3: Tanım: Path Traversal

Path Traversal, kullanıcı girişlerinin yeterince temizlenmemesi ve filtrelenmemesi sonucunda, dosya sisteminde hiyerarşik olarak yukarı çıkış yapılmasına olanak tanıyan bir zafiyettir. Kullanıcı girişi olarak, ../../ gibi özel karakterlerin kullanılmasına izin veren sistemler, bu tür bir saldırıya açık hale gelir.

Adım 4: Manuel Traversal Denemesi

Dizin atlama denemeleri, genellikle kullanıcıdan alınan dosya yolu girdilerinin işlenmesi sırasında başlar. Basit bir TFTP istemcisi kullanarak, kök dizinden 3 seviye yukarı çıkıp passwd dosyasını çekmeyi deneyebiliriz:

tftp <hedef_ip>
get ../../../etc/passwd

Eğer bu deneme başarılı olursa, sunucunun dosya sistemine erişim sağlanmış olur.

Adım 5: Hata Kodu Psikolojisi

Dizin atlama girişimlerinde, sunucudan dönen hatalar kritik bir öneme sahiptir. Hatalar, girişimin neden başarısız olduğunu ya da sunucunun koruma seviyesini deşifre etmeye yardımcı olabilir. Örneğin:

  • Error 1 (File not found): Dosya yolu yanlış veya sunucu chroot jail içinde mühürlü.
  • Error 2 (Access violation): Dosya bulundu ancak TFTP servisinin o dosyayı okuma yetkisi yok.

Adım 6: Temel Hata: Sanitization

Dizin atlama saldırılarının kökeni, kullanıcı girişlerinin yeterince temizlenmemesidir. Giriş verilerinin zararlı karakterlerden arındırılması işlemine "sanitization" denir. Bu işlem, yetkisiz erişimlerin önünde kritik bir engel oluşturur.

Adım 7: Metasploit ile Otomatik Tarama

Manuel denemeler yerine, yüzlerce farklı traversal kombinasyonunu otomatik deneyen profesyonel modüller kullanılabilir. Metasploit çerçevesinde, TFTP traversal tarayıcısını başlatmak için şu komutu kullanabiliriz:

use auxiliary/scanner/tftp/tftp_traversal

Bu komut, sistemde otomatik olarak dizin atlama denemeleri gerçekleştirir.

Adım 8: Bypass ve Encoding Teknikleri

Dizin atlama saldırılarında kullanılan bypass teknikleri arasında encoding teknikleri de yer almaktadır. Örneğin, URL encoding veya double encoding kullanılarak güvenlik önlemleri aşılabilir.

Örnekler:

  • URL Encoding: ../ yerine %2e%2e%2f kullanarak filtreleri aşmak.
  • Double Encoding: %252e%252e%252f kullanarak katmanlı güvenlik duvarlarını atlatma.

Adım 9: Kritik Güvenlik Bayrağı: --secure

Bazı sunucular, dizin atlama saldırılarını durdurmak için belirli parametreler kullanır. Örneğin, --secure parametresi, TFTP sunucusunun sadece belirli dizinlerle sınırlı kalmasını sağlar ve dışarıdaki dizinlere erişimi engeller.

Adım 10: Tshark ile İstismar İzleme

Dizin atlama denemelerini izlemek, saldırı paternlerinin anlaşılmasına olanak sağlar. Tshark ile içindeki .. geçen TFTP paketlerini listelemek için şu komutu kullanabiliriz:

tshark -Y "tftp.source_file contains '..'"

Bu komut, sızma testleri sırasında aktarılan paketleri izleyerek güvenlik açığını belirlemeye yardımcı olur.

Adım 11: Savunma ve Hardening Stratejisi

TFTP traversal riskini tamamen azaltmak için ağda belirli hardening stratejileri uygulanmalıdır. Bunlar arasında en az ayrıcalık prensibi, chroot jail kullanımı ve egress filtering gibi teknikler bulunmaktadır.

Adım 12: Nihai Hedef: Confidentiality

Dizin atlama saldırılarının ana hedefi, sistemin gizliliğini tehdit eden verilere yetkisiz erişim sağlamaktır. Bu nedenle, bu tür saldırılarla mücadele etmek için sürekli izleme ve güncel defans stratejilerinin uygulanması gereklidir.

Sonuç olarak, dizin atlama saldırıları, sistemlerin güvenliğini derinden tehdit eden bir açık olup, bu tür saldırılara karşı dikkatli önlemler alınması şarttır. Sisteminizi her daim güncel tutmak ve sızma testleri düzenlemek, etkili bir savunma mekanizması oluşturmanın temel taşlarını oluşturur.

Risk, Yorumlama ve Savunma

Risk Değerlendirmesi

Dizin atlama (Path Traversal) saldırıları, bir saldırganın, uygulamanın veya sunucunun dosya sisteminde yetkisiz erişim sağlamasını amaçlayan bir güvenlik açığıdır. Bu saldırı türü, genellikle kullanıcıdan alınan dosya yollarının yeterince temizlenmemesi ve filtrelenmemesi sonucunda ortaya çıkar. Hedeflenen sistemdeki potansiyel zayıflıkları analiz etmek, bu tür saldırıların ne ölçüde risk teşkil ettiğini anlamak için kritiktir.

Yanlış Yapılandırma ve Zafiyetler

Elde edilen bulgularla güvenlik anlamını yorumlamak önemlidir. Örneğin, bir TFTP (Trivial File Transfer Protocol) sunucusunun yapılandırmasında, kullanıcı girişlerinin doğrulanmaması ya da dosya yolları üzerinde yeterli sanitasyon yapılmaması büyük bir zafiyet oluşturur. Bu tür bir yapılandırma, saldırganların sunucu üzerindeki kritik dosyalara erişim sağlamasına yol açabilir.

Aşağıdaki örnek, zayıf bir yapılandırma sonucunda yaşanabilecek potansiyel bir durumu göstermektedir:

get ../../../../etc/passwd

Eğer yukarıdaki komut çalıştırıldığında 'passwd' dosyası geri dönerse, bu durum sunucunun kritik bir açığa sahip olduğunu gösterir ve dizin altındaki diğer hassas bilgilere erişim sağlanabilir.

Sızan Veri ve Topoloji

Sızan verilerin doğası, dizin atlama saldırılarına maruz kalan sistemlerin türüne bağlı olarak değişir. Sistemde gerçekleştirilen testler sonucunda kullanıcı adı ve parolaların yer aldığı dosyalar gibi kritik verilere ulaşılması mümkündür. Örneğin, bir Linux sunucusunda /etc/shadow dosyasına erişim sağlanması, kullanıcı parola hash'lerinin ele geçirilmesine sebep olur.

Bunun yanı sıra, ağın topolojisi de saldırılar için önemli bir hedef haline gelebilir. Eğer TFTP sunucusu, birden fazla cihazı ve veri yolunu etkileyen bir ağ yapısı içindeyse, yukarıda bahsedilen zafiyetlerin istismar edilmesi, daha geniş bir saldırı vektörü oluşturabilir.

Servis Tespiti

Servislerin tespiti, dizin atlama saldırıları için hazırlık aşaması olarak kritik öneme sahiptir. Bu aşamada, UDP 69 portunun açık olup olmadığını kontrol etmek için aşağıdaki Nmap komutu kullanılabilir:

nmap -sU -p 69 -sV hedef_ip

Bu tür bir tarama, saldırganların hedef sistemde hangi servislerin çalıştığını belirlemesine olanak tanır. Hedef servisin bir TFTP olduğu belirlendiğinde, sızmayı planlama ve gerçekleştirme aşamasına geçilir.

Savunma Stratejileri

Saldırıların başarılı bir şekilde engellenmesi için sistemin yapılandırılması ve güvenlik politikalarının sıkılaştırılması gerekmektedir. Aşağıda, dizin atlama saldırılarına karşı alınabilecek profesyonel önlemler ve hardening önerileri bulunmaktadır:

1. Kullanıcı Girdi Sanitasyonu

Kullanıcıdan alınan dosya yollarında, tüm özel karakterlerin temizlenmesi gerekmektedir. Adım 6'da bahsedildiği gibi, sanitizasyon eksiklikleri, uygulamanın hiyerarşik dizinlere erişmesine olanak tanır.

2. Güvenlik Modları

Unix tabanlı sistemlerde, TFTP sunucusunun yapılandırmasında --secure parametresinin kullanılması, isteklilerin sadece belirli dizinler içinde işlem yapabilmesini sağlar. Bu, kritik dosyaların bulunduğu dizinlerin dışına çıkılmasını engeller.

3. Ağ Üzerinde İzleme

Gerçek zamanlı izleme gerçekleştirmek, ağ üzerinde yapılan traversal denemelerini tespit etmeye olanak tanır. tshark kullanılarak, içinde .. geçen TFTP paketlerini izlemek ve analiz etmek için aşağıdaki komut kullanılabilir:

tshark -Y "tftp.source_file contains '..'"

4. Erişim Kontrolü

Kullanıcılara en az ayrıcalık ilkesine (Least Privilege) dayalı olarak erişim izinleri veren bir model uygulanmalıdır. TFTP servisi sadece belirli dizinlere erişim izni vermelidir. Bu, sistemin diğer bölümlerinin izole edilmesine yardımcı olur.

Sonuç

Dizin atlama saldırıları, yanlış yapılandırmalar ve zayıf kullanıcı girdi sanitasyonu sonucunda büyük riskler taşımaktadır. Saldırganlar, yeterli güvenlik önlemleri alınmadığında, kritik verilere ulaşabilir ve sistem üzerinde tehlikeli manipülasyonlar gerçekleştirebilir. Bu nedenle, ağ güvenliği ve dosya izinleri ile ilgili politikaların düzenli olarak gözden geçirilmesi ve gerekli önlemlerin alınması kritik öneme sahiptir. Yalnızca yapılandırmaları güçlendirmekle kalmayıp, aynı zamanda sürekli izleme ve analiz mekanizmalarının oluşturulması da gereklidir.