Penetrasyon Testi 3 - Servis Tarama ve Açıkların Tespiti
                    Bu yazımızda bir sistem veya ağdaki zafiyetleri tespit etmenin temel adımlarından olan servis tarama ve açıkların tespiti konularına odaklanacağız. Bu aşamalar, potansiyel güvenlik açıklarını belirlemek için kritik öneme sahiptir.
Banner Grabbing
Banner grabbing, bir ağ servisine bağlanarak, servisin kendisine ait versiyon, işletim sistemi ve yazılım bilgilerini içeren karşılama mesajını (banner) çekme işlemidir. Bu bilgiler, saldırganlara hedeflenen servise yönelik bilinen zafiyetleri arama konusunda yardımcı olur.
Bir web sunucusuna gittiğinizde, web tarayıcınız aslında sunucunun size gönderdiği “banner”ı okur. Bu banner, sunucunun Apache’nin hangi versiyonunu kullandığı, NGINX olup olmadığı gibi bilgileri içerir. Bir güvenlik uzmanı olarak, bu bilgileri manuel olarak veya otomatize araçlarla toplayarak, bu spesifik versiyonlarda bilinen zafiyetlerin olup olmadığını kontrol edersiniz.
Uygulama
Nmap’in --script=http-headers parametresini kullanarak otomatik bir şekilde banner bilgisi elde edebilirsiniz.
nmap -p 80 — script=http-headers example.com

Servis Versiyon Kontrolü
Servis versiyon kontrolü, bir hedef üzerindeki açık portlarda çalışan servislerin hangi versiyonlarını kullandığını belirleme sürecidir. Bu, banner grabbing’den daha kapsamlı bir yaklaşımdır.
Servis versiyon kontrolü, yalnızca banner’da verilen bilgiyi değil, aynı zamanda port üzerinde çalışan servisin daha derinlemesine analizini de içerir. Örneğin, Nmap gibi araçlar özel paketler göndererek servisin cevabını analiz eder ve daha doğru bir versiyon bilgisi sunar. Bu, bir güvenlik uzmanının, hedef sistemin hangi spesifik yazılımları kullandığını ve bu yazılımlara ait bilinen zafiyetleri araştırabileceği anlamına gelir.
Uygulama
Nmap, servis ve versiyon tespiti için en popüler ve güçlü araçlardan biridir. -sV parametresiyle sadece açık portlardaki servislerin ve bu servislerin versiyonlarının tespiti yapılabilir. Ancak daha kapsamlı bilgi edinmek isterseniz, -A paramresiyle agresif tarama modunu kullanabilirsiniz. Bu mod, servis ve versiyon tespitine ek olarak işletim sistemi analizi, script taramaları ve traceroute gibi işlemleri de içerir.
nmap -A -T4 scanme.nmap.org

Vulnerability Scanning Kavramı ve Araçları
Vulnerability scanning (güvenlik açığı taraması), bir sistem veya ağdaki bilinen güvenlik açıklarını, yanlış yapılandırmaları ve potansiyel riskleri otomatize araçlarla tespit etme sürecidir. Bu tarayıcılar, zafiyet veritabanlarını kullanarak hedef sistemin mevcut güvenlik duruşunu değerlendirir.
Nessus ve Alternatifleri
Nessus, bu alandaki en popüler ve güçlü ticari güvenlik açığı tarayıcılarından biridir. Ancak, kullanabileceğiniz açık kaynaklı veya ücretsiz birçok alternatif de bulunmaktadır.
OpenVAS (Greenbone Vulnerability Manager):
OpenVAS, Nessus’a güçlü bir açık kaynak alternatifidir. Kapsamlı bir zafiyet veritabanına (NVT) sahiptir ve sürekli güncellenir. Arayüzü biraz karmaşık olsa da, profesyonel düzeyde taramalar yapmanıza olanak tanır.
Uygulama
OpenVAS genellikle Kali Linux’ta kurulu gelir. Kurulumu veya çalıştırılması için gvm-start komutunu kullanabilirsiniz. Ardından web arayüzü üzerinden tarama hedefini (target), tarama profilini (scan config) ve taramanın ne zaman başlayacağını belirleyerek ilk taramanızı başlatabilirsiniz.
- Kali Linux’ta 
openvaspaketi yerine GVM (Greenbone Vulnerability Management) adı altında geçiyor. 
sudo apt update && sudo apt install -y gvm
Bu işlem sırasında GVM ile ilgili tüm bileşenler yüklenecek (gvmd, openvas-scanner, greenbone tools vs.)

