“Varsayılan Yazıcı İzleyici” Olarak Kaydediliyor Ama Aslında O Kötü Amaçlı Bir Yükleyici. Deprimon ile Tanışın.
“Varsayılan Yazıcı İzleyici” Olarak Kaydediliyor Ama Aslında O Kötü Amaçlı Bir Yükleyici. Deprimon ile Tanışın.
27.11.2019
ESET araştırmacıları, değişik ama hiç görülmemiş bir yükleme tekniğine sahip, yeni bir yükleyici keşfettiler.
DePriMon, geleneksel olmayan birçok teknik kullanan, çok sayıda aşamaya sahip ve kötü amaçlı bir yükleyicidir. Kötü amaçlı yazılım, kalıcı olmak için yeni bir yerel bağlantı noktası izleyici olarak kaydolur; bu, MITRE ATT&CK bilgi tabanında “Bağlantı Noktası İzleyiciler” tekniği altında yer alan bir hiledir. Kötü amaçlı yazılım "Windows Varsayılan Yazıcı İzleyici" adını kullandığı için buna DePriMon adını verdik. Karmaşıklığından ve modüler mimarisinden dolayı, bunun bir framework olduğunu düşünüyoruz.
Telemetrimize göre, kötü amaçlı DePriMon yazılımı en az Mart 2017'den beri aktif durumda. DePriMon, Orta Doğu'da düzinelerce bilgisayarda ve Orta Avrupa’da faaliyet gösteren özel bir şirkette algılandı.
Komuta ve kontrol sunucuları olarak kullanılan etki alanı adlarından bazılarında Arapça sözcükler yer alıyor ve bu da, bölgeye özgü bir kampanya olduğuna işaret ediyor. Ancak DePriMon, hedeflerinin coğrafi dağılımının ötesinde bir dikkati hak ediyor: bu, çok sayıda şifrelemenin düzgün bir şekilde kullanıldığı, dikkatli yazılmış kötü amaçlı bir yazılım.
Korunmak isteyenlerin bu tehdide karşı güvende kalmalarına yardımcı olmak amacıyla, yükleyicinin kendisine odaklanarak bu yeni keşfedilen kötü amaçlı yazılımı kapsamlı bir şekilde analiz ettik. Burada "ilk aşama" adını vereceğimiz başlangıç aşamalarını kaçırdığımız için ilk dağıtım ve risk vektörlerini bilmiyoruz. Saldırılarda ne tür son veri yükü kullanıldığı da yanıtlanmayı bekleyen bir başka soru.
Bununla birlikte birkaç olayda, DePriMon'un kısa bir zaman diliminde aynı bilgisayarlarda kötü amaçlı ColoredLambert yazılımı ile birlikte algılandığı unutulmamalıdır. ColoredLambert yazılımı siber casusluk grubu Lamberts (Longhorn olarak da bilinir) tarafından kullanılıyor ve CIA'in yazılım yetenekleri ile ilgili Vault 7 sızıntısı ile bağlantılı. Symantec ve Kaspersky'de görev yapan meslektaşlarımız, analizlerini Nisan 2017'de yayımladılar.
Teknik analiz
İkinci aşama
DePriMon'un ikinci ve üçüncü aşamaları, kurbanın diskine birinci aşama tarafından teslim edilir. İkinci aşama kendisini kurar ve şifrelenmiş ve sabit kodlanmış bir yol kullanarak üçüncü aşamayı yükler. Olası açıklamalardan biri, saldırının ilk aşaması gerçekleştikten sonra yapılandırılmış olmasıdır.
Anlatılan yükleme tekniği benzersizdir. İlke olarak, MITRE ATT&CK sınıflandırmasında, hem Kalıcılık hem de Ayrıcalık Artırma taktikleri altında, “Bağlantı Noktası İzleyiciler” olarak tanımlanıyor. DePriMon'un, resmen açıklanan bu tekniği kullanan ilk kötü amaçlı yazılım olduğuna inanıyoruz.
İkinci aşama, şu kayıt defteri anahtarı ve değerini yaratarak üçüncü aşama DLL'ini bağlantı noktası izleyici olarak kaydeder:
HKLMSYSTEMCurrentControlSetControlPrintMonitorsWindows Default Print Monitor
Driver = %PathToThirdStageDLL%
Bu kayıt defteri anahtarını yaratmak için yönetici hakları gereklidir.
Sistem çalıştırıldığında, kayıtlı DLL spoolsv.exe tarafından SYSTEM ayrıcalıkları ile birlikte yüklenir ve bu, yöntemin benzersizliği ile bir araya geldiğinde, bu tekniği saldırganlar için çok etkili bir hale getirir.
İkinci aşama %system32% klasöründe üçüncü aşama DLL dosyası ile aynı ada sahip ama “.dll” uzantısı olmayan bir dosya olup olmadığını düzenli aralıklarla kontrol eder. Bu dosya, kaldırma tetikleyicisi görevi görür. DePriMon bu dosyayı bulursa ikili dosyaların üzerine yazıp daha sonra bunları silerek hem bu dosyayı hem de kendi bileşenlerini güvenli bir şekilde kaldırır.
Üçüncü aşama
DePriMon'un operatöründen ana yükleri indirmekle sorumlu üçüncü aşama da bazı ilginç teknikler kullanır.
Komut ve kontrol iletişimi için WinHTTP ya da WinInet gibi yaygın API'ler yerine, SSL/TLS'nin Microsoft uygulaması, Secure Channel'ı kullanır. Kötü amaçlı yazılımın bunu kullanması gibi yapılandırması da oldukça karmaşıktır. Son olarak, yazılımın sahiplerinin şifreleme süreci üzerinde çok çalışmış olmaları, kötü amaçlı DePriMon yazılımının analiz edilmesini çok daha zor hale getiriyor.
Komut ve Kontrol İletişimi
DePriMon TLS üzerinde güvenli iletişim kurar ama bunu kötü amaçlı yazılımdaki tipik senaryoda olduğu gibi yüksek bir düzeyde yapmaz. Bağlantı bir Windows soketi ile başlatılır ve Negotiate / NTLM SSP ile birlikte yetkili bir Güvenlik Destek Sağlayıcısı Arayüzü (SSPI) oturumunun başlatılmasıyla sürdürülebilir. Bundan sonra DePriMon, Schannel'i kullanır.
SSPI, yapılandırma dosyasındaki belirli bir işarete göre kullanılır veya kullanılmaz ve makinenin yerel vekil sunucu ayarlarını kullanabilir. Uygulama Microsoft tarafından sağlanan bu örneğe benzer.
Kötü amaçlı yazılımın Schannel aracılığıyla TLS uygulaması, Coast Research & Development tarafından sağlanan bu örneğe benzer. Buna kimlik bilgilerinin oluşturulması, istemci ile el sıkışılması ve sunucu sertifikasının doğrulanması dahildir.
Görsel 1. Hex-Rays kaynak koda dönüştürücü tarafından sağlanan bilgiye göre SSPI uygulamasının bölümü
İletişim kurulduktan sonra, üçüncü aşama her seferinde mesajları şifreler ve şifrelerini açar.
Yapılandırma
DePriMon'un üçüncü aşamasının yapılandırma verileri 27 üyeye sahiptir ve bu, bir yükleyici için alışılmadık derecede yüksek bir sayıdır. AES-256 ile şifrelenir ve ikili dosyaya yerleştirilir.
İlk çalıştırmada, DePriMon'un üçüncü aşaması (yükleyicinin kendisi) Anahtar 2 (Tehlike Göstergeleri bölümüne bakın) ile yapılandırma verilerinin şifresini açar, bunları Anahtar 3 ile şifreler ve şifrelenen yapılandırma dosyasını geçici bir klasörde depolar. Yapılandırma dosyasının adı şu süreç ile oluşturulur:
İkinci bayt ile başlayarak Anahtar 2'nin değeri temel 36'da bir rakama dönüştürülür ama özel alfabe “abc…xyz012…789” kullanılarak şifrelenir. Yapılandırma dosyasının uzantısı “.tmp'dir”.
Yapılandırma dosyası yolu örneği: %temp%rb1us0wm99sslpa1vx.tmp.
İkinci çalıştırmada, yükleyici yapılandırma verilerini kendisinden değil dosyadan okur. Bu şekilde, saldırgan yapılandırmayı kolayca güncelleyebilir.
Güvenli tasarımı sayesinde, yapılandırma bellekte şifrelenmemiş biçimde kalmaz. Yükleyici, yapılandırma dosyasının bazı öğelerini kullanması gerektiğinde yapılandırma dosyasının şifresini açar, ilgili öğeyi alır ve dosyayı tekrar şifreler.
Bu tasarım, kötü amaçlı yazılımın birincil işlevi olan Komut ve Kontrol iletişimini bellek analizlerine karşı korur.
Resim 2. Kötü amaçlı DePriMon yazılımının yapılandırma dosyasının şifresini açma, birkaç öğesini yerel değişkenlere kaydetme ve dosyayı tekrar şifreleme yöntemini gösteren; Hex-Rays kaynak koda dönüştürücü tarafından tarafından sağlanan kod parçası.
Yapılandırma dosyasındaki ilginç özellikler şunlardır:
- Kullanıcı adları için iki giriş ve parolalar için iki üye (makinede ayarlıysa vekil sunucu için). Bu, saldırganların kimlik bilgileri ile birlikte bir vekil sunucu aracılığıyla saldırılarını artırmaya hazırlandıkları anlamına geliyor. Ancak bu ayrıntıların çalınmasına şahit olmadık. Bu nedenle, saldırının diğer başka aşamalarında gerçekleşiyor gibi görünüyor.
- Üç Komut ve Kontrol sunucusu için üç giriş (her biri farklı bir durumda kullanılır).
- Üç bağlantı noktası için üç giriş (her biri farklı bir durumda kullanılır).
- Yükleyicinin bağlantıyı olası bir vekil sunucuya sahip Güvenlik Destek Sağlayıcı Arayüzü (SSPI) aracılığıyla mı, yoksa sadece bir soket (daha sonra açıklanacak) aracılığıyla mı başlatacağını gösteren işaretler.
Kötü amaçlı yazılım örneklerinden çıkarılan Komut ve Kontrol sunucularının yanı sıra, bu kötü amaçlı yazılımla ilgili olması olası ek etki alanları ve sunucular da saptadığımız unutulmamalıdır.
Şifreleme
Kötü amaçlı yazılım farklı amaçlara yönelik üç farklı 256 bitlik anahtara sahip AES şifreleme algoritmasını kullanır (bu anahtarlar Tehlike Göstergeleri bölümünde listelenmektedir).
Anahtar 1: Kötü amaçlı yazılımdaki çeşitli hassas dizelerin şifresini açmak için.
Anahtar 2: Bellekteki yapılandırma verilerini şifrelemek ve şifrelerini açmak için (daha önce açıklandığı gibi). Bu anahtar üçüncü anahtarı üretmek için de kullanılır.
Anahtar 3: Diskteki yapılandırma dosyasını şifrelemek ve şifresini açmak için.
Bu anahtar sabit kodlanmamıştır ama daha sonra şifrelenen, 32 bitlik bir dizilim kullanılarak türetilir. Bu dizilim şu şekilde oluşturulur: İlk 4 bayt sistem sürücüsünün birim seri numarasıdır ve kalan 28 bayt 5 ila 32 arasındaki değerleri içerir. Bu dizilim Anahtar 2 ile şifrelenir ve sonuçta ortaya Anahtar 3 çıkar.
Sonuç
DePriMon, geliştiricilerinin mimarisini oluşturma ve önemli bileşenlerini tasarlama hususlarında çok çaba harcadığı, sıra dışı derecede gelişmiş bir yükleyicidir.
DePriMon belleğe indirilir ve yansıtıcı DLL yükleme tekniği kullanılarak doğrudan bellekten DLL olarak yürütülür. Asla diskte depolanmaz. Çok sayıda ilginç öğe içerir, şaşırtıcı derecede kapsamlı bir yapılandırma dosyasına sahiptir, şifrelemesi düzgün uygulanmıştır ve komuta ve kontrol iletişimini etkili bir şekilde korur.
Sonuç olarak DePriMon, veri yükü indirip çalıştıracak ve bu süreçte sistem ve kullanıcısı ile ilgili bazı temel bilgileri toplayacak şekilde tasarlanmış güçlü, esnek ve kararlı bir araçtır.