METASPOLITABLE 2 HACKİNG PART 1
METASPLOITABLE HACKING
-PART 1-
METASPLOITABLE 2 NEDİR?
Metasploitable 2, güvenlik araçlarını test etmek ve yaygın güvenlik açıklarını öğrenmek amacıyla tasarlanmış, kasıtlı olarak savunmasız bırakılmış bir Ubuntu Linux sanal makinesidir. Bu makine, sızma testleri ve güvenlik araştırmaları için kullanılan Metasploit çerçevesine uygun olarak yapılandırılmış olup, VirtualBox, VMware gibi yaygın sanallaştırma platformları ile uyumludur. Metasploitable 2, içerdiği çok sayıda güvenlik zafiyetiyle siber güvenlik eğitimlerinde ve uygulamalı denemelerde kritik bir öğrenme ortamı sunar. Sistemde bulunan açık portlar ve zafiyetler, kullanıcıların çeşitli güvenlik açıklarını keşfetmelerini ve sömürmelerini sağlamak amacıyla bilinçli olarak bırakılmıştır.
METASPLOITABLE 2 LOGİN:
İlk adım olarak, Metasploitable 2 sanal makinenizi başlatın. Makine çalıştıktan sonra, varsayılan kullanıcı adı ve şifreyi kullanarak giriş yapmamız gerekmektedir. Metasploitable 2'nin varsayılan kimlik bilgileri "msfadmin:msfadmin" şeklindedir. Bilgileri girmenin ardından başarılı bir şekilde oturum açılacaktır. Oturum açıldıktan sonra sistemde msfadmin@metasploitable kullanıcısı olarak çalışmaya başlayabilir ve zafiyetleri keşfetmeye yönelik adımları takip edebilirsiniz.
METASPLOITABLE 2 TARAMA VE KEŞİF AŞAMASI:
Tarama ve keşif aşaması, bir hedef sistem veya ağ hakkında bilgi toplamanın ilk adımıdır. Bu aşamada ağdaki IP adreslerini öğrenmek için netdiscover, arp-scan ve Nmap kullanılabilir.
1. Netdiscover
Netdiscover, yerel ağdaki cihazların IP adreslerini ve MAC adreslerini keşfetmek için kullanılan pasif bir ARP tarama aracıdır. DHCP sunucusu olmayan ağlarda bile IP adreslerini hızlı bir şekilde bulur.
2. ARP-Scan
ARP-Scan, ağdaki cihazları aktif olarak tarar ve IP ile MAC adreslerini gösterir.
3. Nmap ile IP Adresi Öğrenme
Nmap (Network Mapper), ağ tarama ve keşif için yaygın kullanılan güçlü bir araçtır. Nmap, özellikle büyük ağlarda kapsamlı taramalar yapar. Ağdaki cihazların IP adreslerini tespit etmek için Nmap kullanabilirsiniz.
Ağdaki IP tarama işlemlerini netdiscover, arp-scan veya Nmap ile gerçekleştirdikten sonra, kendi makinemizin IP adresinin 10.0.2.5 olduğunu tespit ettik.
→http://10.0.2.5 adresine gittiğimizde sayfaya erişebiliyoruz ve bazı web uygulamalar görebiliyoruz.
Hedef sistem üzerinde tarama yapmadan önce, Kali Linux üzerinde kendi IP adresimizi kontrol etmek önemlidir. Bu, ağ içindeki konumumuzu bilmemize yardımcı olur ve hangi IP adresinden işlem yapacağımızı netleştirir.
Bu bilgiye dayanarak, sızma testlerine ve keşif aşamalarına devam edebiliriz. Bu noktada, hedef makineleri belirleyip zafiyetleri araştırmaya başlayabiliriz. İlk olarak, Nmap ile hedef sistem üzerinde daha detaylı bir tarama yaparak açık portları, çalışan servisleri ve olası zafiyetleri inceleyebiliriz.
-p-: Tüm TCP portlarını (1-65535) tarar.
-sV: Açık olan portlarda çalışan servislerin versiyonlarını tespit eder.
-O: Hedef sistemin işletim sistemini tahmin eder.
Bu tarama ile, makinenizde açık olan tüm portları, bu portlarda çalışan servisleri ve hangi işletim sisteminin kullanıldığını öğrenebilirsiniz.
Tarama sonucunda, 10.0.2.5 IP adresinde birçok açık port ve çeşitli servisler tespit edilmiştir.
METASPLOITABLE 2 ZAFİYET SÖMÜRÜ AŞAMALARI:
#Exploit 21-FTP
FTP (File Transfer Protocol), bilgisayarlar arasında dosya transferi yapmak için kullanılan bir ağ iletişim protokolüdür. FTP’nin temel amacı, bir bilgisayardaki dosyaları başka bir bilgisayara aktarmak veya bir bilgisayardan dosyaları indirmektir. Bu protokol, bir sunucu ve bir istemci arasında dosya transferi yapmak için standart bir yöntem sağlar.
Gerçekleştirilen nmap taramasında, Port 21 üzerinde bir FTP servisi çalıştığı tespit edilmiştir. Versiyon bilgisini incelediğimizde ise “vsftpd 2.3.4” sürümüne ulaşıyoruz.
Daha sonra vsftpd 2.3.4 sürümünde daha önce herhangi bir güvenlik açığının keşfedilip edilmediğini kontrol edebiliriz. Bu amaçla, ExploitDB gibi kaynakları kullanabiliriz. Kali Linux üzerinde ExploitDB'yi daha rahat araştırabileceğimiz searchsploit adlı bir araç bulunmaktadır.
ExploitDB sitesinde vsftpd 2.3.4 sürümü için mevcut açıkları aradık ve bu sürümle ilgili bilinen bir açık bulduk. İlgili exploit dosyasını indirdik ve ardından Kali Linux terminalinde şu komutu kullanarak Python betiğini çalıştırdık:
python3 /home/kali/Downloads/49757.py 10.0.2.5
Bu işlem sonrasında exploit başarıyla çalıştı ve oturum açıldı. Sistem üzerinde uid=(root) olarak oturum açmış olduk, bu da FTP üzerinden tam yetkiye sahip olduğumuz anlamına geliyor. Şu anda sistem üzerinde tam kontrol sağladık ve bu durumu doğrulayarak erişim yetkilerimizi kontrol edebiliriz.
Bu işlemi msfconsole kullanarak da yapabiliriz.
Bunu yapmak için terminale msfconsole komutunu giriyoruz. Ardından, açılan Metasploit terminalinde search vsftpd 2.3.4 komutunu kullanarak, bu servise yönelik mevcut exploit, auxiliary ve diğer modülleri arıyoruz. Gördüğümüz gibi, vsftpd 2.3.4 sürümü için bir exploit modülü mevcut. Bu modül hakkında daha ayrıntılı bilgi edinmek için info 0 komutunu kullanabiliriz. Exploiti düzenlemek için ise use 0 veya use exploit/unix/ftp/vsftpd_234_backdoor komutunu tercih ediyoruz.
Hedef IP adresini belirtmek için set rhosts 10.0.2.5 komutunu kullanıyoruz. "Options" alanında başka bilgi istenmediğini doğruladıktan sonra, exploit komutunu girerek exploit işlemini başlatıyoruz. Bu işlem sonucunda Metasploitable 2 içerisine erişim sağlıyor ve bir "Command shell session" elde ediyoruz.
#Exploit 22-SSH:
SSH, (Secure Shell), iki bilgisayar arasında güvenli bir iletişim sağlamak amacıyla kullanılan bir ağ protokolüdür. SSH, özellikle uzaktan erişim sağlamak ve ağ servislerini güvenli bir şekilde yönetmek için geliştirilmiştir. Bu protokol, veri transferi ve uzaktan erişim gibi işlemler sırasında TCP 22 portunu kullanarak güvenli bir bağlantı sağlar.
SSH (Secure Shell) hizmeti için brute force saldırısı gerçekleştirmek, zayıf şifre politikalarından faydalanarak hedef sisteme giriş sağlamaya çalışmak anlamına gelir. SSH brute force saldırıları, Metasploit Framework ve Hydra gibi araçlarla gerçekleştirilebilir. İlk olarak hydra ile deneyelim:
Kullanıcı adı ve şifreye hydra ile ulaşmış olduk(msfadmin:msfamin). Şimdi ssh ile bağlanalım.
Bu hata, sunucunun yalnızca eski ve zayıf şifreleme algoritmalarını desteklemesinden kaynaklanıyor. SSH istemciniz, bu eski algoritmalarla bağlantı kurmaya çalışırken sorun yaşıyor. Bu durumda SSH komutuna eski algoritmaları kullanmasını söyleyerek sorunu çözebilirsiniz.
Metasploitable 2 sunucusuna SSH ile bağlandık. Şimdi bunu metasploit framework ile deneyelim. Msfconsole açıp ssh_login’ i aratıyoruz.
Gerekli ayarlamaları da yaptıktan sonra run deyip çalıştırıyoruz. Ve brute force sonucu bize “msfadmin:msfadmin” bilgilerini veriyor. Sonucu incelediğimizde, “SSH session 1 opened” mesajını görüyoruz. Bu, modülün başarıyla çalıştığını ve bir oturum elde ettiğimizi gösteriyor. Bu oturumu kullanabilmek için önce “sessions -l” komutunu çalıştırarak aktif oturumları listelememiz gerekiyor. Şu anda yalnızca bir “shell linux” oturumu açık durumda ve bu oturuma bağlanmak için “sessions 1” komutunu kullanıyoruz. Böylece Port 22 üzerinden SSH ile Metasploitable 2 sistemine giriş yapmış oluyoruz.
#Exploit 23-TELNET:
Telnet, bir bilgisayara uzaktan erişim sağlamak ve iki cihaz arasında metin tabanlı bir iletişim kanalı oluşturmak için kullanılan eski bir ağ protokolüdür. Ancak günümüzde kullanılmaması tercih edilmektedir, çünkü güvenli iletişim protokollerinin arasında yer almamaktadır. Bunun en büyük sebebi, verilerin şifrelenmeden, yani açık metin olarak iletilmesidir. Bu da ağı dinleyen herhangi bir kişi için yapılan iletişimin kolayca takip edilebilir hale gelmesine yol açar, dolayısıyla güvenlik açısından büyük bir risk oluşturur.
Metasploit Framework yazılımını kullanacağız. Terminale “msfconsole” yazıyoruz. “search telnet_login” komutunu yazarak bu servis hakkındaki exploit, auxiliary vb kategorilerdeki modül sonuçlarını inceleyeceğiz.
Gerekli ayarları yaptıktan sonra çalıştırıyoruz ve bunun sonucunda da “Telnet Login” için gerekli olan kullanıcı adının ve şifresinin “msfadmin: msfadmin” olduğunu görmüş oluyoruz. Sessions ‘lara bakalım şimdi. Sessions –l komutuyla açık olan sessionlara bakalım. Sessions 2 komutunu yazıp Metasploitable 2 içerisine Port 23 aracılığıyla giriyoruz.
Telnet'in güvensizliğini daha iyi kavramak için basit bir işlem yapabiliriz. Terminalde telnet 10.0.2.5 komutunu çalıştırarak hedef sunucuya bağlanmayı deneyebiliriz. Bu işlem sırasında verilerin şifrelenmeden, düz metin olarak iletildiğini görebiliriz. Bu da ağda iletişimi dinleyen kötü niyetli kişilerin kolayca erişim sağlayabileceği anlamına gelir. Telnet gibi güvenli olmayan protokoller bu nedenle günümüzde yerine SSH gibi şifreleme sağlayan protokoller ile değiştirilmiştir.
#Exploit 25 SMTP:
SMTP (Simple Mail Transfer Protocol), sunucular arasında e-posta gönderip almayı sağlayan bir TCP/IP protokolüdür. Ancak, mesajları yalnızca alıcı sunucuya iletip sıraya koyma işleviyle sınırlı olduğundan, mesajların kullanıcı tarafından saklanmasına olanak tanıyan POP3 (Posta Ofisi Protokolü) veya IMAP (İnternet Mesaj Erişim Protokolü) gibi diğer protokollerle birlikte çalışır. Başka bir deyişle, kullanıcılar genellikle e-posta göndermek için SMTP'yi, e-postaları almak ve yönetmek için ise POP3 veya IMAP'i tercih eden bir yazılım kullanır.
Msfconsole ile tekrar aynı işlemleri yapıyoruz.
Bu işlem Metasploit Framework'ün smtp_enum modülünü kullanarak hedef IP adresinde (10.0.2.5) çalışan SMTP sunucusunda kullanıcıları gösterir.
Banner: Bir bilgisayar sistemi veya ağ servisinin bağlantı aşamasında istemcilere gösterdiği açılış mesajıdır. Banner mesajları, sistemin durumu hakkında bilgi verebilir veya kullanıcıları belirli kurallar, politikalar ya da hoş geldin mesajları konusunda bilgilendirir.
220: Sunucunun bağlantıyı kabul etmeye hazır olduğunu ifade eder.
metasploitable.localdomain: Sunucunun adını temsil eder ve bu, sistemin yerel alan ağında kullanılan adıdır.
esmtp postfix: Sunucunun Genişletilmiş Basit Posta Aktarım Protokolü (ESMTP) desteği olduğunu ve "postfix" adında bir e-posta transfer aracısı (MTA) kullandığını gösterir.
ubuntu: Sunucunun işletim sistemi olarak Ubuntu Linux kullandığını belirtir.
Bulunan kullanıcılar: Bu listede sistemde yer alan çeşitli kullanıcılar ve servis hesapları bulunmaktadır: backup, bin, daemon, distccd, ftp, games, gnats, irc, libuuid, list, lp, mail, man, mysql, news, nobody, postfix, postgres, postmaster, proxy, service, sshd, sync, sys, syslog, user, uucp, www-data. Bu kullanıcı hesapları genellikle sistemde belirli hizmetlerin çalıştırılması için kullanılır.
Çıktı sonucuna göre bazı user’lar bulduk bunlarla smtp üzerinden bağlanabiliriz. Bu işlem için netcat aracını tercih edebiliriz.
ehlo metasploitable.localadmin
Bu komut, SMTP sunucusuna kim olduğunuzu tanıtmak için kullanılır. EHLO (Extended HELO) komutu, sunucuya genişletilmiş SMTP (ESMTP) destekleyen bir istemci olduğunuzu bildirir. ehlo metasploitable.localadmin ifadesinde, istemcinin adı "metasploitable.localadmin" olarak tanıtılıyor.
vrfy user
VRFY komutu, SMTP sunucusunda belirtilen kullanıcının var olup olmadığını kontrol eder. Bu işlem genellikle sunucu üzerinde e-posta adresi doğrulama amacıyla kullanılır. Bu komutla user adında bir kullanıcının var olup olmadığını sorguluyorsunuz.
İlgilenip okuduğunuz için teşekkür ederim. Part 2 de görüşmek üzere:)