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.


 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.


 Dosya işlemleri ile ilgilide fonksiyon yazıldığını görüyoruz. Bunlar Class2’nin altında bulunan smethod_1 ve smethod_2 fonksiyonlarıdır. smethod_1 dosya okuma işlemlerini yaparken, smethod_0 dosya yazma işlemlerini yapmaktadı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.

Burada kullanılan komut :"C:\Windows\System32\cmd.exe" /c copy "C:\Users\admin\Desktop\New Proposal_2019.exe" "C:\Users\admin\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\app.exe” . Bu komut çalıştırdığımız zararlıyı Startup klasörüne kopyalarak zararlıya kalıcılık sağlıyor.
Debugger üzerinden çalıştırıp yine breakpointe geldiğimizde yine CMD’nin çağırıldığını görüyoruz.


Bundan sonraki aşamada zararlının kendisini “HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run” registry’sine “boot” parametresiyle eklediğini görüyoruz. Zararlının buradaki amacı kalıcılık sağlamak.




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’un önceki versiyonları için yazılan bazı scriptler[7] yardımıyla kolayca içerisinde bulunan bilgilere erişebiliyoruz. İncelenen zararlı yeni versiyon olduğu için bu script çalışmamakta fakat aşağıda örneği verilecek olan dosyada güzel bir şekilde sonuç vermektedir.



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

  1. Decoding NanoCore Rat: https://techanarchy.net/blog/decoding-nanocore-rat
  2. NanoCore Is Not Your Average RAT: https://www.digitrustgroup.com/nanocore-not-your-average-rat/
  3. 2019-01-04 - MALSPAM PUSHES NANOCORE RAT: https://www.malware-traffic-analysis.net/2019/01/04/index.html
  4. de4dot: https://github.com/0xd4d/de4dot
  5. Analiz edilen zararlının any.run raporu: https://app.any.run/tasks/e57e391a-3666-47d3-8be7-3d84619db0b0/
  6. pe-sieve: https://github.com/hasherezade/pe-sieve
  7. RATDecoders: https://github.com/kevthehermit/RATDecoders
Burak ÇARIKÇI
CT-Zer0

Yorumlar

  1. 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ıtlaSil
  2. Merhaba, 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

Yorum Gönder

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