FTP nedir?
File Transfer Protocol (FTP) dosya transferi için kullanılan ve bir ağ üzerinden uzaktan dosya transferine izin veren bir protokoldür.
Client-Server yani istemci-sunucu arasında kurulan bir modeldir ve komut ve veri aktarımı için iki farklı bağlantı kurması sayesinde oldukça verimli bir aktarım yapılmasına olanak tanır.
FTP nasıl çalışır?
FTP oturumları iki kanal kullanılarak yapılır:
1. Komut (ya da kontrol) kanalı
2. Veri kanalı
İsimlerinden de anlaşıldığı üzere komut kanalı komutların gönderilmesi ve aynı zamanda bu komutlara yanıtların iletilmesi için kullanılır. Veri kanalı ise ver aktarımı için kullanılmaktadır.
Yukarıda da yazmış olduğum gibi, FTP istemci ile sunucu arasında bir protokoldür (client-server protocol). İstemci sunucu ile bir bağlantı kurar, sunucu girilen kullanıcı giriş bilgilerini (kimlik bilgilerini) doğrular ve bir oturum açar.
Oturum açıldığında istemci sunucu üzerinde FTP komutlarını çalıştırabilir.
Aktif ve Pasif FTP transferi
FTP sunucusu Aktif veya Pasif bağlantı ile çalışabilir ya da her ikisini birden kullanabilir.
Aktif FTP bağlantısında istemci bir port açar ve dinler yani pasif pozisyondadır. Sunucunun aktif olarak bağlantı kurması gerekir.
Pasif FTP bağlantısında ise sunucu bir port açar ve dinler yani pasif pozisyondadır. İstemci bağlanır.
Komut bilgilerinin ve verilerin ayrı kanallara bu şekilde ayrılması sayesinde veri aktarımının bitmesini beklemek zorunda kalmadan sunucuya komutlar gönderilebilir.
Her iki kanal birbirine bağlı olduğu takdirde komutlar ancak veri aktarımları arasında girilebilecek, bu da dosya aktarımları veya yavaş internet bağlantısı bulunan ortamlar içinoldukça verimsiz olacaktı.
FTP Hangi portta çalışır?
FTP varsayılan olarak 21 numaralı bağlantı noktası üzerinde çalışır.
FTP Enumeration (Bilgi toplama)
Bilgi toplama aşamasında nmap kullanılabilir. Bunun için tercih edilen flagler ile çalıştırılacak olan nmap çıktısında ftp hakkında da bilgi edinilebilecektir.
Ben tüm sistem hakkında bilgi toplamak için genellikle aşağıdaki komutu kullanıyorum:
nmap -A -p- -T4 IPADRESİ
Ancak sadece ftp portu hakkında bilgi edinmek istiyorsak aşağıdaki komut kullanılabilir:
nmap -p 21 IPADRESİ
Alternatif bilgi toplama yöntemleri:
in.ftpd'nin bazı savunmasız sürümlerinde home dizininde "cwd" (Linux'da "change working directory" yani mevcut çalışma dizini değiştirme) komutuna farklı yanıtlar alınabilir.
Bu durum bir istismara yol açabilmektedir çünkü eğer kimlik doğrulama öncesinde cwd komutu çalıştırılabilirse ve bir home dizini varsa bu genellikle içerisinde bir kullanıcı hesabının da bulunabileceği anlamına gelir ve kullanıcı hesabı hakkında bilgi toplamış oluruz.
Her ne kadar bu hata ancak eski sistemlerde karşımıza çıkabiliyor olsa da FTP istismar etmenin yöntemlerinden biri olarak bilinmeye değerdir.
Bu zafiyete ait dokümana https://www.exploit-db.com/exploits/20745 linkinden erişilebilir. Solaris 2.6/7.0 - IN.FTPD CWD 'Username' Enumeration olarak bilinen zafiyet açıklamasında görülebileceği gibi, Solaris İşletim Ortamı ile birlikte gelen ftp deamon ile ilgili bir sorun, uzak kullanıcıların geçerli kullanıcı hesaplarının adlarına erişmesine izin verebilmektedir.
Oturum açmadan önce (in.ftpd hala "negotiation" aşamasındayken) ftp deamon'a yapılacak olan cwd değişiklik isteği sonucunda hesap geçerliyse ftp deamon bir oturum açma ve parola isteği gönderir, geçerli değilse bu durumda geçerli olmadığını belirten bir hata mesajı alınır.
FTP'yi istismar etmek
FTP İstismar çeşitleri
Telnet gibi, FTP kullanılırken hem komut hem de veri kanalları şifresizdir. Bu kanallar aracılığıyla iletilen verilerde saldırgan araya girebilir ve okuyabilir.
FTP ile iletilen veriler düz metin olarak gönderilir bu nedenle man-in-the-middle (ortadaki adam) saldırılarında saldırganların araya girmesi durumunda parola vb. iletilen bilgilerin bu kişinin eline geçmesi mümkündür.
Zayıf ya da varsayılan ayarlarda bırakılmış parola konfigürasyonları ise diğer bir istismar yöntemidir.
Ayrıca "Banner Grabbing" denilen yöntem ile FTP Banner bilgilerinden versiyon bilgisine erişmek ve bu versiyona ait bir zafiyeti istismar etmeye çalışmak, sniffing araçlarının kullanılmasıyla veri paketlerine erişmek ve FTP üzerinden düz metin dosyası halinde iletilen kullanıcı adı / parola gibi bilgileri yakalamak, Brute-Force saldırısı ile kullanıcı adı / parola bilgilerini çalmak, FTP Port Forwarding gibi daha pek çok yöntem ile çeşitli FTP zafiyetlerini duruma göre istismar etmek mümkün.
En sık kullanılan FTP İstismarları
En sık kullanılan FTP İstismarlarının aşağıdakiler olduğu tespit edilmiş:
1. Anonymous Authentication (Kimlik Doğrulama) - Bu FTP zafiyeti, saldırganın FTP'ye "anonymous" kullanıcı adıyla (ve bazı durumlarda parola olarak da "anonymous" ile) bağlanabilmesine neden olur.
Microsoft'a ait bu dokümanda açıklanmış olduğu üzere birçok durumda kullanıcıların kullanıcı adı olarak "anonymous" ve parola olarak kendi e-posta adreslerini kullandığı görülmektedir.
Msfconsole yardımıyla bu zafiyet sırasıyla aşağıdaki komutlar kullanılarak istismar edilebilir:
msfconsole
use auxiliary/scanner/ftp/anonymous
msf auxiliary(anonymous) >set rhosts HEDEF_IP_ADRES (herzaman "show options" kullanarak sizden istenenlerin ne olduğunu görüntüleyebilir ve istenen bilgileri başında "set" ile belirterek girebilirsiniz.)
msf auxiliary(anonymous) >exploit
2. Directory Traversal Attack (Dizinler Arası Geçiş) - Dizinler arası geçiş (ya da çapraz geçiş) olarak bilinen bu saldırı, saldırganların kısıtlanmış olan dizinlere erişmesine ve web sunucusunun root dizini dışındaki yerlerde komut çalıştırabilmesine olanak sağlayan bir HTTP saldırısıdır.
Kısaca, saldırının başarılı olması durumunda saldırgan web root klasörünün dışında depolanan dosyaların üzerine yazabilir veya yeni dosya oluşturabilir. (Saldırı hakkında daha detaylı bilgi için buraya bakılabilir.) Sonuç olarak da orijinal FTP sahibi saldırganın dosya veya dizinlere verdiği izin ve kontrollere bağlı kalmak zorunda olacaktır.
3. Cross-Site Scripting (XSS) – XSS saldırıları, bir saldırgan web uygulaması vasıtasıyla zararlı yazılım içeren bir kodu göndermeyi başarabildiğinde gerçekleşir. XSS konusu oldukça uzun ve bu yazıya ait olmayan apayrı bir içeriğe sahip, bu nedenle yeri geldiğinde bununla ilgili detayları da öğrenip yazacağım. Bu yazı bağlamında bilinmesi gereken ise bu saldırıların da FTP kullanılarak yapılabildiği.
4. Dridex tabanlı Zararlı Yazılım Saldırıları – Dridex en bilinen bankacılık zararlı yazılımlarından bir tanesi ve 2014 yılından beri kendisine ya da varyantlarına (Dridex'i temel alan benzerlerine) rastlanıyor. Bu zararlı yazılım Windows kullanıcılarını bir Word ya da Excell e-posta ekini açmaları için sosyal mühendislik ile kandırıyor ve dosya içerisine gizlenmiş makroların çalışması sonucunda zararlı yazılım bilgisayara bulaşıyor. Dridex'in son geldiği noktada ise saldırganlar, e-posta ağ geçitleri ve FTP'ye güvenen ağ politikaları tarafından algılanmayı önlemek için FTP sitelerini ve kimlik bilgilerini kullanıyor.
İstismara ancak zafiyete bağlı olarak karar verilebileceğinden ve her şey duruma göre (versiyon bilgisi, nelerin açık ya da kapalı olduğu, sistemde başka hangi zafiyetlerin bulunduğu vs.) değiştiğinden bir liste hazırlayıp "şunları yaparsan kesin FTP'yi istismar edersin" demek mümkün değil. Sadece en sık kullanılan yöntemleri ve nelerin olabileceğini bilmek ise bakılması gereken noktalar için bir çıkış noktası olmaya yarıyor.
Gerisi daha fazla örnek ile karşılaştıkça yöntemler geliştirmeye bakıyor.
İşe yarar kaynaklar:
* Solaris 2.6/7.0 - IN.FTPD CWD 'Username' Enumeration
* FTP Anonymous Authentication
* How to Prevent Sniffer Attacks with Encrypted FTP
* Exploiting simple network services in CTF’s
Hiç yorum yok:
Yorum Gönder