Eski bir APT yeni numaralar öğrenebilir mi? Turla’nın TTP’leri büyük bir bölümü aynı ama grup kısa bir süre önce bir Python arka kapısı ekledi.
ESET araştırmacıları çok sayıda üst düzey Ermeni web sitesini hedef alan bir su kaynağı (stratejik web güvenlik ihlali olarak da bilinir) operasyonu saptadı. Sahte bir Adobe Flash güncellemesi tuzağına dayanıyor ve bizim NetFlash ve PyFlash adını verdiğimiz, daha önce belgelendirilmemiş kötü amaçlı yazılım gönderiyor.
Bu kampanyanın çeşitli özellikleri, bu operasyonu on yılı aşkın bir süredir aktif olan, kötü şöhretli bir casus grup olan Turla ile ilişkilendirmemize neden olmaktadır. Asıl hedefleri arasında devlet kuruluşları ve askerî kurumlar yer alıyor. Daha önce bu grubun, aralarında Mosquito ve LightNeuron kampanyalarının da yer aldığı birden fazla kampanyasını rapor etmiştik.
Bu son operasyon, geçtiğimiz yıllarda izini sürdüğümüz Turla’ya ait çok sayıda su kaynağı kampanyasıyla benzerlikler taşıyor. Çalışma tarzları özellikle 2017 yılında açığa çıkardığımız bir kampanyanın çalışma tarzı ile oldukça benzer. Orada kullanılan çeşitli JavaScript parçaları bu kampanyada kullanılan parçalarla neredeyse aynı, ancak hedefler ve yükler farklı.
Hedef alınan web siteleri
Bu operasyonda Turla, iki tanesi devlete ait olmak üzere, en az dört Ermeni web sitesinin güvenliğini ihlal etmiştir. Bundan dolayı, hedeflerin arasında devlet görevlilerinin ve politikacıların yer alması ihtimali kuvvetlidir.
ESET telemetrisine göre, şu web sitelerinin güvenliği ihlal edilmiştir:
· armconsul[.]ru: Rusya’daki Ermeni Konsolosluğunun Konsolosluk Bölümü
· mnp.nkr[.]am: Artsakh Cumhuriyeti Doğayı Koruma ve Doğal Kaynaklar Bakanlığı
· aiisa[.]am: Ermeni Uluslararası İlişkiler ve Güvenlik İşleri Enstitüsü
· adgf[.]am: Ermeni Mevduat Garanti Fonu
Elimizde bu web sitelerinin güvenliğinin 2019’un başından beri ihlal edildiğine ilişkin bulgular var. Ermeni ulusal CERT’i (Bilgisayar Acil Durum Müdahale Ekibi) bilgilendirdik ve yayınlamadan önce analizlerimizi onlarla paylaştık.
Turla operatörleri kötü amaçlı JavaScript kodu eklemek için bu web sitelerine bilinmeyen erişim yöntemleri kullanmışlardır. Örneğin Şekil 1’de de görüldüğü üzere, mnp.nkr[.]am için jquery-migrate.min.js’nin (yaygın bir JavaScript kitaplığı) sonuna karartılmış kod eklemişler.
Bu kod skategirlchina[.]com/wp-includes/data_from_db_top.php adresinden harici bir JavaScript yüklüyor. Bu kodu bir sonraki bölümde analiz ediyoruz.
2019 yılı Kasım ayının sonundan beri, skategirlchina[.]com adresinin artık kötü amaçlı komut dizileri göndermediğini fark ettik. Bu yüzden, Turla operatörlerinin bu su kaynağı operasyonunu askıya almış olmaları ihtimali vardır.
Parmak izlerini alma ve kötü amaçlı yazılım gönderme
Güvenliği ihlal edilmiş bir web sayfasını ziyaret ettikten sonra, ikinci aşamada skategirlchina[.]com adresi tarafından kötü amaçlı JavaScript gönderilir ve ziyaretçinin tarayıcısının parmak izi alınır. Şekil 2’de bu komut dizisinin ana işlevi görülmektedir.
Kullanıcının tarayıcısı komut dizisini ilk kez yürütüyorsa, komut dizisi sunucu tarafından sağlanan, rastgele gibi görünen bir MD5 değerine sahip bir evercookie (yapışkan çerez) ekleyecek ve komut dizisi her yürütüldüğünde, farklı bir MD5 değeri sağlanacaktır. Evercookie’nin uygulanması GitHub’da bulunan koda dayalıdır. Çerez değerini depolamak için yerel veritabanı, yerel paylaşılan nesneler (Flash çerezleri), Silverlight depolama alanı vb. gibi birden fazla depolama alanını kullanır. Normal bir çerez ile kıyaslandığında, kullanıcı tarayıcıdaki çerezleri silse bile silinmeyeceği için çok daha kalıcı olacaktır.
Bu evercookie, kullanıcının güvenliği ihlal edilmiş web sitelerinden birini ziyaret edip etmediğini takip etmek için kullanılacaktır. Kullanıcı ikinci kez geri geldiğinde, kullanıcıyı teşhis etmek için daha önce depolanan MD5 değeri kullanılacaktır.
Daha sonra bu, tarayıcının eklenti listesi, ekran çözünürlüğü ve çeşitli işletim sistemi bilgileri de dahil olmak üzere birçok bilgi toplar. Bunlar bir POST talebi içinde Komuta ve Kontrol sunucusuna gönderilir. Bir yanıt olursa bunun JavaScript kodu olduğu varsayılır ve eval işlevi kullanılarak yürütülür.
Ziyaretçinin ilginç olduğu düşünülürse sunucu bir iframe oluşturan bir JavaScript kodu ile yanıt verir. ESET telemetrisinden gelen veriler, bu kampanyada Turla operatörlerinin sadece çok sınırlı sayıda ziyaretçiyi ilginç bulduklarını göstermektedir. Bu iframe, kullanıcıyı kötü amaçlı Flash kurulum dosyasını indirmeye kandırmak için Şekil 3’te de görülen sahte bir Adobe Flash güncellemesi ile ilgili açılan bir pencere uyarısı görüntüler.
Tarayıcı zayıflıklarının kullanıldığını gözlemlemedik. Güvenlik ihlali girişimi sadece bu sosyal mühendislik tuzağına bel bağlamış durumda. Kötü amaçlı yürütülebilir dosya iframe’in JavaScript’i ile aynı sunucudan indirildikten sonra kullanıcı bunu manuel olarak başlatırsa kötü amaçlı bir Turla yazılımı türevi ve yasal Adobe Flash programı kurulur.
Şekil 4’te güvenliği ihlal edilmiş Ermeni web sitelerinden birini ziyaret etmekle başlayıp kötü amaçlı yükün gönderilmesine kadar uzanan güvenlik ihlali süreci genel olarak görülmektedir.
Kötü Amaçlı Yazılım
Kullanıcı sahte kurulum dosyasını yürüttükten sonra, bu hem kötü amaçlı bir Turla yazılımı türevini hem de yasal Adobe Flash kurulum dosyasını yürütecektir. Bu sayede, kullanıcı büyük olasılıkla güncelleme uyarısının yasal olduğuna inanacaktır.
Eylül 2019’dan önce: Skipper
2019 yılı Ağustos ayı sona ermeden önce, kurban içerisinde yasal bir Adobe Flash v14 kurulum dosyası ve ikinci bir RAR-SFX arşiv dosyasının bulunduğu bir RAR-SFX arşiv dosyası alır. İkinci arşiv dosyasında daha önce Turla ile ilişkilendirilen ve Skipper adı ile bilinen bir arka kapının çeşitli bileşenleri yer alır. 2017 yılında Bitdefender, araştırmacıları tarafından ve daha yeni bir sürümü de, Mayıs 2019’da Telsy tarafından belgelendirilmiştir.
Belgelendirilen sürümler ile en yeni sürümler arasında sadece ufak değişiklikler olduğu düşünüldüğünde, burada ayrıntılı bir analiz sağlamayacağız.
İlginç bir değişiklik ise, Skipper’in Komuta ve Kontrol sunucusu için bu kampanyanın uzak JavaScript’lerini ve kötü amaçlı ikili değerlerini barındıran sunucuyu (özellikle skategirlchina[.]com/wp-includes/ms-locale.php) kullanmasıdır.
Eylül 2019’dan itibaren: NetFlash ve PyFlash
2019 yılı Ağustos ayının sonunda, skategirlchina[.]com tarafından gönderilen yükün değiştiğini fark ettik.
NetFlash (.NET downloader)
Yeni yük %TEMP%\adobe.exe klasörüne Adobe Flash v32 kurulum dosyası bırakan bir .NET uygulaması ve %TEMP%\winhost.exe klasörüne bir NET indirme uygulaması bırakan bir NetFlash uygulamasıydı.
Derleme zaman bilgilerine göre, kötü amaçlı yazılım örnekleri, su kaynağının Komuta ve Kontrol sunucusuna yüklenmeden hemen önce 2019 yılı Ağustos ayının sonlarında ve 2019 yılı Eylül ayının başlarında derlenmiştir.
NetFlash ikinci aşama kötü amaçlı yazılımını doğrudan programın içine gömülü bir URL’den indirir ve Windows zamanlanmış görevi kullanarak bu yeni arka kapının kalıcı olmasını sağlar. Şekil 5’te PyFlash adlı ikinci aşama kötü amaçlı yazılımı indiren NetFlash işlevi görülmektedir. Büyük olasılıkla 2019 yılı Ağustos ayı sonunda derlenen ve doğrudan programın içine gömülü farklı bir Komuta ve Kontrol sunucusuna sahip başka bir NetFlash örneğiyle de karşılaştık. 134.209.222[.]206:15363.
PyFlash
İkinci aşama arka kapısı yürütülebilir bir py2exe dosyasıdır. py2exe Python komut dizisini bağımsız bir yürütülebilir Windows dosyasına dönüştürmek için kullanılan bir Python uzantısıdır. Bildiğimiz kadarıyla, Turla geliştiricileri bir arka kapıda Python dilini ilk kez kullanıyorlar.
Arka kapı doğrudan programa gömülü Komuta ve Kontrol sunucusuyla HTTP aracılığıyla iletişim kuruyor. Komuta ve Kontrol sunucusu URL’si ve tüm ağ iletişimlerini şifrelemek için kullanılan AES anahtarı ve IV gibi diğer parametreler, Şekil 6’da görüldüğü gibi, komut dizisinin başında belirtilir.
Komuta ve Kontrol sunucusu arka kapı komutlarını JSON formatında da gönderebilir. PyFlash’ın bu sürümünde kullanılan komutlar şunlardır:
· Verilen bir HTTP(S) bağlantısından ek dosyalar indirme.
· subprocess32.Popen Python işlevini kullanarak bir Windows komutu yürütme.
· Yürütme gecikmesine değiştirme: kötü amaçlı yazılımı düzenli olarak (her X dakikada bir; varsayılan olarak 5) başlatan Windows görevinde değişiklik yapar.
· Kötü amaçlı yazılımı öldürme (kaldırma). Bu yönergeyi doğrulamak için kötü amaçlı yazılım Komuta ve Kontrol sunucusuna içerisinde şu dizenin bulunduğu bir POST talebi gönderir:
Ölüyorum :(
Karıma onu sevdiğimi söyleyin...
Daha sonra, bir POST talebi aracılığıyla AES ile birlikte şifrelenen komutun çıkışı operatörlere geri gönderilir.
Sonuç
Turla hâlâ ilk erişim taktiklerinden biri olarak su kaynağı saldırılarını kullanıyor. İlginç bir şekilde, kampanya kullanıcıyı kötü amaçlı yazılımı indirip kurmaya kandırmak için bilindik bir sosyal mühendislik numarasına - sahte bir Adobe Flash güncelleme uyarısı - bel bağlamış durumda.
Öte yandan, Skipper çok uzun yıllardır bilindiği için büyük olasılıkla algılanmaktan kaçınmak amacıyla yük değiştirildi. PyFlash adını verdiğimiz ve Python dilinde geliştirilen bir arka kapı yükleyen NetFlash’a geçiş yaptılar.
Yeni Turla etkinliklerini takip etmeye devam edeceğiz ve blog’umuzda ilgili bilgileri yayınlayacağız. Sorularınız için bizimle threatintel@eset.com adresinden iletişim kurun. Tehlike Göstergeleri GitHub kaynağımızda da bulunmaktadır.
Tehlike Göstergeleri
Güvenliği ihlal edilmiş web siteleri
· www.armconsul[.]ru/user/themes/ayeps/dist/js/bundle.0eb0f2cb2808b4b35a94.js
· mnp.nkr[.]am/wp-includes/js/jquery/jquery-migrate.min.js
· aiisa[.]am/js/chatem/js_rA9bo8_O3Pnw_5wJXExNhtkUMdfBYCifTJctEJ8C_Mg.js
· adgf[.]am
Komuta ve Kontrol sunucuları
· skategirlchina[.]com/wp-includes/data_from_db_top.php
· skategirlchina[.]com/wp-includes/ms-locale.php
· 37.59.60[.]199/2018/.config/adobe
· http://85.222.235[.]156:8000
Örnekler
SHA-1 | Zaman bilgisi | Açıklama | ESET Algılama Adı |
973620A7AB28A2CBA82DC2A613CD24ED43734381 | 29 Ağustos Perşembe 04:14:46 UTC 2019 | NetFlash Dropper | MSIL/Turla.D |
B6567F988C9ACC5DF3CBD72409FC70D54EA412BB | 3 Eylül Salı 11:12:04 UTC 2019 | NetFlash | MSIL/Turla.D |
9F81710B85AA7088505C1EECCE9DA94A39A2DC06 | 29 Ağustos Perşembe 04:12:33 UTC 2019 | NetFlash | MSIL/Turla.F |
32430B11E42EDEB63A11E721927FFBABE7C9CFEA | Yok | PyFlash | Win32/Turla.EM |
620A669EC0451C9F079FB4731F254AC577902E5E | 29 Ağustos Çarşamba 09:43:18 UTC 2018 | Skipper iletişim DLL’si | Win32/Turla.EJ |
MITRE ATT&CK teknikleri
Taktik | Kimlik | Ad | Açıklama |
İlk Erişim | Ziyaretçi Saldırısı | Turla ziyaretçilere kötü amaçlı yazılım göndermek için yüksek değerli web sitelerinin güvenliğini ihlal etti. | |
Yürütme | Kullanıcı Tarafından Yürütülme | Kullanıcıyı kötü amaçlı yazılımı başlatması için kandırmak üzere sahte bir Flash kurulum dosyası kullanılır. | |
Kararlılık | Zamanlanmış Görev | NetFlash ve PyFlash zamanlanmış görevleri kullanarak kalıcı olurlar. | |
Keşfetme | Sistem Ağ Yapılandırması Keşfi | PyFlash executes ipconfig /all, getmac and arp -a | |
Süreç Keşfetme | PyFlash tasklist’i yürütür | ||
Sistem Bilgileri Keşfetme | PyFlash systeminfo’yu yürütür | ||
Komuta ve Kontrol | Standart Kriptografik Protokol | PyFlash Komuta ve Kontrol iletişimlerini şifrelemek için CBC moduna AES-128’i kullanır. | |
Sık Kullanılan Bağlantı Noktası | NetFlash 80 numaralı bağlantı noktasını kullanır. | ||
Sık Kullanılmayan Bağlantı Noktası | PyFlash 8.000 numaralı bağlantı noktasını kullanır. | ||
Standart Uygulama Katmanı Protokolü | NetFlash ve PyFlash HTTP protokolünü kullanır. | ||
Sızma | Komuta ve Kontrol Kanalı Üzerinden Sızma | PyFlash gözetiminin çıkışı ve Komuta ve Kontrol komutları, Komuta ve Kontrol protokolü kullanılarak sızdırılır. |