Selam arkadaşlar, bugün size Windows sistemlerde sıkça karşılaştığım DLL hijacking konusunu derinlemesine anlatmak istedim. Bu zafiyet, uygulamaların DLL dosyalarını yüklerken tam yol belirtmemesinden kaynaklanıyor ve saldırganlar bunu kullanarak kendi kötücül kodlarını sisteme enjekte edebiliyor. Normalde bir program bir DLL çağırdığında sistem önce aynı klasördeki dosyaya bakıyor, eğer yoksa PATH üzerinden arıyor. İşte bu mantık hatası işleri karıştırıyor. Gerçek hayatta bunu test ederken Process Monitor gibi araçlarla DLL çağrılarını izlemek işleri çok kolaylaştırıyor. Özellikle eski yazılımlarda veya güncellenmemiş üçüncü parti yazılımlarda bu açık bolca çıkıyor.
Teknik olarak söylersek, saldırgan hedef uygulamanın aradığı DLL adını taklit eden bir dosya oluşturup aynı dizine koyuyor. Böylece uygulama çalışırken kendi DLL'si yerine sahte olan yükleniyor ve kod çalıştırılabiliyor. Bu yöntem hem kalıcılık sağlamak hem de yetki yükseltmek için kullanışlı. Aşağıda basit bir kavram kanıtı örneği paylaşıyorum ki nasıl işlediği net görünsün.
Bu tarz açıkları bulmak için öncelikle uygulamanın bağımlılıklarını çözmek ve dosya izinlerini kontrol etmek şart. Deneyimlerime göre en etkili yöntemlerden biri, hedef yazılımı izole bir ortamda çalıştırıp eksik DLL çağrılarını yakalamak. Sonra da sahte DLL'yi hazırlayıp test etmek. Tabii bunları kendi sistemlerinizde veya izinli ortamlarda yapmanızı öneririm, yoksa işler çığırından çıkabilir. Başka detay isterseniz sorun, devamını getiririm!
Teknik olarak söylersek, saldırgan hedef uygulamanın aradığı DLL adını taklit eden bir dosya oluşturup aynı dizine koyuyor. Böylece uygulama çalışırken kendi DLL'si yerine sahte olan yükleniyor ve kod çalıştırılabiliyor. Bu yöntem hem kalıcılık sağlamak hem de yetki yükseltmek için kullanışlı. Aşağıda basit bir kavram kanıtı örneği paylaşıyorum ki nasıl işlediği net görünsün.
Bu tarz açıkları bulmak için öncelikle uygulamanın bağımlılıklarını çözmek ve dosya izinlerini kontrol etmek şart. Deneyimlerime göre en etkili yöntemlerden biri, hedef yazılımı izole bir ortamda çalıştırıp eksik DLL çağrılarını yakalamak. Sonra da sahte DLL'yi hazırlayıp test etmek. Tabii bunları kendi sistemlerinizde veya izinli ortamlarda yapmanızı öneririm, yoksa işler çığırından çıkabilir. Başka detay isterseniz sorun, devamını getiririm!
🔒 Bu içeriği görmek için giriş yapın