
PowerShell, Microsoft’un bilgi teknolojisi profesyonellerine, Windows tabanlı sistemler üzerinde denetim ve otomasyon yetenekleri sunmak amacıyla 2006 yılında piyasaya sürdüğü bir komut satırı arayüzü ve betikleme dilidir. .NET altyapısı üzerine kurulu olan PowerShell, nesne tabanlı bir yapıya sahiptir ve bu sayede kullanıcılar, .NET framework tarafından sunulan zengin işlevsellikten ve yazılım geliştiricilerinin alışık olduğu geniş kütüphane setlerinden yararlanabilirler.
PowerShell’in Çok Yönlülüğü ve İşlevselliği
PowerShell, hem komut satırı araçları hem de betikleme dilinin özelliklerini birleştirir, bu da onu interaktif kullanım ve otomasyon senaryoları için ideal kılar. Klasik komut satırı arayüzü (cmd) ile karşılaştırıldığında, PowerShell daha geniş bir işlevsellik yelpazesi sunar ve daha karmaşık görevleri yerine getirebilir. Ayrıca, cmd’nin aksine, PowerShell betikleri daha zengin ve etkileşimli işlemler için tasarlanmıştır.
PowerShell’in Bulunduğu Yer ve Kullanım Alanları
PowerShell dosyaları, genellikle Windows sistemlerinde “C:\Windows\System32\WindowsPowerShell\v1.0” konumunda bulunur ve çeşitli görevler için kullanılır:
- Komutların birleştirilmesi ve tek bir işlemde çalıştırılması,
- Uzaktan yönetim yetenekleri ile sunuculara doğrudan komut gönderme,
- Dosya sistemleri ve diğer veri depoları üzerinde kolay erişim ve yönetim,
- COM ve WMI gibi Windows yönetim araçlarına entegrasyon,
- PowerShell’in uygulamalar içine gömülmesine olanak tanıyan barındırma API’si.
- PowerShell ile Gerçekleştirilen İleri Düzey Saldırı Teknikleri ve Kullanım Sebepleri
PowerShell, siber güvenlik alanında, özellikle Windows ortamlarında, saldırı ve savunma stratejilerinin geliştirilmesinde önemli bir rol oynar. Aşağıda, PowerShell kullanılarak gerçekleştirilebilecek bazı ileri düzey teknikler ve bunların MITRE ATT&CK framework’üne göre sınıflandırılmaları yer almaktadır:
- PowerShell ile Script Bloğu Günlüğünden Empire Algılama [MITRE T1059.001]
- Script Bloğu Günlüğü Kullanarak Mimikatz Tespiti [MITRE T1059.001]
- GetProcAddress ile Dosyasız Süreç Enjeksiyonu Yapma [MITRE T1059.001, T1055]
- Base64 Kodlu İçerik İçeren Dosyasız PowerShell Betikleri [MITRE T1059.001, T1027]
- Yansıma Tekniği ile AMSI’nin Yüklenmesini Engelleme [MITRE T1562]
- PowerShell ile Etki Alanı Bilgilerini Enumere Etme [MITRE T1059.001]
- Sistem Yansıması Kullanarak .NET’i Belleğe Yükleme [MITRE T1059.001]
- İş Parçacığı Mutex’i Oluşturma [MITRE T1027.005]
- Veri Akışlarını İşleme [MITRE T1059.001]
- Belleği Geçici Depolama Alanı Olarak Kullanma [MITRE T1140]
- Pwh veya WMI Aracılığıyla Antivirüs Ürünleri Hakkında Keşif [MITRE T1592]
- WMI Sınıfları Kullanarak Sistem Bilgisi Toplama [MITRE T1592]
- Çalışan Süreç ve Hizmetleri WMI ile İzleme [MITRE T1592]
- Güvenlik Duvarında Gelen Trafiği İzin Verme [MITRE T1021.001]
- Mailsniper İşlevlerini Çağırma [MITRE T1114.001]
- PowerShell ile ShadowCopy Silme [MITRE T1490]
- SMB1 Protokolünü PowerShell ile Etkinleştirme [MITRE T1027.005]
- WMI Olay Aboneliği ile Kalıcılık Tespiti [MITRE T1546.003]
- PowerShell ile Sahte Kimlik Doğrulama Tokenleri Oluşturma [MITRE T1134]
- PowerShell Kullanarak Uzaktan Sistem Sızma [MITRE T1021]
- PowerShell ile Sistem Hizmetlerinde Değişiklik Yapma [MITRE T1562.001]
- PowerShell ile Güvenlik Duvarı Kurallarını Değiştirme [MITRE T1562.004]
- PowerShell ile Kritik Sistem Dosyalarını Değiştirme veya Silme [MITRE T1485]
- PowerShell ile Uzaktan Dosya İndirme ve Çalıştırma [MITRE T1105]
- PowerShell Kullanarak Etki Alanı Bilgilerini Sızdırma [MITRE T1003]
Saldırganların PowerShell’i Tercih Etme Sebepleri
PowerShell, Windows sistemlerde varsayılan olarak bulunur ve geniş kullanım alanına sahiptir. Bellek üzerinden komut ve betik çalıştırma yeteneği, gizliliği artırır. Az sayıda iz bırakarak adli analizleri zorlaştırır. Şifrelenmiş trafik üzerinden uzaktan erişim imkanı sunar. Geleneksel güvenlik araçlarını yanıltarak tespit edilmesini güçleştirir. Savunma stratejileri geliştirilirken, PowerShell’in potansiyel riskleri sıklıkla göz ardı edilir. Bazı yapılandırmalarda, uygulama beyaz listeleme (whitelisting) mekanizmalarını aşabilir. Komut dosyası tabanlı tehditlere karşı ağ geçitleri genellikle yetersiz kalır. Geniş bir topluluk tarafından geliştirilen hazır betiklere sahiptir. Sistem yöneticilerinin günlük yönetim işlemlerinde güvendiği bir çerçeve olarak, kötü amaçlı PowerShell betiklerinin masum işlemler arasında kaybolmasına olanak tanır.
Elbette, aşağıda PowerShell’in kullanımı ve loglama yöntemleri üzerine kopya oranı düşük bir makale örneği bulabilirsiniz:
PowerShell’in Adli İncelemede Rolü ve Loglama Yöntemleri
Adli bilişim uzmanları, siber saldırılarda kullanılan araçları ve teknikleri belirlemek için sistem loglarını ve diğer veri kaynaklarını detaylı bir şekilde incelemektedir. PowerShell, bu incelemelerde önemli bir yer tutar çünkü saldırganlar tarafından sıklıkla kullanılan güçlü bir otomasyon ve yapılandırma yönetim aracıdır.
PowerShell Kullanımının İzleri
PowerShell, Windows ortamlarında yaygın olarak kullanılan bir araçtır ve saldırganlar tarafından sistemlere zarar vermek için tercih edilen yöntemlerden biridir. Saldırganların izlerini sürmek için, onların ne zaman ve nasıl bir girişimde bulunduklarını, hangi komutların işletildiğini anlamak gerekir. MITRE ATT&CK framework’ünün T1059.001 kodu altında tanımlanan “dosyasız tehdit” kategorisi, PowerShell’in hafızada çalıştırılabilen komutlarına atıfta bulunur. Bu tür tehditler, geleneksel sabit disk tabanlı izleri bırakmadan gerçekleştirilir ve bu da onları tespit etmeyi zorlaştırır.
PowerShell kullanımıyla ilişkili adli kanıtlar, sistem kayıtları, bellek dump’ları, ağ trafiği analizleri ve diğer artifaktlar aracılığıyla toplanabilir. Bu artifaktlar arasında Windows Kayıt Defteri girdileri, Prefetch dosyaları, bellek içeriği ve olay günlükleri bulunur. Her biri, saldırganın faaliyetlerine dair değerli bilgiler içerebilir.
Tehdit Tespiti ve Analizi
PowerShell komutlarının hafızada çalıştırılması, “dosyasız” veya “volatil” tehditler olarak adlandırılan bir saldırı türünü ifade eder. Bu tehditler, geleneksel virüs tarama araçlarının algılamasının ötesindedir ve bu nedenle daha gelişmiş izleme ve analiz teknikleri gerektirir. Microsoft’un resmi belgelerinde de belirtildiği gibi, bu tür tehditlerin tespiti için gelişmiş güvenlik çözümleri ve loglama stratejileri kullanılmalıdır.
Önleme ve Yönetim
PowerShell’in etkin kullanımı, aynı zamanda güvenlik önlemlerinin bir parçası olarak görülmelidir. Sistem yöneticileri ve güvenlik profesyonelleri, zararlı PowerShell betiklerinin tespiti ve önlenmesi için gerekli güvenlik politikalarını ve araçlarını uygulamalıdır. Bu, zararlı faaliyetlerin erken aşamada tespit edilmesini ve müdahale edilmesini sağlar.
Bu makale, PowerShell’in adli incelemedeki rolünü ve loglama yöntemlerini, orijinal metindeki bilgileri temel alarak yeniden formüle ederken, kopya oranını düşük tutacak şekilde yeniden yazılmıştır. İçerik, konunun özünü korurken, farklı bir yapı ve dil kullanılarak oluşturulmuştur.
Windows Registry ve Prefetch Dosyalarının PowerShell Saldırılarındaki Rolü
Windows işletim sistemi, kullanıcıların ve sistem yöneticilerinin ayarları ve sistem politikalarını yönetmesine olanak tanıyan güçlü araçlar sunar. Bu araçlar arasında, sistem yapılandırmasının merkezi bir parçası olan Windows Registry ve sistem performansını artırmak için tasarlanmış Prefetch dosyaları bulunur. Bu iki bileşen, siber güvenlik ve adli bilişim alanında da önemli bir yere sahiptir.
Windows Registry’nin Güvenlik Açısından İncelenmesi
Windows Registry, PowerShell’in yapılandırma ayarlarını içeren ve sistem politikalarını denetleyen bir veritabanıdır. Saldırganlar, bu yapılandırmaları kendi lehine değiştirerek, zararlı faaliyetlerini gizleyebilir ve sistem üzerindeki kontrolünü artırabilir. Örneğin, ExecutionPolicy ayarı, PowerShell betiklerinin yürütülmesini kontrol eder ve bu ayarın esnetilmesi, saldırganların istedikleri betikleri çalıştırmalarına olanak tanır. Bu nedenle, şüpheli bir faaliyet tespit edildiğinde, adli analistler aşağıdaki kayıt defteri yolunu inceleyebilir:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell
Prefetch Dosyalarının Adli Değeri
Prefetch dosyaları, Windows’un programları daha hızlı başlatmasını sağlamak için kullanılan bir özelliktir. Bu dosyalar, bir programın başlatılmasından sonraki ilk birkaç saniye içinde yüklenen dosyaların bir listesini tutar. PowerShell saldırıları sırasında, bu dosyalar zararlı betiklerin varlığını ve yürütülmesini kanıtlayabilir. Örneğin, bir saldırganın persistence.ps1 adında bir betiği çalıştırdığı durumda, Prefetch dosyası bu betiğin yüklenmesiyle ilişkili dosya erişimlerini kaydedecektir.
Adli analizde, Prefetch dosyalarının zaman damgaları ve dosya erişim listeleri, saldırganın etkinliklerinin zaman çizelgesini oluşturmak için kullanılabilir. Bu dosyaların içeriği, .ps1 uzantılı PowerShell betik dosyalarının adlarını ve konumlarını içerecek şekilde incelenebilir, böylece saldırganın hangi komutları çalıştırdığı ve sistemde ne tür değişiklikler yaptığı belirlenebilir.
PowerShell Etkinliklerinin İzlenmesi
PowerShell Etkinliklerinin İzlenmesi
Event ID 400 ve 403: Bu loglar, PowerShell oturumlarının başlangıç ve bitiş zamanlarını kaydeder. Event ID 400, bir oturumun başladığını, Event ID 403 ise sonlandığını belirtir. Bu bilgiler, oturumların zamanlaması ve sıklığı hakkında fikir verir.
Event ID 600: Bu olay, PowerShell’in yürütme politikalarını atlatmak için kullanılan WSMan gibi sağlayıcıların etkinleştirildiğini kaydeder. Bu, genellikle kısıtlanmış politikaları aşarak betik çalıştırmak isteyen saldırganlar tarafından kullanılır.
Operasyonel PowerShell Günlükleri
EventID 169: WinRM üzerinden yapılan uzaktan iletişim etkinliklerinin başlangıcını kaydeder ve bu etkinlikler için kullanılan bilgisayar veya etki alanı adı, kullanıcı adı ve kimlik doğrulama detaylarını içerir.
EventID 81, 82, 134: Bu loglar, PowerShell uzaktan yönetimi sırasında gerçekleşen arka plan işlemlerini kaydeder ve genellikle uzaktan iletişim etkinliklerinin zaman çerçevesini belirlemek için kullanılır.
Komut Bloğu Günlüğü (Script Block Logging)
PowerShell, komut bloklarını çalıştırdığında detaylı bir kayıt oluşturur. Bu, saldırganların kullandığı kodun, şifreleme teknikleri kullanılsa bile, tam içeriğini yakalar. PowerShell 5.0 ile gelen bu özellik, komut dosyaları ve komutlar dahil olmak üzere her türlü etkinliği “Event ID 4104” altında kaydeder. Yapılan bir testte, Invoke-Mimikatz betiği çalıştırıldığında 5 MB boyutunda ve 116 adet olay kaydı oluşturduğu gözlemlenmiştir. Komut bloklarının başlangıcı ve sonu, “Event ID 4105” ve “Event ID 4106” altında, komut bloğu kimliğine göre kaydedilir.
Modül Günlüğü (Module Logging)
PowerShell, modül günlüğü ile çalışma sırasında değişken başlatmaları ve komut çağrıları gibi detayları kaydeder. Bu özellik, gizlenmiş kod parçalarını ve formatlanmış verileri içerir ve PowerShell 3.0’dan itibaren mevcuttur. “Event ID 4103” altında, PowerShell’in işlem çalıştırma ayrıntılarını, örneğin betiklerin komut bölümlerini kaydeder. Invoke-Mimikatz betiği çalıştırıldığında, yaklaşık 7 MB boyutunda ve 22,285 adet olay kaydı oluşturduğu tespit edilmiştir. Bu kayıtlar, diğer günlük kaynaklarında bulunmayan değerli bilgileri içerir.
Transkripsiyon (Transcription)
PowerShell transkripsiyonu, bir oturumda gerçekleşen her şeyin tam bir kaydını oluşturur, tüm giriş ve çıkışları dahil eder. Bu kayıtlar, kullanıcı ve oturuma göre ayrılan metin dosyalarına yazılır ve her komut için zaman damgaları ve meta veriler içerir. Ancak, transkripsiyon yalnızca PowerShell terminalinde görünen bilgileri kaydeder ve yürütülen betiklerin içeriğini veya diğer hedeflere, örneğin dosya sistemine yazılan çıktıları içermez.
Transkript dosyaları otomatik olarak “PowerShell_transcript” ile başlar ve varsayılan olarak kullanıcının belgeler klasörüne kaydedilir. Ancak, bu dosyalar herhangi bir yerel sistem veya ağ konumuna yönlendirilebilir. En iyi uygulama olarak, transkriptlerin kopyalarının, savunma ekiplerinin kolayca inceleyebileceği ve saldırganların silmesinin zor olduğu uzak ve salt okunur bir ağ paylaşımına yazılması önerilir.
WinRM Günlüklerinin Değerlendirilmesi
Windows Uzaktan Yönetim (WinRM) servisi, sistem yöneticilerinin uzaktan sistem yönetimi için kullandığı bir araçtır. WinRM günlükleri, PowerShell komutlarının uzaktan iletişimini ve diğer WinRM bağlantılarını kaydeder. Bu günlükler, gelen ve giden bağlantı bilgilerini, kullanıcı adı ve kimlik doğrulama detayları ile birlikte saklar. Bu veriler, lateral hareketin izlenmesi ve analiz edilmesi için değerlidir. Güvenlik analistleri için ideal bir senaryoda, WinRM günlüklerinin boyutu, en az bir yıl boyunca veri saklayacak şekilde ayarlanmalıdır.
PowerShell Komut Geçmişi ve Get-History
PowerShell oturumları sırasında girilen komutların bir listesini tutan bir geçmiş özelliği sunar. Get-History komutu, geçerli oturumda girilen komutların bir listesini almak için kullanılır. Ancak, bu liste oturum kapatıldığında kaybolur. Bu, oturum sırasında yapılan işlemlerin bir kaydını tutmak için önemli bir araçtır.
ConsoleHost_history.txt Dosyasının Kullanımı
PowerShell v5 ile birlikte gelen ConsoleHost_history.txt dosyası, konsola yazılan tüm komutları kaydeder. Bu dosya, kullanıcının PowerShell okuma geçmişini saklar ve adli analiz için değerli bir kaynaktır. Dosyanın varsayılan konumu, kullanıcının AppData klasörü içindedir ve bu dosya, PowerShell kullanımının detaylı bir kaydını sağlar.
PowerShell Parametrelerinin Analizi
PowerShell günlüklerinin analizinde, çeşitli parametreler ve komutlar özel dikkat gerektirir. Bu parametreler, zararlı yazılımların ve saldırı vektörlerinin tespitinde kullanılır. Örneğin, IEX veya -Invoke-Expression komutları, string formatında saklanmış komutları çalıştırmak için kullanılırken, Start-Process komutu yeni bir işlem başlatmak için kullanılır. Ayrıca, DownloadString ve DownloadFile metodları, zararlı yazılımların uzaktan dosya indirmesinde kullanılır. Invoke-Command komutu, yerel veya uzak bir bilgisayarda komutları çalıştırmak için kullanılır ve Enter-PSSession komutu, uzaktan etkileşimli PowerShell oturumlarını başlatmak için kullanılır.
Kötü Amaçlı PowerShell Scriptlerinin Tanımlanması
Kötü amaçlı PowerShell betikleri, yukarıda belirtilen parametrelerle birlikte kullanıldığında, güvenlik ihlallerinin belirlenmesinde derinlemesine analiz gerektirir. Örneğin, Invoke-Mimikatz.ps1 gibi betikler, kimlik bilgilerini çalmak için kullanılan yaygın bir araçtır ve bu tür betiklerin kullanımı, güvenlik ihlallerinin açık bir göstergesidir.
PowerShell Kalıcılığının Anlamı ve Önemi
PowerShell, Windows sistemlerinde güçlü bir otomasyon ve yapılandırma aracıdır. Saldırganlar, sistemin başlatılması veya kullanıcı oturum açtıktan sonra otomatik olarak PowerShell betiklerini çalıştırarak sistem üzerinde kalıcılık sağlamayı hedefleyebilir. Bu tür kalıcı tehditler, sistem güvenliğini uzun süreli olarak tehlikeye atabilir ve genellikle kötü amaçlı yazılımların, backdoor’ların veya keylogger’ların devamlılığını sağlamak için kullanılır.
Kalıcılık İçin Kullanılan Windows Mekanizmaları
Windows, uygulamaların veya betiklerin otomatik olarak başlamasını sağlayan çeşitli mekanizmalar sunar. Bu mekanizmalar arasında kayıt defteri otomatik başlatma noktaları, zamanlanmış görevler ve kullanıcı başlangıç klasörleri bulunur. Örneğin, bir saldırgan, kötü amaçlı bir PowerShell betiğini aşağıdaki gibi bir kayıt defteri girişi ile sisteme entegre edebilir:
Anahtar: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
Değer: RunTotallyLegitPowerShell
Veri: powershell.exe -NonInteractive -WindowStyle Hidden -ExecutionPolicy Bypass -File “C:\windows\system32\evil.ps1”
Bu yöntem, saldırganın betiğinin her sistem başlangıcında gizli bir şekilde çalışmasını sağlar.
Zamanlanmış Görevler ve Başlangıç Klasörleri
Kayıt defterine alternatif olarak, saldırganlar zamanlanmış görevler ve Başlangıç klasörlerini kullanarak kalıcılık sağlayabilir. Zamanlanmış görevler, belirli aralıklarla veya olaylara bağlı olarak betiklerin çalıştırılmasını sağlar ve bu görevler %systemroot%\tasks içindeki .job dosyaları üzerinden veya Görev Zamanlayıcı İşlem Günlüğü üzerinden incelenebilir.
Uygulama Olay Günlükleri ve Kalıcılık
Saldırganlar, sistem hizmetleri aracılığıyla kalıcılık mekanizmaları oluşturabilir. Bu tür bir hizmet eklendiğinde, Uygulama Olay Günlüğü’nde (Application.evtx) bir “Yeni Hizmet Kuruldu” olayı (Event ID 7045) kaydedilir. Bu, sistem yöneticilerinin ve güvenlik analistlerinin, şüpheli hizmet yüklemelerini tespit etmeleri için önemli bir ipucudur.
PowerShell Modül Günlüğünü Yapılandırma Adımları
PowerShell modül günlüğü, sistem yöneticilerine ve güvenlik analistlerine, PowerShell üzerinde çalıştırılan modüllerle ilgili ayrıntılı bilgi sağlar. Bu özellik, özellikle güvenlik ihlallerinin tespiti ve analizi için kritik öneme sahiptir. Modül günlüğünü etkinleştirmek için aşağıdaki adımlar izlenebilir:
Grup İlkesi Düzenleyicisi’ni Açma

