Fileless Malware Nedir
- İbrahim Mert COŞKUN
- Oct 12, 2021
- 5 min read
Updated: Oct 13, 2021
Buradaki yazımda malware hakkında bir bilgi vermiştim. Fileless Malware; bir cihaza bulaşmak için hedef sistemde yeni bir dosya indirmek/kurmak yerine cihazdaki mevcut yazılımları (Powershell, calc.exe, pdf vs.) gibi yazılımlar üzerinden sisteme bulaşan yazılımlardır. Zararlı, herhangi bir bölümünü bilgisayarın sabit sürücüsüne yazmaz, yani dosya tabanlı beyaz listeye alma (whitelisting), imza algılama, donanım doğrulama, model analizi, zaman damgası vb. gibi güvenlik önlemlerini atlatabildiği gibi adli bilişim tekniklerine karşıda dayanıklıdır. Ve genelde arkasında herhangi bir iz bırakmaz. Direkt olarak sistem üzerinde dosya yüklenmez ve RAM üzerinde çalışır. Bundan dolayı "İmza Tabanlı Antivirüs" sistemlerinden kaçarak sistemde kendine yer ederek çalışmaya devam eder.
Fileless denilmesinin sebebi de bu yüzdendir. Sistem üzerinde mevcut programları kullanarak işlem yapar ve çalışmak için ekstra bir dosya yüklenilmesine gerek yoktur. Bu yazımda ben Powershell üzerinden devam edeceğim. Hemen hemen herkesin kullanması nedeniyle arka planda çalışan bir powershell uygulaması sistem üzerinde fazla dikkat çekmeyecektir. Bunun yanı sıra office belgelerine konulan "makrolar" ile de sistem üzerinde bir malware çalıştırılabilir. Hepimizin kabaca bildiği gibi office belgesini açtığımızda "düzenlemeyi etkinleştir" yazısı makroları aktif hale getirebilmekte. Fileless Malware tekniği bununla beraber de kullanılabilir. Burada karşı tarafa office dosyasını iletmek ise saldırganın sosyal mühendislik tekniklerine kalmakta.

Yaygın Fileless Malware Teknikleri;
Saldırganların fileless malware için kod/program yüklemeleri gerekmese de, sistem üzerinde çalışan yerel araçları amaçlarına hizmet edecek şekilde değiştirebilmeleri için yine de ortama erişmeleri gerekir. Erişim ve saldırılar, çeşitli yollarla gerçekleştirilebilir. Fileless Malware saldırılarının bazı kategorileri;
Windows Registry Manipulation
Windows kayıt defteri manipülasyonu (Windows Registyr Manipulation), tıklandığında kayıt defterine dosyasız kod yazmak ve yürütmek için normal bir Windows işlemi kullanan kötü amaçlı bir dosya veya bağlantının kullanılmasını içerir.
Memory code injection
Memory Code Injection teknikleri, uygulamaların belleğinde kötü amaçlı kodun saklanarak çalışmasını esas alır. Windows için kritik olan işlemler çalışırken, bu kötü amaçlı yazılım kendini bu işlemlere dağıtır ve yeniden enjekte eder. Bu fileless saldırılar tarayıcılar, Java ve Flash gibi programlardaki bilinen güvenlik açıklarından ve hedef bilgisayarın belleğinde çalıştırma kodu elde etmek için çalışır. Fileless Malware yazılımlarıyla ilgili en büyük zorluk zararlının algılanmasıdır. Fileless Malware yazılımları, PowerShell ve MWI gibi Windows programlarını kullanır, bu nedenle bu varsayılan programlar tarafından yürütülen komutların güvenli olduğu kabul edilir. Bunun nedeni, Fileless Malware saldırılarının black-white list gibi listelerden kaçabilmeleridir.
Örneğin Powershell, güvenilir bir imzaya sahiptir. Kötü amaçlı yazılım, doğrudan sistem belleği üzerinden yüklendiğinden ve işletim sistemi üzerinde özgürce at koşturabildiğinden antivirüs yazılımlarından kaçabilir. İmzanın Powershell'den gelmesi Windows ortamında güvenilir gibi gözükse de aslında arka tarafta zararlı kod çalışmaya devam etmektedir.
Fileless Malware Tekniğini Kullanmak İçin Sebepler;
Ekstra kurulum yapılmaması. Powershell; Windows ortamlarında kurulu olarak gelir. Böylelikle ekstra bir kurulum yapılmasına gerek kalmaz.
Sık kullanılır. Sistem yöneticisinden araştırmacısına kadar powershell kurum içerisinde sıklıkla kullanılan bir araçtır. Bundan dolayı SOC ekipleri proseslerde powershell.exe görseler bile bunu bir tehdit olarak algılamazlar.
Obfuscate'nin kolay olması.
Örnek için kali üzerinde Covenant kullandım. Covenant, Kali Linux'ta çalışan bir .NET tabanlı C2 ortamıdır (https://github.com/cobbr/Covenant)
Gerekli kurulum ve ayarlamaları yaptıktan sonra "dotnet --run" komutu ile çalıştırıyoruz.

