Windows’ta DOS’tan NT’ye yol dönüştürme işlemiyle ilişkili bilinen bir sorun, saldırganların dosyaları, dizinleri ve süreçleri gizlemek ve taklit etmek için rootkit benzeri yararlanma sonrası yetenekler kazanmasına olanak vererek işletmeler için önemli bir risk oluşturur.
Bu, bu hafta Singapur’da düzenlenen Black Hat Asia 2024 oturumunda konuyu özetleyen SafeBreach güvenlik araştırmacısı Or Yair’e göre böyle. Ayrıca sorunla ilgili dört farklı güvenlik açığını da ayrıntılı olarak açıkladı. “MagicDot” olarak adlandırılan“–sadece bir arşivin çıkarılmasıyla tetiklenebilecek tehlikeli bir uzaktan kod yürütme hatası da dahil.
DOS’tan NT’ye Yol Dönüşümünde Noktalar ve Boşluklar
MagicDot sorun grubu, Windows’un DOS yollarını BT yollarına değiştirme biçimi sayesinde ortaya çıkar.
Kullanıcılar bilgisayarlarında dosya veya klasör açtığında, Windows bunu dosyanın bulunduğu yola başvurarak gerçekleştirir; normalde bu, “C:\Users\User\Documents\example.txt” biçimini izleyen bir DOS yoludur. Ancak, dosyayı açma işlemini gerçekleştirmek için NtCreateFile adı verilen farklı bir temel işlev kullanılır; ve NtCreateFile, DOS yolu değil NT yolu ister. Böylece, Windows, işlemi etkinleştirmek için NtCreateFile’ı çağırmadan önce, kullanıcılara görünen tanıdık DOS yolunu bir NT yoluna dönüştürür.
Yararlanılabilir sorun, dönüştürme işlemi sırasında Windows’un DOS yolundaki tüm noktaları ve sondaki fazladan boşlukları otomatik olarak kaldırması nedeniyle ortaya çıkar. Böylece, aşağıdaki gibi DOS yolları:
-
C:\örnek\örnek.
-
C:\örnek\örnek
…tümü NT yolu olarak “\??\C:\example\example” biçimine dönüştürülür.
Yair, hatalı karakterlerin otomatik olarak ayıklanmasının, saldırganların kendi seçtikleri NT yollarına dönüştürülecek özel hazırlanmış DOS yolları oluşturmalarına olanak sağlayabileceğini keşfetti; bu yollar daha sonra dosyaları kullanılamaz hale getirmek veya kötü amaçlı içerik ve etkinlikleri gizlemek için kullanılabilir.
Ayrıcalıksız bir Rootkit’in Simülasyonu
MagicDot sorunları, her şeyden önce, bir makinedeki saldırganların gizliliğini korumasına yardımcı olan bir dizi istismar sonrası teknik için fırsat yaratıyor.
Örneğin, kötü amaçlı içerikleri kilitlemek ve kullanıcıların, hatta yöneticilerin bile bu içeriği incelemesini engellemek mümkündür. “Kötü amaçlı bir dosya adının sonuna basit bir nokta koyarak veya bir dosyayı veya dizini yalnızca noktalar ve/veya boşluklarla adlandırarak, normal API’yi kullanan tüm kullanıcı alanı programlarını onlar için erişilemez hale getirebilirim… Yair, oturumda bunları okuyamadığını, yazamadığını, silemediğini veya bunlarla başka bir şey yapamayacağını açıkladı.
Daha sonra ilgili bir saldırıda Yair, tekniğin arşiv dosyalarındaki dosyaları veya dizinleri gizlemek için kullanılabileceğini buldu.
Yair, “Explorer’ın listelemesini veya çıkarmasını önlemek için arşivdeki bir dosya adını nokta ile sonlandırdım” dedi. “Sonuç olarak, masum bir ZIP’in içine kötü amaçlı bir dosya yerleştirmeyi başardım; arşiv içeriğini görüntülemek ve çıkarmak için Explorer’ı kullanan kişi, bu dosyanın içinde bulunduğunu göremedi.”
Üçüncü bir saldırı yöntemi, meşru dosya yollarının kimliğine bürünerek kötü amaçlı içeriğin maskelenmesini içerir.
“‘İyi huylu’ adında zararsız bir dosya olsaydı [use DOS-to-NT path conversion] aynı dizinde kötü amaçlı bir dosya oluşturmak için [also named] iyi huylu,” diye açıklayan araştırmacı, aynı yaklaşımın klasörleri ve hatta daha geniş Windows işlemlerini taklit etmek için kullanılabileceğini ekledi. “Sonuç olarak, bir kullanıcı kötü amaçlı dosyayı okuduğunda, bunun yerine orijinal zararsız dosyanın içeriği döndürülür.” Böylece kurban, aslında kötü amaçlı içeriği açtığı konusunda hiçbir bilgi sahibi olmaz.
Yair, birlikte ele alındığında, MagicDot yollarını manipüle etmenin, rakiplere yönetici ayrıcalıkları olmadan rootkit benzeri yetenekler kazandırabileceğini açıkladı. detaylı teknik notlar oturumla birlikte saldırı yöntemleri hakkında.
“Dosyaları ve işlemleri gizleyebildiğimi, arşivlerdeki dosyaları gizleyebildiğimi, önceden getirilen dosya analizini etkileyebildiğimi, Görev Yöneticisi ve İşlem Gezgini kullanıcılarının kötü amaçlı bir dosyanın Microsoft tarafından yayınlanan doğrulanmış bir yürütülebilir dosya olduğunu düşünmesini sağlayabildiğimi, İşlem Gezgini’ni hizmet reddi (DoS) ile devre dışı bırakabildiğimi keşfettim güvenlik açığı ve daha fazlası” dedi; bunların tümü yönetici ayrıcalıklarına veya çekirdekte kod çalıştırma becerisine sahip olmadan ve bilgi alan API çağrıları zincirine müdahale edilmeden.
“Siber güvenlik topluluğunun bu riski tanıması ve ayrıcalıksız rootkit tespit teknikleri ve kuralları geliştirmeyi düşünmesi önemlidir” diye uyardı.
Bir Dizi ‘MagicDot’ Güvenlik Açığı
Yair, MagicDot yollarıyla ilgili araştırması sırasında, temel sorunla ilgili dört farklı güvenlik açığını da ortaya çıkarmayı başardı; bunlardan üçü Microsoft tarafından yamalandığından beri.
Bir uzaktan kod yürütme (RCE) güvenlik açığı (CVE-2023-36396Windows’un yeni desteklenen tüm arşiv türleri için yeni çıkarma mantığındaki CVSS 7.8), saldırganların, çıkarıldıktan sonra uzaktaki bir bilgisayarda seçtikleri herhangi bir yere yazacak kötü amaçlı bir arşiv oluşturmasına olanak tanır ve bu da kod yürütülmesine yol açar.
“
Temel olarak, diyelim ki arşivinize bir arşiv yüklediniz. GitHub deposu Yair, Dark Reading’e bunun indirilebilecek harika bir araç olarak reklamını yapıyor” diyor. “Ve kullanıcı onu indirdiğinde, bu yürütülebilir bir dosya değil, yalnızca arşivi çıkartıyorsunuz, bu da hiçbir güvenlik riski olmayan tamamen güvenli bir işlem olarak kabul ediliyor. Ancak artık çıkarma işleminin kendisi bilgisayarınızda kod çalıştırabiliyor ve bu ciddi anlamda yanlış ve çok tehlikeli.”
İkinci bir hata, ayrıcalık yükselmesi (EoP) güvenlik açığıdır (CVE-2023-32054CVSS 7.3), saldırganların önceki bir sürümün geri yükleme işlemini gölge kopyadan değiştirerek ayrıcalıkları olmayan dosyalara yazmasına olanak tanır.
Üçüncü hata, CVE-2023-42757’nin rezerve edildiği Process Explorer’ın anti-analiz hatasına yönelik ayrıcalıksız DOS’udur ve ayrıntıları takip edilecektir. Yine bir EoP sorunu olan dördüncü hata, ayrıcalığı olmayan saldırganların dosyaları silmesine olanak tanıyor. Microsoft, kusurun “beklenmeyen davranışa” yol açtığını doğruladı ancak henüz bir CVE veya düzeltme yayınlamadı.
Yair, “Demo klasörünün içinde …
Potansiyel Olarak Daha Geniş ‘MagicDot’ Sonuçları
Microsoft, Yair’in belirli güvenlik açıklarını ele alırken, DOS’tan NT’ye yol dönüşümünde nokta ve boşlukların otomatik olarak çıkarılması işlemi devam ediyor; bu güvenlik açıklarının temel nedeni olsa da.
Araştırmacı, “Bu, bu sorunu kullanarak bulunabilecek çok daha fazla potansiyel güvenlik açığı ve sömürü sonrası teknik olabileceği anlamına geliyor” diye uyarıyor. “Bu sorun hala mevcut ve bildiğimizden çok daha tehlikeli olabilecek çok daha fazla soruna ve güvenlik açığına yol açabilir.”
Sorunun Microsoft’un ötesinde sonuçları olduğunu da ekliyor.
“Bu sonuçların yalnızca dünyanın en yaygın kullanılan masaüstü işletim sistemi olan Microsoft Windows için değil, aynı zamanda çoğu bilinen sorunların yazılımlarının sürümünden sürümüne devam etmesine izin veren tüm yazılım satıcıları için de geçerli olduğuna inanıyoruz.” diye uyardı .
Bu arada, yazılım geliştiricilerin DOS yolları yerine NT yollarını kullanarak kodlarını bu tür güvenlik açıklarına karşı daha güvenli hale getirebileceklerini belirtti.
Yair, “Windows’taki üst düzey API çağrılarının çoğu NT yollarını destekliyor” dedi. “NT yollarını kullanmak, dönüştürme sürecini ortadan kaldırır ve sağlanan yolun gerçekte üzerinde çalışılan yolla aynı olmasını sağlar.”
İşletmeler için güvenlik ekipleri, dosya yollarındaki hileli dönemleri ve boşlukları arayan algılamalar oluşturmalıdır.
“Bunlar için geliştirebileceğiniz, sonunda nokta veya boşluk bulunan dosya veya dizinleri aramak için geliştirebileceğiniz oldukça kolay algılamalar var, çünkü bunları bilgisayarınızda bulursanız, bu birisinin bunu bilerek yaptığı anlamına gelir çünkü öyle değil Bunu yapmak çok kolay,” diye açıklıyor Yair. “Normal kullanıcılar uçları nokta veya boşlukla biten bir dosya oluşturamaz; Microsoft bunu engelleyecektir. Saldırganların bir dosya kullanması gerekecek. daha düşük API bu çekirdeğe daha yakın ve bunu başarmak için biraz uzmanlığa ihtiyaç olacak.”