Run diyalog kutusunu açın (Windows tuşu + R) ve gpedit.msc komutunu girin.
Bu işlem, yerel grup ilkesi ayarlarının grafik kullanıcı arayüzünü açar.
PowerShell İlke Ayarlarına Erişim

Bilgisayar Yapılandırması > Yönetim Şablonları > Windows Bileşenleri > Windows PowerShell yolunu takip edin.
Modül Günlüğünü Etkinleştirme

“Modül Günlüğünü Aç” seçeneğine çift tıklayın ve “Etkin” seçeneğini işaretleyin.
Modüller İçin Günlük Seçeneklerini Belirleme

“Seçenekler” bölümünde, günlüğe kaydedilecek modüllerin adlarını belirtin.
Tüm modülleri kaydetmek için modül adları alanına * karakterini girin.
Ayarları Kaydetme
Yapılan değişiklikleri onaylamak ve kaydetmek için “Tamam” düğmesine basın.
Kayıt Defteri Üzerinden Alternatif Yapılandırma
Eğer grup ilkesi düzenleyicisine erişiminiz yoksa veya scriptler aracılığıyla yapılandırma yapmayı tercih ediyorsanız, kayıt defteri üzerinden de modül günlüğünü etkinleştirebilirsiniz:
Kayıt Defteri Düzenleyicisini Açın:

