CyberFlow Logo CyberFlow BLOG
Tftp Pentest

Siber Güvenlikte Yetkisiz Dosya Yükleme Saldırıları

✍️ Ahmet BİRKAN 📂 Tftp Pentest

Yetkisiz dosya yükleme saldırıları, siber güvenlikte kritik tehditler arasında yer alır. Bu blogda TFTP protokolü üzerinden yapılan saldırılara dair detayları bulabili...

Siber Güvenlikte Yetkisiz Dosya Yükleme Saldırıları

Bu blog yazısında, yetkisiz dosya yükleme saldırılarının TFTP protokolü üzerinden nasıl gerçekleştirilebileceği ve korunma yöntemleri ele alınmaktadır. Siber güvenlik alanında bilgi sahibi olun.

Giriş ve Konumlandırma

Siber Güvenlikte Yetkisiz Dosya Yükleme Saldırıları

Siber güvenlik, günümüzde her sektörde kritik bir öneme sahiptir. Bilgi teknolojileri alanında, yetkisiz dosya yükleme saldırıları özellikle dikkat edilmesi gereken bir tehdit olarak öne çıkmaktadır. Bu tür saldırılar, bir saldırganın sistemdeki zafiyetlerden yararlanarak, istenmeyen veya zararlı dosyaları yüklemesine olanak tanır. Bu yazıda, yetkisiz dosya yükleme saldırılarının ne olduğunu, neden kritik bir güvenlik tehditi oluşturduğunu ve bu bağlamda siber güvenlik, penetrasyon testi (pentest) ve savunma stratejileri açısından nasıl ele alınması gerektiğini inceleyeceğiz.

Yetkisiz Dosya Yükleme Saldırıları Nedir?

Yetkisiz dosya yükleme saldırıları, bir saldırganın bir sunucuya veya hizmete, yetkisi olmayan dosyaları yüklemesi olayıdır. Bu saldırılar genellikle TFTP (Trivial File Transfer Protocol) gibi dosya transfer protokollerini hedef alır. Saldırgan, bu tür işlemleri gerçekleştirmek için genellikle bir "Write Request" (WRQ) paketi gönderir; bu paket, istemcinin sunucuya dosya yüklemek üzere başlattığı ilk adımı temsil eder. Eğer bir sunucu bu tür isteklere yanıt veriyorsa, saldırganın potansiyel olarak sistem üzerinde büyük etkilere yol açabilecek dosyalar yüklemesi mümkün hale gelir.

Opcode 2 (WRQ) - Sunucuya dosya yükleme isteği gönderme.

Örneğin, bir saldırgan, zararlı bir script dosyası (örneğin bir webshell) yükleyerek sistemde tam yetki elde edebilir. Bu durumda, sunucun sağladığı zafiyetler üzerinden sistemin kontrolü eline geçirildiği için, yetkisiz dosya yükleme, "Remote Code Execution" (RCE) gibi daha ciddi tehditlere yol açabilir.

Neden Önemlidir?

Yetkisiz dosya yüklemeleri, siber güvenlik açısından birkaç önemli nedenle kritik bir risk taşır:

  1. Veri Bütünlüğü Tehditi: Yetkisiz dosya yüklemesi, sistemdeki mevcut verilerin değiştirilmesine veya bozulmasına yol açabilir. Bu durum özellikle finansal veya kişisel verilerin korunması gereken ortamlarda büyük bir tehlike arz eder.

  2. Sistem Kontrolü: Bir saldırgan, hedef sistemde zararlı yazılımları çalıştırma kapasitesine sahip olduğunda, ağ içerisindeki diğer kaynaklara erişim sağlayabilir. Bu durum, daha geniş bir ağa yönelik çok sayıda başka saldırının kapısını açabilir.

  3. Yasal ve Düzenleyici Riskler: Özellikle belirli standartlara tabi olma zorunluluğu bulunan işletmeler için yetkisiz yüklemeler, ağır yasal yaptırımlara ve itibari zarara yol açabilir.

Siber Güvenlik, Pentest ve Savunma Açısından Bağlam

