Nemty
Giriş
Sisteme bulaşıp sistemdeki dosyaları şifreleyip, belirli bir para karşılığı dosyalarınızı tekrardan eski haline getireceğini söyleyen zararlı yazılım türüne fidye yazılımı denir. Kripto paraların popülerliğinin artması ve takip edilebilirliğinin zor olmasından dolayı kripto para cinsinden fidye isteyen zararlı yazılımların sayısı her geçen gün artmaktadır.WannaCry, BadRabbit, Petya bunlardan en çok duyulanlarıdır. Nemty zararlısı da bir fidye yazılımı olup Eylül 2019’dan beri aktivitelerini arttırmıştır.Özet
Bu analizde Nemty zararlısının genel davranışı ve yaptıklarını inceleyeceğiz. Nemty Eylül 2019’dan beri aktif ve Exploit Kit’lerle yayılıyor. İlk görselde Nemty zararlısının özeti, ikinci görselde ise kullandığı yöntemlerin MITRE ATT&CK tablosuna haritalanmasını görebilirsiniz.Temel Bilgiler
Bu bölümde analiz edilen dosyaya ait bilgiler verilecektir.Nemty.exe | |
MD5 | 1de48555aafd904f53e8b19f99658ce8 |
SHA-1 | 248c6ef1f3999c314ed10bf1f5cab915419fa322 |
SHA-256 | 0c18068dab291fcdd5a9aa94fb6cb07b8aeec1e4ecbab3746c3b0586e7bbd692 |
Dosya Türü | Win32 EXE |
Dosya Boyutu | 89 KB |
Analiz
Elimizdeki dosyaya DIE ile baktığımızda MS Visual C/C++ ile compile edildiğini görüyoruz. Entropisine baktğımızda yüksek olmayan bir entropi ile karşılaşıyoruz.Zararlıyı IDA ile açıp analizimize başlayalım. Zararlı çalıştığında “just_a_game” isminde bir mutex oluşturuyor. Eğer mutex oluştururken 0xb7 (183) hata kodu alınırsa zararlı işlemleri yapmadan sonlanıyor. Bunu yapmasının nedeni daha önce çalıştığında mutexi oluşturup, bir daha çalışmasını engellemek.
“sosorin :)” stringini kullanarak kendi içerisindeki stringleri deobfuscate etmek için anahtar oluşturuyor. Bunun için ilk başta SHA(0x8004) algoritmasıyla hashini alıp RC4 (0x6801) için hazır hale getiriyor.
Anahtarı oluşturduktan sonra zararlı sistem üzerindeki disklerin bilgilerini toplayarak shadowstorage’ı değiştiriyor. İlk başta GetLogicalDrives[3] fonksiyonu kullanılarak sistemdeki diskleri bitmask haliyle alıyor. Mesela sistemde sadece C diski olduğunu varsayalım. O zaman dönecek olan sonuç 100 olacaktır. Sonuç bitmask olarak döndüğü için bunu stringe(65 ekleyerek) çevirip GetDriveTypeA[4] fonksiyonu ile diskin özelliğini alıyor. GetDriveTypeA’dan dönen sonuca göre disk tipi belirleniyor. Kontroller yapıldıktan sonra ShellExecuteA fonksiyonuna “"C:\Windows\System32\cmd.exe" /c vssadmin resize shadowstorage /for=C: /on=C: /maxsize=401MB” ve “"C:\Windows\System32\cmd.exe" /c vssadmin resize shadowstorage /for=C: /on=C: /maxsize=unbounded” komutları çalıştırılıyor.
Bu mantığı anlatmak için aşağıdaki gibi bir python kodu yardımcı olabilir.
import math
getlogicaldrive = int('100',2) #sadece C diski var
digitnum = int(math.sqrt(getlogicaldrive) + 1) #bitmaskın uzunluğu
for v30 in range(digitnum):
flag = (getlogicaldrive >> v30) & 1 #bitmask'ı sağa kaydırıp sondaki biti alıyoruz.
if(flag): #1 ise o disk sistemde vardır.
print("Disk found: " ,chr(v30 + 65)) #asciiye çeviriyoruz.
Bu işlemi bitirdikten sonra kendi ayarlarını oluşturmak için gerekli fonksiyonu çağırıyor. Bu fonksiyonun içerisine baktğımızda kullanıcı adı, bilgisayar adı ve MAC adresini aldığını görüyoruz.
Devamında ise gömülü şekilde bulunan anahtarı decrypt (base64 ve rc4) ettiğini görüyoruz.
Public key üretmeden önce sistemin lokasyonunu öğrenmek için akıllıca(bence) bir yöntem izliyor. “http://api.db-ip.com/v2/free/IP-ADRESI/countryName “ adresine GET isteği atarak dönen sonucu kaydedip aşağıdaki ülke isimleriyle karşılaştırıyor. Eğer sonuç buradaki ülkelerden biriyse işlemi sonlandırıyor. Bunu yapmasındaki amaç o ülkelerde suç işlememek istemesi olabilir.
Kalıcılığı sağladıktan sonra ilk başta kontrol ettiği registrylere aynı stringleri yazdığını görüyoruz.
Bulaştığı sistemdeki backup dosyalarını silmek için aşağıdaki görselde bulunan komutu çalıştırıyor. Böylece şifrelenen sistemden geri dönüş imkanı kalmıyor. Burada kullanılan komut:
“vssadmin.exe delete shadows /all /quiet & bcdedit /set {default} bootstatuspolicy ignoreallfailures & bcdedit /set {default} recoveryenabled no & wbadmin delete catalog -quiet & wmic shadowcopy delete”
Bütün hazırlıkları bittikten sonra dosyaları şifrelemeye başlıyor.
Bazı dosyaları şifrelemediğini görüyoruz. Burada whitelist oluşturulmuş. Şifrelemediği dosyalar aşağıdaki görselde görülebilir.
Şifreleme tamamlandıktan dosya uzantısını dosyadı_NEMTY_ID olarak değiştiriyor. Her dizine fidye notu bırakarak işlemlerini tamamlıyor. Fidye notundan versiyonunun 2.0 olduğu anlaşılıyor. Nemty ilk çıktığında geliştiricinin notlarını vb. bulunduğunu biliyoruz. 2 gibi bir sürede baya kodun sürekli geliştiğini söyleyebiliriz. Aşağıda fidye notunu görebilirsiniz.
Nemty için Uygulanabilecek Kurallar
Sigma
title: Nemty Ransomwaredescription: Detetcs malicious activities of Nemty ransomware
author:
- Burak ÇARIKÇI, CRYPTTECH
references:
| - https://www.acronis.com/en-us/blog/posts/threat-analysis-nemty-ransomware-and-fake-paypal-site
| - https://www.fortinet.com/blog/threat-research/nemty-ransomware-early-stage-threat.html
logsource:
product: windows
service: sysmon
detection:
selection1:
EventID: 1
CommandLine:
- '*\vssadmin resize shadowstorage /for=C: /on=C: *'
- '*\vssadmin.exe delete shadows /all /quiet & bcdedit /set {default} bootstatuspolicy ignoreallfailures & bcdedit /set {default} recoveryenabled no & wbadmin delete catalog -quiet & wmic shadowcopy delete'
selection2:
EventID: 1
CommandLine:
- '*\netstop *'
- '*\taskkill /f /im *'
- 'C:\Users\*\NEMTY_*-DECRYPT.txt'
selection3:
EventID: 13
TargetObject:
- '*\SOFTWARE\Nemty'
EventType: 'SetValue'
condition: selection1 and selection2 and selection3
fields:
- CommandLine
- ParentCommandLine
falsepositives:
- False positives depend on scripts and administrative tools used in the monitored environment
level: high
Yara
rule nemty{meta:
description = "Detect Nemty Ransomware"
author = "Burak ÇARIKÇI, CRYPTTECH"
date = "08/11/2019"
hash = "0c18068dab291fcdd5a9aa94fb6cb07b8aeec1e4ecbab3746c3b0586e7bbd692"
strings:
$s1 = "vssadmin.exe delete shadows /all /quiet & bcdedit /set {default} bootstatuspolicy ignoreallfailures & bcdedit /set {default} recoveryenabled no & wbadmin delete catalog -quiet & wmic shadowcopy delete"
$s2 = "-DECRYPT.txt"
$s3 = "vssadmin resize shadowstorage /for="
$s4 = "desktop.ini" wide
$s5 = "IO.SYS" wide
$s6 = "bootmgr" wide
$s0 = "rsa" wide
$s7 = "NTDETECT.COM" wide
$s8 = "MSDOS.SYS" wide
$s9 = "AcronisAgent"
$s10 = "AcrSch2Svc"
$s11 = "MongoDB"
$s12 = "schtasks.exe /create /sc onstart /tn"
$random = "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"
condition:
all of them
}
Ö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.
- Güvenmediğiniz dosyaları çevrimiçi araçlarla (VirusTotal, hybrid-analysis vb.) kolayca analiz edebilirsiniz.
- Güvenlik ürünü kullanabilirsiniz.
Kaynaklar
- İncelenen zararlının VirusTotal sonucu: https://www.virustotal.com/gui/file/0c18068dab291fcdd5a9aa94fb6cb07b8aeec1e4ecbab3746c3b0586e7bbd692
- İncelenen zararlının any.run sonucu: https://app.any.run/tasks/a6e760f6-849a-4ce7-b9d8-57688648b5c4/
- GetLogicalDrives fonksiyonu: https://docs.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-getlogicaldrives
- GetDriveTypeA fonksiyonu: https://docs.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-getdrivetypea
- Threat Analysis: Nemty Ransomware and the Fake PayPal Site: https://www.acronis.com/en-us/blog/posts/threat-analysis-nemty-ransomware-and-fake-paypal-site
- Nemty Ransomware 1.0: A Threat in its Early Stage: https://www.fortinet.com/blog/threat-research/nemty-ransomware-early-stage-threat.html
No comments:
Post a Comment