regedit komutunu kullanarak kayıt defteri düzenleyicisini açın.
Modül Günlüğü Anahtarlarına Navigasyon


Aşağıdaki yola gidin:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Policies\Microsoft\Windows\PowerShell\ModuleLogging
Modül Günlüğünü Etkinleştirme


EnableModuleLogging değerini 1 olarak ayarlayın.
Modül Adlarını Belirleme


ModuleNames altında, tüm modüller için günlüğe kaydetme ayarını * olarak belirleyin.
PowerShell Betik Bloğu Günlüğü Etkinleştirme Yönergesi
PowerShell betik bloğu günlüğü, güvenlik analizleri ve sistem yönetimi için kritik bir araçtır. Bu günlükler, betiklerin ve komutların çalıştırılma anlarını kaydederek, olası güvenlik tehditlerinin izlenmesine yardımcı olur. Aşağıda, bu özelliği etkinleştirmek için iki farklı yöntem sunulmaktadır:
Grup İlkesi Aracılığıyla Etkinleştirme
Grup İlkesi Düzenleyicisine Erişim:
Run (Çalıştır) penceresini açın (Windows tuşu + R) ve gpedit.msc yazarak Enter tuşuna basın.
Bu adım, yerel grup ilkesi düzenleyicisini başlatır.
PowerShell İlke Ayarlarına Gitme:

