İstek üzerine Metasploit serisi yazmaya karar verdim. 1. makalem hatırlarsanız “Metasploit Nedir?” idi. Bu makalemde ise temel komut ve kavramlardan bahsedeceğim.
HELP
İlk olarak help komutundan başlayalım. Help komutu bize tüm komutları ve açıklamalarını gösterir.
SHOW
Sıradaki komutumuz show. Show komutu adından da anlayacağınız gibi belirli şeyleri bize göstermeye yarıyor. Örnek olarak “show exploits” komutunu vererek devam edelim.
Karşımıza exploitlerin bulunduğu bir liste geldi. Bu listede bize exploitlerin ismini (Name), bulunma tarihini (Disclosure Date), derecesini (Rank) ve açıklamasını (Description) veriyor. İlerde show komutunun farklı bir örneğini de vereceğim. Ama şimdilik geçelim bu komutu.
SEARCH
Search komutu adından da anlaşıldığı gibi bir şeyleri aramaya yarıyor. Bunu hepimizin anladığına inanıyorum :D. Komut satırına “search -h” yazalım ve bakalım nasıl kullanılıyormuş. Burada niye “-h” yazdık diyen arkadaşlar olabilir. “-h” help manasındadır. Neyse devam edelim.
Şimdi burada:
app: app ile modülün istemci taraflı mı sunucu taraflı mı çalıştığını belirtebiliriz.
author: author ile modülü bulan kişiye göre arama yapabiliriz.
bid: bid ile “Bugtraq ID” numarasına göre arama yapabiliriz.
cve: cve ile “CVE ID” numarasına göre arama yapabiliriz.
edb: edb ile “Exploit-DB ID” numarasına göre arama yapabiliriz.
name: name ile modülün adına göre arama yapabiliriz.
ovsdb: osvdb ile “OSVDB ID” numarasına göre arama yapabiliriz.
platform: platform ile çalıştığı platforma göre arama yapabiliriz. (PHP, ASP vb.)
ref: ref ile referansa göre arama yapabiliriz.
type: type ile modülün tipine göre arama yapabiliriz. (Exploit, Auxiliary gibi.)
Kullanım Örneği: “search cve:2009 type:exploit app:client”
Yani search komutu bu şekilde. Artık arama fastını da geçtiğimize göre gelin sıradaki komuta geçelim.
USE
Şimdi abi biz modülü falan aradık bulduk ama nasıl kullanacağız bunu? İşte burada use abimiz devreye giriyor. use komutu belirlediğimiz bir modülü seçmemize yarıyor. “use exploit_adı” şeklinde kullanabilirsiniz. Hadi gelin örnek olarak bir exploit seçerek devam edelim.
Burada komut satırımız değişti peki bu kırmızı yazı ve başındaki exploit yazısı neyi ifade ediyor? Exploit yazısı seçtiğimiz modülün türünü, kırmızı yazı ise modülün ismini ifade ediyor.
SET
Biz exploiti seçtikte bu exploit bizim sisteme sızmamızı sağlıyor. Ama sisteme sızdıktan sonra sistemde ilerlememiz gerekiyor. Onuda bize payload abimiz sağlıyordu hatırlarsanız. O zaman bize bir payload lazım. Öncelikle “show payloads” komutu ile exploitimize uygun payloadları listeleyelim. Tamam listeledik ve bir payloada karar verdik. Peki, nasıl seçeceğiz? Yine use abimizi kullanabilir miyiz derseniz onun sahnesi bitti.
Burada set komutu bize derman oluyor. “set payload payload_adı” komutuyla payloadımızı da seçiyoruz. Exploiti seçmiştik payloadı da seçtik peki bitti mi? Tabiki hayır. Şimdi bu seçtiğimiz exploit ve payloada gerekli bilgileri girmemiz lazım. Öncelikle “show options” komutu ile girilecek parametreleri görelim.
NOT: Bu parametreler exploit ve payloada göre değişkenlik gösterebilir.
Üstteki başlıklara baktığımızda bize parametrelerin ismini (Name), parametreye ait girilen değeri (Current Setting), parametreye değer girme zorunluluğunu -eğer yes ise zorunlu no ise zorunlu değildir- (Required) ve açıklamasını (Description) vermekte. Parametreler değişkenlik gösterebildiğinden temel olanlara değineceğim. Gelin bakalım:
RHOST: Buradaki R, remote yani uzak manasındadır. Burada bizden uzak sistemin IP adresini istemekte. “set RHOST IP_adresi” şeklinde bu parametreyi girebilirsiniz.
RPORT: Buradaki R de aynı manadadır. Bizden karşı taraftaki zaafiyetli uygulamanın çalıştığı portu istemekte. Exploitlerde genellikle RPORT default olarak girilmiştir. “set RPORT port_no” şeklinde bu parametreyi girebilirsiniz.
LHOST: Buradaki L ise local yani yerel manasındadır. Burada bizden bizim ip adresimizi istemekte. “set LHOST IP_adresi” şeklinde bu parametreyi girebilirsiniz.
LPORT: Buradaki L de aynı manadadır. Genellikle default olarak 4444 girilidir. Değiştirmek isterseniz “set LPORT port_no” şeklinde portu değiştirebilirsiniz.
Aşağıda “Exploit Target” diye bir parametre daha var. Bu ne diye sorarsanız. Bu exploitin etkilediği sistemlerdir. Default olarak karşı taraftaki sistemi zaten otomatik bir şekilde tespit eder. Ancak “Ben karşı taraftaki sistemi biliyorum. Ona göre seçicem.” derseniz “show targets” komutunu yazdıktan sonra çıkan listeden sistemi bulup solundaki ID numarasını alıp daha sonra “set target ID” komutuyla o sistemi seçebilirsiniz.
Set komutu da bu şekilde.
CHECK
Gelelim check komutuna. İsterseniz check komutu ile exploitleme işleminden önce karşı sistemin bu zaafiyete sahip olup olmadığını kontrol edebilirsiniz.
Eğer “The target is vulnerable” şeklinde dönüş yapıyorsa zaafiyet mevcut demektir. Tabi check komutundan önce yukarıda anlattığım parametreler doldurulmalı. Sonunda check komutunuda bitirdik. Az kaldı merak etmeyin birazdan bitiriyorum yazıyı :D.
EXPLOİT
Artık parametreleri girdiğimize göre exploitleme işlemine geçebiliriz. Bu işlem çok basit, exploit yazmanız yeterli exploitleme işlemi başlayacaktır.
INFO
Son komutumuz info. İnfo komutumuz bize bir modül hakkında bilgi verir. Herhangi bir modülü seçtikten sonra “info” yazarak kullanabilirsiniz.
Sorularınızı Yorumlarda Belirtebilirsiniz. Herkese İyi Çalışmalar…