Makine öğrenimi ve yapay zeka son zamanların en çok konuşulan konularından biri halinde. Bu iki konu ile birlikte hemen her alanda çeşitli iyileştirmeler, yenilikler ve hatta köklü değişikliklere gidilmekte. Pek çok bilim kurgu filminde gördüğümüz robotlar artık belli bir düzeye kadar yapılabilmekte. Yakın zamanda hayatımızın her alanına girecek olan yapay zeka ve makine öğrenimi konularını elbette siber güvenlik alanında da etkili bir şekilde kullanacağız. Bugün de sizlere makine öğreniminden faydalanarak penetrasyon testleri yapmamıza olanak tanıyan bir araç olan GyoiThon’den bahsedeceğiz.

Nedir GyoiThon

GyoiThon aslında yazımızın başında da belirttiğimiz gibi makine öğreniminden faydalanarak bir takım işlemleri otomatize eden ve penetrasyon testleri yapmamıza olanak tanıyan bir araçtır.

  • Python ile yazılmış bir araçtır ve Open Source’dur.
  • Web sunucusundaki yüklü yazılımları tespit edebilir. (Framework’ler, CMS’ler, işletim sistemi vs.)
  • Web sunucusunda tespit ettiği exploit’i çalıştırabilir. Bu işlemi gerçekleştirirken Metasploit’ten yardım almakta.
  • Ve son aşama da bunların hepsini raporlayarak tamamen otomatize bir şekilde penetrasyon testmizi gerçekletirmiş olur. Bu adımları bir görsel ile özetleyecek olursak;

Tüm bu işlemler GyoiThon tarafından otomatize bir şekilde yapılmaktadır. Son kullanıcı tarafından yapılması gereken tek işlem hedef URL adresini belirtmek. Tüm bu işlemlerin otomatize edilmiş olması Pentester’ın zaman kazanması ve daha güzel sunumlar belki de daha başka işlere yoğunlaşması açısından oldukça faydalı olacaktır.

Kurulum

Git reposundan aracımızın kurulumunu gerçekleştirmek mümkün. Bunun için;

git clone https://github.com/gyoisamurai/GyoiThon.git

Ardından gerekli paketleri indiriyoruz.

cd GyoiThon
pip install -r requirements.txt

Ve kurulumumuzun tamamlanmış olması gerekmekte. Şuana kadar kurulumundan ve özelliklerinden bahsettik. Biraz da aracımızın kullanımından bahsetmemizin faydası olacaktır.

Kullanım

Öncelikle Metasploit DB’yi başlatmamız gerekmekte. Hatırlarsanız yazının başında exploit’i uygulama işlemini Metasploit ile yapıyor demiştik. Metasploit DB’yi başlatmak için;

msfdb init

Ardından haliyle Metasploit Framework’ü çalıştırmamız gerekmekte. Bunun için;

msfconsole

Karşımıza yukarıdaki gibi bir çıktı gelmiş olması gerekmekte. Şimdi RPC servislerini başlatmamız gerekmekte.Bunu için;

load msgrpc ServerHost=192.168.220.144 ServerPort=55553 User=test Pass=test1234

Şimdi config dosyasında bir takım düzenlemeler yapmamız gerekmekte. Gelin config dosyasını düzenlemeye geçelim.

config dosyasında karşımıza gelen config’lerin ne almana geldiğini yukarıdaki tabloda anlayabiliriz. Config dosyasını aşağıdaki gibi düzenlememiz işimizi görecektir.

Son olarak hedef siteyi belirteceğimiz host.txt dosyasında birkaç değişiklik yapmamızda gerekmekte ve ardından aracımız kullanıma hazır hale gelecektir. Host.txt örnek dosyası aşağıdaki gibi olacaktır.

sample of host.txt
target server => 192.168.220.148
target port => 80
target path => /oscommerce/catalog/

Burada target server yerine hedef sitemizin IP adresini, target port yerine hedef sitemizde tarama yapacağımız hedef portu, target path yerine ise hedef yolu göstermemiz gerekmekte. Son olarak bu adımların hepsini gerçekleştirdikten sonra aracımızı çalıştıralım.

python gyoithon.py

Aracımız çalışmış olsa gerek ve pentest işlemi başlamış olmalı.

Rapor

Peki tüm bunları gerçekleştirdik. Aracın bizim için oluşturduğu raporlara nasıl bakacağız? Sonuç itibariyle raporlar olmadan tüm bunlar bir anlam ifade etmemekte. Raporları görmek için;

firefox "gyoithon root path"/classifier4gyoithon/report/gyoithon_report.html

Öğrenme Verisi Ekleme

Peki yeni öğrenme verileri eklenebilmekte mi? Elbette eklenebilmekte. Bu sayede aracımızı özelleştirip daha güçlü bir hale getirmemiz mümkün olmakta. Peki bunu nasıl yapacağız?

ls "gyoithon root path"/classifier4gyoithon/train_data/
  • train_cms_in.txt : CMS sistemleri ile ilgili öğrenmeleri içerir.
  • train_framework_in.txt : Framework’ler ile ilgili öğrenmeleri içerir.
  • train_os_in.txt : İşletim sistemleri ile ilgili öğrenmeleri içerir.
  • train_web_in.txt : Web sunucu yazılımları ile ilgili öğrenmeleri içerir.

Exploit Modül Seçeneklerini Değiştirmek

Aracımız bize birçok noktada özelleştirme imkanı sunmuş. Bu alanlardan bir diğeri de exploit modülü üzerinde oynamalar yapmamıza izin vermesi. Bunu için exploit_tree.json dosyasındaki user_specify değerlerini değiştirmemiz yeterli olacaktır.

 

Yazımızın sonuna gelirken bu araç aslında bizi gelecekte neyin beklediğinin çok ama çok ufak bir örneği olma özelliğini taşımakta. Güvenli günler dileriz.