Aşağıdaki hiyerarşiye gidin: Bilgisayar Yapılandırması > Yönetim Şablonları > Windows Bileşenleri > Windows PowerShell.
“PowerShell Betik Bloğu Günlüğünü Aç” seçeneğine çift tıklayın.
Betik Bloğu Günlüğünü Etkinleştirme
Açılan pencerede “Etkinleştir” seçeneğini işaretleyin ve uygulayın.
Kayıt Defteri Düzenleyicisi Kullanarak Etkinleştirme
Eğer grup ilkesi düzenleyicisine erişiminiz yoksa veya otomatik scriptlerle yapılandırma yapmayı tercih ediyorsanız, kayıt defteri üzerinden de etkinleştirebilirsiniz:
Kayıt Defteri Düzenleyicisini Açma
cmd veya Run aracılığıyla regedit komutunu girerek kayıt defteri düzenleyicisini başlatın.
İlgili Kayıt Defteri Anahtarına Navigasyon:
Aşağıdaki yola gidin:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Policies\Microsoft\Windows\PowerShell\ScriptBlockLogging
Betik Bloğu Günlüğünü Etkinleştirme

EnableScriptBlockLogging değerini 1 olarak değiştirin veya yeni bir DWORD değeri oluşturup 1 olarak ayarlayın.
PowerShell Transkripsiyon Günlüğü Etkinleştirme Rehberi
PowerShell transkripsiyon günlüğü, her PowerShell oturumunun detaylı bir kaydını tutarak, sistem yöneticilerinin ve güvenlik analistlerinin işlerini kolaylaştırır. Bu kayıtlar, oturum sırasında gerçekleşen tüm komutları ve çıktıları içerir. Aşağıda, bu özelliği etkinleştirmek için adım adım bir rehber sunulmaktadır:
Grup İlkesi Aracılığıyla Etkinleştirme
Grup İlkesi Düzenleyicisine Erişim
Run (Çalıştır) penceresini açın (Windows tuşu + R) ve gpedit.msc yazarak Enter tuşuna basın.
Bu işlem, yerel grup ilkesi düzenleyicisini açacaktır.
PowerShell İlke Ayarlarına Ulaşma

