11 Eylül 2010 Cumartesi

Yeni eğlencemiz: Binary Planting

Bu aralar vulnerability keşiflerinde gözle görülür bir artış var ve sebebi menba-ı da yine malum windows mimarisi. Mailime her gün dll injection vuln reportları geliyor ve tümünün origin'i de Binary Planting. Win32 Sistem programcılığı yapmış olanlar iyi bilirler ki uygulamanızda export edip nimetlerinden faydalandığımız bir dll'i (ör: dwmapi.dll, secacc.dll ...) LoadLibrary api si ile kullanmak istediğimizde işletim sistemiz bu kullanılmak istenen dll dosyasını safe search list algoritmasına göre şu şekilde arar:



LoadLibrary library arama öncelikleri :

1 - Uygulamanın çalıştırıldığı dizin
2 - 32-bit Sistem dizini (Windows\System32)
3 - 16-bit Sistem dizini (Windows\System)
4 - Windowsun kurulu olduğu dizin (Windows)
5 - Çalışma dizini
6 - Ortam değişkenlerinde PATH ile belirtilmiş olan dizinler


Sanırım her şey gayet net ve açık. Eğer bir uygulamanın bu şekilde zaafiyetini kullanmak istiyorsanız rolünü almak istediğiniz dll dosyasının fonksiyonlarını memory inject etmek yerine o dll'in manipüle ettiğiniz halini zehirlemek istediğiniz uygulamanın kurulu olduğu dizine kopyalamanız kafi gelicektir. Kısacası yine bir microsoft mimarisi hatası. Ki olay sadece LoadLibrary ile bitmiyor ve ne yazık ki CreateProcess, LoadModule, WinExec, ShellExecute gibi api'ler için aynı senaryo geçerli.

Zaafiyetin tüm güncellemeleri almış bir sistemde nasıl işlediği ile alakalı bir görseli aşağıdaki linkten izleyebilirsiniz:

http://core.yehg.net/lab/pr0js/advisories/dll_hijacking/flash_player/poc/movie/flash_player_ie_10.x_dll_hijacking_vuln.mp4

Daha ayrıntılı zaafiyet açıklaması ve microsoftun çabaları için aşağıda ki linkleri ziyaret edebilirsiniz:

http://blog.acrossecurity.com/2010/09/binary-planting-goes-exe.html

http://support.microsoft.com/kb/2264107

Hiç yorum yok:

Yorum Gönder