Operation Sharpshooter ve Uygulanabilecek SIEM Kuralları

Operation Sharpshooter

Genel bakış

Her geçen gün kabiliyetleri daha da artan siber saldırıların, hayatın her yerine etki ettiğini görüyoruz. McAfee güvenlik araştırmacılarının yayınladıkları rapora [1]göre, 2018’in Ekim ve Kasım aylarında (ilk görülme 25 Ekim 2018) ortaya çıkan Operation Sharpshooter, 87 kurum ve kuruluşu etkiledi. Bu hareketin öncelikli hedefleri nükleer teknoloji, savunma sanayi, enerji ve finansal kuruluşlardır. Bu operasyonun arkasında kimin olduğu bilinmese de, temel bilgiler kısmında da görsellerle desteklendiği üzere ilk gelen zararlı Office dosyasının Kore ile alakalı meta data bilgisi olduğu gözüküyor. Aşağıdaki dünya haritasında[2] bu operasyonun hangi ülkede hangi sektörü daha fazla etkilediğini görebilirsiniz. 



Operasyon 4 basamaktan oluşmaktadır.
  1. Zararlı .doc dosyasının Dropbox üzerinden dağılımı.
  2. Dosyanın açılmasıyla beraber içindeki zararlı makronun çalışması.
  3. Kontrol sunucusuyla haberleşerek, 1 tane daha .doc dosyası ve asıl zararlının indirilmesi
  4. Asıl zararlının çalışıp, bilgi toplayıp, kontrol sunucuna yollaması.
 

Bulaşma Yolları

Bu hareketin asıl bulaşma yolu Dropbox ile yayılan .doc dosyasıdır. Bu dosya bütün basamakların tetikleyicisidir. Bundan dolayı güvenmediğiniz dosyaları açmadan önce bir kere daha düşünmeniz gerekmektedir.

Temel Bilgiler

Bu bölümdeki verilecek olan bilgiler 3 temel dosyanındır. Bu dosyalar yazının geri kalanında aşağıdaki gibi adlandırılacaktır:
  1. Sharpshooter.doc, bu Dropbox yoluyla bulaşan tetikçi dosyadır.
  2. RisingSunImplant, bu dosya asıl işleri yapan çalıştırılabilir dosyadır.
  3. Customer Service Representative.doc, bu dosya 1.dosyanın içindeki zararlı makronun çalışmasından sonra sisteme yüklenen dosyadır.

Sharpshooter.doc 

MD5                  fa27a81d0109653e67019f387bad2494

SHA-1               668b0df94c6d12ae86711ce24ce79dbe0ee2d463

SHA-256          f5d561e80808f32402321ba76cae6b93f8141d152796efacfdae08e94b5b1b11

Boyut               237 KB

Tür                   MS Word Document

MIME               application/msword




RisingSunImplant.exe


MD5
2e17b048c7e317da9024a86d9439c74b
SHA-1
31e79093d452426247a56ca0eff860b0ecc86009
SHA-256
37b04dcdcfdcaa885df0f392524db7ae7b73806ad8a8e76fbc6a2df4db064e71
Dosya boyutu
196 KB
Dosya türü
Win32 EXE
MIME
application/octet-stream



 

Customer Service Representative.doc

 
MD5
a82cdb9f5bffcb24708e66eb52cce2af
SHA-1
8106a30bd35526bded384627d8eebce15da35d17
SHA-256
4135f92055dba1fedafe70a8e094623889a2a53f173a8913b016667e5bc7d264
Dosya boyutu
236.5 KB
Dosya türü
MS Word Document
MIME
application/msword





 

Sistem Üzerinde Neler Yapıyor?

Bu hareketin en sonundan başına kadar neler yaptığını açıklamak isterim. Dropbox üzerinden zararlı .doc uzantılı dosya sisteme yüklendikten sonra açılmayı bekliyor. Zararlı dosyayı açmadan önce bu dosyanın analizini yapalım. Olevba aracını kullanarak makronun içeriğini anlamaya çalışalım. olevba.py Sharpshooter.doc komutunu kullanarak genel olarak makronun içeriğini görebiliriz. Stringleri, obfuscate edilmiş kodu görebiliriz.





