Anti Anti-VMware

Zararlı yazılım analizi yapanlar için sanal makina yazılımları (vmware, virtualpc, virtualbox) en büyük nimettir. Hiç bir zaman işletim sistemi üzerinde çalıştırmayacağınız veya çalıştırma konusunda tereddüt ettiğiniz tehlikeli, zararlı veya şüpheli yazılımları hiç çekinmeden çalıştırarak işletim sistemi üzerinde neler olup bittiğini anlamanıza yardımcı olurlar.

Tabii bunu bilen art niyetli kişiler, işlerin bu kadar kolay olmasını hiç bir zaman istemezler bu nedenle zararlı yazılımlarının sanal makina içerisinde incelenmesini engellemek için zararlı kodlarına sanal makinayı tespit eden fonksiyonlar ekleyerek bu zararlı yazılımların işletim sistemi üzerinde çalışmasını engellerler. Tabii kod seviyesinde tersine mühendislik konusunda uzman bir analist bu engelleri kolaylıkla aşabileceği için eninde sonunda zararlı yazalımları analiz ederek mutlu sona ulaşabilecektir.

Peki ya kod seviyesinde tersine mühendislik konusunda uzman olmayan bir kişi böyle bir zararlı yazılım ile karşılaşınca ne yapabilir ? Tabiiki sistem seviyesinde tersine mühendisliğe başvurabilir.

Örnek olarak windows’un hesap makinasını internetten bulduğumuz ve sanal makina tespit etme özelliğine sahip olan herhangi bir şifreleme aracı (crypter) ile şifreleyip inceleyelim.

Clown Crypter adındaki şifreleme aracını indirdikten sonra çalıştırıp incelediğimizde hem sanal makina hem de sandbox tespit etme özelliklerine sahip olduğunu görebiliyoruz.

Anti Vmware

Calc.exe programını tüm sanal makina tespit etme seçeneklerini işaretleyerek şifreledikten sonra calc3.exe adı altında kayıt ederek VMWare içinde çalıştırdığımızda programın çalışmadığını görebiliyoruz. Peki teknik olarak bu tespit nasıl gerçekleştiriliyor ?

Çoğunlukla bu tür programlar arasında en çok kullanılan yöntemlerden biri kayıt defterindeki (registry) bazı değerleri kontrol etmek ve VMWare, Virtual veya VBOX anahtar kelimelerini aratmaktır. Bunu teyit etmek için Sysinternals’ın Process Monitor yazılımı ile calc3.exe programını hemen incelemeye başlayalım. Bilmeyenleriniz için kısa bir açıklama, Process Monitor yazılımı, incelenen programın dosya sistemi üzerinde gerçekleştirdiği işlemlerden, kayıt defterinde açtığı ve incelediği tüm anahtarları ve değerleri görebilmenizi sağlayan faydalı bir eserdir.

Calc3.exe programını Process Monitor ile incelediğimizde kayıt defterinde kontrol ettiği anahtar hemen dikkatimizi çekiyor.

Anti Vmware

İlgili anahtarda geçen VMWare ile Virtual anahtar kelimelerinin değiştirdiğimizde (VMWare -> MWare, Virtual -> irtual) ve programı çalıştırdığımızda programın başarıyla çalıştığını görebiliyoruz.

Yukarıdaki yöntemi kullanan örnek fonksiyon:


Public Function IsVirtualPCPresent() As Long
  Dim lhKey       As Long
  Dim sBuffer     As String
  Dim lLen        As Long

  If RegOpenKeyEx(&H80000002, "SYSTEM\ControlSet001\Services\Disk\Enum", _
     0, &H20019, lhKey) = 0 Then
      sBuffer = Space$(255): lLen = 255
      If RegQueryValueEx(lhKey, "0", 0, 1, ByVal sBuffer, lLen) = 0 Then
          sBuffer = UCase(Left$(sBuffer, lLen - 1))
          Select Case True
              Case sBuffer Like "*VIRTUAL*":   IsVirtualPCPresent = 1
              Case sBuffer Like "*VMWARE*":    IsVirtualPCPresent = 2
              Case sBuffer Like "*VBOX*":      IsVirtualPCPresent = 3
          End Select
      End If
      Call RegCloseKey(lhKey)
  End If
End Function

Art niyetli kişiler tarafından sanal makina tespiti için kullanılan diğer bir yöntem ise VMware Backdoor I/O Port. VMWare Backdoor ? Evet aynen öyle, VMWare, sanal makina ile port 0x5658 bağlantı noktasından haberleşmek için özel olarak tasarlanan bir arka kapı kullanmaktadır. Bu arka kapıda kullanılan bağlantı noktasının sahte olduğunu ayrıca belirtmek isterim.

Art niyetli kişiler tarafından kullanılan örnek fonksiyon:


bool IsInsideVMWare()
{
     bool rc = true;
     __try
    {
          __asm
    {
    push edx
    push ecx
    push ebx
    mov eax, 'VMXh'
    mov ebx, 0 // any value but not the MAGIC VALUE
    mov ecx, 10 // get VMWare version
    mov edx, 'VX' // port number
    in eax, dx // read port
    // on return EAX returns the VERSION
    cmp ebx, 'VMXh' // is it a reply from VMWare?
    setz [rc] // set return value
    pop ebx
    pop ecx
    pop edx
    }
}
__except(EXCEPTION_EXECUTE_HANDLER)
{
    rc = false;
}
   return rc;
}

Neyseki buna karşı VMWare üzerinde ufak bir konfigürasyon değişikliği yaparak VMWare’in tespit edilmesini önleyebilirsiniz. Bunun için yapmanız gereken sanal makinaya ait olan VMX dosyasına aşağıdaki parametreleri eklemek olacaktır.

  • isolation.tools.getPtrLocation.disable = “TRUE”
  • isolation.tools.setPtrLocation.disable = “TRUE”
  • isolation.tools.setVersion.disable = “TRUE”
  • isolation.tools.getVersion.disable = “TRUE”
  • monitor_control.disable_directexec = “TRUE”
  • monitor_control.disable_chksimd = “TRUE”
  • monitor_control.disable_ntreloc = “TRUE”
  • monitor_control.disable_selfmod = “TRUE”
  • monitor_control.disable_reloc = “TRUE”
  • monitor_control.disable_btinout = “TRUE”
  • monitor_control.disable_btmemspace = “TRUE”
  • monitor_control.disable_btpriv = “TRUE”
  • monitor_control.disable_btseg = “TRUE”

VMWare üzerinde zararlı yazılım incelemek isteyenler için engel teşkil edebilecek bu iki yöntemi aşmanızı sağlayan bu yazı umarımki faydalı olmuştur. Sanal makina tespit töntemlerinin bu iki tanesi ile sınırlı kalmadığını hatırlatır, bir sonraki yazıda görüşmek dileğiyle herkese iyi haftasonları dilerim…

image_pdfShow this post in PDF formatimage_printPrint this page
9 comments
  1. İşin en güzel tarafı önceden pc sime virus bulaşmasın diye ödüm kopardı şimdi virus bulimde biraz incelim diye resmen virüs arıyorum nette :) Evt Profesyonel anlamda tabiki meşakkatli :) Hobi olarak peid ollydebug quickunpack ve trafik kaydeden bir programla bile çok şey yapılabiliyor.Herkese tavsiye ederim :))

  2. Vipre AV nerden çıktı şimdi başarılı bir yazı olmuş tebrikler:) anti ollydebug var onu nasıl asıcaz.

    1. Debugger’ın varlığını gizlemek için Ollydbg için hazırlanmış bir çok plugin var Ali. Örnek olarak HideDebugger pluginine göz atmanı tavsiye ederim.

  3. Vipre AV yeni bir teknoloji kullanıyor. Packli dosyaları unpack edip orjinal kodları tarıyor. Bunun neresi yeni? Çoğu AV bunu yapabiliyor zaten!.. Evet çoğu AV bunu yapıyor ancak sitem üzerinde ve yavaş..

    Vipre AV, CPU sanallaştırma teknolojisi ile ring-1 gerçekleştiriyor. Bilg. konfigürasyonum neddeni ile test etme imkanım olmadı ancak dediklerine görede bu işlemi sistemden bağımsız ring-1 de yaptığı için hızlı ve daha güvenli imiş…

    BluePill’de ring-1’de çalışan bir zararlı idi ve ring-1 de çalışmasına rağmen sistem üzerinden tespit edebilmişti J.Rutkowska…Hatta bununla ilgili araştırmalarını ve gerekli kodlarıda yayınlamıştı bloğunda.

    Vipre’de ki CPU sanallaştırma ile zararlı unpak edilirken çalıştırılmadığı için anti-virtualizasyon’u tespit etmek için anti-VMware, anti-vBox..gibi bir kod eklenmesi işe yaramayacaktır. Ancak CPU sanallaştırmanın kendine has hatalar içermediğide kesin değil…

    Bu noktadan hareketle Vipre’nin yada bu teknolojiyi kullanacak diğer uygulama yada sistemlerin ne kadar güvenilir olukları muamma… Bende merak ediyorum açıkçası ve bu konuda çalışmalar görmek güzel olurdu tabi ancak yeni bir konu ve yeni bir dönemin başlangıcı olduğu için bu konuda çok fazla bilenmeyen var…

    1. Bilgilendirme için teşekkürler. Memleketimizde art niyetli kişiler yazılım tabanlı sanallaştırma tespiti üzerine daha çok ağırlık verdikleri için (ki oda ağırlık sayılmaz, kopyala yapıştırdan ibaret) sanıyorumki henüz donanım tabanlıya sıra gelmedi. Vipre’ye akşam göz atayım.

Leave a Reply

Your email address will not be published. Required fields are marked *

You May Also Like
Read More

e-Devlet Hacklendi mi?

If you are looking for an English version of this article, please visit here. Öncelikle yazının sonunda söyleyeceğimi başta söyleyeyim, “Hayır, hack-len-me-di!” Peki bu durumda vatandaş olarak rahat bir nefes alabilir misiniz ? Maalesef hayır. Bunun sebebini de yazının devamında okuyabilirsiniz. Zaman zaman hortlayan “e-Devlet Hacklendi!”, “e-Devlet verileri çalındı!”, “85…
Read More
Read More

LinkedIn Dolandırıcıları

If you are looking for an English version of this article, please visit here. Uzun yıllardan beri sosyal ağları ve medyayı etkin kullanan bir siber güvenlik araştırmacısı olarak bağlantılarım arasında yer alanlarınız özellikle hafta içi LinkedIn ve Twitter üzerinden okuduğum ve beğendiğim siber güvenlik makalelerini, haberleri paylaştıklarımı farkediyorlardır. Twitter hesabımın…
Read More
Read More

WhatsApp Dolandırıcıları

If you are looking for an English version of this article, please visit here. Başlangıç Son günlerde hemen hemen WhatsApp uygulaması kullanan herkesi rahatsız eden yabancı cep telefonu numaralarından gelen çağrılardan, mesajlardan ben de yakın zamanda nasibimi aldım ve tabii ki diğer dolandırıcılıklarla ilgili yazılarımda (Kripto Para Dolandırıcıları, LinkedIn Dolandırıcıları,…
Read More
Read More

Profilime Kim Baktı?

If you are looking for an English version of this article, please visit here. 23 Eylül 2020 tarihinde Twitter’da siber güvenlik ile ilgili haberlere göz gezdirirken gündem olan başlıklarda #profilimekimbaktı etiketi dikkatimi çekti. Beni oldukça şüphelendiren bu etiketin gündem olmasının arkasında yatan sebebi bulmak için bu etiketi paylaşan hesaplara göz…
Read More