Msfvenom Kullanımı ve Reverse Shell Alma

Msfvenom Kullanımı

Metasploit kullanıcıları önceden Msfpayload ve Msfencode araçlarını ayrı ayrı kullanmak zorundalardı. 2015 yılına gelindiğinde Metasploit geliştiricileri tarafından Msfpayload ve Msfencode araçlarının özellikleri birleştirildi ve Msfvenom aracı oluşturuldu.

Msfvenom’un birden çok parametresi bulunmaktadır. Bu parametrelere göz atmak için terminal ekranına “msfvenom -h” yazabilirsin.

Yukarıda kullanılan parametreler aşağıdaki işlere yaramaktadır.

-p , –payload Kullanılacak payload’ı seçmemize yarar.
-l , –list Payload listesini görüntülememize yarar.
-n, –nopsled Oluşturulacak yükün başına belirtilecek sayı kadar NOP ekler.
-f, –format Çıktı formatını belirtmemize yarar.
–help-formats Kullanılabilir formatları listeler.
-e, –encoder Kullanılacak encoder’ı belirlememize yarar.
-a, –arch Kullanılacak mimariyi belirlememize yarar.
–platform Payload’ın hangi platforma göre olacağını belirtiriz.
–help-platforms Kullanılabilir platformları listeler.
-s, –space Ortaya çıkacak olan yükün maximum boyutu
–encoder-space Encode edilmiş yükün max boyutunu belirtmemize yarar (defaultta -s kadardır)
-b, –bad-chars Kullanılmasını istemediğimiz karakterleri oluşacak yükten çıkartmamıza yarar.
-i, –iterations Encode işleminin kaç kez gerçekleşeceğini belirtmemize yarar.
-c, –add-code Oluşturulacak yüke ek Win32 kabuk kodları eklememize yarar.
-x, –template Şablon olarak kullanılacak özel bir yürütülebilir dosya eklememize yarar.
-k, –keep Şablon olarak kullanılacak yükün güvenilirliğini sağlar.
-o, –out Payload’ı kaydetmemize yarar.
-v, –var-name Belirli çıktı biçimleri için kullanılacak özel bir değişken adı belirlemek için kullanılır.
–smallest Mümkün olan en küçük yükü üretir.
-h, –help Msfvenom yardım menüsünü açmamıza yarar.

İlk başta payload listesine, format listesine ve platform listesine bir göz atalım daha sonra da reverse bağlantı alacak bir yük oluşturalım.

Payload listesinin görüntülenmesi;

Yukarıda görüldüğü gibi benim kullandığım msfvenom’da toplamda 507 tane payload varmış.

Format listesinin görüntülenmesi;

Platform listesinin görüntülenmesi;

Msfvenom İle Reverse Shell Oluşturma

Yukarıdaki resimde yer alan işlemi sıralamak gerekirse;

1-) Mimariyi x86, platformu Windows ve payload’ı windows/meterpreter/reverse_tcp olarak belirledim.
2-) LHOST ve LPORT değerlerimi girdim.
3-) x86/shikata_ga_nai ile 20 defa encode etmesini söyledim.
4-) Oluşturacağı yükte \x00 karakterine yer vermemesini söyledim.
5-) Çıktı formatını exe olarak belirledim.
6-) Çıktının /root/Desktop/ yolunda oluşturulmasını, adının da rshell.exe olmasını belirttim.

Bu işlem sonunda payload size değeri aşağıdaki resimde de görüldüğü gibi 873 byte oldu.

Bu işleme –smallest (oluşabilecek en küçük yükü üretir) parametresini eklediğimde sonuç aşağıdaki gibi 821 byte düşmüştür.

Aynı işleme –nopsled (oluşturulacak yükün başına belirtilen sayı kadar NOP ekler) parametresini eklediğimde ise sonuç aşağıdaki gibi 899 byte çıkmıştır.

Hedeften Reverse Bağlantı Alma

Oluşturulan exe dosyasının herhangi bir şekilde kurbana yedirildiği varsayılarak hareket edilmiştir.

İlk başta multi/handler ile dinleme moduna geçilir. Burada önemli nokta exe dosyası oluşturulurken kullanılan payload’ın multi/handler’a verilmesidir. Aşağıdaki gibi dinleme moduna geçmiş oldum.

Aşağıdaki resimde hedef kendisine yedirilen exe dosyasına çift tıkladı.

Sonuç olarak atak yapan makina hedeften 1 tane meterpreter session’i almış oldu.

NOT : Msfvenom ile oluşturulan birçok payload gelişmiş güvenlik ürünleri tarafından yakalanmaktadır. Yalnız  payload oluşturulduktan sonra Crypter adı verilen programlarla şifrelenirse yakalanma oranı çok düşmektedir. Eğer crypter yazılımı gerçekten sağlamsa zararlı tanınına kadar hiçbir güvenlik ürününe yakalanmayabilir.