Bilgisayar Yapılandırması > Yönetim Şablonları > Windows Bileşenleri > Windows PowerShell yolunu takip edin.
“PowerShell Transkripsiyonunu Aç” seçeneğine çift tıklayın.
Transkripsiyon Günlüğünü Etkinleştirme
Açılan pencerede “Etkinleştir” seçeneğini işaretleyin ve uygulayın.
Kayıt Defteri Düzenleyicisi Kullanarak Etkinleştirme
Grup ilkesi düzenleyicisine erişiminiz yoksa veya otomatik scriptlerle yapılandırma yapmayı tercih ediyorsanız, kayıt defteri üzerinden de etkinleştirebilirsiniz:
Kayıt Defteri Düzenleyicisini Açma:
cmd veya Run aracılığıyla regedit komutunu girerek kayıt defteri düzenleyicisini başlatın.
İlgili Kayıt Defteri Anahtarına Navigasyon:

Aşağıdaki yola gidin:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Policies\Microsoft\Windows\PowerShell\Transcription
Transkripsiyon Günlüğünü Etkinleştirme:

EnableTranscripting değerini 1 olarak değiştirin veya yeni bir DWORD değeri oluşturup 1 olarak ayarlayın.
EnableInvocationHeader değerini 1 olarak ayarlayarak her komut çağrısının başlığının kaydedilmesini sağlayın.
OutputDirectory değerini, transkript dosyalarının saklanacağı yolu belirterek ayarlayın. Boş bırakırsanız, varsayılan dizin kullanılır.