İlk yapılması gereken bir listener oluşturmak. Buradaki adımlar aslında "Empire" ile yapılan adımlara benzemektedir. Covenant biraz daha görsel bir arayüz sunarak bunu daha anlaşılabilir hale getiriyor. "Isengard" isimli listener oluşturuyorum.

"Launchers" sekmesi üzerinden ayarlamaları yapıyorum. Burada alt kısımda normal ve encoded edilmiş şekilde 2 farklı script veriyor. Sosyal mühendislik, bypass vs. gibi senaryoları şimdilik es geçiyorum. Bu yazıda gerekli zararlının karşı tarafa başarılı bir şekilde ulaştırıldığı varsayılarak yazılmıştır. Gerekli kodu karşı sisteme yollamamız gerekiyor.
Encode edilmiş kod

Enter dediğim zaman powershell kapanıyor. Ancak arkada çalışmaya devam eden hala bir powershell prossesi bulunmakta



Ve shell ekranı geliyor.
Asyanın Korkulu Rüyası: Operation Cobalt Kitty
Fileless Malware'nin ne kadar zarar verebileceğinin en iyi örneği "Operation Cobalt Kitty" operasyonu diyebiliriz. İlk sızma vektörü olarak spear-phishing saldırılarını kullanarak şirketin üst düzey yönetimi kadrosunu hedef alarak başkan yardımcılarının, üst düzey yöneticilerin ve departmanlardaki diğer kilit personelin bilgisayarlarını ele geçirmeyi hedefledi. Cobalt Kitty Operasyonu sırasında saldırganlar, domain controller, dosya sunucuları, web uygulama sunucusu ve veritabanı sunucusu dahil olmak üzere 40'tan fazla bilgisayar ve sunucunun güvenliğini ihlal etti.
Saldırıdan sonra yapılan çalışmalar sonucunda grubun bir yıldan fazla süredir içeride oldukları tespit edildi. Yazının bu kısmı bu operasyonun teknik detaylarını ele alacaktır. "Analysis Operation Cobalt Kitty" araştırma raporundan referans olarak yazdığım bu kısım için detaylı rapora yazının sonunda ki kaynaklardan erişebilirsiniz.
Kedi-Fare Kovalamacası
Hedef şirketin BT ekibi bir gün işlerin ters gittiğinin farkına varıyor. Ancak yapılan çalışmalar bir sonuç vermiyor ve kaynağı izleyemiyorlar. Bunun sonucunda "Cybereason" adlı bir siber güvenlik, istihbarat ve end-point çözümleri sunan firma ile iletişime geçiyorlar.
Toplanan ilk bulgulara göre grup Cobalt Strike, Powershell ve Nishang (https://github.com/samratashok/nishang) gibi offensive freamework payload'larını kullanarak powershell'de çalıştırabilmek için bir "Fileless Malware" oluşturdular.
Oluşturulan dosyayı sisteme atabilmek için sosyal mühendislik yöntemini kullandılar. Bu sayede gelen mailler de bulunan word dosyalarında makroları yerleştirip, etkinleştirildiğine belirtilen adresten dosyayı indirmek ve içeride bir kontrol sunucusu kurmayı hedeflediler.

Sistemde Cobalt Strike Beacon indirmek için kullanılan JS kodu ise;

Kısacası olayın işlenmesi;

Ufak bir VBS arası;
Saldırganlar Visual Basic ve PowerShell komut dosyalarını, ProgramData (varsayılan olarak gizli bir klasör) altında oluşturdukları klasörlere yerleştirdiler. Saldırganlar, Windows'un kayıt defterini (Windows’ registry), servislerini ve zamanlanmış görevlerini (scheduled task) kullanarak sistem üzerinde kalıcı olmaya çalıştılar (persistence). Bu durum, loader script'lerin başlangıçta veya önceden belirlenmiş aralıklarla yürütülmesini sağlamıştır. Böylelikle wscript olarak çalıştığı için Windows başlangıcında kodlar çalışmış oluyordu.

Base64 ile encode edilmiş powershell başlatma komutu ile vbs scriptleri başlatan başka bir kod;

base64 ile encode edilmiş olan bu kodlar payload edilmiş indirme bağlantılarını da barındırmaktadır. Cobalt Strike indiren ve encode edilmiş bir powershell kodu;

Olaylar olaylar Mecnun (Backdoors exploiting DLL-hijacking, DNS Tunelling)
Güvenlik ekibi malware'yi bulup bunu pasif hale getirmeye çalıştılar ve başarılı da oldular. Devam eden araştırmalar sonucunda saldırganlar tarafından kurum içerisine yerleştirilmiş iki adet backdoor olduğu tespit edildi. Bu sayede bir şekilde malware bulunsa bile backdoor'lar sayesinde saldırganlar sistemde kalmaya devam ettiler. Burada işin karıştığı nokta; Saldırılar sırasında sisteme yüklenen backdoor'ları, sistemde bulunan güvenlik yazılımları tarafından tespit "edilememesi". Kaspersky araştırmacıları arka kapılardan birinin bir "Backdoor.Win32.Denis" olduğunu yayınladı. Yerleştirilen backdoor'lar, malware'yi yazılımların içerisine gizlemek için "DLL Hijacking" yöntemini kullandılar. Bu sayede mevcut yazılımlara saldırganlar tarafından sahte bir DLL yüklenerek sistem üzerinde kod çalıştırabilme imkanını elde ettiler. DLL Hijacking kullanılan yazılımlar ise;
-->Windows Search (vulnerable applications: searchindexer.exe /searchprotoclhost.exe)
-->Fake DLL: msfte.dll (638b7b0536217c8923e856f4138d9caff7eb309d)

-->Google Update (d30e8c7543adbc801d675068530b57d75cabb13f)
-->Fake DLL: goopdate.dll (973b1ca8661be6651114edf29b10b31db4e218f7)

-->Kaspersky’s Avpia (691686839681adb345728806889925dc4eddb74e)
-->Fake DLL: product_info.dll (3cf4b44c9470fb5bd0c16996c4b2a338502a7517)

Bu sayede saldırganlar; sistemde "güvenli" olarak kabul görülen yazılımlar üstünden operasyonlarına devam ettiler.
DNS candır, DNS Namustur
Oluşturulan backdoor ile sistem üzerinden saldırganlar komut çalıştırabilme yetkisine sahip oldular? Peki mevcut DNS filtreleme sistemlerini nasıl atlattılar?
Saldırganlar, ağ filtreleme çözümlerinin kaçabilmek için, DNS protokolünü kullanarak C2 sistemlerinin kullandığı ve veri hırsızlığı yöntemi olan “ DNS Tunelling” yöntemini uyguladılar. DNS trafiğinin filtrelenmemesini sağlamak için saldırganlar arka kapıyı Google ve OpenDNS DNS sunucularıyla iletişim kuracak şekilde yapılandırdı. Bunun sebebi ise; çoğu kuruluş ve güvenlik ürünü bu iki ana DNS hizmetine gelen trafiği filtrelememesidir.

Aşağıdaki ekran görüntüsü, C2 iletişimi için DNS Tüneli'nin kullanılmasını ve backdoor tarafından oluşturulan trafiği göstermektedir. Gösterildiği gibi, hedef IP "8.8.8.8" - Google'ın DNS sunucusu - iken, kötü amaçlı domain DNS paketinin içinde "gizlenmiştir":

Saldırganlar; kullanıcı parolaları, NTLM hashleri ve Kerberos biletleri dahil olmak üzere kimlik bilgilerini elde etmek "Mimikatz" kullandılar.
Aşağıdakiler, saldırı sırasında tespit edilen Mimikatz komut satırı argümanlarının örnekleridir:

Çalınan kimlik bilgileri, daha fazla makineye bulaşmak için kullanıldı, Windows yerleşik araçlarının yanı sıra bilet ve hash saldırılarından yararlanıldı.

Toparlarsak;
Kobalt Kitty Operasyonu, Asya'daki küresel bir şirketi hedef alan ve "OceanLotus Group" tarafından yürütülen büyük bir siber casusluk APT'siydi. Sisteme giren bir zararlı dosya aracılığıyla saldırganlar; sistem üzerinde ciddi bir siber casusluk aktivitesi gösterdiler. Mevcut güvenlik yazılımlarının yakalayamamasından tutunda DNS filtreleme servislerinin zayıf kalmasına kadar sistem üzerinde bu kadar at koşuşturmaları bir mucize değil. Aynı zamanda bu operasyon kullanılan yazılımların kötü veya güvenli olmadığı anlamına da gelmez. Saldırganlar, operasyonun tespit edilememesi için titizlikle çalışmışlar ve sürekli olarak strateji değiştirerek yapılan incelemelerden kaçmaya çalışmışlardır. Kaldı ki bir yılı aşkın bir süredir sistemde bulundukları gerçeğini düşünürsek bu kanıksanmayacak bir gerçektir. Sonuç olarak; tehlikeli bir APT grubunun hedeflediği bir saldırı çoğu zaman başarıya ulaşmakta.
Kaynakça;
https://www.cybereason.com/hubfs/Cybereason%20Labs%20Analysis%20Operation%20Cobalt%20Kitty-Part1.pdf
https://www.cybereason.com/hubfs/Cybereason%20Labs%20Analysis%20Operation%20Cobalt%20Kitty-Part2.pdf

Commentaires