Dridex
Dridex
Giriş
2015 yılından beri faaliyette olan Dridex zararlısı 2019 yılının en popüler zararlılarından biri oldu. Bulaştığı sistemdeki parolaları çalmaya ve keyloggerlık görevi yapan Dridex, ilk çıktığı günden beri farklı mekanizmalar kullanarak yayılmaya devam etti. Diğer zararlılar gibi Dridex’in da en çok kullandığı yayılma yolu oltalama mailleri oldu.Özet
Bu analiz 2015 yılından beri aktif olan Dridex zararlı yazılımının neler yaptığını anlatmaya yöneliktir. Yazıda Dridex’in nasıl yayıldığını ve sistem üzerinde neler yaptığını bulabilirsiniz. Kısaca bir özetlemek gerekirse, zararlı oltalama mailleriyle yayılıp kurbanlarına iletiliyor. Ekte bulunan zararlı ofis dosyası açıldığında içerisinde bulunan makro kod çalışıyor. Bu makro içersinde gömülü olarak bulunan payload’ı xsl dosyasına yazarak kaydediyor. Wmic üzerinden çalıştırılan bu xsl dosyası Dridex zararlısını indirip çalıştırıyor. Zararlının amacı parola çalıp kontrol sunucusuna yollamak.Temel Bilgiler
Bu bölümde analiz edilen dosyalar ile ilgili temel bilgiler verilmektedir.
CatPhoto.doc
|
|
MD5
|
53283250bed5584a0068fd07fde93452
|
SHA-1
|
B166ffd268c7532f68a53adae7e855f864b0b1fc
|
SHA-256
|
D29bfbc0c7420014962291a416b01637fbaa8f774e0e31e143a392e84c244bcf
|
Dosya
Türü
|
Office
Open XML Document
|
Dosya
Boyutu
|
67.01
KB
|
Firefox.exe
|
|
MD5 | bbdc437a8908e32b7f1243f819dc26b0 |
SHA-1 | 5f8aa92d80d9161c9a156fa93266db2490928371 |
SHA-256 | 08a00c9be7dd2e64e9b0f6ea85f159275c913faf0aad51884a1eeab3822af246 |
Dosya Türü | Win32 EXE |
Dosya Boyutu | 204 KB |
Analiz
Oltalama mailinin ekinde bulunan zararlı ofis dokümanı ile analize başlayalım. Ofis dokumanlarını analiz etmek için genellikle oledump ve olevba ile içerisine baktıktan sonra debug etmek için herhangi bir ofis uygulamasına geçiyorum.Oledump ile baktığımızda A7’de bulunan NewMacros isimli makro dikkatimi çekiyor.
Olevba aracı ile makroyu analiz ediyorum. Bütün makroyu önümüze seriyor. Decode parametresi ile bulduğu stringleri decode ediyoruz.
Çıktıdan şu sonuçlara ulaşabiliriz:
- AutoOpen fonksiyonu doküman açılınca otomatik olarak
çalışır.
- Shell fonksiyonu herhangi bir komut çalıştırılabilir.
- Write fonksiyonuyla dosya yazabilir.
- StrReverse, Chr, hex ve base64 kullanımıyla bazı
stringleri gizlemeye çalışıyor olabilir.
Makronun analizine geçelim. Makroya baktığımızda obfuscate edilmiş olduğunu görüyoruz. Analizi zorlaştırmak için gereksiz fonksiyonlar, gereksiz değişkenler, takip etmesi zor değişken isimleri görüyoruz.
Makroyu incelemeye başladığımızda Environ fonksiyonunu kullanarak Public klasörünün yolunu tutuyor.
Oluşturulacak dosyanın konumu ve adı belirtiliyor. Dosya public dizini altında tf8yaMMf.xsl olarak yazılacak.
Dosya oluşturulup yazıldığını görüyoruz. Burada dosyanın içine yazılacak string’i oluştururken zararlının yazarı farklı bir yöntem izlemiş.
Payload’ı oluşturmak için dokümanın içerisine UserForm9 isminde bir form oluşturmuş.
Bu formun kullanımına bakalım. UserForm9 objesi oluşturulup içerisindeki Text alınıyor.
UserForm9’un içerisindeki Text’e baktığımızda ilgimizi çeken şeyler görüyoruz. Aşağıda bulunan ilk görsel sadece stringin başını oluşturuyor. Bütün stringi başka yere taşıdığımızda daha anlamlı gelmeye başlıyor.
Aşağıdaki ekran görüntüsüne baktığımızda ip adresi ve bazı fonksiyonların ters olarak yazıldığını görüyoruz.
Payloadımız ters halde UserForm9’un içerisinde bulunuyor. Makro çalışmaya devam ettiğinde payload’ı ters çevirip xls dosyasının içerisine yazıyor.
Payload xls dosyasına yazıldıktan sonra artık bu xls dosyasını çalıştırma vakti. Burada ise wmic komutu devreye giriyor. En son çalışan komut: “wmic os get /format:"C:\\\\Users\\\\Public\\tf8yaMMf.xsl”. Bu komut ile xsl dosyası çalıştırılıyor.
Çalışan xsl dosyasını bakalım. 2 tane fonksiyonumuz var. İlk çalışacak olan fonskyion select parametresi ile belirtilen wzC8 fonksiyonu.
İlk başta ActiveXObject objesi oluşturularak PIZj9 değişkeninde bulunan adrese GET isteği yollanıyor. Dönen yanıta göre zararlı işlemler devam ediyor.
Eğer 200 kodu ve bütün data alındıysa (readystate’in 4 olması) bloğun içine giriliyor. Burada da JYYLFO1P fonksiyonu 5 parametresiyle çağırılıyor. Bu numaralar sayesinde fonksiyonun içerisinde bulunan listeden istediği fonksiyonu çağırabiliyor. Mesela bu örnekte 5, savetofile fonksiyonunu çağırıyor.
wzC8 fonksiyonuna verilen parametreyi ve “savetofile” fonksiyonuyla beraber “sheet.pdf”dosyası “YoUAMLhs.exe” olarak kaydediliyor. Shell komutu ile çalıştırılıyor ve operasyonun ilk ayağı tamamlanmış oluyor.
Bu analizi yaptığımda Dridex’e ait sunucular kapatıldığı için başka bir Dridex dosyası kullanarak analize devam edeceğim. Küçük farklar dışında genel akışta bir farklılık bulunmamaktadır.
Dosyay DIE aracı ile baktığımızda 32bit exe olduğunu görüyoruz. Entropisine baktığımız zaman hem normalden farklı section bilgilerini hem bu sectionların yüksek entropiye sahip olduklarını görüyoruz.
Zaralıda ilgimi çeken başka bir konu ise checksumların farklı
olması oldu.
Zararlı bu analizleri atlatmak için güzel bir teknik kullanmış. Zararlı ilk çalıştığında 10 dakikaya yakın bir süre boyunca OutputDebugStringW fonksiyonuyla “Installing..” yazdırıp sonra Sleep fonksiyonuyla 10 sn boyunca beklemeye alıyor kendini. Bu da çoğu online servisin zararlıyı düzgün bir şekilde analiz edemeyeceği anlamına geliyor.
Bu döngü bittikten sonra kendisini AtomBombing[2] yöntemini
kullanarak explorer.exe’nin içerisine kod enjekte ediyor.
AtomBombing yöntemini kısaca anlatmak gerekirse Global Atomic
Table’ın içerisine kod gömme diyebiliriz.
Zararlının System32 altındaki dosyaları teker teker inceleyip kendi import etmesi gereken DLL’leri aradığını görüyoruz.
Herhangi bir thread’in neler yaptığına baktığımızda daha net görebiliyoruz.
Dridex için Uygulanabilecek Kurallar
Yara Kuralı
rule Dridex{
meta:
description = "Dridex Malware - first unpacking detection"
author = "Burak ÇARIKÇI"
date = "23/10/2019"
sample = "Unpacked sample with Sleep and OutputDebugStringW functions"
strings:
$string1 = "installing" wide nocase
$string2 = "installed" wide nocase
$hex = {56 8B F1 F6 44 24 08 01}
$func = {4F 75 74 70 75 74 44 65 62 75 67 53 74 72 69 6E}
condition:
all of them
}
Sigma Kuralı
title: Dridexstatus: experimental
description: Detects Dridex malicious activies
author: Burak ÇARIKÇI - CRYPTTECH
logsource:
product: windows
service: sysmon
detection:
selection1:
EventID: 1
Image: '*\schtasks.exe'
CommandLine: '* /create *'
filter:
User: 'NT AUTHORITY\SYSTEM'
selection2:
EventID:1
Image: '*\explorer.exe'
selection_reg1:
EventID: 13
TargetObject:
- '*\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\*'
EventType: 'SetValue'
condition: selection1 and selection2 and selection_reg1 and not filter
fields:
- CommandLine
- ParentCommandLine
- Registry
falsepositives:
- Administrative activity
- Software installation
- Testing
level: high
Öneriler
- Bilinçlenmek en büyük önlemlerden biridir. Dosyaları
açarken daha dikkatli olmalıyız.
- Şirket içi güvenlik politikası oluşturulmalıdır.
- Bilmediğiniz kaynaklardan gelen dosyaları açmayın. Agent
Tesla ve diğer zararlıların yayılma yollarından bir tanesi
oltalama maillerini kullanmaktır.
- Güvenmediğiniz dosyaları çevrimiçi araçlarla
(VirusTotal, hybrid-analysis vb.) kolayca analiz edebilirsiniz.
- Güvenlik ürünü kullanabilirsiniz.
Kaynaklar
- Analiz edilen zararlının any.run sonucu:
https://app.any.run/tasks/b6a194a9-93fa-40d1-89e7-3870f4bcc336/
- ATOMBOMBING: BRAND NEW CODE INJECTION FOR WINDOWS: https://blog.ensilo.com/atombombing-brand-new-code-injection-for-windows
CT-Zer0
Yorumlar
Yorum Gönder