Siber güvenlik bir güç gösterisidir. Siber suçlular ve işletmeler, büyük ödülün ayrıcalıklı bilgilere sahip olmak olduğu sürekli bir savaş içerisindedir. İşletmeler hassas verileri korumak için mücadele ederken, siber suçluların amacı bunlara erişmektir. Taraflardan her biri silahını seçer. Bu blog'da her iki tarafın da sıklıkla tercih ettiği bir silahı inceleyeceğiz: PowerShell.
İçindekiler:
Windows PowerShell'i bir komut satırı yorumlama aracı olarak adlandırdığımızda, özelliklerini tam olarak ifade edememiş oluruz. PowerShell, Komut İstemi gibi bir programın yapabileceği her şeyi yapmanın yanı sıra, yöneticiler tarafından görevleri otomatikleştirmek amacıyla kullanılan bir betik komut yazma dilidir. Buna iyi bir örnek olarak Active Directory yönetimi gösterilebilir. Yöneticiler, kuruluşlarının Active Directory'sini manuel olarak yönetmek için saatlerini harcamayı seçebilir ya da bunun yerine toplu eylemleri gerçekleştirmek üzere tek bir PowerShell komut dosyası veya komutundan faydalanabilirler. Birçok yönetici, AD Yönetim Merkezi veya AD Kullanıcılar ve Bilgisayarları gibi kullanabilecekleri GUI araçlarına kıyasla PowerShell'i tercih eder.
Şekil 1: Bir PowerShell penceresi
PowerShell komut dosyası yazımı oldukça kapsamlı bir konudur. Bu blog boyunca ele alınan kavramları daha iyi anlamak için, PowerShell komut dosyası yazımının üç önemli bileşenini inceleyeceğiz.
PowerShell yöneticilerin en sevdiği araçlardan olsa da saldırganların da sıklıkla kullandığı bir saldırı vektörüdür. Bunun nedeni, PowerShell'in Windows ortamında izlenebilirliğinin olması ya da olmamasıdır. PowerShell izin verilen bir araç olduğundan, siber suçluların ayrıcalıklarını artırması ve kötü amaçlı komut dosyalarını yürütmesi daha kolay olur.
PowerShell çoğunlukla bir güvenlik açığından yararlanıldıktan sonra kullanılan bir araçtır. Bunun nedeni, PowerShell'in çoğu kullanıcı hesabında varsayılan olarak etkin olmasıdır. Bir saldırgan ağa giriş yaptığında, programı bir yönetici olarak çalıştırabilir veya ayrıcalıkları yükseltmek için birkaç komutu kolaylıkla yürütebilir. Şimdi, siber suçluların siber saldırıları gerçekleştirmek için PowerShell'i kullanabileceği beş durumu ele alalım.
PowerShell komut dosyası yazma: MITRE ATT&CK® çerçevesine göre, PowerShell Komut ve Komut Yazma yorumlaması açısından bir alt teknik olarak listelenmektedir. Siber suçlular genellikle hedefleri ile ilgili bilgileri edinmek ve kötü amaçlı kodu uzaktan yürütmek için PowerShell cmdlet'lerini kötüye kullanır. PowerShell, aynı zamanda, diske fiilen dokunmadan kötü amaçlı yazılım dosyalarını bilgisayarın belleğine indirmek ve bunları yürütmek için kullanılır. Siber saldırıları gerçekleştirmek için kullanılan PowerShell cmdlet'leri arasında Invoke-Command veya Start-Process yer alır. Invoke-Command, bir komutu uzaktan yürütmek için, Start-Process de bir uygulamayı veya işlemi sistemde yerel olarak çalıştırmak için kullanılır.
Etki alanı bulma: Saldırganlar kurumsal ağa giriş yaptıktan sonra, belirli cmdlet'leri kullanarak yerel yönetici olarak mevcut etki alanlarının, grupların ve bu etki alanlarındaki kullanıcı veya bilgisayar hesaplarının bir listesini alabilir. Bu da bu hesapların veya grupların sahip olabileceği ayrıcalıklara dayalı olarak bir sonraki hedeflerini belirlemelerine yardımcı olur. Windows ortamında, kullanabilecekleri cmdlet'ler arasında, dizindeki etki alanlarının listesini almak için Get-ADDomain, kullanıcıların listesini almak için Get-ADUser, dizindeki bilgisayarların listesini almak için Get-ADComputer ve belirli bir gruptaki kullanıcıların listesini almak için Get-ADGroupMember bulunur. Başta her ana bilgisayar hakkında derinlikli bilgi veren Get-ADComputer olmak üzere, bu cmdlet'ler nesnelerden her biri ile ilgili birçok bilgi verir.
Ayrıcalık yükseltme: PowerShell'e erişim sağlanması, ayrıcalıkların kolayca yükseltilebilecek olması demektir. Daha önce de gördüğümüz gibi, saldırgan yerel bir yönetici gibi davranarak etki alanındaki bilgisayarların listesi hakkında bilgi edinerek bir hedef seçtiğinde, ilgili hedef için ACL'yi kontrol etmek üzere Get-Acl cmdlet'ini kullanır.
Saldırganlar, izinlerin listesini aldıktan sonra, hedef bilgisayar için daha yüksek izinlere sahip olan kullanıcıyı veya kullanıcı grubunu seçer. Bu grubun üyeleri ile ilgili bilgileri alırlar (Get-ADGroupMember cmdlet'ini kullanarak). Daha sonra bu hesaplar arasında erişim sağladıkları hesaplar ile eşleşenler olup olmadığını kontrol etmek için grup üyelerinin listesini incelerler. Bunu yaptıktan sonra, mevcut sistemi kullanarak hedef makinedeki komut dosyalarını uzaktan yürütmek için PS-Exec komutunu kullanırlar.
Yanal hareket: Yanal hareket, saldırganın ağdaki güvenlik ihlali bulunan bir ana bilgisayardan diğerine hareket etmesini içeren bir saldırı tekniğidir. Yanal harekette çoğunlukla aşağıdaki iki araçtan birini kullanılır: Windows Uzaktan Yönetimi (WinRM) veya Cobalt Strike. WinRM, uzak bağlantılar kurmak için kullanılan tüm Windows makinelerinde dahili olarak sunulan bir araçtır ve Cobalt Strike, saldırıları simüle etmek için kullanılan bir sızma testi aracıdır.
PowerShell'i yanal hareket amaçlı olarak kullanmanın iki yolu bulunur:
Windows, PowerShell etkinliğini izlemek için üç tür günlük kaydı mekanizması sunar.
PowerShell günlük kaydı, belirli bir makine için yerel Grup İlkesi Düzenleyicisi üzerinden veya bir etki alanındaki bir kullanıcı grubu veya OU için Grup İlkesi Yönetim Düzenleyicisi aracılığıyla etkinleştirilebilir. Altı basit adımda bunun nasıl yapılacağına bakalım:
Grup İlkesi Yönetimi Düzenleyicisini açın.
Şekil 2: Grup İlkesi Yönetimi Düzenleyicisi
İlgili gerekliliğe göre Kullanıcı Yapılandırması veya Bilgisayar Yapılandırması altında Yönetim Şablonları seçeneğine tıklayın.

Windows Bileşenleri seçeneğine tıklayın.

Ekranı aşağı kaydırın ve Windows PowerShell'e tıklayın.

Sunulanlar arasından etkinleştirilmesi gereken PowerShell günlük mekanizmalarını seçin. Diyelim ki komut dosyası blok günlüklerini etkinleştirmek istiyorsunuz.

PowerShell Komut Dosyası Blok Günlüğünü Aç'a tıklayın. Verilen radyo düğmelerinden Etkin düğmesini seçin ve Uygula'ya tıklayın.

Diğer PowerShell günlüklerinin oluşturulmasını etkinleştirmek için benzer bir süreç izlenebilir. Birçok kuruluş, çok fazla sayıda olay günlüğünün oluşturulması nedeniyle PowerShell günlük kaydını devre dışı bırakır. Siber güvenlikte en iyi uygulamalardan biri olarak, kuruluşların üç türün tamamı olmasa dahi en azından komut dosyası bloku günlük kaydı olacak şekilde PowerShell günlük kaydını etkinleştirmesi önerilir.
BT yöneticilerinin PowerShell komut dosyalarını izlemek için oluşturulan birçok olay günlüğünü takip etmesi zor olabilir. Log360 gibi Active Directory denetimi işleviyle donatılmış bir SIEM çözümü, aşağıdaki şekillerde BT yöneticilerinin süreci kolaylaştırmasına yardımcı olabilir:
Şekil 3: ManageEngine Log360'ta modül günlük kaydı raporları
Şekil 4: ManageEngine Log360'ta Komut Dosyası Bloku Günlük Kaydı raporları
Şekil 5: ManageEngine Log360'ta PowerShell işlem izleme raporları
Şekil 6: ManageEngine Log360'ta Uyarı Profilini yapılandırma özelliği
Şekil 7: ManageEngine Log360'ta Komut Dosyası Yürütme özelliği
Log360 ile PowerShell denetimi hakkında daha fazla bilgi edinmek üzere kişiselleştirilmiş bir tanıtım almak için ürün uzmanlarımızla iletişime geçin veya bu çözümü kendiniz denemek için 30 günlük ücretsiz deneme sürümünü indirin.