Base64’lenmiş stringleri bulup, tersine çevirmek için yine olevba yardımıyla tekrar analiz yapıyoruz. olevba.pydecode SharpShooter.doc komutunu kullanarak olevba bize base64’lenmiş stringleri gösteriyor. Bazı stringleri daha okunabilir olduğunu görebiliyoruz.

 Stringlere baktığımızda genelde zararlı yazılımlarda kullanılan fonksiyonların çağırıldığını görüyoruz. Tekrardan Olevba’yı kullanarak dosyanın içerisindeki makroyu çıkartabiliriz. Çıkan makronun[3] obfuscate edilmiş olduğunu görüyoruz. Makroda gözümüze çarpan stringler ve bazı obfuscate edilen stringlerin tahmini gerçek değerleri:
rising_sun (İnen dosyanın ismi bu değişkenden gelmektedir)
Sharpshooter
llsodiplo => shellcode
gzsdfasd => RtlMoveMemory
grqwasf => binbuffer
dnnaigej => GetProcAddress
gweasdf => kernel32
efasdv => VirtualAlloc
Ofis dökümanını birde oledumb yardımıyla incelediğiniz aşağıdaki çıktıyı alıyoruz.


Makro kodu ofis dosyasından çıkarmak için oledump.py -s 8 -v SharpShooter.doc komutunu kullanıyoruz ( -s 8 kullanmamızın nedeni yukarıdaki ekran görüntüsünde de görüldüğü üzere 8. stream’de zararlı makro var). Makro kodumuz artık elimizde. Makro kodun özetini geçmek gerekirse, 2 boyutlu bir array’de shellcode tutulutor. VirtualAlloc fonksiyonu kullanarak 3224 byte ayırıyor. VirtualAlloc’a verilen &H40 argümanı belirtilen adresin çalıştırılabilir olarak kullanılmasını sağlıyor. İç içe geçen döngülerle shellcode tek boyutlu bir array’e taşınıyor. Bundan sonraki aşamada, shellcode için adresler belirlenip çalıştırılıyor. Bu aşamada shellcode çıkartılabilir[4]. Shellcode çıkarmak için makroda aşağıdaki değişiklikleri yapmak yeterli olacaktır.


Shellcode Analizi

Makronun içerisinden shellcode’u çıkarttıktan sonra analizine başlayabiliriz. Kendi içerisinde hardcoded bulunan stringlerle kütüphaneleri ve API’ları oluşturuyor. İçinde gömülü olarak bulunan dll’leri aşağıdaki görsellerde görebilirsiniz.








LoadLibraryA ve GerProcAddress fonksiyonlarını kullanarak kontrol sunucusundan dosyaları indirmeye hazır hale geliyor.








API ve kütüphaneleri hazırladıktan sonra dosyayı indirmek için işlemlere başlıyor. hxxps://kingkoil.com[nokta]sg/Customer Service Representative.doc ve mssync.exe dosyalarını indirip aynı isimlerle kaydediyor. Mssync.exe dosyasını sistemin her açılışında çalışan “%startup%” klasörüne kaydediyor[1]. Bu şekilde sistem her açıldığında zararlı da çalışmış oluyor.

Bu aşamadan sonra CreateProcessA fonksiyonu ile zararlı dosya çalıştırılıyor. ShellExecuteA ve open fonksiyonları ile indirilen Customer Service Representative.doc fonksiyonu açılıyor. Bu .doc dosyasının amacı büyük ihtimalle zararlı dosyasnın yakalanması engellemek.


Rising Sun Analizi

İlk baştaki zararlı dokümanı açıp makroyu çalıştırdıktan sonra, sistemimize bulaşan zararlıyı (“Rising Sun”) incelemeye başlayabiliriz. En basit tabirle, Rising sun sistemden bilgi toplayıp bu bilgileri kontrol sunucusuna yollayan bir arka kapı programıdır.
Zararlı ilk başta kendi API ve kütüphanelerini oluşturuyor. API ve kütüphaneler hardcoded ve XOR’lanmış şekilde zararlının içerisinde bulunuyor. Sade ve basit bir şekilde sadece XOR işlemi kullanılıyor. XOR anahtarı ise 0xC8 olarak gözüküyor.

 
Zararlı ve kontrol sunucusu arasındaki iletişim RC4 algoritması ile şifrelenmektedir. Çalıştığı zaman ayar(config) dosyasını hxxp://34[nokta]214.99.20/view_style.php sayfasından alıp asıl fonksiyonuna başlıyor.




 
Zararlı gerekli ayarları tamamladıktan sonra artık asıl fonksiyonu olan bilgi toplama ve yollama kısmına başlıyor. Burada her komutun bir kodu var ve bu kodlara göre fonksiyonlar çağrılıyor. Örnek vermek gerekirse, Sunucudan gelen 0x0AD005F00A300C7 komutu Disk bilgilerini toplamayı sağlıyor. Fonksiyonlar hakkında genel bilgi vermek istiyorum.




Komut çalıştırma

Bu fonksiyon 0x6D0017005500F7 kodu ile aktif hale geliyor. Basitçe anlatmak gerekirse, cmd üzerinden komut çalıştırmamızı sağlıyor.

Disk Bilgisi Alma

Bu fonksiyon 0x0AD005F00A300C7 kodu ile aktif hale geliyor. Sistemdeki her bir diske bakarak, toplam hafızasını, boş hafızasını, format bilgisi hakkında bilgileri topluyor.


Process hakkında bilgi toplama

Bu fonksiyon 0x62009A001C002B kodu ile aktif hale geliyor. Sistemdeki bütün processler hakkında isim, oluşturulma zamanı vb gibi bilgileri topluyor.


Process sonlandırma

Bu fonksiyon 0x57001D00E20060 kodu ile aktif hale geliyor. Verilen processi sonlandırmak için kullanıyor. Başarı ile sonlanırsa 0x400 büyüklüğündeki belleği 0x55 ile başarısız olursa 0xAA ile dolduruyor.


Dosyaların zaman bilgisini alma

Bu fonksiyon 0x0A3001A006E00F8 kodu ile aktif hale geliyor. Dosyanın zaman bilgisini getiriyor.

Dosya okuma

Bu fonksiyon 0x98009C0034002D kodu ile aktif hale geliyor. Kontrol sunucusu tarafından belirtilen dosyanın okunmasını sağlıyor.

Dosya yazma

Bu fonksiyon 0x8D001F00FB0061 kodu ile aktif hale geliyor. Kontrol sunucusu tarafından belirtilen yola (C:\Users\sample.txt gibi) yazmayı sağlıyor. Aynı process sonlandırma fonksiyonundaki gibi başarılı olursa 0x400 büyüklüğündeki bir alana 0x55 başarısız olursa 0xAA yazıyor.



Dosya Silme

Bu fonksiyon 0x78005D008B00C6 kodu ile aktif hale geliyor. Kontrol sunucusu tarafından verilen dosyanın silinmesi için kullanılıyor. Yine yukarıdaki fonksiyonlar gibi başarılı olursa 0x400 büyüklüğündeki bir alana 0x55 başarısız olursa 0xAA yazıyor.



Dosyanın IMAGE_NT_HEADERS bilgisine bakma

Bu fonksiyon 0x0D0057005B00C4 kodu ile aktif hale geliyor. Kontrol sunucusu tarafından verilen dosyanın NTHEADER bilgisi alınıyor. Bunu yapmak için SetFilePointer fonksiyonundan yardım alarak File Pointer’ı 0x3C’ye ayarlıyor. IMAGE_NT_HEADERS’ı okuduktan sonra pointera 8 ekleyerek dosyanın hangi tarihte derlendiği bilgisine ulaşıyor.



Soket oluşturmak ve test bağlantısı

Bu fonksiyon 0x0B700150099005C kodu ile aktif hale geliyor. Basitçe anlatmak gerekirse, bir soket oluşturup bağlantı yapmayı deniyor. Diğer fonksiyonlar gibi başarılı olursa 0x400 boyutundaki bir alanı 0x55 ile başarısız olursa 0xAA ile dolduruyor.


Dosyanın özelliklerini değiştirme

Bu fonksiyon 0x0EC001700B2005D kodu ile aktif hale geliyor. SetFileAttributesW fonksiyonunu kullanarak dosyanın özelliklerini değiştiriyor. Pointer manipülasyonu yaparak istenilen bilgiye ulaşıp, değişiklikleri yapıyor










































Özet

Bu analiz, bilgi toplamak için spesifik olarak belli hedeflere saldırmanın başka bir örneğini göstertiyor. McAfee’nin yayınladığı raporda Operation Sharpshooter ile Lazarus grubunun benzerliklerinin olduğu fakat kesin bir şey söylenemeyeceği belirtiliyor. Operation Sharpshooter, başlangıcın zararlı bir dokümanla olduğu sonrasında içindeki zararlı makronun çalışmasıyla beraber, asıl zararlının bilgisayar yüklendiği bir siber saldırı operasyondur. Asıl zararlının amacı sistemde bilgi toplayıp bunu kontrol sunucuna yollamak diyebiliriz. Aşağıdaki görsel bu bölümü destekler niteliktedir.





Öneriler

  • Sisteminizi her zaman güncel tutun.
  • Bilinçlenmek en büyük önlemlerden biridir. Gündemi takip edebilecek kadar bilgi çok şey değiştirebilir.
  • Bilmediğiniz kaynaklardan gelen dokümanları açmayın.
  • Güvenmediğiniz dosyaları çevrimiçi araçlarla(VirusTotal, hybrid-analysis vb.) kolayca analiz edip, ondan sonra çalıştırabilirsiniz.
  • Güvenilir antivirüs programları kullanabilirsiniz.
  • Sadece güvendiğiniz ofis dökümanlarının makrolarını çalıştırınız.
  • Kurumdaki bütün makroları Group Policy kullanarak kapatabilirsiniz[5].

Operation Sharpshooter’ın Tespit Edilmesi için Kullanılabilecek Sigma Kuralları

title: Operation Sharpshooter
description: Detect malicious activities that is used by Operation Sharpshooter
author: Burak ÇARIKÇI
references:
https://www.mcafee.com/enterprise/en-us/assets/reports/rp-operation-sharpshooter.pdf
https://www.hybrid-analysis.com/sample/f5d561e80808f32402321ba76cae6b93f8141d152796efacfdae08e94b5b1b11?environmentId=100
date: 2019/01/10
status: testing
detection:
condition: 1 of them
logsource:
category: firewall
detection:
outgoing:
dst:
- kingkoil.com.sg/board.php
- kingkoil.com.sg/Customer Service Representative.doc
- 34.214.99.20/view_style.php
- 137.74.41.56/board.php
- http://208.117.44.112/document/Strategic Planning Manager.doc
- http://208.117.44.112/document/Business Intelligence Administrator.doc
- http://www.dropbox.com/s/2shp23ogs113hnd/Customer Service Representative.doc?dl=1
incoming:
src:
- kingkoil.com.sg/board.php
- kingkoil.com.sg/Customer Service Representative.doc
- 34.214.99.20/view_style.php
- 137.74.41.56/board.php
- http://208.117.44.112/document/Strategic Planning Manager.doc
- http://208.117.44.112/document/Business Intelligence Administrator.doc
- http://www.dropbox.com/s/2shp23ogs113hnd/Customer Service Representative.doc?dl=1

logsource:
product: windows
service: sysmon
detection:
selection1:
#Sysmon process creation
EventID: 1
ParentImage:
- '*\WINWORD.EXE'
Image:
- '*\cmd.exe'
- '*\mssync.exe'
- '*\WINWORD.exe'
selection2:
#Sysmon file creation
EventID: 11
TargetFilename:
- '*\Customer Service Representative.doc'
- '*\Strategic Plannin Manager.doc'
- '*\mssync.exe'
fields:
- Image
- TargetFileName
- CommandLine
- ParentCommandLine
falsepositives:
- unknown
level: high
mitre-attack:
- Account discovery
- File and directory discovery
- Process discovery
- System network configuration discovery
- System information discovery
- System network connections discovery
- System time discovery
- Automated exfiltration
- Data encrypted
- Exfiltration over command and control channel
- Commonly used port
- Process injection

Kaynakça

  1. Operation Sharpshooter: https://www.mcafee.com/enterprise/en-us/assets/reports/rp-operation-sharpshooter.pdf
  2. Operation Sharpshooter’ın dünya çapında ülke ülke en çok etkilediği sektörler: https://securingtomorrow.mcafee.com/wp-content/uploads/2018/12/20181210-Sharpshooter-1.png
  3. SharpShooter.doc’un içindeki obfuscate edilmiş makro: http://paste.ubuntu.com/p/DSNgN3yT5V/
  4. Macro Malware Again: https://www.cyberfox.blog/macro-malware-again/
  5. Disable all Microsoft Office macros globally for all users: https://superuser.com/questions/1073060/disable-all-microsoft-office-macros-globally-for-all-users/1073064#1073064



Burak ÇARIKÇI





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