Yetkisiz dosya yükleme saldırılarına karşı koruma sağlamak, siber güvenlikte önemli bir yere sahiptir. Penetrasyon testi sürecinin bir parçası olarak, bu tür zafiyetlerin sistemlerde tespit edilmesi, karşı önlemlerin geliştirilmesi için kritik bir adımdır. Sızma testleri sırasında, hangi sistemlerin yazılabilir olduğunu belirlemek, güvenlik açıklarını saptamak ve yazma izinlerinin doğru yapılandırıldığından emin olmak gereklidir.

Bir pentest uzmanı, genellikle şu adımları takip ederek yetkisiz yüklemeleri test eder:

  1. Servis Keşfi: Hedef ağda aktif olan TFTP gibi dosya transfer protokollerinin tespiti.
  2. Yükleme İzni Analizi: Sunucunun yazma izinlerini inceleyerek, saldırıya uygun zafiyetlerin belirlenmesi.
  3. Otomatik Tarama: Manuel yöntemlerin zaman kaybı yaratabileceği durumlarda, otomatik tarama araçlarının kullanılması.

Sonuç

Yetkisiz dosya yükleme saldırıları, siber güvenlik alanında göz ardı edilmemesi gereken kritik bir konudur. Bilgi güvenliği uzmanlarının bu tür saldırıları anlaması, savunma stratejilerini oluşturabilmesi ve etkili bir şekilde karşı koyabilmesi için temel bir gerekliliktir. Bu bağlamda, hem zafiyetlerin tespiti hem de savunma mekanizmalarının geliştirilmesi amacıyla kapsamlı bir teknik bilgi ve strateji gerekmektedir. Yeni nesil siber güvenlik uygulamaları, bu tehditlerle başa çıkmak için tasarlanmalı ve sürekli olarak güncellenmelidir.

Teknik Analiz ve Uygulama

Giriş

Siber güvenlikte yetkisiz dosya yükleme saldırıları, saldırganların bir sisteme veya uygulamaya zararlı dosyalar yükleyebileceği bir tür siber tehdittir. Bu tür saldırılar genellikle yetersiz güvenlik önlemleri veya yanlış yapılandırılmış servisler üzerinden gerçekleşir. TFTP (Trivial File Transfer Protocol), bu tür çok sayıda saldırıya açık bir protokol olduğundan, burada detaylı bir incelemeye tabi tutulacaktır.

Servis Keşfi ve Yazma Yetkisi Analizi

Yetkisiz dosya yükleme işlemlerinin ilk aşaması, hedef sistemde hangi hizmetlerin çalıştığını belirlemektir. Nmap gibi araçlar kullanılarak TFTP servisinin varlığı ve yazma yetkilerinin durumu analiz edilebilir. Aşağıdaki komut, hedef IP adresi üzerindeki TFTP servisini keşfetmek için kullanılabilir:

nmap -sU -p 69 --script tftp-enum <hedef_ip>

Bu komut, hedef sistemdeki TFTP hizmetinin çeşitli yapılandırmalarını ve olası yazma izinlerini listeleyecektir. Elde edilen bilgiler, daha sonraki adımlar için kritik öneme sahiptir.

TFTP Paket Opcodes ve İşlevler

TFTP protokolünde, dosya yükleme işlemi, belirli bir opcode değeri ile başlatılır. Örneğin, yeni bir dosya yüklemek için kullanılan “Write Request (WRQ)” opcode değeri 2'dir. İlgili TFTP paket yapısı aşağıdaki gibidir:

  • Opcode: 2 (Write Request)
  • Filename: Yüklemek istenen dosyanın adı
  • Mode: Transfer modu (Binary veya Netascii)

WRQ (Write Request) Paketinin Anlamı

TFTP istemcisi, sunucuya yeni bir dosya yüklemek veya mevcut bir dosyanın üzerine yazmak için WRQ paketi gönderir. Aşağıdaki komut, yerelde bulunan 'zararli.php' dosyasını TFTP sunucusuna yüklemek için örnek bir kullanım sunar:

put zararli.php

Bu komut, sunucudan yanıt alınabilmesi için doğru izinlerin mevcut olup olmadığını test eder. Sunucudan alınan yanıt ise, yükleme yetkisinin durumunu ve sunucunun güvenlik seviyesini gösterir.

Yanıt Kodları ve Erişim Durumu

