Anti-Virus Atlatma - Maligno

Anti-virüs bypass yazı dizisinin başka bir bölümü olan Maligno aracını anlatan yazı ile devam edeceğiz.

Maligno, Encripto tarafından, python diliyle yazılmış ve open-source olarak geliştirilen, Metasploit framework'ün payload/shellcode üretme aracı olan msfvenom'u kullanarak, meterpreter reverse http, https ve https proxy ile beraber pyton meterpreter reverse tcp bağlantılarını sağlayacak olan shellcode'ları üreterek AES ile şifreleyip ayrıca ürettiği python çıktısını obfuscate edip kullanıma hazır hale getirmektedir.

Kurulum
Yazı süresince yapılan işlemlerde Kali linux işletim sistemi kullanılmıştır. Maligno'nun son sürümü dowload sayfasından indirilebilir.
  • wget https://www.encripto.no/tools/maligno-2.4.tar.gz
  • tar zxvf maligno-2.4.tar.gz # sıkıştırılmış dosya açılıyor 
  • cd maligno-2.4/ && bash install.sh
Çalıştırılan bash script sistem güncellemesini yaptıktan sonra, gerekli paketleri yükleyecektir. Bundan sonra şifreleme için kullanılacak olan anahtar üretilmeye başlanacaktır. İlk olarak özel anahtarımız 2048 bitlik RSA ile üretilecek, ardından server için üretilecek olan ssl sertifikası için gerekli kısa bir kaç soruya yanıt vermemiz beklenmektedir. Bunların sonunda işlemler bitmiş olacak ve konfigürasyon dosyasını güncellememiz gerekecektir.


Konfigürasyon

Üretilecek olan zararlı yazılımlara ait bilgileri içeren server_config.xml dosyasını reverse bağlantı için kullanılacak olan sunucuya göre ayarlamamız gerekmektedir. Burada düzenlenmesi gereken bilgilerden bazıları;
  • Metasploit payload ismi 
  • Payloadlar için gerekli host adresi ve port numarası 
  • Hangi encode işleminden geçirileceği 
  • Encode işleminin kaç iterasyon işleminden geçeçeği
  • Kullanılmasının istenmediği karakterler (badchars)
  • Network scope alanı
Bu alanlardan düzenlenmesi zaruri olan kısımlar, bilgisayarda kurulu olan Metasploit framework yolu ve LHOST alanlarıdır.
İstenildiği takdirde, üretilen shellcode'un geçirileceği encode tipi ve iterasyon sayısı veya reverse bağlantıda kurbanın bize geleceği port adresi gibi alanlar da değiştirilebilir.

Maligno Server

Maligno klasörü içerisinde bulunan ve kullanılabilecek dosyalardan biri olan maligno_srv.py, oluşturulacak olan zararlıların bulaştığı kurbanlar hakkında bilgilendirme sunan ve bu payloadlar için Metasploit tarafında kullanılabilecek Resource dosyalarını oluşturmaktadır. Aynı zamanda uygulamanın güncellemelerini de kontrol etmektedir.

Maligno Client Generator

Maligno klasörü içerisinde bulunan ve kullanılabilecek dosyalardan bir diğeri olan clientgen.py scripti, Metasploit'in meterpreter reverse http, https, https_proxy ve python meterpreter reverse tcp bağlantılarını elde edebilecek payloadları oluşturur. Çıktılar (clients klasöründe) python dosya formatındadır. Bunların yanında oluşturulan zararlı yazılımlar için Metasploit tarafında kullanılacak handler için payloadların resource dosyaları da oluşturulmaktadır (msfresource klasöründe).

Oluşturulan zararlılar python dosya formatında verilmektedir. Enfekte işleminin yapılacağı makinede python interpreter yüklü ise normal bir python dosyasıymış gibi çalıştırabiliriz.

Fakat bilgisayarda python yüklü olmayacağı gibi kullanılan python modülleri de yüklü olmayabilir ve bu yüzden dosya çalışma sırasında sıkıntılar yaratabilir. Bu yüzden python dosyamızı bazı yardımcı modüller (PyInstaller , Py2Exe, cx_Freeze) ile çalıştırılabilir dosya formatı olan exe'ye çevirebiliriz. Yazıda dönüştürme işlemi için PyInstaller kullanılacaktır.

Bağlantıyı kurması için kullanılacak olan zararlıları oluşturmak için clientgen.py dosyasını kullanacağız. Bunun için;
  • python clientgen.py -f server_config.xml -s true
Burada -f parametresi için kullanılan argüman, içeriğini düzelttiğimiz konfigürasyon dosyası, -s parametresi ise hem resource dosyalarını oluşturur hemde scriptlerin çalıştırılabilmesini sağlar.

Sorunsuz bir şekilde python scriptleri ve Metasploit resource dosyaları oluşturulmuştur.

Python Dosya ile Reverse Bağlantı

Oluşturulan zararlıları kurban bilgisayarda çalıştırmadan evvel gelecek olan bağlantıyı yakalayacak handlerı oluşturmamız gerekmektedir. Yukarıdaki satırlarda belirttiğimiz gibi Maligno, handler için resource dosyalarını da oluşturmaktadır. Oluşturulan zararlılardan meterpreter için reverse HTTPS bağlantı veren dosyayı çalıştıracağımız farz edelim ve buna göre oluşturulan resource dosyasını yükleyelim.
Python'un ve diğer modüllerinin yüklü olduğunu varsayıp, kurban bilgisayarında oluşturduğumuz scripti çalıştıralım.
Dosya çalıştırıldıktan sonra dinlemeye aldığımız Metasploit tarafına bağlantı gelecektir ve session oluşacaktır.

EXE ile Reverse Bağlantı

Önceden belirttiğimiz gibi her bilgisayarda python olmayabilir. Olsa dahi gerekli modüller yüklü olmayabilir. Bu yüzden python dosyasımız bazı modülleri kullanarak çalıştırılabilir dosyalara dönüştürebileceğimizden bahsetmiştik. PyInstaller ile python dosyamızı exe formatına dönüştürmek için aşağıdaki komut kullanılabilir.
  • pyinstaller.exe --onefile –windowed standalone_1_standard_windows_reverse_https.py
İşlemin sonunda komutu çalıştırdığımız klasörün içerisinde build ve dist klasörleri oluşacaktır. Dist klasörü altında aradığımız exe dosyası bulunmaktadır. Bu dosyaya çift tıkladığımızda veya komut satırından çalıştırdığımızda, herhangi bir exe dosyasıymış gibi, beklemeye aldığımız Metasploit tarafına bağlantı düşecektir.

Tarama Sonucu

Oluşturduğumuz zararlı yazılımın, online tarama sonucu aşağıda ki resimlerde verilmiştir. İlk olarak python dosyamız için VirusTotal sayfasında yaptığımız taramanın sonucunu görelim.
Şimdi ise PyInstaller ile exe'ye çevirdiğimiz zararlı dosya için VirusTotal web sitesinde yapılan taramanın sonucunu görelim.

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