Mallware - AES256 Şifreleme İle Adım Adım Antivirüs Atlatma (Empire Framework Command & Control Bağlantısı İle)

Merhabalar, bu yazımda Empire Framework ile sorunsuz bağlantı alabilmek için, yine Empire Frameworkten aldığımız C# powershell payloadunda uygulayacağımız ufak bir şifreleme ile neredeyse bütün antivirüs çözümlerini atlatmanın aşamalarını aktaracağım.

Empire Framework kullanımı ayrı bir yazı konusu olduğu için, kullanımına hakim olduğunuzu varsayarak anlatımlar gerçekleştireceğim.Daha önce kullanmayanlar çeşitli kaynaklardan kullanımını rahatça öğrenebilirler, yaygın kullanılan Metasploit Framework'ten biraz farklı kullanıma sahip olsa da alışması çok uzun sürmemektedir.Girişimizi bitirdiğimize göre artık uygulama kısmına geçebiliriz.



Empire Framework arayüzüne girdikten sonra eğer oluşturmadıysanız Listener'ınızı oluşturmalısınız.Bu uygulamada http dinleyicisi üzerinden işlemlerimizi gerçekleştireceğiz.Listener oluşturduktan sonra stager oluşturma aşamasına geçiyoruz.Görüldüğü üzere sosyal mühendislik saldırılarında kullanmak için macrodan başlayıp çeşitli yöntemlere ve platformlara kadar uzanan geniş stager ağına sahibiz.Bizim bu uygulama için ihtiyacımız olan stager "windows/csharp_exe" çünkü bu stager ile powershell saldırısı ile bağlantı alabileceğimiz c# kod dökümünü elde edeceğiz.



Ayarlar kısmından Listener'ımızı seçip execute komutunu giriyoruz ve /tmp yoluna dosyamızı aktarıyor.Ben sanal makinemde bu dizine gidip ilgili dosyayı daha merkezi bir dizine aktarıyorum ve python modüllerinden SimpleHTTPServer ile dosyamı yayınlayıp, Windows sistemimden dosyayı çekiyorum.


Dosyayı açtığımda böyle bir kod dizini karşıma çıkıyor.Özetleyecek olursak, Base64 ile şifrelenen powershell scriptini Decode edip, decode edilen bu powershell scriptini sistemde çalıştırıyor.Base64 ile şifrelenen powershell kodları, günümüz antivirüs çözümleri tarafından tespit edilmeye başlandığından bizim aslında sıkıntıya düştüğümüz noktada bu kısımdır.Bu sorunu çözmek için de sadece şifreleme kısmında bir başka şifreleme tekniği olan Aes 256 kullanacağız.Şimdi öncelikle bu haliyle antivirüs çözümlerinden kaç tanesine takıldığını inceleyeceğiz.

Msfvenom ve diğer yazılımlarla üretilen payloadlara göre 36/10 iyi bir oranlama aslında ama yine de bunu daha optimal hale getirmemiz gerekmektedir.Ayrıca belirtmem gerekirse bu tespit eden 10 antivirüs içerisinde Windows Defender yok fakat, ilk çalıştırmadan sonra Defender da ".exe"mizi zararlı yazılım olarak algılamaktadır.Şimdi şifreleme tekniğini değiştireceğimiz kısıma geçeceğiz.

Ben Aes256 kullandım fakat siz istediğiniz herhangi bir şifreleme tekniğini kullanabilirsiniz.Bunun için kendi kodunuzu yazabilir veya internette paylaşılan c# şifreleme algoritmalarını kullanabilirsiniz.Ben kısaca Aes256 şifreleme tekniği için kullandığım algoritmayı göstereceğim.



Kodun detaylarınave içeriğine inmeden anlatacak olursam, Encrypter adında bir methodumuz var ve bu method şifrelemek için bir metin, ve Aes256 tekniğinde şifreleme için 256 bit uzunluğunda bir Key ve 128 bit uzunluğunda bir IV değeri alıyor.Şifreleme tekniğini uyguladıktan sonra string olarak şifrelenmiş metni değer olarak döndürüyor.


Decrypter da Encrypt methodu ile aynı parametleri alıyor ve şifreyi girdiğimiz Key ve IV ile çözüp, string olarak çözülmüş açık metni döndürüyor.


Şimdi yapmamız gereken, Empire'dan aldığımız kodda en başta yer alan şifrelenmiş metnimiz ve onu decode eden kodumuzu alıp şifreleyicimizin içine atmak.Ardından key ve ivlerimizi oluşturup bir değişken içerisine aes ile şifrelenmiş metnimizi aktarıyoruz ve ekrana çıktısını veriyoruz.


Şifrelenmiş metnimiz bu şekilde karşımıza geliyor.Çıktıyı kopyalayıp sonraki aşamaya geçiyoruz.