TFTP sunucusu, bir WRQ isteğine yanıt verirken farklı hata kodları kullanır. Bu hata kodları, sunucunun yazma izni verip vermediğini belirler. Örneğin:

  • Error 2 (Access Violation): Bu kod, yükleme isteğinin izin verilmeyen bir durum olduğunu gösterir.
  • Error 3 (Disk Full): Sunucu üzerinde yazma izni mevcut olsa dahi, hedef dizinde yeterli boş alan olmadığını belirtir.
  • Error 6 (File exists): Yüklenmek istenen dosya zaten mevcut ve üzerine yazma izni kısıtlıdır.

Bu kodların analizi, sunucunun güvenlik yapılandırmasını anlamak için önemli bir adımdır.

Yetkisiz Yükleme Denemesi

Manuel bir deneme aşaması, TFTP istemcisi ile yazma izninin olmaması durumunu test etmek için kritik bir adımdır. Standart bir TFTP istemcisi kullanarak, sistemi 'mühürlenmiş' bir kanıt elde etmek için aşağıdaki yöntemi izleyebiliriz.

Eğer sunucu, bir web dizinine yazma izni veriyorsa, zararlı bir script (webshell) üzerinden sistemde tam yetki elde etme imkanı doğar. Bu nedenle, sunucunun hangi dizinlere dosya yüklemeye izin verdiği öğrenilmelidir.

Metasploit ile Otomatik Yazma Taraması

Büyük ağlarda manuel testler yapmak zaman alıcı olabileceğinden, Metasploit framework’ü kullanılarak otomatik yazma taramaları gerçekleştirilebilir. Aşağıdaki komut, TFTP sunucularında yazma denemesi yapan bir Metasploit modülünü çağırmak için kullanılabilir:

use auxiliary/scanner/tftp/tftp_brute

Bu modül, hedef sunucuların yazılabilir olup olmadığını hızlı bir şekilde keşfetmek için yapılandırılmıştır.

Transfer Modları

TFTP'de kullanılan iki ana transfer modu bulunmaktadır: Binary ve Netascii. Binary mod, ikili dosyalar ve zararlı yazılımlar için daha uygun iken, Netascii sadece düz metin dosyaları için kullanılır. Doğru transfer modunun seçimi, yükleme işleminin başarıyla gerçekleşmesi için kritik öneme sahiptir. Örneğin:

  • Binary Modu (Octet): Shell dosyaları ve firmware yüklemek için kullanılır.
  • Netascii Modu: ANSI düz metin dosyaları gönderiminde kullanılır.

Zafiyet: Path Traversal in WRQ

Yetkisiz dosya yükleme saldırılarında dikkat edilmesi gereken bir diğer zafiyet, WRQ isteklerinde Path Traversal kullanımıdır. Bu durumda, dosya ismi içinde '../' karakterleri kullanarak sunucunun hapsolduğu kök dizinden çıkma girişimi yapılabilir.

Yükleme Trafiği İzleme

Yetkisiz dosyaların ağ üzerinden yüklenip yüklenmediğini incelemek için tshark gibi ağ izleme araçları kullanılabilir. TFTP yükleme trafiğini izlemek için şu komut kullanılabilir:

tshark -Y "tftp.opcode == 2"

Bu komut, ağ üzerindeki TFTP yükleme isteklerini filtreleyerek analiz edilmesini sağlar.

Savunma ve Hardening

Yetkisiz dosya yüklemelerine karşı koruma sağlamak için çeşitli önlemler alınmalıdır. Bazı temel koruma stratejileri şunlardır:

  1. Read-Only Mode: Sunucu tarafında WRQ isteklerini tamamen kapatıp yalnızca RRQ'ya izin verme.
  2. Secure Mode (-s): Sunucuyu belirli bir klasöre hapsederek dizin atlamayı engelleme.
  3. IP Whitelisting: Yükleme yetkisini sadece belirli IP adresleriyle sınırlandırma.

Bu tür önlemler, sunucunun güvenliğini artırmak ve sistemin bütünlüğünü koruma amacı taşır. Sonuç olarak, yetkisiz dosya yükleme saldırılarına karşı etkili bir güvenlik yapısının oluşturulması gerekmektedir.

Risk, Yorumlama ve Savunma

Risk Değerlendirmesi

Yetkisiz dosya yükleme saldırıları, hassas sistemlere zarar verme potansiyeli taşıyan ciddi bir güvenlik açığıdır. Bu tür saldırılar genellikle TFTP (Trivial File Transfer Protocol) gibi basit dosya transfer protokollerinin yanlış yapılandırılması sonucunda gerçekleşir. Bu bağlamda, ilk aşama olarak, hedef sistemde TFTP hizmetinin mevcut olduğunu ve dışarıdan gelen taleplerle yanıt verdiğini doğrulamak kritik önem taşır.

