NanoCore RAT Zararlı Analizi
Nanocore
Genel Bakış
Teknolojinin hızla ilerlemesinden zararlı yazılımlar da payını almaktadır. Zararlı yazılım üretimi ve dağıtımı artık bir servis olarak sunulmaya başlanmıştır. Zararlı işlemleri yapmanızı sağlayan araçlar internette hazır olarak satılıp, kötü niyetli kişilerin yapması gereken tek şey bunları satın alıp 1-2 tuşa basarak hazır hale getirmektir. Nanocore’da bunlardan bir tanesi olup, 20 dolara satışa sunulmaktaydı. Aşağıdaki görsellerde[1,2] Nanocore’un websitesini ve zararlıyı yazan kişinin düşüncelerini göreceksiniz.Özet
Bu analiz, son yıllarda aktif olan Nanocore zararlı yazılımının neler yaptığını anlatmaya yöneliktir. Yazıda Nanocore builder’ını, Nanocore’un nasıl yayıldığını ve sistem üzerinde neler yaptığını bulacaksınız. Zararlının amacı uzaktan erişim (RAT) sağlayıp, saldırganın kurban sistemde istediğini yapmasıdır. Aşağıda özet ve kullanılan ATT&CK tekniklerine ait görseller bulunmaktadır.Builder
Yazının girişinde de bahsettiğim gibi Nanocore hizmet olarak basit bir program şeklinde satılıyor. Şimdi bu program olan Nanocore’un builderından bahsetmek istiyorum. Programı açtığımız zaman bizi haberler kısmı karşılıyor. Builder aşağıdaki gibi seçenekler sunuyor:- Clients: Etkilenen sistemlerin
gözüktüğü bölüm.
- Network: Ağ ayarlarının
yapıldığı bölüm.
- System: Sunucu ayarlarının
yapıldığı bölüm.
- Builder: Nanocore zararlısının
çalıştırılabilir dosyasını oluşturuyor.
- Plugins: Eklentilerin olduğu
bölüm.
- MultiCore: Parola kurtarıcı,
stres testi ve uzaktan kod çalıştırmaya yarayan bölüm.
- NanoStress: Aktif olan düğümlerin
gösterildiği bölüm.
Burada ilgimi çeken bölüm “Builder” menüsü oldu. Buradaki
ayarlar bize Nanocore’un genel özellikleri hakkında bilgi
verecektir. Menüye girince basit, gelişmiş, DNS, Assembly,
bildirim ve gözetim özellikleri bulunmaktadır.
Basit özelliklerde IP numarası ve port özelliklerini görmekteyiz. Bunun dışında bence çok önemli olan UAC bypass özelliğini de görmeliyiz. Özelliğin üstüne geldiğimiz zaman kurbanın en az bir kere admin yetkileriyle bir işlem yapması gerektiğini görüyoruz.
Gelişmiş ayarlara geldiğimiz zaman burada dikkatimi “Set
ProcessBreakOnTerminaton Flag” özelliği çekiyor. Bu özellik
kurban sistemde çalışan Nanocore’un herhangi bir şekilde
kullanıcı tarafından veya 3.parti bir uygulama tarafından
durdulmasını engelliyor. Fakat bunun için UAC bypasstaki gibi
kullanıcının daha önce admin yetkileriyle işlem yapmış olması
gerekiyor.Basit özelliklerde IP numarası ve port özelliklerini görmekteyiz. Bunun dışında bence çok önemli olan UAC bypass özelliğini de görmeliyiz. Özelliğin üstüne geldiğimiz zaman kurbanın en az bir kere admin yetkileriyle bir işlem yapması gerektiğini görüyoruz.
Bundan sonraki ayarlar ilk baştakiler kadar ilginç olmamakla
beraber bazılarını açıklamak istiyorum. “DNS Server Settings”
altında daha önce görmediğim bir özellik olarak zararlının
hangi DNS sunucusunu kullanacağı soruyor. Burada belirli servis
sağlayıcılarıyla beraber özel bir DNS sunucusu veya sistemin
kullandığı ayarları kullanabiliyoruz. Bunların dışındaki
ayarlar bildirim ve keylogging özelliği ile ilgili.
Temel Bilgiler
Analizde kullanılan zararlıya ait bilgiler aşağıda verilmiştir.
New
Proposal_2019.exe
|
|
MD5
|
5495e0039bc22830e92b2e129187e7ce
|
SHA-1
|
f8dcdf6d51a98629f969c869f9492ac3d57d3e07
|
SHA-256
|
bf3cfdbf6d8208f3a3d6c8dd94038ef2bf841036a254e8ffc1d87acf65e10311 |
Dosya
Türü
|
Win32
EXE
|
Dosya
türü
|
PE32
|
Dosya
boyutu
|
485
KB
|
Analiz
Oltalama mailleri ile yayılan zararlımızı incelemeye başlayalım. Mail klasik bir oltalama maili. Kişiye özel bir bilgi bulunmamakla beraber sözleşmeyle ilgili bir mail olduğu anlaşılıyor. Aşağıdaki görselde maile ait ekran görüntüsünü görebilirsiniz[3].Ekteki dosyayı indirip incelediğimizde karşımıza .lzh uzantılı bir dosya çıkıyor. Lzh dosya uzantısı genelde duyduğumuz bir uzantı değil fakat arşiv araçları bu dosya formatını açıyor çünkü dosyamızın magic byte’ına baktığımızda Rar olduğunu görüyoruz. Bunun için “die” aracını da kullanabilirdik.
Dosyayı açtığımızda bizi “New Proposal_2019.exe” isimli dosya karşılıyor. Bu dosya asıl Nanocore’un asıl çalıştırılabilir dosyasıdır. Bu dosyayı incelemeye başlayalım. İlk başta dosyanın ne olduğuna karar vermek için die ile açıyoruz.
DIE sonucunda da gördüğümüz gibi elimizde .NET dosyası duruyor. Dosyanın entropisine baktığımızda yüksek olduğunu görüyoruz.
Entropisinin yüksek olması herhangi bir şifrelemenin veya obfuscation tekniğinin kullanılmış olabildiğine işaret ediyor. Elimizdeki dosya .NET ile yazıldığı için decompile edip herhangi bir anti-analiz yönteminin kullanılıp kullanılmadığını görebiliriz.
Kodun ağır bir şekilde obfuscate edildiğini görüyoruz. .NET uygulamalarını deobfuscate etmek için de4dot[4] uygulamasını kullanıyorum. Aşağıdaki şekilde kullanarak kodu deobfuscate edebiliriz.
“de4dot </tam/dosya/yoluyla/dosya_adı>”
Deobfuscate edilmiş dosyayı bize verdi. Şimdi bu dosyayı dnspy’a atıp inceleyelim. Şimdi gördüğünüz üzere sınıf, fonksiyon ve değişken isimleri çok daha anlaşılabilir bir şekilde duruyor.
Koda baktığıımız zamana bazı fonksiyonlar gözümüze çarpıyor.
Bunlardan bir tanesi HTTP trafiği için yazılmış olan smethod_1
fonksiyonu. HTTP isteklerini almak. Aşağıda bu fonksiyonun ekran
görüntüsü bulunmaktadır.
Şimdi dosyayı çalıştırıp neler yaptığını inceleyelim. Bunun için Process Hacker, Process Explorer gibi uygulamaları kullanabiliriz. Ben görsel olarak takip etmesi çok daha kolay olduğunu düşündüğüm online analiz platformu olan Any.run[5] üzerinden görselleri alacağım. Görüldüğü üzere uygulama 1 kere CMD üzerinden kopyalama işlemi yapıyor. Sonra yine CMD üzerinden kopyaladığı dosyayı çalıştırıyor. Çalıştırılan dosya kendini tekrar çağırarak zararlı işlemlerini yapmaya başlıyor.
Bu CMD komutlarını debugger üzerinde görmek için zararlıyı
debugger’a atıyoruz. CMD uygulamasını açmak için kullanılan
fonksiyon “CreateProcessW” fonksiyonu. Bu fonksiyona breakpoint
koyup çalıştırdığımızda elimize yukarıdaki görselde
gördüğümüz komutun aynısı geçiyor.
Debugger üzerinden çalıştırıp yine breakpointe geldiğimizde
yine CMD’nin çağırıldığını görüyoruz.
Zararlı en son “app.exe” olarak kendini çağırdığında
gerçek Nanocore istemcisine ulaşabiliyoruz. Unpack etmek için
belirli yöntemler olmakla beraber bu konuda gerçekten iyi işler
çıkaran pe-sieve[6] uygulamasıyla
gerçek istemciyi çıkartacağız. pe-sieve’i aşağıdaki gibi
çalıştırıyoruz.
“pe-sieve
<uygulama_pid’si>”
Burada dikkat edilmesi gereken nokta şudur; Yukarıdaki process
tree’de de görüldüğü gibi 2 tane app.exe var. İkinci
app.exe’nin pid numarası girilmelidir.
Bu çıkan dosya ilki gibi obfuscate edilmiş olabilir. Yine de4dot
kullanarak zararlıyı deobfuscate ediyoruz ve dnspy’a atıyoruz.
Builder kısmındaki fonksiyonlarla buradaki fonksiyonlar
uyuşmaktadır. Aşağıdaki fonksiyon zararlının resource
(payload’ın bulunduğu yer) kısmını kopyalayan kısım.
Admin yetkilerinin kontrol edildiği fonksiyon.
Aşağıdakı görsellerde bulunan fonksiyon isimleri zaten gayet
açık.
Zararlı bu aşamadan sonra C&C sunucusuyla iletişime geçip,
kontrol sunucusundan emir almayı bekliyor. Analizi yaptığımız
sırada sunucular açık olmadığı için iletişime ait trafik
elimizde yok. Kaynakta verdiğim malware-traffic-analysis
sitesinden[6] zararlının network trafiğiyle ilgili
bilgiler bulabilirsiniz.
Nanocore için yazılabilecek SIGMA Kuralı
title: NanoCore RAT
description: NanoCore RAT detector
references:
- https://www.malware-traffic-analysis.net/2019/01/04/index.html
author: Burak ÇARIKÇI, CRYPTTECH
status: testing
date: 2019/09/06
logsource:
product: windows
service: sysmon
detection:
selection1:
EventID: "1"
file_hash:
- 5495e0039bc22830e92b2e129187e7ce
selection2:
EventID: "1"
CommandLine:
- cmd.exe /c copy */New Proposal_2019.exe C:\Users\*\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\app.exe
- cmd.exe /c C:\Users\admin\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\app.exe
selection3:
EventID: 13
TargetObject:
- '*\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run'
EventType: 'SetValue'
condition: selection1 or (selection2 and selection3)
fields:
- Image
- CommandLine
- TargetObject
- Hashes
falsepositives:
- Unknown
level: high
mitre-attack:
Persistence:
- Kernel Modules and Extensions
- Hooking
- Registry Run Keys / Start Folder
Privilege Escalation:
- Process Injection
- Hooking
Defense Evasion:
- File Deletion
- Process Injection
- Modify Registry
Credential Access:
- Hooking
Discovery:
- Query Registry
- Peripheral Device Discovery
- Process Discovery
Öneriler
- Bilinçlenmek en büyük önlemlerden biridir. Gündemi takip
edebilecek kadar bilgi çok şey değiştirebilir.
- Şirketiniz için güvenlik politikası oluşturabilirsiniz.
- Bilmediğiniz kaynaklardan gelen dosyaları açmayın.
Nanocore ve diğer zararlıların yayılırken kullandığı en
yaygın yöntemlerden bir tanesi zararsız gözüken dokümanları
yaymaktır.
- Güvenmediğiniz dosyaları çevrimiçi araçlarla
(VirusTotal, hybrid-analysis vb.) kolayca analiz edebilirsiniz.
- Güvenilir antivürs programları kullanabilirsiniz.
- Domain-Based Message Authentication, Reporting &
Conformance (DMARC) sistemi kurularak kuruma gelen spam mailleri en
aza indirebilirsiniz.
Kaynaklar
- Decoding NanoCore Rat:
https://techanarchy.net/blog/decoding-nanocore-rat
- NanoCore Is Not Your Average RAT:
https://www.digitrustgroup.com/nanocore-not-your-average-rat/
- 2019-01-04 - MALSPAM PUSHES NANOCORE RAT:
https://www.malware-traffic-analysis.net/2019/01/04/index.html
- de4dot: https://github.com/0xd4d/de4dot
- Analiz edilen zararlının any.run raporu:
https://app.any.run/tasks/e57e391a-3666-47d3-8be7-3d84619db0b0/
- pe-sieve: https://github.com/hasherezade/pe-sieve
- RATDecoders: https://github.com/kevthehermit/RATDecoders
Burak ÇARIKÇI
CT-Zer0
Teşekkür ederim 🙏 çok güzel bir anlatım. Sitenizi yeni fark ettim. Sizden ricam kablosuz RFID teknolojisini de incelemeniz. Özellikle yeni çıkan ghidra üzerinden inceleme yapmanız. Sitenizi okumaya devam edicem teşekkürler.
YanıtlaSilMerhaba, ilginiz için teşekkür ederiz. Önerinizi en kısa sürede değerlendireceğiz. Yorumlarınız ve blog sayfamıza katkınız bizim için çok değerli. Mutlu günler dileriz.
YanıtlaSil