Şimdi yeni bir proje oluşturacağız çünkü empire dan aldığımız çözüm, .net sürümü 2 olarak geliyor ve Cryptography kütüphanemiz bize sorun çıkarıyor bu sürümde. Eğer en son .net sürümünde yeni proje açacak olursanız bu sefer de powershell çalıştırmamız için ihtiyaç duyduğumuz "system.management.automation" kütüphanemiz bize sorun çıkaracaktır.Ben her iki kütüphanenin de bu proje için sorunsuz çalıştığı .net sürümünün 3 olduğunu deneme yanılma yoluyla buldum, bu sebepten ötürü sizde yeni projenizi .net 3 sürümü ile oluşturun ve empire dan aldığınız kodu içerisine olduğu gibi yapıştırın. Decrypt için gereken methodumuzu da ekledikten sonra bir değişken içerisine Aes256 ile şifrelediğimiz metinimizi atıyoruz.Key ve IV değerlerimizi de oluşturduktan sonra decode edecek methodumuza gerekli parametreleri verip, dönen değeri de bir değişken içerisine atıyoruz.Bunun sonrasında yapacağımız tek adım "pipeline.Commands.Addscript" içerisine decode ettiğimiz shellcode umuzu vermek olacak.Bunun sonrasında Empire Frameworkun dinler halde olduğunu teyit ettikten sonra bağlantının gelmesini bekliyoruz.



Defenderda bütün ayarlar aktif haldeyken herhangi bir engele takılmadan çalışmamızı gerçekleştirdik ve aşağıda görüldüğü üzere bağlantımız aktif hale gelip, ilgili bağlantı için bir agent atanıyor.

Agentımıza bağlanmadan önce, antivirüsler tarafından tespit edilip edilmediğine bakacağız.



1 antivirüs tarafından tespit edildiği için FUD diyemeyeceğim ama, yaygın kullanılan antivirüsler hepsini atlatabilmiş olmamız da güzel bir oran diye değerlendiriyorum.FUD hale getirmek için ne gibi değişiklikler gerektiğini boş vaktimde kurcalayıp, ona göre güncellerim ilerleyen zamanlarda.

Burada önemli bir nokta var, biz dosyamızı antivirüsün zararlı yazılım olarak algılamamasını sağlamış bulunmaktayız.Aynı işlemi msfvenomdan aldığımız dosyalarda da uygulayıp antivirüsten kaçırabilirdik.Ama alacağımız meterpreter bağlantısının içerideki hareketlerini Defender yakalayıp bağlantımızı koparacaktı.Burada bir diğer önemli nokta, bağlantıyı aldıktan sonra içerde yapacağımız işlemlerin de güvenlik çözümleri tarafından tespit edilmemesidir ki Empire Frameworkun buradaki başarısının powershell kullanmasından kaynaklı olduğu yazılmakta.

Şimdi bağlantıyı aldığımızdaki WireShark paketlerini de buraya bırakıyorum ama açıklamasına girmeyeceğim, detaylı incelemek isterseniz şayet Windowsta dosyayı çalıştırmadan Kali üzerinde Wiresharkı çalıştırabilirsiniz.


Ekran alıntısını bağlantının gelmesinden itibaren aldım, burada kurban makine ipsi "192.168.161.1", saldırgan makine ipsi "192.168.161.128".


Agentımıza interact diyerek bağlanıyoruz.


İçerisinde çok güzel post exploit modülleri yer almaktadır, deneyerek görebilirsiniz.Ben burada trollsploit modüllerinden voicetroll modülünü kullanıp arkadan "Pwned" sesi çıkmasını sağlatıyorum.

Ne Öğrendik ? 

Bu uygulamada gördük ki, öyle üst düzey programcılık bilgilerine ihtiyaç duymadan bir kaç ufak dokunuşla antivirüsler atlatılabiliyor.Şimdi siz bu hazırladığımız kodu hangi projenin içerisine koyarsanız sorunsuz çalışacaktır.Mesela çemberin çevresini hesaplayan bir Windows Form Application hazırladınız, hesapla butonun tıklandığında hem gerekli hesaplamaları yaptırıp, hemde bu kodumuzu yerleştirdiğimizde kullanıcı her şeyden habersiz bir arka kapı açmış olacaktır.

Tabii günlük hayatta senaryolar bu kadar basit olmamaktadır.Mesela bir oyun için hile indirdiniz ve hile çalışıyor ama tam da olması gereken olay da bu.Siz hiçbir şeyden işkillenmeyeceksiniz, saldırgan da bunu kullanarak internete bedava olarak sürdüğü hilesiyle her çalıştıran bilgisayarı kendi ağına ekliyor.Empire Framework te bu C2 serverlerına güzel bir örnektir.Zararlı yazılım hazırlayıp piyasaya süren insanlar için bilinçsiz kullanıcılar, saldırganların zombi ağı için yeni düşen bir bağlantıdan ibarettir.Bu noktada çeşitli antivirüslere güvenmenin ne kadar yanlış olduğunu bu uygulamamızda görmüş olduk.Bizi en iyi koruyacak olan yine kendimiziz çünkü kaynağı belli olmayan veya crackli uygulamalar kullanmak bilgisayarlarımızı bu şekilde zombi ağına eklemektedir.Bu saldırıya kurban olmamak için;

    - Lisanssız ürün kullanmazsanız
    - Ürünü kaynağından temin ederseniz
    - Forumlarda dolaşan "X oyunu hilesi" şeklinde programlarını kullanmazsanız,

saldırı yüzeyini önemli ölçüde azaltmış olursunuz.
   
Uygulama aşamaları ile alakalı yaşadığınız sorunlar veya aklınıza takılan sorular ile alakalı emrehuseyinkahyaoglu@gmail.com adresinden ulaşabilirsiniz.Bir sonraki yazımda görüşmek dileğiyle.

Hiç yorum yok:

Yorum Gönder