Pentesterlar veya saldırgan hackerlar hedeflerindeki sistemlerin zayıflıklarını analiz ettikden sonra, hedefi ele geçirmek ve bilgiyi açığa çıkarmak için çeşitli exploiting teknikleri uygularlar.
Metasploit Framework farklı sistemler ve platformlar için geliştirilmiş yüzlerce exploite sahiptir. Ortalama 150-300 sistemin olduğu bir ağ’da her bir hedef için bu exploitlerden tek tek yararlanmak oldukça fazla zaman alan bir uğraş olacaktir. Metasploit Framework, penetration testler için otomatikleştirilebilir. Metasploit, penetration testler için otomatik exploit çalitirma motorunu (db_autopwn) barındırır.Bununla kapsamli bir exploiting işlemini kısa sürede gerçekleştirebiliriz.Pen-Test, metasploit konsol arayüzü (msfconsole) ile gerçekleştirilir.
Metasploit’de var olan ve kullanılabilir database bağlantıları. Postgresql ve Mysql veritabanlarıdır. Kullanılabilir veritabanlarını listelemek için “db_driver” komutu kullanılabilir.
Veritabanı Komutları
===========================
Komut Açıklama
——– – ———–
db_connect Varolan veritabanına bağlantı kurar ( /path/to/db )
db_create Yeni bir veritabanı oluşturur ( /path/to/db )
db_destroy Varolan veritabanını bırakır ( /path/to/db )
db_disconnect Varolan veritabanıyla bağlantıyı keser
Dikkat: Bu yazıda aktarılan bilgiler tüm metasploit sürümlerinde ve farklı işletim sistemlerinde bire bir çalışmayabilir. Bu yazıda metasploit v3.8 ve ubuntu kullanılmıştır.
Ön Gereksinimlerin Kurulumu
# apt-get install postgresql
# apt-get install libpgsql-ruby
Kullanıcı Hesabı ve Veritabanı oluşturma
“bga” adında bir postgresql kullanıcı ve “pentestdb” adında bir veritabanı oluştur. “pentestdb” database’inin sahibi “bga” kullanıcısıdır.
# sudo su postgres
sh-4.1$ createuser bga -P
could not change directory to “/root”
Enter password for new role:
Enter it again:
Shall the new role be a superuser? (y/n) n
Shall the new role be allowed to create databases? (y/n) n
Shall the new role be allowed to create more new roles? (y/n) n
sh-4.1$ createdb –owner=bga pentestdb
could not change directory to “/root”
exit
sh-4.1$ exit
Veritabanına Bağlantı
“db_connect” komutu ile veritabanı sunucusuna bağlanacak kullanıcı adı parola ve veritabanı adı yazılarak bağlantı kurulur.
msf > db_connect bga:ozanus@127.0.0.1/pentestdb
Sık kullanılan veritabanı komutları ve açıklamaları aşağıdaki gibidir ;
Veritabanı için kullanılabileceğimiz parametreleri “help” komutu ile görüntüleyebiliriz.
Komut Açıklama
——- ———–
db_add_host Veritabanına host ekler
db_add_note Host için not ekler
db_add_port Host için port ekler
db_autopwn Herşeyi otomatik exploit eder
db_del_host Veritabanından host siler
db_hosts Veritabanındaki hostları listeler
db_import_amap_mlog THC-Amap tarama çıktısını ekler (-o -m)
db_import_nessus_nbe Nessus tarama çıktısını ekler (NBE)
db_import_nmap_xml Nmap tarama çıktısını ekler (-oX)
db_nmap Nmap çalıştırılır ve çıktısı üretilir.
db_notes Veritabanındaki tüm notları listeler
db_services Veritabanındaki tüm servisleri listeler
Senaryo :
Eğitim amaçlı olduğu için denemeler yerel ağda gerçekleştirilmiştir. Hedefimizde bulunan bga.com.tr yerel ağ aralığını tarayıp, aktif makinaları ve açık portlarını tespit ederek açık portlardan çalışan servislere uygun exploitleri uygulayacağız.
Host ve Port Tarama
Veritabanı oluşturdukdan sonra Nmap ile tarama yaparak ağdaki bilgisayarı ve açık portlarını tespit edelim, bu doğrultuda otomatik exploit işlemine geçmek daha verimli bir pentest gerçekleştirilmesini sağlar.
Bunun için “db_nmap” komutu kullanılır.
db_nmap ile tarama
Yukarıda görüldüğü gibi “192.168.1.0/24” ağ aralığını taradı ve bulduğu sistemlerin açık portlarını listeledi.
”db_host” komutu ile bulunan sistemleri listeleyebiliriz.Host dosyasında istenilen değişiklik (ekleme/çıkarma) yapıldıkdan sonra exploit denemeleri başlatılabilir.
Zarar görebilecek kritik sistemler listeden çıkarılmalıdır !
Nessus Raporlarını Aktarmak
Zaafiyet analizi için nessus tarama sonuçlarını, metasploit’e aktararak otomotik exploit denemesi gerçekleştirilebilir.Nessus raporlarını .nessus uzantılı olarak download edip metasploite aktarabilirsiniz.Bu işlem için “db_import” komutu kullanılır.
Autopwn
Autopwn kullanımı “db_autopwn [kullanım parametresi]” şeklindedir.“db_autopwn” kullanımı parametreleri aşağıda listelenmiştir.
Autopwn Kullanım Parametreleri
Güvenlik Açığı Referansına Dayalı Exploit Seçimi
Seçeneklerde görüldüğü gibi, autopwn port (-p) ve modul (-x) bazlı exploit denemesi yapabiliyor.
Açık Port(lar)a Dayalı Exploit Seçimi
Geldiğimiz noktada, db_autopwn ‘ın hedefin açık portlarını baz alarak sadece bu açık portlara uygun exploitleri denemesini sağlayabiliriz.
db_autopwn ile otomatik exploit denemeleri
Saldırı ile penetration test başlamış oldu.Hedefin açık portları doğrultusunda Metasploit Framework de mevcut exploitler otomatik olarak hedefe gönderilecek ve başarılı olan exploit için hedefin komut satırı alınacak.
Saldırı bittikden sonra “sessions -l” komutu ile aktif oturumları görüntüleyebilir “sessions –i [id]” ile oturumu devr alabiliriz.
Aktif Meterpreter Oturumları
Yukarıda görüldüğü gibi saldırı bitti ve tüm exploitler otomatik olarak hedefe denendi , bulunan zaafiyet sonucu payload yüklenerek hedefin komut satırı ele geçirildi.“sessions –i 1” ile bu oturumu ele alıp “ipconfig” komutuyla hedefin ağ ayarlarını görüntülemiş olduk.
Bu konuların gerçek dünyaya uyarlanmış senaryolar ile uygulamalı olarak işlendiği aşağıdaki eğitimleri inceleyebilirsiniz;
Sertifikalı/Lisanslı Pentest Uzmanı Eğitimi
Beyaz Şapkalı Hacker (C.E.H) Eğitimi
Yazar:
Ozan UÇAR
ozan.ucar@bga.com.tr