- Tüm servislerin veritabanını ve feed’leri güncelle
 
sudo gvm-setup
Bu komut, sertifikaları oluşturur, GVM kullanıcı hesabı tanımlar (genellikle admin), zafiyet veritabanlarını indirir, servisleri başlatır.
İlk seferde bu işlem uzun sürebilir. Bitince size giriş adresi ve kullanıcı bilgisi verilecektir.


- Eğer 
gvm-setupbitti ama servisler hâlâ çalışmıyorsa ayrı ayrı başlatabilirsin: 
sudo gvm-check-setup
Bu komut eksik parçaları da sana söyler.

- GVM servisleri çalışıyor mu kontrol et:
 
sudo gvm-start

- Web arayüzüne girmke için tarayıcıyı aç ve şu adrese git:
 
Kullanıcı adı:
admin
Şifre:gvm-setupsonunda verilen şifre


- OpenVAS ile Hedef Tarama
 
Web arayüzü üzerinden:
- Targets > New Target → IP veya alan adını gir
 - Scan Configs kısmından 
Full and Fastseç - Tasks > New Task → hedefi ve tarama profilini ata
 - Start Scan butonuna tıkla
 


- Raporları Görüntüleme ve PDF Olarak Alma
 
Web arayüzünden:
- Scans > Reports kısmına git
 - Taramanı seç → Sağ üstten 
DownloadtıklayıpPDFolarak indir 
Nikto:
Nikto, özellikle web sunucularına yönelik hızlı ve etkili bir güvenlik açığı tarayıcısıdır. Sunucunun konfigürasyon hatalarını, bilinen zafiyetleri ve eski versiyonlara ait problemleri tespit etmekte uzmanlaşmıştır.
Uygulama
Nikto’yu kullanmak oldukça basittir. Hedef web sitesini belirtmeniz yeterlidir.
nikto -h http://sadikcantuluk.com
Bu komut,
sadikcantuluk.comweb sunucusu üzerinde bilinen zafiyetleri, dizin listeleme hatalarını ve diğer yaygın güvenlik açıklarını tarayacaktır.

Pratik
1. Nmap ile Script Scan (- - script vuln)
Amaç: Hedef sistemde bilinen açıklıkları (vulnerability) tespit etmek.
Komut:
nmap --script vuln 192.168.1.20
Açıklama:
--script vuln: Nmap’in vuln kategorisindeki tüm NSE (Nmap Scripting Engine) betiklerini çalıştırır.192.168.1.20: Hedef IP adresi.

2. Nikto ile Web Sunucu Taraması
Amaç: Web sunucusunda bulunan zayıflıkları, default dosyaları, eski yazılım sürümlerini tespit etmek.
Komut:
nikto -h https://plan345.com/
Açıklama:
-h: Hedef web sitesinin URL'sini belirtir.https://plan345.com/: Taranacak olan web sitesinin adresidir.

3. Enum4linux ile SMB Paylaşım ve Kullanıcı Taraması
Amaç: SMB (Windows paylaşım protokolü) üzerinden kullanıcılar, paylaşımlar, grup bilgileri gibi verileri toplamak.
Komut:
enum4linux -a 192.168.1.10
Açıklama:
-a: Tüm bilgi toplama işlemlerini otomatik yapar (user listesi, share, OS info, vb.)



4. FTP, SSH, Telnet Servislerinden Banner Alma
Amaç: Servis banner’ını (yani servis tipi ve versiyon bilgisi) almak. Bu bilgilerle açıklar araştırılabilir.
On-line Port Tarama Teknikleri
Port tarama işlemleri, web siteleri üzerinden de yapılabilir. On-line port taramak için https://viewdns.info/portscan web sitesi kullanılabilir.


