Allah’ın Rahmeti Ve Bereketi Üzerinize Olsun
Selamun aleyküm dostlarım. Bu makalemizde HTTP, FTP, POP3, SMTP, IMAP Bu protokoller; web'de gezinme, dosya transferi yapma ve e-posta gönderip alma işlemlerinin temelini oluşturur. Bu protokollerin düşük seviyede nasıl çalıştığını anlamak, ister sızma testi (penetration testing), ister ağ savunması (network defense), ister güvenlik mühendisliği (security engineering) alanında kariyer hedefleyin, siber güvenlik profesyonelleri için oldukça önemlidir. Bizde bugün bu protokollere göz atacağız Allah’ın izniyle
Telnet
Telnet protokolü, başka bir bilgisayarın sanal terminaline bağlanmak için kullanılan uygulama katmanı (application layer) protokollerinden biridir. Telnet kullanılarak bir kullanıcı uzak bir makineye giriş yapabilir ve onun terminaline (konsoluna) erişerek program çalıştırabilir, toplu işlemler (batch processes) başlatabilir ve sistem yönetimi görevlerini uzaktan gerçekleştirebilir.
Telnet protokolü oldukça basit bir yapıya sahiptir. Bir kullanıcı bağlantı kurduğunda kendisinden kullanıcı adı ve parola istenir. Kimlik doğrulama başarılı olduğunda kullanıcı, uzak sistemin terminaline erişim hakkı kazanır.
Ancak Telnet'in en büyük dezavantajı, istemci (client) ile sunucu (server) arasındaki tüm iletişimin şifrelenmemiş olmasıdır. Gönderilen kullanıcı adı, parola ve diğer veriler ağ üzerinden düz metin (cleartext) olarak iletilir. Bu nedenle ağ trafiğini dinleyebilen saldırganlar bu bilgileri kolayca ele geçirebilir. Bu güvenlik açığı nedeniyle Telnet günümüzde büyük ölçüde yerini, iletişimi şifreleyen Secure Shell (SSH) protokolüne bırakmıştır.
Modern ve doğru şekilde yapılandırılmış sistemlerde Telnet'in etkin olduğunu görmeniz pek olası değildir. Buna rağmen aşağıdaki ortamlarda hâlâ Telnet ile karşılaşabilirsiniz:
Bunun nedeni, Telnet'in kullanıcı adları, parolalar ve diğer verileri ağ üzerinden şifrelenmemiş (cleartext) olarak iletmesidir. Bu nedenle ağ trafiğini dinleyebilen bir saldırgan, hassas bilgileri kolayca ele geçirebilir. Bu risk nedeniyle modern sistemlerde Telnet yerine SSH gibi şifreli iletişim sağlayan protokoller tercih edilmektedir.
Örneğin:
telnet hedef_adresi 80
komutunu kullanarak bir web sunucusunun 80 numaralı portuna bağlanabilir ve HTTP komutlarını manuel olarak yazabilirsiniz. Bu sayede istemci ile sunucu arasında gerçekleşen iletişimi doğrudan gözlemleme fırsatı elde edersiniz.
Bu yaklaşım, özellikle ağ protokollerinin nasıl çalıştığını anlamak ve güvenlik testleri sırasında servislerle düşük seviyede etkileşim kurmak açısından faydalıdır. Telnet burada uzaktan erişim aracı olarak değil, basit bir TCP istemcisi gibi davranır.
Aşağıda anlatılan terminal çıktısı yalnızca örnek amaçlıdır ve farklı bir ortamdan alınmıştır. Bu odaya bağlı hedef sanal makinede (VM) Telnet portu açık olmadığı için bu bağlantıyı birebir tekrar edemezsiniz. Ancak örnek, kimlik doğrulama (authentication) sürecini açık bir şekilde göstermektedir.
İşleyiş şu şekildedir:
Buradaki:
Özellikle sonundaki $ işareti, kullanıcının root (yönetici) yetkilerine sahip olmadığını gösterir. Eğer kullanıcı root olarak oturum açmış olsaydı istem sonundaki karakter genellikle:
şeklinde olurdu.
Telnet, uzak sistemin terminaline hızlı bir şekilde erişim sağlasa da, tüm veriler düz metin (cleartext) olarak gönderildiği için uzaktan sistem yönetimi açısından güvenilir bir protokol değildir.
Aşağıdaki şekilde, Telnet tarafından oluşturulan ağ trafiği yakalanmıştır ve parolayı tespit etmek oldukça kolay olmuştur. Şekil, istemci ile uzak sistem arasında alışverişi yapılan ASCII verilerini göstermektedir. Kırmızı renkteki metinler istemcinin gönderdiği verileri, mavi renkteki metinler ise uzak sistemin geri gönderdiği yanıtları temsil etmektedir.
Kullanıcı adının terminalde görüntülenebilmesi için uzak sistem tarafından geri yansıtıldığına (echo edildiğine) dikkat edin. Ancak parola için aynı durum söz konusu değildir; parola karakterleri ekranda gösterilmez. Başka bir ifadeyle, birisi ekranı izliyor olsaydı parola karakterlerini göremezdi.
Fakat bu görsel koruma aslında anlamlı bir güvenlik sağlamaz. Çünkü parola her ne kadar ekranda görünmese de ağ üzerinden hâlâ şifrelenmemiş düz metin olarak iletilmektedir. Bu nedenle ağ trafiğini dinleyebilen herhangi bir kişi, parolayı kolaylıkla ele geçirebilir. Bu durum, Telnet'in en önemli güvenlik zafiyetlerinden biridir ve günümüzde yerini büyük ölçüde Secure Shell (SSH) gibi şifreli iletişim sağlayan protokollere bırakmasının temel nedenidir.
Bu riske neden olabilecek kişiler veya durumlar şunlardır:
Bu soruna karşı kullanılan güvenli alternatif Secure Shell (SSH - Secure Shell) protokolüdür. SSH, kimlik bilgileri de dâhil olmak üzere tüm iletişimi şifreler ve böylece verilerin üçüncü kişiler tarafından okunmasını engeller.
SSH, yirmi yılı aşkın süredir uzak sistemlere komut satırı üzerinden güvenli erişim sağlamak için kullanılan standart protokol konumundadır. Bu nedenle modern sistemlerde Telnet yerine neredeyse her zaman SSH tercih edilir.
Hypertext Transfer Protocol(HTTP)
Hypertext Transfer Protocol (HTTP), web sayfalarının aktarılmasını sağlayan protokoldür. Web tarayıcınız (browser), bir web sunucusuna bağlanır ve HTTP kullanarak HTML sayfaları, görseller ve diğer dosyaları talep eder. Ayrıca formları gönderir ve çeşitli dosyaları yükler.
Kısacası, World Wide Web (WWW) üzerinde gezindiğiniz her an HTTP protokolünü kullanıyorsunuzdur.
Aşağıdaki senaryoda HTTP'nin temel çalışma mantığı gösterilmektedir:
Sunucu da buna benzer bir yanıt döndürür:
Buradaki:
Günümüzde web sitelerinin büyük çoğunluğu, HTTP'nin TLS şifrelemesi ile korunmuş sürümü olan HTTPS (HTTP Secure) kullanmaktadır. Modern web tarayıcıları, yalnızca HTTP kullanan siteleri genellikle “Güvenli Değil” (Not Secure) olarak işaretler. Hatta konum bilgisi (geolocation) veya kamera erişimi gibi bazı özellikler, HTTPS kullanmayan sitelerde tamamen engellenebilir.
Bununla birlikte, HTTP'nin nasıl çalıştığını anlamak hâlâ büyük önem taşımaktadır. Bunun birkaç nedeni vardır:
HTTP İsteklerini Manuel Olarak Gönderme
HTTP, şifrelenmemiş (cleartext) bir protokol olduğu için, Telnet veya Netcat gibi basit araçları kullanarak bir web sunucusu ile iletişim kurabilir ve kendinizi bir “web tarayıcısı” gibi davranacak şekilde konumlandırabilirsiniz. Buradaki temel fark, web tarayıcısının sizin yerinize otomatik olarak yaptığı HTTP komutlarını sizin manuel olarak girmeniz gerekmesidir.
Aşağıdaki örnekte, bir web sunucusundan bir sayfa nasıl istenir ve web sunucusunun sürümü nasıl öğrenilir gösterilmektedir. Telnet istemcisi kullanılmaktadır çünkü Telnet, iletişimde düz metin (cleartext) kullanan basit bir protokoldür. Adımlar şu şekildedir:
Kullanıcıdan gelen temel giriş iki satırdır: GET /index.html HTTP/1.1 ve ardından host: telnet.
Bu tür bilgiler keşif (reconnaissance) aşamasında oldukça değerlidir çünkü:
Popüler HTTP sunucu seçenekleri şunlardır:
Nginx
Nginx, internet üzerindeki en yaygın kullanılan web sunucusu haline gelmiştir. Yüksek performansı ve çok sayıda eşzamanlı bağlantıyı verimli şekilde yönetebilmesiyle bilinir. Ücretsiz ve açık kaynaklıdır.
Apache HTTP Server
Apache, hâlâ son derece popülerdir ve birçok web sitesine güç sağlar. Modüler yapısı sayesinde oldukça esnek bir şekilde yapılandırılabilir. Ücretsiz ve açık kaynaklıdır.
Internet Information Services (IIS)
Microsoft’un web sunucusudur ve genellikle Windows tabanlı kurumsal ortamlarda kullanılır. Kullanımı için Windows Server lisansı gerektirir.
Diğer dikkat çeken web sunucuları arasında LiteSpeed, otomatik HTTPS desteği ile gelen Caddy ve JavaScript tabanlı uygulamalar için kullanılan Node.js bulunmaktadır.
Öğrenme ve manuel test amaçları için HTTP/1.1 hâlâ en erişilebilir sürümdür, çünkü insan tarafından okunabilir (human-readable) metin formatına sahiptir
Dosya Transfer Protokolü(File Transfer Protocol[FTP])
File Transfer Protocol (FTP), farklı sistemlere sahip bilgisayarlar arasında dosya aktarımını verimli hale getirmek için geliştirilmiştir. İnternet için tasarlanan en erken protokollerden biridir ve günümüzde hâlâ kullanılmaktadır; ancak çoğu kullanım alanında yerini büyük ölçüde daha güvenli alternatiflere bırakmıştır.
SFTP (SSH File Transfer Protocol)
SSH üzerinden çalışır ve tüm trafiği şifreler. 22 numaralı portu kullanır. FTP’nin en yaygın modern alternatifidir.
FTPS (FTP Secure)
FTP protokolüne TLS şifrelemesi ekler. 990 numaralı port üzerinde (implicit TLS) çalışabilir veya 21 numaralı portta STARTTLS kullanabilir.
SCP (Secure Copy Protocol)
Yine SSH üzerinden çalışır, ancak SFTP lehine giderek kullanım dışı bırakılmaktadır (deprecated).
Buna rağmen düz FTP ile hâlâ karşılaşılabilir:
Aşağıdaki örnekte şu adımlar gerçekleştirilmiştir:
FTP’nin iki farklı çalışma modu olduğunu bilmek önemlidir:
TYPE A komutu dosya transfer modunu ASCII’ye geçirir, TYPE I komutu ise ikili (binary) moda geçirir. Ancak Telnet gibi basit bir istemci kullanılarak dosya transferi tamamlanamaz; çünkü FTP, veri aktarımı için ayrı bir bağlantı oluşturur.
STAT çıktısında sunucunun açıkça “Control connection is plain text” ve “Data connections will be plain text” ifadelerini belirttiğine dikkat edin. Bu, kimlik bilgileri de dahil olmak üzere her şeyin şifreleme olmadan iletildiğini doğrular
Tüm komutlar kontrol kanalı (control channel) üzerinden gönderilir. İstemci bir dosya talep ettiğinde, veri aktarımı için istemci ile sunucu arasında ikinci bir TCP bağlantısı daha kurulur.
Bu çift bağlantı (dual-connection) mimarisi, FTP’nin güvenlik duvarları (firewall) ile çalışmasını zorlaştıran nedenlerden biridir.
Aşağıdaki örnekte:
Anonim FTP, geçmişte özellikle yazılım indirme ve dokümantasyon gibi genel dosya dağıtımı amacıyla yaygın olarak kullanılmıştır.
Sızma testi (penetration testing) sırasında bir FTP sunucusu tespit edildiğinde, her zaman anonim giriş denemesi yapmak önemlidir:
Anonim FTP sunucuları, yanlışlıkla açığa çıkarılmış hassas dosyalar, yapılandırma yedekleri veya eğer yazma (write) izni etkinse kötü amaçlı dosyaların yüklenmesine imkân tanıyabilecek bir yapı içerebilir.
vsftpd (Very Secure FTP Daemon)
Linux sistemlerinde en yaygın FTP sunucularından biridir.
ProFTPD
Oldukça esnek ve modüler bir yapı sunar, yüksek düzeyde özelleştirilebilir.
Pure-FTPd
Güvenlik ve basitliğe odaklanan bir FTP sunucusudur.
Windows tarafında ise Internet Information Services (IIS) FTP sunucu özelliklerini de içerir.
FTP istemcileri için ise Linux sistemlerinde bulunan komut satırı (console) FTP istemcisinin yanı sıra, grafik arayüzlü (GUI) bir istemci olan FileZilla kullanılabilir.
Son yıllarda büyük web tarayıcıları FTP desteğini kaldırmıştır; bu nedenle artık tarayıcı üzerinden FTP erişimi mümkün değildir.
Basit Posta Aktarım Protokolü(SMTP)-Simple Mail Transfer Protocol(SMTP)
E-posta, İnternet üzerindeki en yaygın kullanılan hizmetlerden biridir. E-posta sunucuları için çeşitli yapılandırmalar bulunmaktadır; örneğin, yalnızca yerel kullanıcıların birbirleriyle e-posta alışverişi yapmasına izin veren ve İnternet erişimi olmayan bir e-posta sistemi kurulabilir.
Ancak bu konu, farklı e-posta sunucularının İnternet üzerinden birbirleriyle iletişim kurduğu daha genel yapılandırmayı ele almaktadır.
Mail User Agent (MUA):
E-posta istemcisidir (örneğin Thunderbird, Outlook veya web tabanlı e-posta arayüzleri).
Mail Submission Agent (MSA):
MUA’dan gelen e-postayı alır, hataları kontrol eder ve iletim için yönlendirir.
Mail Transfer Agent (MTA):
E-postayı sunucular arasında yönlendirir ve teslim eder.
Mail Delivery Agent (MDA):
E-postayı alıcının posta kutusuna yerleştirir ve daha sonra erişilmek üzere saklar.
Aşağıdaki şekil, bir e-postanın alıcının gelen kutusuna ulaşmak için geçmesi gereken beş adımı göstermektedir:
Port 25, sunucular arası iletişim (MTA’dan MTA’ya) için kullanılan geleneksel SMTP portudur. İnternet servis sağlayıcıları (ISP’ler) tarafından ev kullanıcılarında spam’i önlemek amacıyla sıklıkla engellenir. Bu portta şifreleme isteğe bağlıdır ve STARTTLS ile müzakere edilir.
Port 587, e-posta istemcilerinin (MUA), mesajlarını e-posta sunucusuna (MSA) göndermesi için kullanılan gönderim (submission) portudur. E-posta göndermek için önerilen porttur ve genellikle kimlik doğrulama gerektirir. TLS şifrelemesi STARTTLS komutu ile başlatılır.
Port 465, başlangıçta SMTPS (implicit TLS üzerinden SMTP) için tanımlanmış, daha sonra kullanım dışı bırakılmış, ancak yeniden aktif hale getirilmiştir. Bu portta TLS şifrelemesi bağlantı kurulduğu anda otomatik olarak başlar.
Bu gösterimde, protokol komutlarını düz metin (cleartext) olarak görebilmeniz için port 25 üzerinde şifrelenmemiş SMTP kullanılmaktadır.
Bağlantı kurulduktan sonra helo hostname (veya genişletilmiş SMTP için ehlo hostname) komutu verilir ve ardından e-posta yazma sürecine başlanır.
HELO komutundan sonra mail from: ve rcpt to: komutları, göndereni ve alıcıyı belirtir. E-posta mesajı hazır olduğunda data komutu mesaj gövdesini (body) başlatır. Mesaj, tek başına bir satırda yalnızca bir nokta (.) yazılıp Enter’a basılarak sonlandırılır. SMTP sunucusu daha sonra mesajı kuyruğa alır.
Bu SMTP komutlarını ezberlemenize gerek yoktur. Yukarıdaki konsol çıktısı, bir e-posta istemcisinin SMTP kullanırken arka planda nasıl çalıştığını göstermek amacıyla verilmiştir.
SMTP, güvenilir ağların varsayıldığı bir dönemde tasarlanmıştır ve gönderici kimliğini doğrulamak için yerleşik bir mekanizmaya sahip değildir. Bu nedenle, protokol düzeyinde göndericinin gerçekten iddia ettiği kişi olup olmadığını kontrol eden bir sistem bulunmaz.
Bu durum, oltalama (phishing) e-postalarının neden meşru adreslerden geliyormuş gibi görünebildiğini açıklar. Protokolün kendisi, bir saldırganın istediği herhangi bir kişi gibi görünmesini engellemez.
Post Office Protocol 3 (POP3)
Post Office Protocol version 3 (POP3), aşağıdaki şekilde gösterildiği gibi, e-posta mesajlarını bir Mail Delivery Agent (MDA) sunucusundan indirmek için kullanılan bir protokoldür. E-posta istemcisi POP3 sunucusuna bağlanır, kimlik doğrulaması yapar, yeni e-posta mesajlarını indirir ve ardından (isteğe bağlı olarak) bunları sunucudan siler.
STAT komutu kullanıldığında +OK 1 179 yanıtı döndürülür. RFC 1939’a göre, STAT komutuna verilen pozitif yanıt +OK nn mm formatındadır; burada nn, gelen kutusundaki e-posta mesajı sayısını, mm ise gelen kutusunun boyutunu (octet/byte cinsinden) ifade eder.
LIST komutu sunucudaki yeni mesajların listesini verir ve RETR 1 komutu listedeki ilk mesajı indirir.
Bu komutları ezberlemeniz gerekmez; ancak bu örnek, protokolü daha iyi anlamanızı sağlamaya yardımcı olur. Komutlar düz metin (cleartext) olarak gönderilir ve Telnet kullanarak kimlik doğrulaması yapmak ve bir e-posta mesajını almak yeterli olmuştur. Kullanıcı adı ve parola da düz metin olarak iletildiği için, ağ trafiğini izleyen üçüncü bir taraf giriş bilgilerini kolayca ele geçirebilir.
Genel olarak, e-posta istemciniz (MUA), POP3 sunucusuna (MDA) bağlanır, kimlik doğrulaması yapar ve mesajları indirir. POP3 protokolü kullanılarak yapılan iletişim grafiksel bir arayüzün arkasında gizli olsa da, yukarıdaki Telnet oturumunda görüldüğü gibi benzer komutlar arka planda çalıştırılır.
Eğer POP3 trafiği yakalanır ve USER ile PASS komutları görülürse, bu bilgiler başka sistemlerde de yeniden kullanılabilecek geçerli kimlik bilgileri elde edilmiş demektir.
İnternet Mesaj Erişin Protokolü(IMAP)-Internet Message Access Protocol(IMAP)
Internet Message Access Protocol (IMAP), POP3’ten daha gelişmiş bir protokoldür. IMAP, e-postaların birden fazla cihaz (ve e-posta istemcisi) arasında senkronize edilmesini mümkün kılar.
Örneğin, akıllı telefonunuzdan e-postalarınızı kontrol ederken bir mesajı “okundu” olarak işaretlerseniz, bu değişiklik IMAP sunucusunda (MDA) kaydedilir ve gelen kutunuzu dizüstü bilgisayarınızda senkronize ettiğinizde de aynı şekilde yansıtılır.
Bununla birlikte, kurum içi posta sunucularında veya eski (legacy) sistemlerde hâlâ şifrelenmemiş IMAP ile karşılaşabilirsiniz.
IMAP, gönderilen her komutun başına rastgele bir karakter dizisi (tag/etiket) eklenmesini gerektirir. Bu etiketler, sunucunun hangi yanıtın hangi komuta ait olduğunu takip edebilmesini sağlar. Bu nedenle örnekte c1, c2 ve benzeri etiketler kullanılmıştır.
Daha sonra, LIST "" "*" komutu ile e-posta klasörleri listelenir ve ardından EXAMINE INBOX komutu kullanılarak gelen kutusundaki yeni mesajlar kontrol edilir.
Bu komutları ezberlemeniz gerekmez; ancak yukarıdaki örnek, bir e-posta istemcisinin IMAP sunucusu ile iletişim kurarken arka planda neler gerçekleştiğini net bir şekilde göstermektedir.
Her IMAP komutunun önünde benzersiz bir etiket (tag) bulunmalıdır (örneğin c1, c2, c3).
Ancak perde arkasında e-posta depolama sistemi hâlâ IMAP mantığına dayanır ve birçok kullanıcı, webmail erişiminin yanında geleneksel e-posta istemcilerini de yapılandırarak kullanır.
IMAP’i anlamak hâlâ önemlidir çünkü:
Kimlik bilgilerinin açığa çıkmasının ötesinde, ele geçirilmiş bir IMAP hesabı saldırganlar için özellikle değerlidir çünkü:
Özet
Bu makale çeşitli protokoller, bunların kullanım amaçları ve arka planda nasıl çalıştıkları ele alındı. Saldırganların ilgisini çekebilecek başka birçok standart protokol de bulunmaktadır. Örneğin, Server Message Block (SMB) protokolü, ağlar arasında dosya ve yazıcı paylaşımı sağlar ve bu nedenle saldırganlar için cazip bir hedef olabilir. Amcak bu makalenin amacı yalnızca birkaç yaygın protokol hakkında sağlam bir temel anlayış kazandırmak ve bu protokollerin düşük seviyede nasıl çalıştığını göstermektir.
Telnet istemcisi, modern sistemlerde bir sunucu protokolü olarak kullanılmasa da, herhangi bir TCP portu üzerinde metin tabanlı protokollerle manuel olarak etkileşim kurmak için pratik bir test aracıdır. Bu teknik, bu makale boyunca HTTP, FTP, SMTP, POP3 ve IMAP protokollerinin düşük seviyede nasıl çalıştığını göstermek için kullanılmıştır. Her şifrelenmemiş protokol için güvenli bir alternatif bulunmaktadır. Modern sistemlerde, aktarım sırasında veriyi korumak için şifreli sürümler (HTTPS, SFTP, IMAPS, SSH) kullanılmalıdır.
Okuduğunuz için teşekkür ederim
Selamun aleyküm dostlarım. Bu makalemizde HTTP, FTP, POP3, SMTP, IMAP Bu protokoller; web'de gezinme, dosya transferi yapma ve e-posta gönderip alma işlemlerinin temelini oluşturur. Bu protokollerin düşük seviyede nasıl çalıştığını anlamak, ister sızma testi (penetration testing), ister ağ savunması (network defense), ister güvenlik mühendisliği (security engineering) alanında kariyer hedefleyin, siber güvenlik profesyonelleri için oldukça önemlidir. Bizde bugün bu protokollere göz atacağız Allah’ın izniyle
Telnet
Telnet protokolü, başka bir bilgisayarın sanal terminaline bağlanmak için kullanılan uygulama katmanı (application layer) protokollerinden biridir. Telnet kullanılarak bir kullanıcı uzak bir makineye giriş yapabilir ve onun terminaline (konsoluna) erişerek program çalıştırabilir, toplu işlemler (batch processes) başlatabilir ve sistem yönetimi görevlerini uzaktan gerçekleştirebilir.
Telnet protokolü oldukça basit bir yapıya sahiptir. Bir kullanıcı bağlantı kurduğunda kendisinden kullanıcı adı ve parola istenir. Kimlik doğrulama başarılı olduğunda kullanıcı, uzak sistemin terminaline erişim hakkı kazanır.
Ancak Telnet'in en büyük dezavantajı, istemci (client) ile sunucu (server) arasındaki tüm iletişimin şifrelenmemiş olmasıdır. Gönderilen kullanıcı adı, parola ve diğer veriler ağ üzerinden düz metin (cleartext) olarak iletilir. Bu nedenle ağ trafiğini dinleyebilen saldırganlar bu bilgileri kolayca ele geçirebilir. Bu güvenlik açığı nedeniyle Telnet günümüzde büyük ölçüde yerini, iletişimi şifreleyen Secure Shell (SSH) protokolüne bırakmıştır.
Günümüzde Telnet
Telnet, ağ teknolojilerinin ilk dönemlerinde uzaktan sistem yönetimi için yaygın olarak kullanılıyordu. Ancak günümüzde etkileşimli uzaktan erişim için büyük ölçüde Secure Shell (SSH - Secure Shell) tarafından değiştirilmiştir.Modern ve doğru şekilde yapılandırılmış sistemlerde Telnet'in etkin olduğunu görmeniz pek olası değildir. Buna rağmen aşağıdaki ortamlarda hâlâ Telnet ile karşılaşabilirsiniz:
- Eski (legacy) sistemler ve eski ağ ekipmanları (yönlendiriciler, anahtarlar/switch'ler, endüstriyel kontrol cihazları vb.)
- Kaynakları sınırlı olan gömülü sistemler ve IoT cihazları
- Güvenliğin hiçbir zaman önceliklendirilmediği kurum içi ağlar
- Telnet'in etkinleştirildiği ancak daha sonra devre dışı bırakılmasının unutulduğu hatalı yapılandırılmış sistemler
- Eski ve güncelliğini yitirmiş bir sistemin kullanıldığını,
- Ya da ciddi bir güvenlik yapılandırma hatasının bulunduğunu
Bunun nedeni, Telnet'in kullanıcı adları, parolalar ve diğer verileri ağ üzerinden şifrelenmemiş (cleartext) olarak iletmesidir. Bu nedenle ağ trafiğini dinleyebilen bir saldırgan, hassas bilgileri kolayca ele geçirebilir. Bu risk nedeniyle modern sistemlerde Telnet yerine SSH gibi şifreli iletişim sağlayan protokoller tercih edilmektedir.
Test Aracı Olarak Telnet İstemcisi
Günümüzde Telnet sunucularına nadiren rastlansa da, Telnet istemcisi (Telnet Client) herhangi bir TCP portuna bağlanmak ve metin tabanlı protokollerle manuel olarak etkileşim kurmak için hâlâ kullanışlı bir araçtır.
Kod:
telnet hedef_adresi 80
Test Aracı Olarak Telnet İstemcisi
Günümüzde Telnet sunucularına nadiren rastlansa da, Telnet istemcisi (Telnet Client) herhangi bir TCP portuna bağlanmak ve metin tabanlı protokollerle manuel olarak etkileşim kurmak için hâlâ kullanışlı bir araçtır.Örneğin:
telnet hedef_adresi 80
komutunu kullanarak bir web sunucusunun 80 numaralı portuna bağlanabilir ve HTTP komutlarını manuel olarak yazabilirsiniz. Bu sayede istemci ile sunucu arasında gerçekleşen iletişimi doğrudan gözlemleme fırsatı elde edersiniz.
Bu yaklaşım, özellikle ağ protokollerinin nasıl çalıştığını anlamak ve güvenlik testleri sırasında servislerle düşük seviyede etkileşim kurmak açısından faydalıdır. Telnet burada uzaktan erişim aracı olarak değil, basit bir TCP istemcisi gibi davranır.
Telnet Nasıl Çalışır?
Bir Telnet sunucusu, 23 numaralı port üzerinde gelen bağlantıları dinler ve Telnet protokolünü kullanarak istemcilerle iletişim kurar.Aşağıda anlatılan terminal çıktısı yalnızca örnek amaçlıdır ve farklı bir ortamdan alınmıştır. Bu odaya bağlı hedef sanal makinede (VM) Telnet portu açık olmadığı için bu bağlantıyı birebir tekrar edemezsiniz. Ancak örnek, kimlik doğrulama (authentication) sürecini açık bir şekilde göstermektedir.
İşleyiş şu şekildedir:
- Kullanıcıdan giriş adı (username) istenir. Bu örnekte kullanıcı Ali kullanıcı adını girer.
- Daha sonra kullanıcıdan parola (password) istenir. Örnekte parola D2xc9CgD olarak verilmiştir. Normal şartlarda parola ekranda görünmez; ancak eğitim amacıyla burada gösterilmiştir.
- Sistem, girilen kullanıcı adı ve parolayı doğrular. Bilgiler doğruysa kullanıcı bir karşılama mesajı ile karşılanır.
- Ardından uzak sunucu kullanıcıya bir komut satırı (shell) sağlar:
Kod:
Ali@saatci:~$
Buradaki:
- Ali → oturum açan kullanıcıyı,
- saatci → bağlanılan sistemi (hostname),
- ~ → kullanıcının ev dizinini (home directory),
- $ → normal kullanıcı yetkilerini
Özellikle sonundaki $ işareti, kullanıcının root (yönetici) yetkilerine sahip olmadığını gösterir. Eğer kullanıcı root olarak oturum açmış olsaydı istem sonundaki karakter genellikle:
Kod:
#
Güvenlik Açısından Önemli Nokta
Telnet'te kullanıcı adı ve parola da dahil olmak üzere tüm bilgiler ağ üzerinden şifrelenmeden gönderilir. Bu nedenle ağ trafiğini izleyebilen biri, yukarıdaki örnekteki Ali ve D2xc9CgD gibi giriş bilgilerini kolaylıkla ele geçirebilir. İşte bu nedenle Telnet, günümüzde büyük ölçüde Secure Shell (SSH) ile değiştirilmiştir. SSH aynı işlemleri yaparken tüm iletişimi şifreleyerek güvenliği sağlar.
Kod:
root@CW-ommah$ telnet 10.113.136.13
Trying 10.113.136.13...
Connected to 10.113.136.13.
Escape character is '^]'.
Ubuntu 20.04.3 LTS
bento login: Ali
Password: D2xc9CgD
Welcome to Ubuntu 20.04.3 LTS (GNU/Linux 5.4.0-84-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
System information as of Fri 01 Oct 2021 12:24:56 PM UTC
System load: 0.05 Processes: 243
Usage of /: 45.7% of 6.53GB Users logged in: 1
Memory usage: 15% IPv4 address for ens33: 10.113.136.13
Swap usage: 0%
* Super-optimized for small spaces - read how we shrank the memory
footprint of MicroK8s to make it the smallest full K8s around.
https://ubuntu.com/blog/microk8s-memory-optimisation
0 updates can be applied immediately.
*** System restart required ***
Last login: Fri Oct 1 12:17:25 UTC 2021 from meiyo on pts/3
You have mail.
Ali@saatci:~$
Aşağıdaki şekilde, Telnet tarafından oluşturulan ağ trafiği yakalanmıştır ve parolayı tespit etmek oldukça kolay olmuştur. Şekil, istemci ile uzak sistem arasında alışverişi yapılan ASCII verilerini göstermektedir. Kırmızı renkteki metinler istemcinin gönderdiği verileri, mavi renkteki metinler ise uzak sistemin geri gönderdiği yanıtları temsil etmektedir.
Kullanıcı adının terminalde görüntülenebilmesi için uzak sistem tarafından geri yansıtıldığına (echo edildiğine) dikkat edin. Ancak parola için aynı durum söz konusu değildir; parola karakterleri ekranda gösterilmez. Başka bir ifadeyle, birisi ekranı izliyor olsaydı parola karakterlerini göremezdi.
Fakat bu görsel koruma aslında anlamlı bir güvenlik sağlamaz. Çünkü parola her ne kadar ekranda görünmese de ağ üzerinden hâlâ şifrelenmemiş düz metin olarak iletilmektedir. Bu nedenle ağ trafiğini dinleyebilen herhangi bir kişi, parolayı kolaylıkla ele geçirebilir. Bu durum, Telnet'in en önemli güvenlik zafiyetlerinden biridir ve günümüzde yerini büyük ölçüde Secure Shell (SSH) gibi şifreli iletişim sağlayan protokollere bırakmasının temel nedenidir.
Telnet Neden Güvensizdir?
Telnet artık güvenli bir seçenek olarak kabul edilmemektedir. Ağ trafiğinizi ele geçirebilen veya izleyebilen herhangi bir kişi, kullanıcı adlarınızı ve parolalarınızı görebilir. Bu bilgiler saldırganların uzak sisteme erişim sağlamasına olanak tanıyabilir.Bu riske neden olabilecek kişiler veya durumlar şunlardır:
- Aynı ağ segmentinde bulunan saldırganlar
- Veri iletim yolu üzerindeki bir yönlendirici (router) veya anahtarı (switch) ele geçirmiş kişiler
- Ağ erişimine sahip kötü niyetli kurum içi çalışanlar (insider threats)
- Başarılı bir Ortadaki Adam (Man-in-the-Middle / MitM) saldırısı gerçekleştiren saldırganlar
Bu soruna karşı kullanılan güvenli alternatif Secure Shell (SSH - Secure Shell) protokolüdür. SSH, kimlik bilgileri de dâhil olmak üzere tüm iletişimi şifreler ve böylece verilerin üçüncü kişiler tarafından okunmasını engeller.
SSH, yirmi yılı aşkın süredir uzak sistemlere komut satırı üzerinden güvenli erişim sağlamak için kullanılan standart protokol konumundadır. Bu nedenle modern sistemlerde Telnet yerine neredeyse her zaman SSH tercih edilir.
Hypertext Transfer Protocol(HTTP)
Hypertext Transfer Protocol (HTTP), web sayfalarının aktarılmasını sağlayan protokoldür. Web tarayıcınız (browser), bir web sunucusuna bağlanır ve HTTP kullanarak HTML sayfaları, görseller ve diğer dosyaları talep eder. Ayrıca formları gönderir ve çeşitli dosyaları yükler.
Kısacası, World Wide Web (WWW) üzerinde gezindiğiniz her an HTTP protokolünü kullanıyorsunuzdur.
Aşağıdaki senaryoda HTTP'nin temel çalışma mantığı gösterilmektedir:
- İstemci (client), web sunucusundan index.html adlı HTML sayfasını talep eder.
- Web sunucusu, istenen index.html dosyasını istemciye gönderir.
- Tarayıcı, HTML dosyasını okurken sayfa içerisinde bulunan diğer kaynakları fark eder.
- Daha sonra istemci, logo.jpg adlı görsel dosyayı talep eder.
- Web sunucusu da bu görseli istemciye gönderir.
- Bir HTML dosyası
- Birden fazla CSS dosyası
- JavaScript dosyaları
- Görseller
- Videolar
- Yazı tipleri (fonts)
Örnek HTTP İsteği
Bir tarayıcı ana sayfayı isterken aşağıdakine benzer bir istek gönderir:
Kod:
GET /index.html HTTP/1.1
Host: example.com
Kod:
HTTP/1.1 200 OK
Content-Type: text/html
<html>
...
</html>
- GET → Bir kaynağı istemek için kullanılan HTTP metodudur.
- /index.html → Talep edilen dosyadır.
- 200 OK → İsteğin başarılı olduğunu belirten HTTP durum kodudur.
- Content-Type → Gönderilen içeriğin türünü belirtir.
Güvenlik Notu
HTTP'nin kendisi verileri şifrelemez. Bu nedenle kullanıcı adları, parolalar veya diğer hassas bilgiler düz metin olarak iletilebilir. Günümüzde web sitelerinin büyük çoğunluğu, HTTP'nin TLS ile şifrelenmiş sürümü olan HTTPS kullanmaktadır. HTTPS sayesinde istemci ile sunucu arasındaki iletişim güvenli hâle gelir ve ağ trafiğini dinleyen kişiler içerikleri okuyamaz.HTTP ve HTTPS
HTTP, verileri düz metin (cleartext) olarak gönderir ve alır; yani veriler şifrelenmez. Bu da ağ trafiğine erişebilen herhangi bir kişinin, aktarılan içeriği okuyabilmesi anlamına gelir. Bu içerikler arasında oturum açma bilgileri (kullanıcı adı ve parola) ile kişisel veriler gibi hassas bilgiler de bulunabilir.Günümüzde web sitelerinin büyük çoğunluğu, HTTP'nin TLS şifrelemesi ile korunmuş sürümü olan HTTPS (HTTP Secure) kullanmaktadır. Modern web tarayıcıları, yalnızca HTTP kullanan siteleri genellikle “Güvenli Değil” (Not Secure) olarak işaretler. Hatta konum bilgisi (geolocation) veya kamera erişimi gibi bazı özellikler, HTTPS kullanmayan sitelerde tamamen engellenebilir.
Bununla birlikte, HTTP'nin nasıl çalıştığını anlamak hâlâ büyük önem taşımaktadır. Bunun birkaç nedeni vardır:
- HTTP veya HTTPS kullanılsa da, HTTP komutları ve protokol yapısı aynıdır.
- Kurum içi sızma testlerinde (internal penetration tests) ve eski sistemlerde HTTP ile karşılaşabilirsiniz.
- Protokolü anlamak, web uygulamalarındaki güvenlik açıklarını tespit etmenize ve analiz etmenize yardımcı olur.
- Burp Suite gibi araçlar, HTTPS trafiğini analiz edebilmek için şifreyi çözer ve size ham (raw) HTTP trafiğini gösterir.
HTTP İsteklerini Manuel Olarak Gönderme
HTTP, şifrelenmemiş (cleartext) bir protokol olduğu için, Telnet veya Netcat gibi basit araçları kullanarak bir web sunucusu ile iletişim kurabilir ve kendinizi bir “web tarayıcısı” gibi davranacak şekilde konumlandırabilirsiniz. Buradaki temel fark, web tarayıcısının sizin yerinize otomatik olarak yaptığı HTTP komutlarını sizin manuel olarak girmeniz gerekmesidir.
Aşağıdaki örnekte, bir web sunucusundan bir sayfa nasıl istenir ve web sunucusunun sürümü nasıl öğrenilir gösterilmektedir. Telnet istemcisi kullanılmaktadır çünkü Telnet, iletişimde düz metin (cleartext) kullanan basit bir protokoldür. Adımlar şu şekildedir:
- Port 80’e telnet ile bağlanın:
telnet 10.113.136.13 80 - Sayfayı almak için GET isteği gönderin:
GET /index.html HTTP/1.1
veya varsayılan sayfayı almak için:
GET / HTTP/1.1 - Host başlığı (header) için bir değer girin:
Örneğin: host: telnet
ve ardından Enter/Return tuşuna iki kez basın.
Kod:
root@CW-ommah# telnet 10.113.136.13 80
Trying 10.113.136.13...
Connected to 10.113.136.13.
Escape character is '^]'.
GET /index.html HTTP/1.1
host: telnet
HTTP/1.1 200 OK
Server: nginx/1.18.0 (Ubuntu)
Date: Wed, 15 Sep 2021 08:56:20 GMT
Content-Type: text/html
Content-Length: 234
Last-Modified: Wed, 15 Sep 2021 08:53:59 GMT
Connection: keep-alive
ETag: "6141b4a7-ea"
Accept-Ranges: bytes
<!DOCTYPE html>
<html lang="en">
<head>
<title>Welcome to my Web Server</title>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width,initial-scale=1" />
</head>
<body>
<h1>Coming Soon</h1>
</body>
</html>
HTTP Başlıklarında Açığa Çıkan Bilgiler
Yukarıdaki örnekte yanıt başlıklarına (response headers) dikkat edin. Server: nginx/1.18.0 (Ubuntu) başlığı, hem web sunucu yazılımını ve sürümünü hem de işletim sistemini ortaya çıkarır.Bu tür bilgiler keşif (reconnaissance) aşamasında oldukça değerlidir çünkü:
- Belirli sürümlerin bilinen güvenlik açıkları olabilir ve bunlar araştırılabilir.
- İşletim sistemi bilgisi, sonraki saldırıların daha doğru şekilde hedeflenmesine yardımcı olur.
- Web sunucusu yazılımını bilmek, potansiyel saldırı vektörlerini (attack vectors) daraltır.
Web Sunucuları ve İstemciler
HTTP protokolünü kullanmak için bir HTTP sunucusu (web server) ve bir HTTP istemcisi (web browser) gereklidir. Web sunucusu, kendisine istek gönderen web tarayıcısına belirli bir dosya kümesini “hizmet olarak sunar”.Popüler HTTP sunucu seçenekleri şunlardır:
Nginx
Nginx, internet üzerindeki en yaygın kullanılan web sunucusu haline gelmiştir. Yüksek performansı ve çok sayıda eşzamanlı bağlantıyı verimli şekilde yönetebilmesiyle bilinir. Ücretsiz ve açık kaynaklıdır.
Apache HTTP Server
Apache, hâlâ son derece popülerdir ve birçok web sitesine güç sağlar. Modüler yapısı sayesinde oldukça esnek bir şekilde yapılandırılabilir. Ücretsiz ve açık kaynaklıdır.
Internet Information Services (IIS)
Microsoft’un web sunucusudur ve genellikle Windows tabanlı kurumsal ortamlarda kullanılır. Kullanımı için Windows Server lisansı gerektirir.
Diğer dikkat çeken web sunucuları arasında LiteSpeed, otomatik HTTPS desteği ile gelen Caddy ve JavaScript tabanlı uygulamalar için kullanılan Node.js bulunmaktadır.
En Popüler Web Tarayıcıları
Günümüzde en yaygın kullanılan web tarayıcıları şunlardır:- Google Chrome → Google tarafından geliştirilmiştir, pazar payı en yüksek tarayıcıdır.
- Safari → Apple tarafından geliştirilmiştir, macOS ve iOS cihazlarında varsayılan tarayıcıdır.
- Microsoft Edge → Chromium tabanlıdır ve Internet Explorer’ın yerini almıştır.
- Mozilla Firefox → Açık kaynaklıdır ve gizlilik odaklı yapısıyla bilinir.
HTTP Protokol Sürümleri
Yukarıdaki örnek HTTP/1.1 kullanmaktadır. HTTP/1.1, onlarca yıldır web’in temel çalışma protokolü olmuştur. Ancak daha yeni sürümler de bulunmaktadır.HTTP/2
HTTP/2; çoklama (multiplexing) özelliğini getirerek tek bir bağlantı üzerinden birden fazla isteğin gönderilmesini mümkün kılmıştır. Ayrıca başlık sıkıştırma (header compression) ve sunucu itmesi (server push) gibi özellikler de sunar. Metin tabanlı değil, ikili (binary) bir yapıya sahiptir. Bu nedenle Telnet gibi araçlarla manuel olarak etkileşim kurmak daha zordur.HTTP/3
HTTP/3, TCP yerine QUIC (UDP tabanlı) kullanır ve özellikle güvenilir olmayan ağlarda daha iyi performans sağlar. Günümüzde büyük web sitelerinde giderek daha yaygın hale gelmektedir.Öğrenme ve manuel test amaçları için HTTP/1.1 hâlâ en erişilebilir sürümdür, çünkü insan tarafından okunabilir (human-readable) metin formatına sahiptir
Dosya Transfer Protokolü(File Transfer Protocol[FTP])
File Transfer Protocol (FTP), farklı sistemlere sahip bilgisayarlar arasında dosya aktarımını verimli hale getirmek için geliştirilmiştir. İnternet için tasarlanan en erken protokollerden biridir ve günümüzde hâlâ kullanılmaktadır; ancak çoğu kullanım alanında yerini büyük ölçüde daha güvenli alternatiflere bırakmıştır.
Modern FTP
FTP, kimlik bilgilerini ve verileri düz metin (cleartext) olarak gönderdiği için hassas bilgilerin aktarımı açısından güvenli değildir. Bu nedenle FTP, çoğu ortamda aşağıdaki daha güvenli alternatiflerle değiştirilmiştir:SFTP (SSH File Transfer Protocol)
SSH üzerinden çalışır ve tüm trafiği şifreler. 22 numaralı portu kullanır. FTP’nin en yaygın modern alternatifidir.
FTPS (FTP Secure)
FTP protokolüne TLS şifrelemesi ekler. 990 numaralı port üzerinde (implicit TLS) çalışabilir veya 21 numaralı portta STARTTLS kullanabilir.
SCP (Secure Copy Protocol)
Yine SSH üzerinden çalışır, ancak SFTP lehine giderek kullanım dışı bırakılmaktadır (deprecated).
Buna rağmen düz FTP ile hâlâ karşılaşılabilir:
- Güncellenmemiş eski (legacy) sistemler ve eski uygulamalar
- Genel dosya dağıtımı için kullanılan anonim FTP sunucuları
- Şifrelemenin hiç uygulanmadığı kurum içi ağlar
- Sınırlı kapasiteye sahip gömülü cihazlar ve ağ ekipmanları
- Güvenli alternatiflerin yapılandırılmadığı hatalı sunucular
FTP ile Manuel Etkileşim
FTP, verileri ve komutları düz metin (cleartext) olarak gönderip aldığı için, Telnet (veya Netcat) kullanarak bir FTP sunucusu ile iletişim kurabilir ve kendinizi bir FTP istemcisi gibi konumlandırabilirsiniz.Aşağıdaki örnekte şu adımlar gerçekleştirilmiştir:
- Bir FTP sunucusuna Telnet istemcisi kullanılarak bağlantı kurulmuştur. FTP sunucuları varsayılan olarak 21 numaralı portu dinlediği için, Telnet istemcisi varsayılan Telnet portu yerine 21 numaralı porta yönlendirilmiştir.
- Kullanıcı adı USER Ali komutu ile gönderilmiştir.
- Parola PASS D2xc9CgD komutu ile gönderilmiştir.
- Doğru kullanıcı adı ve parola sağlandığı için oturum açma işlemi başarılı olmuştur.
FTP’nin iki farklı çalışma modu olduğunu bilmek önemlidir:
Active (Aktif) Mod
Aktif modda veri, FTP sunucusunun 20 numaralı portundan başlayan ayrı bir kanal üzerinden gönderilir. Sunucu, veri bağlantısını istemciye doğru başlatır. Bu yöntem genellikle istemci bir güvenlik duvarı (firewall) veya NAT arkasındaysa başarısız olur.Passive (Pasif) Mod
Pasif modda veri, FTP istemcisinin 1023’ün üzerindeki bir portundan başlayan ayrı bir kanal üzerinden gönderilir. Bu durumda her iki bağlantıyı da istemci başlatır. Bu yöntem güvenlik duvarlarıyla daha uyumludur ve modern FTP istemcilerinde varsayılan olarak kullanılır.TYPE A komutu dosya transfer modunu ASCII’ye geçirir, TYPE I komutu ise ikili (binary) moda geçirir. Ancak Telnet gibi basit bir istemci kullanılarak dosya transferi tamamlanamaz; çünkü FTP, veri aktarımı için ayrı bir bağlantı oluşturur.
Kod:
root@CW-ommah# telnet 10.113.136.13 21
Trying 10.113.136.13...
Connected to 10.113.136.13.
Escape character is '^]'.
220 (vsFTPd 3.0.3)
USER Ali
331 Please specify the password.
PASS D2xc9CgD
230 Login successful.
SYST
215 UNIX Type: L8
PASV
227 Entering Passive Mode (10,10,0,148,78,223).
TYPE A
200 Switching to ASCII mode.
STAT
211-FTP server status:
Connected to ::ffff:10.10.0.1
Logged in as Ali
TYPE: ASCII
No session bandwidth limit
Session timeout in seconds is 300
Control connection is plain text
Data connections will be plain text
At session startup, client count was 1
vsFTPd 3.0.3 - secure, fast, stable
211 End of status
QUIT
221 Goodbye.
Connection closed by foreign host.
FTP Dosya Aktarımı Nasıl Çalışır?
Aşağıdaki görsel, FTP kullanılarak gerçek bir dosya aktarımının nasıl gerçekleştirildiğini göstermektedir. FTP istemcisi, varsayılan olarak 21 numaralı portu dinleyen FTP sunucusuna bir bağlantı başlatır.Tüm komutlar kontrol kanalı (control channel) üzerinden gönderilir. İstemci bir dosya talep ettiğinde, veri aktarımı için istemci ile sunucu arasında ikinci bir TCP bağlantısı daha kurulur.
Bu çift bağlantı (dual-connection) mimarisi, FTP’nin güvenlik duvarları (firewall) ile çalışmasını zorlaştıran nedenlerden biridir.
FTP İstemcisi Kullanımı
Çift bağlantı (dual-connection) mimarisi nedeniyle dosya indirebilmek için gerçek bir FTP istemcisine ihtiyaç vardır. Başarılı bir şekilde giriş yaptıktan sonra, çeşitli FTP komutlarını çalıştırmak için ftp> istemi (prompt) karşınıza çıkar.Aşağıdaki örnekte:
- ls komutu dosyaları listeler
- Hedef bir metin dosyası (binary olmayan) olduğu için ascii komutu ASCII moduna geçiş yapar
- get FILENAME komutu, ayrı bir veri kanalı oluşturarak dosya aktarımını başlatır
Kod:
root@CW-ommah# ftp 10.113.136.13
Connected to 10.113.136.13.
220 (vsFTPd 3.0.3)
Name: Ali
331 Please specify the password.
Password: D2xc9CgD
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (10,20,30,148,201,180).
150 Here comes the directory listing.
-rw-rw-r-- 1 1001 1001 4006 Sep 15 10:27 README.txt
226 Directory send OK.
ftp> ascii
200 Switching to ASCII mode.
ftp> get README.txt
local: README.txt remote: README.txt
227 Entering Passive Mode (10,10,0,148,125,55).
150 Opening BINARY mode data connection for README.txt (4006 bytes).
WARNING! 9 bare linefeeds received in ASCII mode
File may not have transferred correctly.
226 Transfer complete.
4006 bytes received in 0.000269 secs (14892.19 Kbytes/sec)
ftp> exit
221 Goodbye.
Anonim FTP
Bazı FTP sunucuları anonim girişe (anonymous login) izin verir. Bu tür sistemlerde genellikle kullanıcı adı olarak anonymous veya ftp kullanılır ve parola olarak herhangi bir e-posta adresi girilebilir (ya da bazı durumlarda hiç parola gerekmeyebilir).Anonim FTP, geçmişte özellikle yazılım indirme ve dokümantasyon gibi genel dosya dağıtımı amacıyla yaygın olarak kullanılmıştır.
Sızma testi (penetration testing) sırasında bir FTP sunucusu tespit edildiğinde, her zaman anonim giriş denemesi yapmak önemlidir:
Kod:
ftp> USER anonymous
331 Please specify the password.
ftp> PASS [email protected]
230 Login successful.
FTP Sunucuları ve İstemcileri
Kullanılabilecek çeşitli FTP sunucu yazılımları bulunmaktadır:vsftpd (Very Secure FTP Daemon)
Linux sistemlerinde en yaygın FTP sunucularından biridir.
ProFTPD
Oldukça esnek ve modüler bir yapı sunar, yüksek düzeyde özelleştirilebilir.
Pure-FTPd
Güvenlik ve basitliğe odaklanan bir FTP sunucusudur.
Windows tarafında ise Internet Information Services (IIS) FTP sunucu özelliklerini de içerir.
FTP istemcileri için ise Linux sistemlerinde bulunan komut satırı (console) FTP istemcisinin yanı sıra, grafik arayüzlü (GUI) bir istemci olan FileZilla kullanılabilir.
Son yıllarda büyük web tarayıcıları FTP desteğini kaldırmıştır; bu nedenle artık tarayıcı üzerinden FTP erişimi mümkün değildir.
Güvenlik Etkileri
FTP, giriş bilgilerini (login credentials), komutları ve dosyaları şifrelenmemiş (cleartext) olarak gönderdiği için FTP trafiği saldırganlar açısından kolay bir hedef haline gelir. Ağ trafiğini yakalayabilen herhangi biri şu bilgilere erişebilir:- Kullanıcı adları ve parolalar
- Aktarılan dosyaların içeriği
- Sunucu yapısını ortaya çıkaran dizin listeleri (directory listings)
- Kullanıcıların hangi işlemleri yaptığını gösteren komutlar
Basit Posta Aktarım Protokolü(SMTP)-Simple Mail Transfer Protocol(SMTP)
E-posta, İnternet üzerindeki en yaygın kullanılan hizmetlerden biridir. E-posta sunucuları için çeşitli yapılandırmalar bulunmaktadır; örneğin, yalnızca yerel kullanıcıların birbirleriyle e-posta alışverişi yapmasına izin veren ve İnternet erişimi olmayan bir e-posta sistemi kurulabilir.
Ancak bu konu, farklı e-posta sunucularının İnternet üzerinden birbirleriyle iletişim kurduğu daha genel yapılandırmayı ele almaktadır.
E-posta Teslim Bileşenleri
İnternet üzerinden e-posta iletimi, aşağıdaki bileşenleri gerektirir:Mail User Agent (MUA):
E-posta istemcisidir (örneğin Thunderbird, Outlook veya web tabanlı e-posta arayüzleri).
Mail Submission Agent (MSA):
MUA’dan gelen e-postayı alır, hataları kontrol eder ve iletim için yönlendirir.
Mail Transfer Agent (MTA):
E-postayı sunucular arasında yönlendirir ve teslim eder.
Mail Delivery Agent (MDA):
E-postayı alıcının posta kutusuna yerleştirir ve daha sonra erişilmek üzere saklar.
Aşağıdaki şekil, bir e-postanın alıcının gelen kutusuna ulaşmak için geçmesi gereken beş adımı göstermektedir:
- MUA’nın gönderilmek üzere hazır bir e-posta mesajı vardır. Bu mesajı göndermek için MSA’ya bağlanır ve mesajı iletir.
- MSA mesajı alır, hataları kontrol eder ve genellikle aynı sunucuda bulunan MTA’ya aktarır.
- MTA, e-posta mesajını alıcının MTA’sına gönderir. MTA aynı zamanda MSA olarak da görev yapabilir.
- Tipik bir yapıda MTA sunucusu aynı zamanda MDA olarak da çalışır.
- Alıcı, e-postasını MDA’dan e-posta istemcisi (MUA) kullanarak alır.
- Siz (MUA) bir mektup göndermek istiyorsunuz.
- Postane görevlisi (MSA), mektubu kabul etmeden önce kontrol eder.
- Yerel postane (MTA), mektubun varış adresini kontrol eder ve doğru ülkeye yönlendirir.
- Postane (MTA), mektubu alıcının posta kutusuna (MDA) teslim eder.
- Alıcı (MUA), düzenli olarak posta kutusunu kontrol eder. Yeni mektubu fark eder ve alır.
E-posta Protokolleri
Bir HTTP sunucusu ile iletişim kurarken belirli bir protokolü takip ettiğiniz gibi, bir MTA ve MDA ile iletişim kurmak için de e-posta protokollerine ihtiyaç duyarsınız. Bu protokoller şunlardır:- Simple Mail Transfer Protocol (SMTP): E-posta göndermek için kullanılır
- Post Office Protocol version 3 (POP3) veya Internet Message Access Protocol (IMAP): E-posta almak için kullanılır
SMTP Portları ve Şifreleme
Simple Mail Transfer Protocol (SMTP), bir MTA sunucusu ile iletişim kurmak için kullanılır. Orijinal SMTP sürümü şifrelenmemiş (cleartext) çalışır; yani tüm komutlar şifreleme olmadan gönderilir. Ancak modern e-posta altyapıları, farklı güvenlik modellerine sahip birkaç farklı port kullanır:Port 25, sunucular arası iletişim (MTA’dan MTA’ya) için kullanılan geleneksel SMTP portudur. İnternet servis sağlayıcıları (ISP’ler) tarafından ev kullanıcılarında spam’i önlemek amacıyla sıklıkla engellenir. Bu portta şifreleme isteğe bağlıdır ve STARTTLS ile müzakere edilir.
Port 587, e-posta istemcilerinin (MUA), mesajlarını e-posta sunucusuna (MSA) göndermesi için kullanılan gönderim (submission) portudur. E-posta göndermek için önerilen porttur ve genellikle kimlik doğrulama gerektirir. TLS şifrelemesi STARTTLS komutu ile başlatılır.
Port 465, başlangıçta SMTPS (implicit TLS üzerinden SMTP) için tanımlanmış, daha sonra kullanım dışı bırakılmış, ancak yeniden aktif hale getirilmiştir. Bu portta TLS şifrelemesi bağlantı kurulduğu anda otomatik olarak başlar.
Bu gösterimde, protokol komutlarını düz metin (cleartext) olarak görebilmeniz için port 25 üzerinde şifrelenmemiş SMTP kullanılmaktadır.
Telnet ile Manuel E-posta Gönderme
SMTP şifrelenmemiş (cleartext) çalışabildiği için, basit bir Telnet istemcisi kullanarak bir SMTP sunucusuna bağlanabilir ve bir e-posta istemcisi (MUA) gibi davranarak mesaj gönderebilirsiniz.Bağlantı kurulduktan sonra helo hostname (veya genişletilmiş SMTP için ehlo hostname) komutu verilir ve ardından e-posta yazma sürecine başlanır.
Kod:
root@CW-ommah# telnet 10.113.136.13 25
Trying 10.113.136.13...
Connected to 10.113.136.13.
Escape character is '^]'.
220 bento.localdomain ESMTP Postfix (Ubuntu)
helo telnet
250 bento.localdomain
mail from:
250 2.1.0 Ok
rcpt to:
250 2.1.5 Ok
data
354 End data with .
subject: Sending email with Telnet
Hello Ali,
I am just writing to say hi!
.
250 2.0.0 Ok: queued as C3E7F45F06
quit
221 2.0.0 Bye
Connection closed by foreign host.
Bu SMTP komutlarını ezberlemenize gerek yoktur. Yukarıdaki konsol çıktısı, bir e-posta istemcisinin SMTP kullanırken arka planda nasıl çalıştığını göstermek amacıyla verilmiştir.
E-posta Sahteciliği (Email Spoofing) ve Neden Çalışır?
Yukarıdaki örnekte önemli bir noktaya dikkat edin: “from” (gönderen) adresi manuel olarak belirtilmiştir ve sunucu, gönderenin bu e-posta adresi üzerinde gerçekten yetkili olup olmadığını doğrulamadan bunu kabul etmiştir. E-posta sahteciliği (email spoofing) tam olarak bu şekilde çalışır.SMTP, güvenilir ağların varsayıldığı bir dönemde tasarlanmıştır ve gönderici kimliğini doğrulamak için yerleşik bir mekanizmaya sahip değildir. Bu nedenle, protokol düzeyinde göndericinin gerçekten iddia ettiği kişi olup olmadığını kontrol eden bir sistem bulunmaz.
Bu durum, oltalama (phishing) e-postalarının neden meşru adreslerden geliyormuş gibi görünebildiğini açıklar. Protokolün kendisi, bir saldırganın istediği herhangi bir kişi gibi görünmesini engellemez.
Güvenlik Etkileri
SMTP’yi anlamak, güvenlik uzmanları için önemlidir çünkü:- E-posta, oltalama (phishing) saldırılarında hâlâ birincil saldırı vektörüdür.
- Hatalı yapılandırılmış posta sunucuları, spam gönderimi için “open relay” olarak kullanılabilir.
- Şifrelenmemiş (cleartext) SMTP, e-posta içeriğini ve kimlik bilgilerini ağ dinleme (sniffing) yoluyla açığa çıkarabilir.
- SMTP bilgisi, olay müdahalesi (incident response) sırasında e-posta başlıklarının (email header) analizini anlamanıza yardımcı olur.
- Açık relay (open relay) yapılandırmalarının test edilmesi
- Güvenlik farkındalığını değerlendirmek için e-posta sahteciliği (email spoofing) denemeleri
- Şüpheli e-postaların kaynağını izlemek için e-posta başlıklarının analiz edilmesi
Post Office Protocol 3 (POP3)
Post Office Protocol version 3 (POP3), aşağıdaki şekilde gösterildiği gibi, e-posta mesajlarını bir Mail Delivery Agent (MDA) sunucusundan indirmek için kullanılan bir protokoldür. E-posta istemcisi POP3 sunucusuna bağlanır, kimlik doğrulaması yapar, yeni e-posta mesajlarını indirir ve ardından (isteğe bağlı olarak) bunları sunucudan siler.
POP3 Portları ve Şifreleme
Bu derste ele alınan diğer protokoller gibi POP3 de başlangıçta şifreleme olmadan (encryption olmadan) tasarlanmıştır:- Port 110, varsayılan POP3 portudur ve şifrelenmemiş (cleartext) iletişim kullanır. Bazı sunucular, bağlantının TLS’e yükseltilmesini (upgrade) STLS komutu ile destekler (SMTP’deki STARTTLS’e benzer şekilde).
- Port 995, POP3S (POP3 over implicit TLS) için kullanılır. Bu bağlantıda şifreleme baştan itibaren aktiftir.
POP3 ile Manuel Etkileşim
Aşağıdaki örnek, bir POP3 oturumunun Telnet istemcisi aracılığıyla nasıl göründüğünü göstermektedir. İlk olarak kullanıcı, POP3 sunucusuna varsayılan port olan 110 üzerinden bağlanır. E-posta mesajlarına erişebilmek için kimlik doğrulama gereklidir; kullanıcı USER Ali komutu ile kullanıcı adını ve PASS D2xc9CgD komutu ile parolasını girerek kimlik doğrulaması yapar.STAT komutu kullanıldığında +OK 1 179 yanıtı döndürülür. RFC 1939’a göre, STAT komutuna verilen pozitif yanıt +OK nn mm formatındadır; burada nn, gelen kutusundaki e-posta mesajı sayısını, mm ise gelen kutusunun boyutunu (octet/byte cinsinden) ifade eder.
LIST komutu sunucudaki yeni mesajların listesini verir ve RETR 1 komutu listedeki ilk mesajı indirir.
Kod:
root@CW-ommah# telnet 10.113.136.13 110
Trying 10.113.136.13...
Connected to 10.113.136.13.
Escape character is '^]'.
+OK 10.113.136.13 Mail Server POP3 Wed, 15 Sep 2021 11:05:34 +0300
USER Ali
+OK Ali
PASS D2xc9CgD
+OK 1 messages (179) octets
STAT
+OK 1 179
LIST
+OK 1 messages (179) octets
1 179
.
RETR 1
+OK
From: Mail Server
To: Ali
subject: Sending email with Telnet
Hello Ali,
I am just writing to say hi!
.
QUIT
+OK 10.113.136.13 closing connection
Connection closed by foreign host.
Genel olarak, e-posta istemciniz (MUA), POP3 sunucusuna (MDA) bağlanır, kimlik doğrulaması yapar ve mesajları indirir. POP3 protokolü kullanılarak yapılan iletişim grafiksel bir arayüzün arkasında gizli olsa da, yukarıdaki Telnet oturumunda görüldüğü gibi benzer komutlar arka planda çalıştırılır.
| Komut | Açıklama |
|---|---|
| USER username | Kullanıcıyı tanımlar |
| PASS password | Parola ile kimlik doğrulaması yapar |
| STAT | Mesaj sayısını ve toplam boyutu döndürür |
| LIST | Tüm mesajları boyutlarıyla birlikte listeler |
| RETR n | n numaralı mesajı alır |
| DELE n | n numaralı mesajı silinmek üzere işaretler |
| RSET | Silinmek üzere işaretlenmiş mesajları sıfırlar (işareti kaldırır) |
| QUIT | Oturumu sonlandırır ve işaretlenmiş mesajları siler |
POP3 Davranışı: İndir ve Sil
Varsayılan ayarlara göre, e-posta istemcisi mesajı indirdikten sonra siler. Bu “indir ve sil” modeli şu anlama gelir:- E-postalar sunucu üzerinde değil, yerel cihazınızda saklanır.
- E-posta indirildikten sonra yalnızca o belirli cihazdan erişilebilir olur.
- Cihazınız kaybolur veya zarar görürse, (yedekleme yoksa) e-postalar da kaybolur.
- E-posta sunucusundaki depolama kullanımı minimuma indirilir.
POP3 vs IMAP: Hangisi Ne Zaman Kullanılır?
POP3 hâlâ bazı özel senaryolarda kullanışlıdır:- İnternet bağlantısının sınırlı veya güvenilmez olduğu durumlarda e-postalara çevrimdışı erişim sağlamak istendiğinde
- Sunucu tarafındaki depolama alanını minimumda tutmak gerektiğinde
- E-postaya yalnızca tek bir cihazdan erişim yapılıyorsa
- E-postaları yerel olarak arşivlemek istendiğinde
Güvenlik Etkileri
Güvenlik açısından bakıldığında, bir sızma testi (penetration test) sırasında bir POP3 sunucusunun (özellikle 110 numaralı port üzerinde) tespit edilmesi çeşitli fırsatlar sunar. Şifrelenmemiş POP3 trafiği üzerinden gönderilen kimlik bilgileri, ağ dinleme (network sniffing) yoluyla yakalanabilir. POP3 kimlik doğrulamasına karşı parola saldırıları gerçekleştirilebilir ve bir posta kutusuna başarılı erişim, hassas bilgiler, diğer sistemlere ait kimlik bilgileri veya parola sıfırlama bağlantıları gibi kritik verilerin ortaya çıkmasına neden olabilir.Eğer POP3 trafiği yakalanır ve USER ile PASS komutları görülürse, bu bilgiler başka sistemlerde de yeniden kullanılabilecek geçerli kimlik bilgileri elde edilmiş demektir.
İnternet Mesaj Erişin Protokolü(IMAP)-Internet Message Access Protocol(IMAP)
Internet Message Access Protocol (IMAP), POP3’ten daha gelişmiş bir protokoldür. IMAP, e-postaların birden fazla cihaz (ve e-posta istemcisi) arasında senkronize edilmesini mümkün kılar.
Örneğin, akıllı telefonunuzdan e-postalarınızı kontrol ederken bir mesajı “okundu” olarak işaretlerseniz, bu değişiklik IMAP sunucusunda (MDA) kaydedilir ve gelen kutunuzu dizüstü bilgisayarınızda senkronize ettiğinizde de aynı şekilde yansıtılır.
IMAP Neden Standart Hâline Geldi?
IMAP, günümüzde e-postalara erişim şekli nedeniyle çoğu kullanıcı için büyük ölçüde POP3'ün yerini almıştır. İnsanlar e-postalarını telefonlarından, dizüstü bilgisayarlarından, tabletlerinden ve web tarayıcılarından kontrol etmekte; hatta gün boyunca bu cihazlar arasında sürekli geçiş yapmaktadır. IMAP'in sunucu taraflı depolama modeli bunu sorunsuz bir şekilde mümkün kılar:- E-postalar sunucuda kalır ve herhangi bir cihazdan erişilebilir.
- Okundu/okunmadı durumu, klasörler ve işaretler (flags) tüm istemciler arasında senkronize edilir.
- Bir cihazda silinen e-posta her yerde silinir.
- Tüm mesajları indirmeden, arama işlemleri sunucu tarafında gerçekleştirilebilir.
IMAP Portları ve Şifreleme
Diğer e-posta protokolleri gibi IMAP de başlangıçta şifreleme olmadan tasarlanmıştır:- Port 143, varsayılan IMAP portudur ve şifrelenmemiş (cleartext) iletişim kullanır. Birçok sunucu, bağlantının STARTTLS komutu kullanılarak TLS ile güvenli hale getirilmesini destekler.
- Port 993, IMAPS (IMAP over implicit TLS) için kullanılır. Bu portta bağlantı kurulduğu andan itibaren tüm iletişim şifrelenir.
Bununla birlikte, kurum içi posta sunucularında veya eski (legacy) sistemlerde hâlâ şifrelenmemiş IMAP ile karşılaşabilirsiniz.
IMAP ile Manuel Etkileşim
Aşağıdaki konsol çıktısı örnek bir IMAP oturumunu göstermektedir. IMAP sunucusunun varsayılan portuna bağlanmak için Telnet kullanılır ve ardından LOGIN username password komutu ile kimlik doğrulaması gerçekleştirilir.IMAP, gönderilen her komutun başına rastgele bir karakter dizisi (tag/etiket) eklenmesini gerektirir. Bu etiketler, sunucunun hangi yanıtın hangi komuta ait olduğunu takip edebilmesini sağlar. Bu nedenle örnekte c1, c2 ve benzeri etiketler kullanılmıştır.
Daha sonra, LIST "" "*" komutu ile e-posta klasörleri listelenir ve ardından EXAMINE INBOX komutu kullanılarak gelen kutusundaki yeni mesajlar kontrol edilir.
Kod:
root@CW-ommah# telnet 10.113.129.61 143
Trying 10.113.129.61...
Connected to 10.113.129.61.
Escape character is '^]'.
* OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE ACL ACL2=UNION STARTTLS ENABLE UTF8=ACCEPT] Courier-IMAP ready. Copyright 1998-2018 Double Precision, Inc. See COPYING for distribution information.
c1 LOGIN frank D2xc9CgD
* OK [ALERT] Filesystem notification initialization error -- contact your mail administrator (check for configuration errors with the FAM/Gamin library)
c1 OK LOGIN Ok.
c2 LIST "" "*"
* LIST (\HasNoChildren) "." "INBOX.Trash"
* LIST (\HasNoChildren) "." "INBOX.Drafts"
* LIST (\HasNoChildren) "." "INBOX.Templates"
* LIST (\HasNoChildren) "." "INBOX.Sent"
* LIST (\Unmarked \HasChildren) "." "INBOX"
c2 OK LIST completed
c3 EXAMINE INBOX
* FLAGS (\Draft \Answered \Flagged \Deleted \Seen \Recent)
* OK [PERMANENTFLAGS ()] No permanent flags permitted
* 0 EXISTS
* 0 RECENT
* OK [UIDVALIDITY 631694851] Ok
* OK [MYRIGHTS "acdilrsw"] ACL
c3 OK [READ-ONLY] Ok
c4 LOGOUT
* BYE Courier-IMAP server shutting down
c4 OK LOGOUT completed
Connection closed by foreign host.
IMAP Yanıtını Anlamak
Sunucunun ilk yanıtında yer alan CAPABILITY ifadesine dikkat edin. Bu alan, sunucunun desteklediği özellikleri listeler. Keşif (reconnaissance) aşamasında bu bilgiler oldukça faydalıdır:- IMAP4rev1, sunucunun kullandığı IMAP sürümünü belirtir.
- STARTTLS, sunucunun bağlantıyı şifreli bir bağlantıya yükseltmeyi desteklediğini gösterir.
- IDLE, sunucunun yeni e-postalar geldiğinde istemciye bildirim gönderebilmesini sağlar.
- ACL (Access Control List), erişim kontrol listesi desteğinin bulunduğunu gösterir.
Yaygın IMAP Komutları
| Komut | Açıklama |
|---|---|
| LOGIN username password | Kullanıcının kimliğini doğrular (oturum açar) |
| LIST "" "*" | Tüm posta kutusu klasörlerini listeler |
| SELECT folder | Bir klasörü okuma/yazma erişimi için açar |
| EXAMINE folder | Bir klasörü salt okunur (read-only) erişim için açar |
| FETCH n BODY[] | n numaralı mesajı getirir |
| SEARCH criteria | Belirtilen kriterlere uyan mesajları arar |
| STORE n +FLAGS (\Seen) | n numaralı mesajı okunmuş olarak |
IMAP ve Webmail Karşılaştırması
Günümüzde birçok kullanıcı, özel e-posta istemcileri yerine web tabanlı arayüzler (örneğin Gmail, Outlook.com vb.) üzerinden e-postalarına erişmektedir. Bu web arayüzleri, tarayıcı ile e-posta sağlayıcısının sunucuları arasındaki bağlantıyı güvence altına almak için HTTPS kullanır.Ancak perde arkasında e-posta depolama sistemi hâlâ IMAP mantığına dayanır ve birçok kullanıcı, webmail erişiminin yanında geleneksel e-posta istemcilerini de yapılandırarak kullanır.
IMAP’i anlamak hâlâ önemlidir çünkü:
- Kurumsal ortamlarda genellikle IMAP erişimi sunan özel posta sunucuları kullanılmaktadır.
- Sızma testleri sırasında IMAP servisleriyle karşılaşılabilir.
- Mobil cihazlar ve masaüstü e-posta istemcileri IMAP’i yaygın olarak kullanmaya devam etmektedir.
- Bazı senaryolarda ele geçirilmiş IMAP kimlik bilgileri, webmail erişiminden daha kapsamlı erişim sağlayabilir.
Güvenlik Etkileri
IMAP, aşağıdaki örnekte görüldüğü gibi giriş bilgilerini düz metin (cleartext) olarak gönderebilir: LOGIN Ali D2xc9CgD. Ağ trafiğini izleyen herhangi bir kişi, Ali kullanıcı adını ve parolasını görebilir.Kimlik bilgilerinin açığa çıkmasının ötesinde, ele geçirilmiş bir IMAP hesabı saldırganlar için özellikle değerlidir çünkü:
- Kalıcı erişim: POP3’ün aksine, e-postalar sunucuda kalmaya devam eder. IMAP kimlik bilgilerini ele geçiren bir saldırgan, yeni gelen e-postaları süresiz olarak okuyabilir.
- Geçmiş verilere erişim: Tüm posta kutusu geçmişine erişilebilir. Bu, yıllar boyunca birikmiş hassas yazışmaların ortaya çıkmasına neden olabilir.
- Parola sıfırlama istismarı: Saldırganlar, diğer hesaplara erişim elde etmek için parola sıfırlama e-postalarını arayabilir ve kullanabilir.
- Kurumsal e-posta ele geçirme (Business Email Compromise - BEC): Kurumsal e-posta erişimi; sahte fatura gönderimi, kimliğe bürünme (impersonation) ve veri hırsızlığı gibi saldırılara olanak sağlayabilir.
- Yanal hareket (Lateral Movement): E-postalar genellikle kimlik bilgileri, kurum içi dokümanlar ve sonraki saldırılar için yararlı bilgiler içerir.
Özet
Bu makale çeşitli protokoller, bunların kullanım amaçları ve arka planda nasıl çalıştıkları ele alındı. Saldırganların ilgisini çekebilecek başka birçok standart protokol de bulunmaktadır. Örneğin, Server Message Block (SMB) protokolü, ağlar arasında dosya ve yazıcı paylaşımı sağlar ve bu nedenle saldırganlar için cazip bir hedef olabilir. Amcak bu makalenin amacı yalnızca birkaç yaygın protokol hakkında sağlam bir temel anlayış kazandırmak ve bu protokollerin düşük seviyede nasıl çalıştığını göstermektir.
Önemli Çıkarımlar
Bu makalede ele alınan tüm protokoller, varsayılan olarak verileri düz metin (cleartext) şeklinde iletir; buna kimlik doğrulama bilgileri de dahildir. Bu, temel güvenlik dersidir: eğer trafik şifrelenmemişse, ağ erişimi olan herhangi biri kullanıcı adlarını, parolaları, e-posta içeriklerini ve dosya transferlerini yakalayabilir.Telnet istemcisi, modern sistemlerde bir sunucu protokolü olarak kullanılmasa da, herhangi bir TCP portu üzerinde metin tabanlı protokollerle manuel olarak etkileşim kurmak için pratik bir test aracıdır. Bu teknik, bu makale boyunca HTTP, FTP, SMTP, POP3 ve IMAP protokollerinin düşük seviyede nasıl çalıştığını göstermek için kullanılmıştır. Her şifrelenmemiş protokol için güvenli bir alternatif bulunmaktadır. Modern sistemlerde, aktarım sırasında veriyi korumak için şifreli sürümler (HTTPS, SFTP, IMAPS, SSH) kullanılmalıdır.
| Protokol | TCP Portu | Uygulama(lar) | Veri Güvenliği | Güvenli Alternatif | Güvenli Port |
|---|---|---|---|---|---|
| FTP | 21 | Dosya Transferi | Düz metin (Cleartext) | FTPS veya SFTP | 990 (FTPS), 22 (SFTP) |
| HTTP | 80 | Dünya Çapında Web (WWW) | Düz metin (Cleartext) | HTTPS | 443 |
| IMAP | 143 | E-posta (MDA) | Düz metin (Cleartext) | IMAPS | 993 |
| POP3 | 110 | E-posta (MDA) | Düz metin (Cleartext) | POP3S | 995 |
| SMTP | 25 | E-posta (MTA) | Düz metin (Cleartext) | SMTPS veya STARTTLS ile SMTP | 465 (SMTPS), 587 (Submission) |
| Telnet | 23 | Uzaktan Erişim | Düz metin (Cleartext) | SSH | 22 |
Okuduğunuz için teşekkür ederim