Sistem üzerinde yapılan keşif ve analizler, varsa yetkilendirilmiş yazma izinlerinin durumunu ortaya koyarak potansiyel riskleri gün yüzüne çıkarır. Burada öncelikle Nmap gibi araçlar kullanarak hedef sistemde açık TFTP hizmetinin taranması önerilir:

nmap -sU -p 69 --script tftp-enum [hedef_ip]

Bu komut, hedef sistemde TFTP servisi olup olmadığını ve olası zafiyetleri tespit etmeye yardımcı olur.

Zayıflık ve Etkileri

TFTP üzerindeki yetkisiz dosya yükleme saldırıları, bir sunucunun belirli dosyaları yazma iznine sahip olması durumunda, kötü niyetli kullanıcıların sisteme zararlı dosyalar yüklemesine olanak tanır. Özellikle, dosya yükleme isteği ile birlikte gönderilen opcode değerleri, saldırganların başarısını belirlemede kritik rol oynar. Örneğin, opcode 2 (Write Request) ile sunucuya dosya yükleme isteği yapılır.

Eğer sunucu yanıt olarak aşağıdaki durum kodlarını veriyorsa, sistemin güvenlik seviyesi sorgulanmalıdır:

  • Error 2 (Access Violation): Dosya yükleme izni kapalı ya da yetkisiz erişim.
  • Error 3 (Disk Full): Yazma izni mevcut ancak sunucuda yeterli alan yok.
  • Error 6 (File Exists): Var olan dosyalar üzerine yazma izni kısıtlanmış olabilir.

Bu hata mesajları, sistemdeki zayıflıkları ve yapılandırma hatalarını ortaya çıkarır.

Sızma Sonuçlarının Değerlendirilmesi

Yetkisiz dosya yüklemeleri genellikle uzaktan kod çalıştırma (RCE) riskini taşır. Saldırganlar, sunucunun yazma izinlerine sahip olduğunda, zararlı bir betik (örneğin, PHP web shell) yükleyerek sisteme tam erişim elde edebilir. Bu noktada, yüklenen dosyanın içeriği ve işlevine dikkat edilmelidir.

Elde edilen bulgular ışığında, Tshark gibi ağ trafiği analiz araçları kullanarak yükleme trafiği izlenebilir:

tshark -Y "tftp.opcode == 2"

Bu komut, yalnızca WRQ (Write Request) paketlerini yakalayarak analiz için önemli bir veri sağlar.

Savunma Önlemleri

Yetkisiz dosya yüklemelerini önlemek için birkaç strateji uygulanabilir:

  1. Access Control: Dosya yükleme izinlerini sınırlamak, yalnızca belirli kullanıcı gruplarına tanımak.
  2. File Type Validation: Yüklenen dosyaların türlerini kontrol etmek ve belirli dosya türlerine sınırlama getirmek.
  3. Directory Restriction: Sistem dizinlerine erişimi sınırlamak için sunucunun chroot gibi bir güvenli moda konulması.
  4. Monitoring and Alerting: Dosya yüklemeleri izlenmeli ve şüpheli aktivitelerde yöneticilere uyarılar gönderilmelidir.
  5. IP Whitelisting: Yükleme yetkisini yalnızca belirli IP adresleri ile sınırlamak.

Bu savunma mekanizmaları sayesinde, yetkisiz dosya yükleme riskleri önemli ölçüde azaltılabilir.

Sonuç

Yetkisiz dosya yükleme saldırıları, siber güvenlik alanında göz ardı edilemeyecek kadar ciddi tehditlerdir. Doğru yapılandırma, etkin izleme ve güçlü savunma önlemleri, bu tip saldırılara karşı sistemlerin güvenliğini artırmada büyük rol oynamaktadır. Uzaktan kod çalıştırma gibi tehlikeli durumların önüne geçmek için, iş süreçlerinin güvenlik standartlarına göre güncellenmesi ve eğitim seviyesinin arttırılması gerekir. Bu kapsamda hem teknik hem de yönetimsel önlemler alınarak, işletmelerin veri bütünlüğü ve gizliliği sağlanabilir.