FTP için:
nc <ip adresi> 21


SSH için:
nc <ip adresi> 22


Telnet için:
nc <ip adresi> 23

Telnet portu açık bir ip adresi bulamadım. shodan.io ile bulunabilir ancak şuan web sitesinde filtreleme işleminde hata veriyor. Bura üzerinden filtreleme işlemi yaparak telnet portu açık bir ip adresi bulup siz kendiniz deneyebilirsiniz.
shodan.io Kullanımı
SHODAN (Sentient Hyper-Optimised Data Access Network), önsezileri güçlü en uygun veri erişim ağı anlamını taşır. Saldırganlar, pasif keşif aşamasında hedef sistemlerin altyapılarına erişebilmek ve daha ayrıntılı bilgi toplayabilmek için shodan.io web sitesini kullanabilirler. Bu nedenle shodan, hackerların arama motoru olarak bilinir. Bu arama motoru, dünya üzerinde internete bağlı olan farklı türlerdeki bilgi işlem sistemini tespit eder. Bilgi işlem sistemlerinde yer alan cihazlar hakkında bilgi toplar.
Kullanıcılar, shodan arama motorunu kullanarak ülke ve şehir bazlı filtreleme yapabilir. Filtreleme sonucunda tespit edilen sistem üzerindeki port ve servis bilgilerine, IP adreslerine ulaşılabilir.

shodan.io Filtreleme Kullanımı
Aşağıdaki işlem adımlarına göre shodan arama motorunu kullanınız.
1. Adım: shodan.io web sayfasını açınız.
2. Adım: TELNET hizmeti açık olan cihazları görmek için aramakutusuna filtre uygulayınız .
port:23

Dilerseniz ülke,şehir vb. birçok filtre mevcut.

Bu filtreleme işleminden sonra sonuçlar aşağıdaki gibi listelenecektir. Burada listelenen ip adreslerini inceleyip kullanabilirsiniz.Hatta bulduğunuz ip adreslerini https://viewdns.info/portscan (On-line Port Tarama) web sitesinden de araştırabilirsiniz.

Metasploitable Uygulama
Metasploitable2, uygulamalı sızma testi eğitimleri ve güvenlik araştırmalarında kullanılmak için oluşturulan bir test ortamıdır. Siber güvenlik eğitimlerinde zafiyetli bir test ortamına ihtiyaç duyulmaktadır, bunun için Metasploitable 2 uygulaması kullanılabilir.
Kurulumu
Metasploitable’ı İndirme
- Resmi kaynak: https://sourceforge.net/projects/metasploitable/
→ Metasploitable 2 sürümünü indir (Metasploitable2-Linux.zip). 

- ZIP dosyasını indirince, uygun bir klasöre çıkart (
Metasploitable2-Linux.vmdkdosyası oluşacak). 

VirtualBox ile Kurulum
- VirtualBox’ı aç → New (Yeni) butonuna tıkla.
 - İsim: 
Metasploitable2
Tip: Linux
Sürüm: Ubuntu (32-bit) 

Ubuntu seçeneği yoksa Debian (32-bit) veya Linux → Other Linux (32-bit) seçebilirsin. Ama 64-bit seçme, çünkü Metasploitable 2 tamamen 32-bit bir sanal disk olarak hazırlanmış. VirtualBox’ta 64-bit seçersen bazen çalışıyor, ama gereksiz uyumsuzluk riski olur (özellikle eski çekirdek/servislerde).
- RAM: 512 MB (daha fazlası gerekmez).
 - Hard disk → Use an existing virtual hard disk file seçeneğini işaretle → 
Metasploitable2-Linux.vmdkdosyasını seç. 

- Finish ile tamamla.
 

Ek olarak sanal cihazımıza sağ tıklayıp Settings kısmından Network alanında Bridge Adapter ve Promisscuous Mode : “Allow All” seçin.Aynı Network ayarı kali cihazınızda da yapın.Bu sayede kali tarafından Metasploitable zafiyetli cihazı görebiliriz.

