Selamlar,
Bu yazıda geçtiğimiz günlerde hacklenen Anydesk uygulamasının SCCM ile cihazlardan kaldırılması ve eğer portable sürüm var ise bunun da tespit edilerek temizlenmesi üzerine çalışma yapacağız.
Bildiğiniz üzere Anydesk uygulaması hem kurulum sağlanarak, hem de cihaza sadece Exe’si indirilerek portable kullanılabilen bir uygulamadır. Kullanıcılarımız zafiyetli sürümü cihazlarında bir noktadan sadece Anydesk.exe’ye sahip olarak kullanmaya devam edebilir. Bu durumun önüne geçmek adına AnyDesk’i cihazlardan bulup temizlememiz gerekmektedir. Bunun için SCCM’de Software Inventory modülünün yardımını kullanarak cihazlarında Anydesk.exe bulunan kullanıcıları tespit edecek ve bu cihazlardaki AnyDesk.exe’leri temizleyeceğiz.
Adım 1: Software Inventory Client Setting’inin Oluşturulması
Öncelikle clientlarımızda AnyDesk.exe’nin varlığını tespit etmek adına, SCCM sistemimiz üzerinden bir Software Inventory rule oluşturalım.
Eğer mevcutta ortamınızda halihazırda tüm .exe’leri izlemek için bir client setting’iniz var ise tekrar oluşturmanıza gerek bulunmuyor. Bu işlemi yapmamızın amacı, oluşturacağımız script’i tüm clientlarımızda sürekli olarak çalıştırmamak, ve ortamımızdaki AnyDesk’leri nokta atışı bir şekilde temizlemek üzerinedir.
Client Settings > Create Custom Client Device Settings seçimini yapıyoruz. Siz dilerseniz mevcut Client Settings’inizin içerisinden ya da Default Client Settings’inizi kullanarak bu işlemi yapabilirsiniz.
Açılan pencereden bir isim vererek Software Inventory’yi seçiyoruz.
Ardından sol taraftan Software Inventory’yi seçerek kuralımızı oluşturuyoruz.
Not: Eğer birden fazla uygulamayı takip ediyorsanız, ortamınızdaki cihazların performans’ına, sürecin kritikliğine vs. göre buradaki schedule süresini arttırabilirsiniz.
Açılan pencerede yıldıza tıklayıp ardından AnyDesk*.exe diyoruz, bu sayede clientlarımızda bu isimde bir .exe bulunması durumunda yakalayabileceğiz.
Ardından kaydedip çıkıyoruz ve oluşturduğumuz Client Setting’i tüm clientlarımızı barındıran collection’ımıza deploy ediyoruz.
Deployment tamamlandıktan sonra cihazlarımızın policy almalarını bekleyebilir ya da tetikleyebiliriz. İlk olarak üstteki Download Computer Policy dedikten sonra 15-20 sn bekleyip ardından Collect Software Inventory cycle tetikleyebiliriz.
Bu süreç biraz sürebilir, bu yüzden bu sırada Adım 2’ye geçebilirsiniz.
Hızlıca bir query yazıp kontrol ettiğimiz üzere makineler üzerlerindeki AnyDesk.exe bilgilerini ve konumlarını iletmeye başladı.
Adım 2: Dinamik Collection’ımızın Oluşturulması
Sırada oluşturacağımız Baseline’ı deploy edeceğimiz dinamik collection’ının oluşturulması var, buradaki amaç Software Inventory’den gelecek bilgiye göre AnyDesk olan cihazları tespit edip bir collection’a toplamak ve temizledikçe collection’ının azalmasını sağlamak.
Create Device Collection diyerek collection’ımızı istediğimiz yere oluşturuyoruz.
İlerliyoruz ve Edit Query Statement diyoruz.
Aşağıdaki adımlar üzerinden collection query’mizi oluşturuyoruz.
Ve collection’ınımızın ne kadar sürede bir güncelleneceğini belirliyoruz, ben 12 saatte bir güncellenecek şekilde kurguladım. Siz dilediğiniz gibi ayarlayabilirsiniz.
Summary ile tamamlayabiliriz.
Anydesk.exe bulunan makineler bu collection dahil olacaktır.
Adım 3: Bulup Temizleyecek Powershell Script’imizi Dağıtmak Üzere Baseline’ımızın Oluşturulması
Burada siz Task Sequence ya da doğrudan script ile de ilerleyebilirsiniz, fakat ben Baseline üzerinden ilerleyeceğim.
İsim verip ilerliyoruz.
Burada uygulayacağımız işletim sistemlerini seçiyoruz, ben bu süreci collection tarafında yöneteceğim için tümünü seçiyorum, siz de bu şekilde ilerleyebilirsiniz.
New ile yeni bir setting oluşturuyoruz.
Ve isim vererek Setting type: Script ve Data type: String diyoruz.
Add Script diyerek aşağıdaki yazmış olduğum scripti yapıştıyoruz.
#Check if AnyDesk is Running
Get-Process *AnyDesk* -ErrorAction SilentlyContinue | Stop-Process -Force
#Uninstall if Anydesk is installed
if (Test-Path "C:\Program Files (x86)\AnyDesk"){
cd "C:\Program Files (x86)\AnyDesk\"
.\AnyDesk.exe --silent --remove
}
#Wait for Uninstallation
Wait-Process -Name AnyDesk
#Find and Delete AnyDesk.exe
$Drives = Get-PSDrive -PSProvider 'FileSystem'
foreach($Drive in $Drives) {
Get-ChildItem -Path $Drive.Root -Recurse -Filter "*AnyDesk*.exe" -Force -ErrorAction SilentlyContinue | Remove-Item -Recurse -Confirm:$false -Force
}
Write-Host "Compliant"
Sırada Compliance Rule’umuzu oluşturmak var, bunun için Compliance Rule sekmesine tıklıyoruz.
New diyoruz.
Ve Scriptte döndürdüğümüz “Compliant” değerini soruyoruz.
OK > OK > Next > Summary ile süreci tamamlıyoruz.
Configuration Item’ımızı tamamladık, artık tek yapmamız gereken bir Baseline oluşturup yukarıdaki collection’a dağıtmak.
Baseline’ımızı oluşturmak için Assets and Compliance > Compliance Settings > Configuration Baselines‘a sağ tıklayarak Create Configuration Baseline‘ı seçiyoruz.
Baseline’ımıza isim verip, Add kısmından daha önceden oluşturduğumuz item’ı seçmek üzere Configuration Items diyoruz.
Item’ımızı seçip Add diyoruz ve aşağı indiğini gördükten sonra OK ve tekrar OK diyoruz.
Baseline’ımız oluştu, şimdi sırada Deploy etmek var. Sağ tıklayıp Deploy diyoruz.
Yukarıda oluşturduğumuz collection’ı seçiyoruz, ne kadar zamanda bir çalışacağını seçiyoruz ve OK’liyoruz.
Bu Baseline’ın çalıştığı makineler bir sonraki Software Inventory gönderdiklerinde otomatik olarak collection’dan çıkacakları için bu kullanıcılarda bir daha çalışmayacaktır. Fakat bir kullanıcı bir AnyDesk’i tekrar indirirse Software Inventory ile tekrar bu collection’a girecek ve tekrar temizlenecektir.
Adım 4: Testler
Aşağıdaki test makinemde görüldüğü üzere birkaç farklı konumda, farklı sürücüde AnyDesk bulunuyor, ayrıca AnyDesk makinede kurulu durumda. Ek olarak AnyDesk kaldırılırken kendi .exe’sini kullandığı için ardından .exe’sini silemiyor ve sonuna _Remove takısını ekliyor.
Normalde otomatik olarak çalışacak ancak kontrol amaçlı Baseline’ımızı elle tetikleme üzere, Control Panel > Configuration Manager > Configurations‘u açıyoruz.
Evaluate ile tetiklediğimizde script’imiz çalışacak ve önce varsa AnyDesk kaldırılacak, ardından portable sürümler temizlenecektir.
Çalışmamız tamamlandı. Teşekkürler.