Valorant adlı oyun için geliştirilen bir hilenin içerisine, yine bir önceki yazımda kullanmış olduğum Empire Framework te bağlantı sağlayan powershell kodumuzu enjekte edeceğiz.Programlama bilenler için tabii ki gereksiz bir konu olacaktır fakat, bilmeyenler için en azından işlemin basitliğini görmelerini sağlamış olmak istedim.Çünkü burada benim yaptığım hiçbir şey yok uygulama kısmında sizinde göreceğiniz üzere, yaptığım tek şey internette varolan ve çalışır vaziyette olan bir hile buldum ve içerisine kendi kodumu yerleştirdim.Burada hilenin çalışır vaziyette olması önemliydi çünkü kullanıcının işini görüp, o hilesini kullanırken biz de arka planda kendi bağlantımızı almış olacağız ki hilenin kullanıcının işini görmesi, gerek tavsiye, gerek olumlu dönüşlerle birlikte hilenin yayılımını hızlandıracaktır.
Bu tür size ücretsiz halde sunulan yazılımların arka planında ki mantık bu kadar basittir aslında.Şimdi uygulama kısmına geçeceğiz.Öncelikle hilemizin arayüzünü görmeniz için resimlerini bırakıyorum.
Görüldüğü üzere bir çok metin kutusu ve butonlardan oluşan bir arayüze sahip.Ben son görselde en altta yer alan "Start" buttonu içerisine zararlı kodumu enjekte edeceğim.Yani kullanıcı "Start" buttonuna bastığında hem hile başlasın,hemde bizim bağlantımızı verecek olan powershell kodu çalışsın.Button dışında direk Program.cs içerisine de enjekte edilebilirdi, yani Start buttonu tamamen benim tercihim.
İlk başta gördüğünüz arayüz, Form1 içerisinde yer almaktadır.Bizde Form1 içerisine girip "Start" butonunu bulacağız.
Start buttoning bulduk ve içerisine giriyoruz.
Start butonunun içeriğini görmektesiniz.Dikkat etmenizi istediğim en başta "synch()" methodu.Bu method bizim bağlantı almamızı sağlayan powershell kodunu içeriyor.Yapmaya çalıştığım ise, buttona tıklandığında ilk olarak bizim bağlantımızın sağlanması işlemidir.Tabii ki burada bir if bloğu ile eğer arka kapımız için 1 bağlantı mevcut ise, ikincisini çalıştırma deyip diğer kod bloğuna geçmesini söyleyebilirdik 1-2 satır kod ekleyerek, ya da saldırganlar çok daha yaratıcı çalışabilirler ama burada amacımız bir hile içerisine zararlı kodun eklenmesinin basitçe anlatımı olduğu için, işi çok detaylandırmak istemedim.
Burada, yukarıda gördüğümüz synch() methodunu görmekteyiz.Bir önceki yazımda yer alan kodun aynısı sizlerin de gördüğü üzere.Kısaca çalışma mantığını inceleyecek olursak, Aes256 şifreleme algoritması ile şifrelediğimiz powershell kodlarımız bir değişken içerisindedir.Decode edebilmemiz için gereken Key ve IV'lerimizi byte olarak tanımladıktan sonra Decrypter methodumuzu çağırarak powershell kodumuzu decode ediyoruz.Ardından powershell kodumuzu çağıracak kod bloğu geliyor ve bağlantımızı sağlamış oluyoruz.
Decrypter methodunun içeriğini de incelemeniz açısından buraya bırakıyorum, siz başka bir algoritma veya şifreleme tekniği de kullanabilirsiniz benim Aes kullanmam tamamen tercih meselesidir.
Tabii arka kapımızı sağlayacak kodumuzun çalışması için, gerekli kütüphaneleri de Form1 içerisinde çağırmayı unutmuyoruz.System.Management.Automation kütüphanesi powershell kodumuzun çalıştırılması için gerekli iken, Decrypt işlemi için Cryptography kütüphanesinden faydalanıyoruz.
Ve böylelikle zararlı kodumuzu yerleştirmekte atacağımız bütün adımları atmış oluyoruz.Peki madem bu kadar basit, o zaman üçüncü parti yazılımlarla(.net reflector vs.) analiz edip, bu tarz bir şüpheli işlem var mı inceleyelim, yoksa eğer gönül rahatlığıyla kullanalım diye düşünüyor olabilirsiniz fakat, iyi niyetli veya kötü niyetli yazılımlar yine üçüncü parti yazılımlarla "obfuscating" denilen kodun karmaşıklaştırılması işlemi uygulandığından anlamlı kodlar elde edilmediğinden davranış bazlı analiz yapılmadığı sürece anlaşılması çokta mümkün olmayacaktır.
Ben bu hileyi kleenscan.com üzerinden tarattığımda, 6 antivirüs yazılımı hile olarak tespit ediyordu, bende işe yararlılığını denemek adına .net reactor ile karmaşıklaştırmayı denedim ve tekrardan tarattığımda 7 antivirüs tespit etmişti :) . Bunu da ufak bir not olarak belirtmek istedim.
Bütün işlemlerimiz tamam olduktan sonra hilemizi çalıştırıp, start butonuna basıyoruz ve bağlantımızın düşmesi için bekliyorum.
Ve start butonuna basılmasından yaklaşık 3 saniye sonra bağlantımız geliyor.
Agents'larımızı listelediğimizde, İBaseult işlemine bağlı olan agentımızı PID numarası ve bir takım bilgiler ile birlikte görmekteyiz.
Agentımıza bağlanıp dilediğimiz komutları içeride çalıştırabiliyoruz.
Yazımın amacı, en başta da belirttiğim gibi internette size ücretsiz olarak sunulan yazılımların kötü niyetli olabilmesinin anlaşılmasıydı.Bizim kötü kotumuz aslında çok iyi niyetliydi, normal şartlar altında bizim kodumuzun yerini veri ihlali veya zombi ağına ekleyen kod blokları almaktadır.Umarım konuyu anlaşılabilir kılmışımdır, orijinal dosyanın değiştirildiğine dair şüpheniz oluşursa üretici firmanın sitesinde yer alan hash değerini, indirdiğiniz dosya ile karşılaştırıp orijinalliğini teyit edebilirsiniz.
Yazımla alakalı aklınıza takılan sorular veya takıldığınız noktalar için emrehuseyinkahyaoglu@gmail.com adresinden benimle iletişime geçebilirsiniz.İyi günler dilerim.