Nemty


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.





 Bu kontrolü geçtikten sonra “fid”, “pbkey” ve “cfg” değerlerinin Software\NEMTY registry’sinde olup olmadığına bakıyor.



Kontrollerini yaptıktan sonra artık zararlı işlemlere başlamak için gerekli hazırlıkları yapıyor.
“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=401MBve “"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.



 Ülke karşılaştırmasını da yaptıktan sonra nemty kendi ayarlarını oluşturmaya başlıyor. Bunun için yine base64 ve rc4 ile şifrelenmiş stringleri ku”llandığını görüyoruz. Mesela “Jjxa6LEMGEbZGzem” stringinin “,"drives":” olarak kaydettiğini görüyoruz.




 Bu decryption işlemlerinden sonra bazı processleri “net stop” komutuyla durduruyor. İkinci görseldeki processler daha çok backup yazılımlarından oluşuyor.



Ayarlarını da yaptıktan sonra kendini C: \users\kullaniciadi altında AdobeUpdate.exe olarak kopyalap Scheduled task olarak eklediğini görüyoruz. Bunu kalıcılık sağlamak için yapıyor.



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 Ransomware
description: 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: hig
h

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

  1. İncelenen zararlının VirusTotal sonucu: https://www.virustotal.com/gui/file/0c18068dab291fcdd5a9aa94fb6cb07b8aeec1e4ecbab3746c3b0586e7bbd692
  2. İncelenen zararlının any.run sonucu: https://app.any.run/tasks/a6e760f6-849a-4ce7-b9d8-57688648b5c4/
  3. GetLogicalDrives fonksiyonu: https://docs.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-getlogicaldrives
  4. GetDriveTypeA fonksiyonu: https://docs.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-getdrivetypea
  5. 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
  6. Nemty Ransomware 1.0: A Threat in its Early Stage: https://www.fortinet.com/blog/threat-research/nemty-ransomware-early-stage-threat.html
CT-Zer0

Yorumlar

Bu blogdaki popüler yayınlar

1. Geleneksel Stajyer CTF Soru ve Cevapları

B*-Tree (BTree, BPlusTree) Veri Yapısı ile Veri İndeksleme

2. Geleneksel Stajyer CTF Soru ve Cevapları - 2017