Agent Tesla


Agent Tesla

Giriş

2016 yılından beri aktif olan Agent Tesla zararlısı, spyware olarak nitelendirebileceğimiz bir zararlı yazılımdır. Kurban sistemin klavye hareketlerini kaydedip bunu kontrol sunucusuna yollama kabiliyetine sahiptir. Bunun dışında tarayıcılardan parola bilgilerini alıp yolladığını da biliyoruz. İlk çıktığında kendi ismiyle bir web sitesinden direk satışa sunulan zararlı şimdi başka platformlardan satışa sunuluyor. Agent Tesla 9 Dolar ile 30 Dolar arasında değişen fiyatlarla 7/24 destekle beraber satılıyordu[1].





Agent Tesla’nın yazarının Türk olduğu hakkında iddialar da[2] bulunuyor. Bu iddiaların sebebi ise Agent Tesla ile ilişkisi olduğu düşünülen bir web sitesinin WHOIS kaydının bir Türk adına olması.


Özet

Bu analiz 2016 yılından beri aktif olan Agent Tesla zararlı yazılımının neler yaptığını anlatmaya yöneliktir. Yazıda Agent Tesla'nın nasıl yayıldığını ve sistem üzerinde neler yaptığını bulabilirsiniz. Kısaca ö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 dosya indiren zararlı, kalıcılığını sağladıktan sonra işlemlerine başlıyor. Zararlının amacı; Uzaktan hedef sistemdeki parola, clipboard ve klavye hareketleri bilgilerini çalmak. Aşağıdaki görsellerde Agent Tesla'nın zararlı aktivitelerini ve kullanılan MITRE ATT&CK tekniklerini bulabilirsiniz.






 Temel Bilgiler

Analizde kullanılan dosyaya ait bilgiler aşağıdaki gibidir.

CMG 4 263 PAYMENT ADVICE.xlsx
MD5
ff014dad028864b1571707f83bf65a46
SHA-1
93a1c9b846e5aeed825a8d62c38e3a9e0958519c
SHA-256
6ce1abc4a205179447e264a05e9f3a04e2fd4009b7a59bc7054fd78c6f15914f
Dosya türü
MS Word Document
Dosya boyutu
771.99 KB
Magic
CDF V2 Document, corrupt: Cannot read summary info







Analiz

Analize başlamadan önce any.run üzerinde #agenttesla tagi ile son zamanlarda gördüğüm zararlıların çoğu aynı davranışa sahip olmakla beraber yollanan maillerin içeriğini hep para transferi, SWIFT, sigorta gibi içerikler oluşturmaktadır.

Yukaridaki gibi oltalama mailleriyle yayılan zararlımızı incelemeye başlayalım. Mail klasik bir oltalama maili. Kişinin hesabına belirli miktarda transfer yapıldığından bahsedip ekteki dosyada detayları olduğunu söylüyor.


Ekteki dosyayı indiriyoruz ve normal bir .xlsx dosyası olduğunu düşünüyoruz. Açtığımızda garip hiçbir şeyle karşılaşmıyoruz. Makrolara baktığımızda boş olduğunu görüyoruz. İlk bakışta şüpheli bir şey bulamadığımdan dolayı any.run[3] üzerinde çalıştırıyorum. Aşağıdaki gibi bir process tree bizi karşılıyor.


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. Önceki yazılarımda da office dosyalarını incelerken kullandığım “oledump” aracı ile analiz edelim.



Görselden de anlaşıldığı gibi dosyanın parola korumalı olduğunu görüyoruz. Bazı durumlarda dosya parola korumalı bir şekilde yollanır fakat parola da mailin içinde yer alır. Bu durum AV veya firewall’a takılmamak için saldırganların kullandığı bir taktiktir. Bu durumda parola da mailin içinde olmadığı ya kaba kuvvet saldırısı ile bulacağız ya da başka yollardan analize devam edeceğiz. Yazının geri kalanında EQNEDT32.exe’yi debugger’a koyacağız. Bunun için yazılarda da daha önce kullanmadığım bir yöntem[4] kullanacağım. “Debugging Tools for Windows 10” araçlarından bir tanesi olan “Gflags”[5] ile excell açılır açılmaz EQNEDT32.exe’yi kendi debuggerımıza almayı deneyeceğiz. “C:\Program Files (x86)\Windows Kits\10\Debuggers\x64 veya x86” dizini altında “gflags.exe”de bulabilirsiniz. Image kısmına izlemek istediğimiz process ismini yazdıktan sonra “TAB” tuşuna bastıktan sonra hangi debugger’ı kullanmak istiyorsak bulunduğu konumu tam yoluyla beraber yazıyoruz. Benim için seçenekler aşağıda bulunan görseldeki gibidir.


Ayarları yaptıktan sonra .xlsx uzantılı dosyayı açıyoruz ve EQNEDT32.exe çalışmaya başladığı anda debuggera düşüyor. Sıfırdan bu işlemi hiçbir bilgi yokken analiz etmek zor olabilir. Biraz bilgi toplamak için VirusTotal’de[6] gezinirken VMRay’in tam analizini[7] ve fonksiyon loglarını[8] görüyorum.
Fonksiyon loglarına bakarken ID’si 36 olan thread’deki fonksiyonlar ilgimi çekiyor. Burada fonksiyonların dinamik bir şekilde yüklendiğini fark ediyoruz. Yine de kendi gözümüzle görmek için debuggerda takip ediyoruz. Fonksiyon loglarından elde ettiğimiz bilgilere göre akış şu şekilde işliyor: LoadLibraryW fonksiyonuyla “UrlMon” kütüphanesini yükle -> URLDownloadToFileW ile zararlıyı indir -> ShellExecuteW ile indirilen dosyayı çalıştır.

