Hostlar arası dosya transferi amacıyla geliştirilmiş olan ağ protokolüdür. Ftp ağ protokolü dosya aktarımı işlemi esnasında, hostlar arası bağlantı kurulur ve komutlar aracılığı ile dosya iletme ve alma işlemleri yapılır.
FTP ağ protokolü ile dosya transferi gerçekleştirmek için;
1- hostlardan birisi ftp server, birisi de ftp client rolünde olur ve ilgili servislere sahip olmaları gerekir.
2- client rolünde olan hostun, server rolünde olan hosta ait IP adresini, FTP portunu, eğer kullanıcı adı-şifre gerekiyorsa login bilgilerini bilmesi gerekmektedir. Eğer ftp client tarafından anonim bağlantı sağlanacaksa kullanıcı ve şifre bilgisine ihtiyaç yoktur.
FTP ağ protokolü güvenli bir protokol değildir. Çünkü bağlantı esnasında kullanıcı adı ve şifre gibi bilgiler açık formatta ya da clear text olarak aktarılır. Man in the Middle yani Aradaki Adam saldırısı ya da ağ ortamını sniff eden bir uygulamanın olması (Wireshark gibi) FTP client’ın login bilgileri (kullanıcı adı ve şifre), aktardığı dosyaların döndürülebilmesini mümkün kılar.
Günümüzde IP güvenlik kameralarında görüntü işleme yapılmakta, görüntü işleme sonucu güvenlik kamerası olay anı ile ilgili örneğin snapshot alır, ya da olay öncesi 5 sn olay sonrası 5sn’lik video klibini FTP ağ protokolü üzerinden tanımlı olan bir sunucuya iletir. Bu durum FTP ağ protokolü kullanıldığında oldukça tehlikelidir. Eğer sizin trafiğinizi birisi sniff ediyorsa, hem client’ın login olmak için gönderdiği kullanıcı adı ve şifre bilgilerini (yani IP güvenlik kamerası) hem de gönderdiği datayı (olay anı snapshot ya da olay öncesi video, olay sonrası video vb) geriye döndürebilir. Bu yazımızda bu işlemin nasıl yapıldığını ele alalım.
Wireshark ile araya girerek yakaladığımız paketleri ele alalım.
1- FTP ağ protokolü bilindiği gibi TCP tabanlıdır ve 3 way handshake olarak bilinen 3’lü el sıkışma yöntemini kullanarak öncelikle source ve destination arasında bağlantı kurar. 3’lü el sıkışma esnasında SYN, SYN+ACK, ACK işaretleri verilir. 192.168.1.20 IP Güvenlik kamerasının IP adresi, 192.168.1.69 ftp server kurulu olan hostun IP adresi.
2- 3’lü el sıkışma sonrası, FTP server yani 192.168.1.69 bir response üretiyor. Bu response içinde FTP servisinin banner bilgisini döndürüyor. VsFTPd 3.0.3. Oldukça kıymetli bir bilgi.
3- 192.168.1.20 IP adresli güvenlik kamerası, üzerinde tanımlı olan kullanıcı adını 192.168.1.69 yani ftp server’a gönderiyor.
4- kullanıcı adı sonrası, şifreyi gönderiyor.
5- Login successful mesajı geliyor. Bu mesajı ftp server, güvenlik kamerasına bildiriyor. Artık dosya transferi yapılabilir.
Aslında bu anatomi içinde bir VCA çalışıyor ve olay anında yakalan resim, ftp ağ protokolü aracılığı ile ftp server’a işlenmek amacıyla gönderiliyor.
6- PWD – Print Working Directory, çalışılan dizin bilgisi. / mevcut dizin olduğu dönüyor.
7- yakalanan resim rec_motion120190613102704C.jpg güvenlik kamerasından, ftp server’a aktarılıyor.
Aslında ftp server’a login olmak için gerekli olan kullanıcı adı ve şifresini elde ettik. Şimdi de aktarılan olay anı resmini döndürelim.
TCP paketlerinden birisi üzerinde sağ klik yapıp, “FOLLOW” seçeneğinden “TCP STREAM”
Bu işlemleri yapmamızdaki ana sebep, resme ulaşana kadar filtreleyip resim dosyasının paketlerini bırakmak.
Filter out This stream butonu ile tcp 3 way handshake ve ftp login paketlerini filtreliyoruz.
Fİltrelemeden sonra 37 numaralı FTP Data (872 Byte) olan paketi seçip tekrardan Follow – TCP stream ile okuyoruz.
TCP stream’i RAW formatına dönüştürüyoruz ve SAVE as ile kaydediyoruz.
Resim dosyamızın uzantısının jpg olduğunu biliyoruz. (rec_motion120190613102704C.jpg)
herhangi bir isim verip .jpg olarak kaydediyoruz.
Sonuç :
videoresim.jpg dosyasını dışarı çıkarttık ve ele geçirdik.
FTP günümüzde dosya transferi için IP güvenlik kameraları tarafından oldukça sık kullanılıyor. Kullanım alanlarına baktığımızda da ;
1- Video analitik sonucu ile ilgili resim, video aktarımı,
2- Firmware upgrade vb.
Güvenli olmayan ağlarda ya da kötü niyetli kişilerin bulunabileceğini düşünerek, FTP protokolünün kullanımını minimize etmekte fayda bulunuyor. FTP yerine kullanılabilecek alternatif ne diye sorarsınız, SFTP(SECURE FILE TRANSFER PROTOCOL) diyebiliriz.
Sağlıcakla kalın.