Son nokta tespit ve yanıt (EDR) bypass ve kaçırma araçları ve teknikleri, tehdit ve fidye yazılımı grupları tarafından saldırılarını gerçekleştirmek için güvenlik savunmalarından kaçınmak için yaygın olarak kullanılır.
Yaygın bir yaklaşım, EDR ve antivirüs korumalarını devre dışı bırakmak için BYOVD (kendi savunmasız sürücünüzü getirmek) tekniklerini kullanmaktır, ancak bu, tehdit aktörlerinin sömürü için savunmasız sürücüler kurmasını gerektirir.
Yeni bir yaklaşım, hepsi üçüncü taraf araçlara ihtiyaç duymadan kullanıcı modunda yapılan Windows hata raporlaması ve minidumpwritedump işlevini korumaya koymak için savunmasız sürücüleri yükleme ihtiyacını önler.
EDR-Freze olarak adlandırılan istismar, bu hafta başında anonim araştırmacı Two One Yedi Üç tarafından Sıfır Salaryum’da yayınlandı.
EDR’yi atlamak için Windows işlevlerini kullanma
Windows Dbghelp kütüphanesindeki minidumpwrittump işlevi, hata ayıklama için bir işlemin minidump oluşturur.
Araştırmacı, “Ama işte yakalama: döküm sırasında hedef süreçteki tüm iş parçacıklarını askıya alıyor” diye yazdı. “… Bu gereklidir, çünkü çöplük yazılırken başka türlü belleği değiştirebilir, bu da yolsuzluğa veya tutarsızlıklara yol açar.”
Microsoft, kilitlenmeleri önlemek için çarpışma işlemi içinden çağırmak yerine harici bir işlemden işlevi kullanmanızı önerir.
Araştırmacı iki zorlukla karşılaştı: minidumpwritedump çok hızlı bir şekilde yürütülür ve yürütme süresini uzatma zorluğunu yaratır; ve EDR ve antivirüs işlemleri genellikle bu süreçlerle uğraşmak için atlanması gereken korumalı işlem ışığı (PPL) ile sabitlenir.
Araştırmacı, WerfaultSecure programını tersine dönüştürerek, “Minidumpwritedump işlevini istenen herhangi bir süreçle etkinleştirmek için kullanabiliriz” dedi. “CreateProcesSasppl Aracı ile birleşerek, ikinci sorunu ele almak için WerfaultSecure’dan yararlanabiliriz.… Normal bir süreç PPL koruması ile yeni bir süreç yapabilirse, o zaman CreateProcess sırasında, çocuk PPL sürecini Create_Suspended bayrağı kullanarak askıya almaya zorlayabiliriz.”
Process_suspend_resume ayrıcalığı, süreci sürdürmek ve askıya almak için kullanılabilir.
Process Explorer, PPL ile korunan bir işlemi askıya alabilir – ancak antimal yazılım olarak işaretlenmiş süreçler.
“Ama bu yeterli,” dedi araştırmacı. “Yukarıdaki tüm bilgilerle, WerfaultSecure’un döküm işlemini gerçekleştirmesini sağlayabilirsek ve daha sonra minidumpwrittump’u antivirüs süreçleriyle çağırırsak ve daha sonra hedef süreci askıya alınmış bir duruma sokduğu anda WerfaultSecure’u askıya alırız, çünkü Werfaulsure’a devam edebilecek süreç de askıya alınır.
Bir yarış koşulu saldırısı yoluyla EDR baypas
Sıfır salaryum araştırmacısı dört adımla bir yarış koşulu saldırısı tarif etti:
- WINTCB düzeyinde koruma ile WerfaultSecure çalıştırmak için CreateProcesSasppl kullanın;
- WerfaultSecure için parametreleri, hedef işlemin dökümünü gerçekleştirecek şekilde doldurun;
- Hedef sürecin askıya alınana kadar durumunu kontrol edin;
- Ardından, WerfaultSecure işlemini askıya almak için Process_suspend_Resume ayrıcalığı ve ntsuspendProcess ile OpenProcess’i kullanın.
Araştırmacı GitHub’da istismar yapmak için bir araç oluşturdu – ve başka bir araştırmacı hızlı bir şekilde onu tespit etmek için bir KQL kuralı yazdı.
Sıfır salaryum araştırmacısı, “BYOVD saldırısının en büyük zayıflığı, izlenen hedef makinelerde kolayca tehlikeli bozukluklara neden olabilecek, sömürmek için yazılım güvenlik açıklarına sahip sürücüleri taşımanızdır” diye yazdı.
“EDR-Freze ile, Windows’ta mevcut olan WerfaultSecure programının yazılım güvenlik açığından yararlanmak, BYOVD tekniğinin zayıflığını ele alacaktır. Ayrıca, EDRS ve antimalware programlarını ne zaman çalıştırmaları ve ne zaman askıya alınması gerektiğine karar vererek her şeyin daha sorunsuz bir şekilde çalışmasını sağlayabiliriz.”