Bu uygulama, Metasploitable adında kasıtlı olarak zafiyetli bırakılmış bir işletim sistemi üzerinde, Kali Linux ve Metasploit Framework kullanarak bir güvenlik zafiyetinin nasıl tespit edilip analiz edildiğini göstermektedir.
Adım 1: Hedef Sistemin IP Adresini Belirleme
Analize başlamadan önce, zafiyet testi yapılacak olan Metasploitable makinesinin ağ üzerindeki IP adresini tespit etmek gerekir. Bu, ifconfig komutu ile kolayca yapılabilir. Resimdeki komut çıktısında, eth0 arayüzüne atanan IP adresinin 192.168.1.38 olduğu görülmektedir. Bu adres, sonraki adımlarda hedef sistem olarak kullanılacaktır.

Adım 2: Hedef Sistemi Ağ Taraması ile Tanıma (Nmap)
Hedef sistemin IP adresi belirlendikten sonra, Kali Linux üzerinden nmap aracı kullanılarak hedef sistemdeki açık portlar, çalışan servisler ve versiyon bilgileri taranır. Resimde görüldüğü gibi, nmap -sV -sS 192.168.1.38 komutu ile yapılan tarama sonucunda, hedef makinede 21 numaralı portta vsftpd 2.3.4 servisinin çalıştığı tespit edilmiştir. Bu, uygulamanın ilerleyen bölümlerinde incelenecek olan potansiyel zafiyetin kaynağı olacaktır.

Adım 3: Metasploit Framework’ü Başlatma
Hedef sistemdeki potansiyel zafiyetli servis belirlendikten sonra, bu servise yönelik zafiyet aramak için Metasploit Framework başlatılır. msfconsole komutu ile Metasploit arayüzüne girilir ve çerçeve hakkında genel bilgiler içeren karşılama ekranı görüntülenir.
Bunun için Kali tarafında yeni bir terminal daha açın.
msfconsolediyerek arayüze erişin.

Adım 4: FTP, SMB, TELNET Servisleri İçin Metasploit Modülü Arama



Adım 5: vsftpd Servisi İçin Metasploit Modülü Arama
Metasploit içinde, belirli bir servise yönelik modüller aramak için search komutu kullanılır. Bu adımda, hedef sistemde çalışan vsftpd servisi için uygun modüllerin listelenmesi sağlanmıştır. Çıktıda, auxiliary/dos/ftp/vsftpd_232 (Denial of Service saldırısı için) ve exploit/unix/ftp/vsftpd_234_backdoor gibi potansiyel modüllerin bulunduğu görülmektedir.

Adım 6: Modülü Yapılandırma
Potansiyel bir zafiyet modülü (use auxiliary/dos/ftp/vsftpd_232 gibi use komutu ile kullanacağımız modülü seçiyoruz) seçildikten sonra, bu modülün kullanılabilmesi için gerekli ayarların yapılması gerekmektedir set RHOSTS 192.168.1.38 komutuyla hedef sistemin IP adresi modüle atanmıştır. Bu, modülün hangi adrese karşı çalışacağını belirler.
Tabi ki set işleminde vereceğimiz parametrelerin ne olması gerektiği ve hangilerinin zorunlu olduğunu belirlemek için
show optionsdiyerek bilgi edinebiliriz.

Adım 7: Zafiyetin Sömürülmesi ve Sonucun Gözlemlenmesi
Son olarak, yapılandırılan modül exploit komutu ile hedef sistem üzerinde çalıştırılır. Resimde, seçilen Denial of Service (DoS) modülünün çalıştırılmasına rağmen, sistemin bu zafiyete karşı savunmasız olmadığı (not-vulnerable) hatasıyla karşılaşılmıştır. Bu durum, hedef sistemin vsftpd_232 DoS zafiyetine karşı yamalı olduğunu veya bu versiyona sahip olmadığını göstermektedir. Bu test, her zaman başarılı bir sömürüyle sonuçlanmayabileceğini, ancak zafiyet arama sürecinin bir parçası olduğunu ortaya koymaktadır.

Sizler de başka modülleri test ederek inceleyebilirsiniz.