VirtualBox Detection, Anti-Detection

Berhan Bingöl
4 min readAug 20, 2021

Bu yazıda anlatacağım konu ise sanal makinaya yüklenen bir malware veya belli başlı programların kendisini sanal bir ortamda olup olmadığını nasıl tespit etiğini ve buna karşı daha sağlıklı bir ortam için biz ne yapmalıyız onu anlatacağım.

Virtual Machine Detection

Kısaca açıklamak gerekirse bir yazılımın kendisini fiziksel makinamı yoksa sanal makine içerisinde mi çalıştığını tespit etme işlemidir.

Bence en iyi tespit etme programlarından biri Pafish programıdır.

Bir VM içerisinde Pafish çalıştırdığımız zaman aşağıdaki gibi bir görsel ile karşılaşabiliriz. Bu ne demek oluyor diye sorarsak: Pafish kendisini bir sanal ortam içerisinde olduğunu anladığı anlamına geliyor.

Ben VirtualBox kullandığım için ona karşı Anti-detection yöntemlerini uygulayacağım.

Pafish üzerinde yakalanan yerlerden bizi ilgilendiren yer ise Virtualbox detection kısmıdır.

Burada yapacağımız işlem aslında bu yakalanan kısımlardan kaçmak olacak.

Bu kaçma işlemini yapabilmemiz için nasıl yakalandıklarını anlamamız lazım.

Pafish’in kaynak kodlarını inceleyelim.

İlk olarak main.c kodunu inceleyelim.

Yukarıdaki kod yapısı sadece döndürülen değerleri yazdıran bir mimarisi olduğunu görüyoruz. Asıl vbox sorgularını yapan kaynak kodumuz ise vbox.c dosyasıdır.

vbox.c kodunu inceleyelim.

İncelediğimiz bu kodda yapılan sorguları görüyoruz.

Basit bir örnek sorgu ise şöyle

Bios tarihini sorgulayan kod bloğu:

Virtualbox ile kurulan ortamların içerisinde gelen bazı sistem dosyalarını sorgulayan kod bloğu:

Aşağıdaki görselde ise Registry key’lerini sorgulayan kodları görüyoruz.

Peki biz bu sorguları nasıl atlatacağız. Ben bunun cevabını araştırıyorken karşıma 3 adet proje çıktı.

Projeler:
1.) github.com/hfiref0x/VBoxHardenedLoader
2.) github.com/d4rksystem/VBoxCloak
3.) github.com/JayMontana36/vBoxSysInfoMod

İlk proje yaklaşık 3-4 bin satırlık bir C kodundan oluşuyor ve bunu uyguladığımız zaman ise 3 adet yakalandığımız yer var.

İkinci ise runtime çalışan bir Powershell scripti totalde 300 satırlık bir kod. Bunu denediğimiz zaman ise vbox deteciton kısmında 4 adet yerden yakalanıyor.

Üçüncüsü ise VBoxManager ile VM’i modify ediyor ama yazan arkadaş yeteri kadar modify etmemiş o yüzden hiç bir yerden geçemiyor.

Ben nasıl hepsinden geçtim onu anlatayım.

VirtualBox Anti-Detection

İlk olarak makinamızı kuralım.

Eğer AMD-V destekliyorsa onu da işaretleyin.

Burada benim yapacağım yamalama SATA-AHCI içindir.

VM ortamımız kurduğumuza göre şimdi kapatalım ve benim yöntemime göre yapalım .

İçerisinde pafish çalıştırdıktan sonra yakalanan öğelerimiz ise şu şekilde.

Sıra bunları kapatmakta.

https://github.com/xyafes/VBoxAntiDetection

İlk olarak VM’i kapatalım ve static.bat dosyasını çalıştıralım.

Devam ettiğimiz anda kendisi VBoxManager ile makinamızı modify edip fazladan fake data girecek ve makinamızı başlatılacak.

Örnek fake data bilgisi:

Devam edelim.

VM çalıştıktan sonra içerisine dynamic.ps1 dosyasını yüklüyoruz.

dynamic.ps1 dosyası ise powershell kodudur. Pafishin yakaladığı registry dosyalarını random şekilde yeniden adlandırıyor.

Powershell’i yönetici olarak çalıştırdıktan sonra “dynamic.ps1 -all” çalıştırılmalıdır.

Policy hatası alırsanız şu komutları deneyin: ”Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass“

Eğer kırmızı şekilde hata alırsanız Guest add’i olmadığı için alıyorsunuzdur.

Kodumuz çalıştı şimdi VM içerisinde pafish çalıştıralım.

Gördüğünüz gibi sadece 1 adet kontrolden yakalandık onu da kapatmak için Device Manager > Other Devices > Base System Device Uninstall edelim.

Tekrardan Pafish çalıştıralım.

Ve işimiz bitmiştir.

VM her açılıp kapatıldığında tekrardan dynamic.ps1 çalıştırılmalıdır.

--

--

No responses yet