APT28 - MS Ofis Macro Kod Analizi

Açıkcası yazılarımda kullandığım araçların doğru yüklenmesi ve uyum sorunlarıyla ile ilgili diğer ayrıntılarıda eklemeye gayret ediyorum. Buradaki amaç ayıntılarda boğuşup, ana konudan sapmamaya katkıda bulunmak diyebilirim.

APT28 - MS Ofis Macro Kod Analizi

Bu yazımda MS ofislerin makro desteği sayesinde içerisine gömülen zararlı yazılımları nasıl analiz edeceğimizle ilgili olacak.

Açıkcası yazılarımda kullandığım araçların doğru yüklenmesi ve uyum sorunlarıyla ile ilgili diğer ayrıntılarıda eklemeye gayret ediyorum. Buradaki amaç ayıntılarda boğuşup, ana konudan sapmamaya katkıda bulunmak diyebilirim.

Oletools Kurulumu

Öncelikli olarak bu tool Python 2.7 veya türevleriyle çalışmada hata vermişti. Açıkcası tam olarak hatayı hatırlamıyorum ama Python3.7.4 ile birlikte gayet güzel çalışıyor.

Python3.7.4 yükledikten sonra bir karmaşıklık yaşamak istemiyorsanız python exe dosyasının isimlerini değiştirmenizi öneririm. Bunu yaptıktan sonra PIP de bir sorun yaşama ihtimaliniz bulunuyor. (PATH yolları otomatik eklenmediyse eğer, manuel olarak eklemeniz gerekiyor)

Bu çözülmüş problemin düzeltilmiş hali

Bu sorunu da şu şekilde hallettim diyebilirim.

python3 -m pip install --upgrade pip

Yukarıdakini cmd üzerinden yazıp, çalıştırdıktan sonra sorunumu hallettim diyebilirim.

pip3 install virtualenv

Daha sonra ise Python3.4/Scripts kısmına giderek, yukarıdaki komutlar ile virtualenv yüklemesi gerçekleştirdim.

virtualenv.exe DEV

Bu adımdan sonra aynı path altında yukarıdaki komut ile DEV adında yeni bir virtualenv oluşturdum.

1- pip3 install -U oletools

2- pip3 install -U https://github.com/decalage2/oletools/archive/master.zip

Daha sonra oluşturduğum virtualenv’i aktif edip, oletools’un yüklemesine devam ettim(1. komut) . En son adımda ise en son versiyonunu yükledim. (2. komut)

Başlangıç

Parola korumasını geçtikten sonraki durum

Örnek dosyamızı indirip (APT28 grubuna girmektedir) , Macro kodlarını görmek istediğimiz zaman parola korumalı olduğunu fark ediyoruz. Parola korumasını atlatmak için birkaç farklı yöntem mevcut durumda fakat en kolay yolu Reset VBA Password uygulamasını kullanmak diyebilirim. Bu sayede daha hızlı ilerleme yapabiliriz.

Macro kodlarına baktığımızda karmaşıklaştırma işlemine tabi tutulduğunu fark ediyoruz. Bu yüzden direkt olarak elle tutulur bilgi edinmemiz zor gözüküyor.

Analiz görüntüsü

İlk bölümde Oletools kurulumunu gerçekleştirmiştik. Burada olevba aracından faydalanmaya başlayabiliriz. İlk olarak sadece analiz ettiğimizde yukarıdaki gibi bir çıktıyla karşılaşıyoruz.

Birkaç farklı kullanım mevcut fakat bizim açımızdan en güzeli --reveal komutunu kullanmak olacaktır böylece karmaşıklaştırma işlemine tabi tutulmuş tüm kod dizelerine erişmiş olup, elle tutulur bilgilere erişmiş oluruz. Yukarıdaki çıktıyı analiz ettiğimizde;

1- Çıktının ilk kısmında AutoOpen yer alıyor. Buradaki Execute fonksiyonu , belgenin çalışmaya başlatılması sırasında çağrılıyor.

2-Yukarıdaki çıktılardan görünen rundll32.exe adlı dosyanın çalıştırıldığını fark ettik. Bunun haricinde AppData klasörü içerisinde user.dat adında bir dosya kopyaladığını fark ettik.

3- Ayrıca wingmgmts hakkında bilgi vermek gerekirse eğer, Localsystem altında SVCHOST işlemiyle birlikte çalışan bir WMI hizmetidir.

4- Diğer bir VBA Strings’i olan HLinks‘in detayları yukarıdaki resimde yer alıyor. Burada word dosyasının bir XML’inin alındığını fark ediyoruz ev XPath kullanarak bir değer çıkardığını görüyoruz //HLinks/vt:vector/vt:variant/vt:lpwstr

Bu kısmı decode ettiğimiz zaman, user.dat dosyasına ulaşıyoruz.

5- Diğer bir çıktıya baktığımızda VBA’nın WMI sınıfına ait olan Win32_process tekniğini kullandığını görüyoruz. Buradaki amaç AV’ler tarafından tespit edilmeyi önleme ile ilgili olabileceğini düşünüyorum.

Davranışsal Analiz

Bunun haricinde MS Word dosyamızın davranışsal analizine göz gezdirdiğimizde AppData/Roaming içerisine Runtime altında çalışan mvtband.dat ve user.dat adında iki dosya kopyaladığını da fark ediyoruz.

Hybrid-Analysis çıktısından

Hybrid-Analysis üzerinde bu iki dosyaya baktığımızda ise Trojan olarak etiketlendiğini görüyoruz.

Bağlantılar

İlgili dosyamızda dışarı ile iletişime geçen bağlantıları görme adına any.run üzerinde de analiz ettim. Bağlantıların kısmına baktığımızda rundll32.exe dosyasının iki farklı IP üzerinden bağlantı kurduğunu görüyoruz.

Sonuç

Genel itibariyle bu tarz bir zararlı yazılım analiz etmeye çalıştığımızda ne gibi araçlardan ve nasıl bir yol izleyeceğimizle ilgili olarak bilgi vermeye gayret ettim.