Debugger’a eklediğimizde ilk yüklenen DLL’ler:


LoadLibraryW fonksiyonuna breakpoint koyup UrlMon’un yüklenmesini görüyoruz.


URLDownloadToFileW fonksiyonuna da breakpoint koyarak istediğimiz sonuca ulaşıyoruz. Burada dosyanın yükleneceği yer ve nereden indirileceği bilgilerine ulaşıyoruz.


ShellExecuteW fonksiyona breakpoint koyup incelediğimizde akışı tamamlamış ve indirilen vbc.exe dosyasının çalıştırıldığını görüyoruz.



Şimdi sıra vbc.exe’yi analiz etmeye geldi. Dosyayı DIE ile incelediğimizde .NET ile yazılmış olduğunu görüyoruz.


Dosyaya dnspy aracı ile baktığımızda Assembly.load fonksiyonunun çağırıldığını görüyoruz. Burayı daha detaylı incelemek için breakpoint koyup bakıyoruz. Dönen değerin Base64lenmiş bir assembly olduğunu anlıyoruz.


Decode ettiğimiz zaman MZ magic bytelı bir seri ile karşılaşıyoruz. Karşımızda çalıştırılabilir bir dosya olduğunu görüyoruz.



Hemen HxD yardımıyla dump edip analizine başlıyoruz. Fonksiyonların adı her şeyi anlatıyor zaten.


DecrypyBytes fonksiyonuna baktığımızda parametre olarak verilen dizi ile ilk 16 elemanını anahtar olarak kullanarak XOR’luyor. Verilen dizi 0x6F200 adresindeki resource olduğunu görüyoruz. Anahtarında “msjrtFrDxPhG” olduğunu görüyoruz. Fonksiyon başlangıcındaki ve bitişindeki resource kısmını aşağıdaki görselde bulabilirsiniz.



 Bu payload ara katmanı oluşturuyor ve ağır bir şekilde obfuscate edilmiş durumda.


Asıl payload’ı çıkartmak için devam ediyoruz. Fonksiyon loglarına tekrardan dönüp incelediğimizde RegAsm.exe processini suspended halde açıp, içerisindeki bellek alanına kendi payloadını yazdığını görüyoruz. Bu injection tekniğine “Process Hollowing” deniliyor. Bunu yapma nedenlerinden bir tanesi RegAsm Microsoft imzalı bir binary olduğu için zararlı AV veya güvenlik ürünleri atlatabiliyor.





Artık Agent Teslanın en son bölümü elimizde. Bu kadar uğraşmak istemeyenler içinse başka bir yol göstereceğim. Vbc.exe’yi çalıştırdıktan sonra pe-sieve veya megadumper gibi programlar yardımıyla da aynı şekilde dump edebiliriz.
pe-sieve PID-Numarası”



 İkiside aynı sonucu veriyor.

Zararlımız bundan sonra SMTP üzerinden haberleşmeye başlayarak tarayıcıdan aldığı bilgileri, klavyeden aldığı bilgileri kontrol sunucusuna yolluyor.






Agent Tesla’yı Yakalamak için Gereken SIGMA Kuralı

title: Agent Tesla
status: experimental
description: Detect Agent Tesla’s Malicious Activities
author: Burak ÇARIKÇI - CRYPTTECH
references:
    - https://attack.mitre.org/software/S0331/
logsource:
    product: windows
    service: sysmon
detection:
    selection1:
        EventID: 1
        ParentImage: '*\vbc.exe'
        Image: '*\RegAsm.exe'
      selection2:
        EventID: 1
        ParentImage: '*\EQNEDT32.EXE'
      condition: selection1 and selection2
falsepositives:
    - unknown
level: high

Ö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. Agent Tesla 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. The Rise of Agent Tesla: https://www.digitrustgroup.com/agent-tesla-keylogger/
  2. Who Is Agent Tesla?: https://krebsonsecurity.com/2018/10/who-is-agent-tesla/
  3. Re Outstanding payment for inv no 2963001159 & 2963001167.msg: https://app.any.run/tasks/55124944-0b32-4311-95ea-c54516fbf3ce/
  4. CVE-2017-11882 - 3 ways to perform technical analysis, 1 easy way to protect: https://www.youtube.com/watch?v=aBWAHxpXHEk
  5. Gflags: https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/gflags
  6. CMG 4 263 PAYMENT ADVICE.xlsx VirusTotal sonucu: https://www.virustotal.com/gui/file/6ce1abc4a205179447e264a05e9f3a04e2fd4009b7a59bc7054fd78c6f15914f/summary
  7. CMG 4 263 PAYMENT ADVICE.xlsx – Full Analysis: https://www.vmray.com/analyses/6ce1abc4a205/report/overview.html
  8. CMG 4 263 PAYMENT ADVICE.xlsx - Function Log: https://www.vmray.com/analyses/6ce1abc4a205/logs/flog.txt
Burak ÇARIKÇI
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