Brambul


Brambul

Giriş

Bu yazıda 2009 yılında beri aktif olan Kuzey Kore destekli Lazarus (Hidden Cobra veya Guardians of Peace olarakta bilinen) grubunun kullandığı zararlılardan olan Brambulu inceleyeceğiz. Lazarus grubunu 2014’te Sony’e yaptıkları saldırıdan tanıyoruz. Bu tehlikeli grup günümüze kadar çok fazla farklı teknik ve saldırı yolu kullanmıştır. Brambul’da bunlardan bir tanesidir. Brambul’u solucan (worm) kategorisine dahil edebiliriz. Asıl amacı SMB üzerinden yayılmak olmakla beraber Joanap arka kapı yazılımıyla beraber aynı anda dağıtılmaya ve kullanılmaya başlandığını görüyoruz.

Özet

Bu analiz 2009 yılından beri aktif olan Lazarus grubunun kullandığı Brambul solucanının neler yaptığını anlatmaya yöneliktir. Yazıda Brambul hakkında temel bilgiler ve sistem üzerinde neler yaptığını, nasıl yayıldığını bulabilirsiniz. Kısaca bir özetlemek gerekirse oltalama mailleri ile yayılan Brambul rastgele IP adreslerine SMB üzerinden bağlanmaya çalışıyor. Bağlanırken kullandığı kullanıcı adı ve parola listesi zararlının içerisinde gömülü olarak bulunuyor.

 Temel Bilgiler

Brambul
MD5
f273d1283364625f986050bdf7dec8bb
SHA-1
0e0280a842fe88f586205a419b07d37f1fe97aca
SHA-256
8df658cba8f8cf0e2b85007f57d79286eec6309e7a0955dd48bcd15c583a9650
Dosya Türü
Win32 EXE
Dosya Boyutu
56 KB



 Analiz

Zararlı üzerinde bilgi toplamaya başlayalım. DIE ile açtığımızda aşağıdaki gibi bir çıktıyla karşılaşıyoruz.


Sectionlara baktığımız zaman herhangi bir bozukluk veya anomali görmüyoruz.



 Bu adımlarla zararlıya ısındıktan sonra şimdi IDA ile analizimize devam edelim. Main fonksinuyla analizimize başlayalım. Zararlıyı çalıştıran kullanıcının SYSTEM olup olmadığı kontrol ediliyor.


Eğer SYSTEM kullanıcısı olarak çalıştırıldıysa bir takım fonksiyonlar çağırıyor. Bu fonksiyonları incelemeye başlayalım. %System%lsasvc.exe’ye kendini kopyalıyor.


Kopyalama bittikten sonra kendini “-i” parametresi ile çağırıyor. Bundan sonra CreateProcessA fonksiyonu kullanılarak komut istemi çalıştırılıyor. Bu komutlar:
  • “cmd.exe /c “net share admin$ /d””
  • “cmd.exe /c “net share c$ /d””


Cmd üzerinden bu komutları çalıştırdıktan sonra kalıclılık sağlamak için kendini HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run registry’sine zararlının tam adresini ekliyor.


Kalıcılık sağlandıktan sonra işletim sistemi bilgilerini toplayıp mail attığını görüyoruz.

Maili attığı adres “whiat1001@gmail.com”, mailin atıldığı adres ise “johnS203@yahoo.com



Bunlar SYSTEM kullanısıyla çalışırsa gerçekleşen fonksiyonlarıydı. Eğer kullanıcısı SYSTEM değil ise bunları yapmadığını ve 256 kere çalışan bir döngü içerisine girdiğini görüyoruz. Her seferinde bir thread oluşturduğunu ve sub_402900 isimli fonksiyonu çağırdığını görüyoruz.




 Bu thread’de çalışan fonksiyona baktığımızda rastgele 4 sayı ürettiğini görüyoruz. 4 sayı dendiğinde aklımıza gelen ilk şey IP adresini oluyor. Bu sayıları %d.%d.%d.%d olarak Dest değişkenine yazdığını görüyoruz.









Bu IP adresine bağlanmaya çalıştığını görüyoruz. Eğer IP adresi ile geçici olarak bağlantı kurulamıyorsa WSAGetLastError fonksiyonu çağırılarak kontrolü yapılıyor. Bu bloğun içine girildiğinde 255 kere dönen bir döngünün olduğunu ve yine thread oluşturarak sub_402B90 fonksiyonunun bu thread’e geçirildiğini görüyoruz.




Bağlantı kurulduktan sonra ilk görseldeki stringleri kullanıcı adı, ikinci görseldeki stringleri parola olarak kullanarak SMB üzerinden yayılmaya çalışıyor.


Eğer bağlantı sağlanırsa fonksiyonlarına en baştan başlayarak yayılmasına devam ediyor.



 Analizden bağımsız olarak bazı Brambul zararlılarının Petite2.1 compresser’ını kullandığını gördüm. Böyle durumlarda unpack etmek gayet kolay. Ondan da bahsetmek istiyorum. Petite packer’ını kullandığını DIE kullanarak anlayabiliyoruz.


İnternette gayet açıklayıcı videolarda olmakla beraber unpack etmeye başlayalım. Debugger’a (x64dbg ile unpack edeceğim) zararlıyı atıyoruz. Başlangıç noktasına (Entry point’e) geldiğimizde görselde ki gibi bir ekranla karşılacağız. Burada kırmızı işaretli yere breakpoint koyup çalıştırıyoruz.


Burada ESP’yi takip ederek aşağıdaki gibi breakpoint koyuyoruz.


Çalıştırmaya devam ettiğimizde gerçek entry point ile karşılaşıyoruz.



O adrese devam ettiğimizde elimizde unpack edilmiş hali bekliyor. Scylla kullanarak yeni dosyamızı dump edip analiz edebiliriz.



Yeni dosyayı IDA ile açtığımızda importları ve stringleri görebiliyoruz.





 Brambul Tespiti için Uygulanabilecek Kurallar

Yara Kuralı

rule brambul_not_packed{

meta:
description = "Detect Brambul SMB Worm"
author = "CT-ZER0"
date = "15.11.2019"
strings:
$not_packed1 = "cmd.exe /c \"net share admin$\""
$not_packed2 = "MAIL FROM:<"
$not_packed3 = "RCPT TO:<"
$not_packed4 = "HELO <"
condition:
all of them
}
rule brambul_packed{


meta:
description = "Detect Brambul SMB Worm if it is packed"
author = "CT-ZER0"
date = "15.11.2019"
strings:
$p1 = ".petite"
$p2 = "ExitProcess"
$p3 = "LoadLibraryA"
$p4 = "VirtualProtect"
condition:
all of them


}

Sigma Kuralı

title: Brambul
description: Detect Brambul SMB Worm Malicious Activities
references:
- https://www.symantec.com/security-center/writeup/2015-051114-3802-99
author:CT-ZER0
status: experimental
date: 2019/11/15
logsource:
product: windows
service: sysmon
detection:
selection1:
EventID: "1"
CommandLine:
- "cmd.exe /c \"net share admin$\""
- "cmd.exe /c \"net share c\""
- "%SYSTEM%\lsavc.exe"
selection2:
EventID: "13"
TargetObject:
- '*\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\*'
condition: selection1 and selection2
fields:
- CommandLine
- TargetObject
falsepositives:
- Red team activities
level: high



Öneriler

  • Oltalama maillerine dikkat edilmeli. Bilinmeyen kaynaktan gelen mailler dikkatle incelenmelidir.
  • Bilinmeyen dosyalar açılmadan önce online araçlarla hızlıca tarama yapılıp, bir bilgi edinilebilir.
  • SMB tarafında güçlü parolalar kullanılmalıdır.
  • Güvenlik ürünü kullanabilirsiniz.
  • 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.

Kaynaklar

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