msfvenom

Metasploit – Msfvenom Nedir Ve Payload Oluşturma [3.1]

Serinin 3. Makalesine hoşgeldiniz :D. Bu yazımda msfvenom aracından bahsedeceğim yalnız 3. bölüm uzun olduğu için 3.1 ve 3.2 diye ayırdım. 3.2 de yakında gelecek.

Msfvenom

Msfvenom, msfpayload ve msfencode araçlarının yaptıklarını yapabilen, hatta daha hızlı ve daha sağlam bir şekilde gerçekleştirebilen bir Metasploit aracıdır. Normalde benim msfvenom’dan önce msfpayload ve msfencode’u anlatmam gerekiyordu ama artık msfvenom tüm işleri yapabildiği için Kali Linux’ta sadece msfvenom bulunuyor. Msfpayload ve msfencode Kali Linux’da bulunmamakta. Peki,  bu iki araç ne yapıyordu? Gelin bunlardan bahsedelim.

Msfpayload

Bu aracın amacı birçok dilde (php,asp,python,ruby vb.) payload oluşturmaktır. Şimdi siz diyeceksiniz ki payload exploitlerle beraber kullanılmıyor muydu? Evet, öyle ancak payloadları direkt olarak bir sistemde çalıştıraraktan da kullanabilirsiniz.

Msfencode

Msfencode ise oluşturulan payloadları kriptolama işleminden geçirerek antivirüslere yakalanmamalarını sağlayan bir araçtır. Ancak artık bu encoderların birçoğu antivirüsler tarafından bilindiği için bu araç ile kriptolasanız bile antivirüsler payloadınızı tespit edecektir.

Payload Türleri

  • Single: Hem karşı bilgisayar ile bizim bilgisayarımızın arasında bağlantı kuran hem de bağlantıyı kurduktan sonra belirli işlemler yapmamızı sağlayan payloadlardır. İkisi bir arada olarak ifade edebiliriz :D.
  • Stagers: Bu türümüz ise karşı sisteme enjekte olarak sadece aradaki bağlantıyı kurar ve sonrasında asıl işi yapacak payloadı devreye sokar.
  • Stages: İşte Stagers’ın devreye soktuğu payload türüdür yani bunların amacı aradaki bağlantıyı sağlamak değildir tamamen işlem yapmaktır. Single payloadlara kıyasla karşı sistemde daha çok işlem gerçekleştirebilir.

Payload türlerini de geçtiğimize göre artık nasıl payload oluştururuz bir bakalım. Öncelikle terminale msfvenom -h” yazarak msfvenom bizden ne istiyor ve parametreleri neler görelim.

msfvenom

Gördüğünüz gibi birçok parametre mevcut ve çoğu parametrenin de bir alternatifi var. Örnek olarak “-p” parametresine alternatif olarak “–payload” parametresi verilmiş.

-p, –payload: Bu parametre ile oluşturmak istediğiniz payloadı seçebilirsiniz. Örnek: “-p windows/meterpreter/reverse_tcp
-l, –list: Bu parametre ile listelemek istediğiniz modülleri listeleyebilirsiniz. Örnek: “-l payloads
-f, –format: Bu parametre ile payloadın çıkış formatını belirleyebilirisiniz. Örnek: “-f exe
-e, –encoder: Bu parametre ile oluşturduğunuz payloada encoder ekleyebilirisiniz. Örnek: “-e x86/shikata_ga_nai
-a, –arch: Bu parametre ile payloadın mimarisini belirtebilirsiniz. Örnek: “-a x86
–platform: Bu parametre ile payloadın çalışacağı platformu belirtebilirsiniz. Örnek “–platform android
-s, –space: Bu parametre ile payloadın maksimum boyutunu belirleyebilirsiniz.
-b, –bad-chars: Bu parametre ile payloadın içerisinde bulunmaması gereken karakterleri belirtebilirsiniz.
-i, –iterations: Bu parametre ile encoding işleminin sayısını belirtebilirsiniz.
-c, –add-code: Bu parametre ile payloada dışarıdan bir shellcode ekleyebilirsiniz.
-x, –template: Bu parametre ile payloadı farklı çalıştırılabilir bir dosya ile birleştirebilirsiniz.
-k, –keep: Bu parametreyi –x parametresi ile beraber kullanarak payloadımızın ayrı thread olarak çalışmasını sağlarız.

(Yukarıda sadece en çok kullanılan parametrelere değindim. Yani neden hepsi yok diye düşünmeyin.) Devam edelim. Öncelikle payloadları bir listeleyelim. Bunun için yukarıdaki parametrelerden de yola çıkarak “msfvenom -l payloads” komutumuzu kullanalım.

msfvenom

Görüldüğü gibi birçok platforma göre payload var. Ben ise buradan “windows/meterpreter/reverse_tcp” payloadını seçtim.

msfvenom

Şimdi örnek bir payload oluşturalım.

msfvenom

Gördüğünüz gibi sadece payloadımızı seçtik ve uzantıyı da exe yaptık başka hiçbir ayar vermedik ve payload default ayarlara göre oluşturuldu. Ancak bu oluşturduğumuz payload çalışmayacaktır çünkü formatı yanlış. Bizim bu payloadı direkt exe olarak çalıştırabilmemiz için “-f exe” parametresini kullanmamız gerekiyor. Gelin bu parametreyi ve birkaç parametreyi daha ekleyerek payloadımızı özelleştirelim.

msfvenom

Şimdi burada LHOST ve LPORT değerlerini kullandık zaten bunları ne olduğunu ve neden belirtmemiz gerektiğiniz önceki yazıda söylemiştik. Format olarak bu sefer raw yerine yerine exe kullandık ve dosyanın uzantısını yine exe yaptık.

Şimdi payloadımızı test etmeden önce bu payloadı dinlemeye almamız gerek. Peki, biz bunu nasıl yapacağız? Burada bize “multi/handler” exploiti yardım ediyor. Şimdi exploiti seçelim ve “show options” komutu ile ayarları görüntüleyelim.

msfvenom

Burada önemli olan parametreler LHOST ve LPORT parametreleri. Bu parametreleri girelim ve “exploit” komutumuz ile exploitimizi çalıştıralım.

msfvenom

Karşı sistemde dosyayı çalıştırdık ve bağlantı geldi. Gördüğünüz gibi msfvenom aracılığıyla payloadımızı oluşturduk ve başarılı sonuç aldık. Msfvenom’un birçok parametresi var bu parametreleri kullanarak farklı farklı payloadlar üretebilirsiniz.

Herkese İyi Çalışmalar.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir