Halil Filik
  • 23 May 2021
WMI For Malwares

ZAYOTEM

WMI Nedir

WMI (Windows Management Instrumentation, Windows Yönetim Araçları); Windows işletim sistemlerinde hemen hemen her nesnenin kontrol edilebilmesini sağlayan, işletim sistemindeki operasyonları ve yönetim işlevlerini gerçekleştirebilen bir teknolojidir. Tüm bu işleri bünyesindeki 900’e yakın sınıf sayesinde gerçekleştirebilir. Bu sınıfların her birinde çeşitli amaçlara yönelik olarak hazırlanmış fonksiyonlar bulunmaktadır.

WMI Sorgusu Nedir

Sisteminizde bulunan bilgisayarların Donanımsal ya da Yazılımsal bilgilerine ulaşmak ve ulaşılan bu değerlerle müdahalede bulunmak için kullanılan sorgulardır

En basit örnek olarak bilgisayarda process çalıştırabilir ya da kapatabiliriz.

CIM Nedir

CIM (Common Information Model, Ortak Bilgi Modeli). bir işletmenin/ağın/sistemin farklı bölümleri hakkında bilgi içeren genişletilebilir, nesne yönelimli bir veri modelidir. 3 farklı sınıfı vardır.

CIM Core

Çekirdek sınıflar, tüm yönetim alanları için geçerli olan yönetilen nesneleri temsil eder. Bu sınıflar, yönetilen sistemleri analiz etmek ve tanımlamak için temel bir wordlist barındırır.

__Parameters ve __SystemSecurity sınıfları, çekirdek sınıfların örnekleridir.

WMI Common

Ortak sınıflar, belirli yönetim alanları için geçerli olan nesneleri temsil eder. Bununla birlikte, ortak sınıflar belirli bir uygulamadan veya teknolojiden bağımsızdır. Ortak sınıflar, çekirdek sınıfların bir uzantısıdır. CIM_UnitaryComputerSystem sınıfı, ortak bir sınıf örneğidir.

Kısacası belirli alanları yöneten çekirdek gibi davranan sınıflardır.

CIM Extented

Genişletilmiş sınıflar, bazı özel eklemeler ile ortak sınıfları temsil eder.

Örnek olarak, Çekirdek Sınıf: Etçiller, Ortak Sınıf: Kedigiller, Genişletilmiş Sınıf: Kaplan

Genişletilmiş bir sınıf tipik olarak UNIX veya Microsoft Win32 ortamı gibi belirli bir platform için geçerlidir. Win32_ComputerSystem sınıfı, genişletilmiş bir sınıf örneğidir ve sadece Windows’a özgüdür. Bizi asıl ilgilendiren kısım bu sınıflardır.

Neden WMI kullanıyoruz?

Genellike sistem yöneticileri, sistemi kontrol altına almak, belirli işleri otomatize etmek ve uzaktan sistemi kontrolü için kullanırlar.

Peki Zararlı Yazılımlar neden WMI kullanıyor

Aynı iş farklı amaç. Bazı örnekleri ise; Uzaktan sistemi kontrol etmek, güvenlik ayarlarını değiştirmek, sistem hakkında bilgi toplamak, kullanıcı ve grup yetkilerini değiştirmek, sistem ayarlarını bozmak veya değiştirmek, processleri zamanlayarak istenilen zamanda çalıştırmak, kod çalıştırmak

WQL Nedir

WMI Query Language (SQL For WMI), Bildiğimiz SQL mantığında çalışan bir sorgu dilidir.

Örnek bi WQL sorgusu: SELECT * FROM Win32_Service WHERE State='Stopped'

WMI Sorgu Türleri

Senkron sorgu: küçük sorgular veya yerel bir sisteme yapılan sorgular için iyidir.

Asenkron sorgu: Asenkron sorgular daha karmaşıktır ve daha düşük düzeyde güvenlik sağlar, ancak genellikle sistem performansını iyileştirir.

Senkron Sorgu

Bu sorgu türü sadece 1 adet interface gerektirir. Bu nedenle de asenkron sorguya göre kullanması kolaydır. Fakat senkron sorgu, uygulama bir network üzerinden büyük sorgular yaparken kilitlenmesine sebep olabilir. Daha çok küçük sorgular için tavsiye edilir.

Asenkron Sorgu

Asenkron sorgu, kodlamak zor olsa da, sistem veya ağ performansının büyük bir veri grubunun sorgulanmasından etkileneceği durumlarda tercih edilen sorgu türüdür. Fakat düzgün ayarlanmadığı zaman performans artışı yerine düşüş yaşanabilir. Kullanmak için programlama dillerini belirli bir seviyede bilmek gerekir.

Senkron vs Asenkron

Örnek kullanım alanları;

Senkron sorgu: Bir Trojan zararlısı, zararlı linkten payload indirmek için senkron sorgu kullanması daha mantıklıdır.

Asenkron sorgu: Bir Worm zararlısı, bağlı olduğu ağdaki sistemlere bulaşmak için bu sorguyu kullanırsa hem daha verimli hem de sıkıntı yaşama ihtimalini düşürür.

Bir Zararlının WMI Kullandığının En Belirgin Göstergesi

Şüphelendiğimiz bir zararlı, wmic.exe’ye şüpheli bir parametre gönderip çalıştırıyorsa WMI kullandığını söyleyebiliriz.

Örnek olarak: wmic.exe shadowcopy delete parametresi ile zararlı, sistemde ki shadow dosyaları silebilmektedir.

Zararlı yazılımların kullandığı bazı WMI teknikleri

Zararlılar, Win32_ComputerSystem sorgusunu yapıp dönüş değerine bakarak kendisinin Vmware, VirtualBox gibi sanallaştırma ortamlarında çalıştıklarını anlayabilirler

Miner Downloader zararlısı, wmi sorgularını kullanarak internete bağlı olup olmadığını anlayabilmektedir.

winmgmts:{impersonationLevel=Impersonate}!\\.\root\CIMV2:Win32_PingStatus.Address= ‘www.google.com’

Not: impersonationLevel, WMI’ya bağlanmak için kullanılacak seviyeyi belirtir. Impersonate seviyesi WMI sorguları yapmak için önerilen seviyedir.

WMI Sorgularını çalıştırma

WMI sorgularını bir çok şekilde çalıştırabiliriz; Powershell, Powershell Script, VBScript, C/C++, Python, WMI Test Tool (WBEMTest.exe), Third Party Services (SolarWinds vs.)