PowerShell Aracılığıyla Log İncelemesi

Edros Detretus

Kıdemli Üye
25 Haz 2009
2,457
31
/var/named
SXp2fe.jpg


Merhaba değerli TurkHackTeam mensupları;

Bu konumda sizler ile Windows'un kendi platformlarından biri olan ve genellikle Komut İstemi (CMD) platformuna alternatif olarak gösterilen fakat çeşitli yönleriyle aralarında bir pozitif ve negatif farkların olduğu PowerShell platformu ile sistemimizdeki logları inceleyeceğiz.



GeB2yR.png



LOG NEDİR ?


SXGBRb.png

Öncelikle log kelimesi kayıt anlamına gelmektedir. Loglama işlemi ise bu kayıtlar ile dijital hareketlerin tutulma işlemine denir. Gelişen teknoloji ile yazılımlar, işletim sistemleri, IOT cihazları gibi elektronik sitemler üzerinde yapılan her işin kayıtlarının tutulmasıdır. Log kayıtları tüm elektronik cihazlar için önemli ve siber güvenlik olaylarının aydınlatılması için de zorunlu hale getirilmiştir. Özelliklede siber olayların tespit edilmesi ve olay yönetimi için loglama önemli bir yer tutmaktadır. 5651 sayılı yönetmelik kanunu, ISO 27001 gibi bilişim sektörünün önemli kanunları loglamayı zorunlu hale getirmiştir. Kısaca loglama işlemi bir sistemin, bir cihazın ve sistem üzerindeki kullanıcıların hareketlerini kaydeden yapıdır.


GeB2yR.png


LOGLARIN İNCELENMESİ


→ Öncelikle sol alttaki Windows simgesinin yanındaki arama çubuğuna "PowerShell" (tırnak işaretleri olmadan) yazalım ve Windows PowerShell'i çalıştıralım.

SXzkyI.png


→ Başlangıçta sistem üzerinde tutulan loglar ve her log türü için bulunan kayıt sayılarının incelemesini yapalım.
Kod:
Get-EventLog -List

SXqYRf.png


→ Biraz araştırmayı özelleştirelim ve belirli bir log türüne göre araştırma yapalım.
Kod:
Get-EventLog security

SXqLAb.png


→ Muhtemeldir ki yüzlerce kayıt ekranınızdan akmaya başlayacaktır. Bunları düzenleyerek okuma işlemini kolaylaştırabilirsiniz. Ayrıca açılacak olan pencerede "Add criteria" butonu ile log kayıtlarınızı gruplandırabilir, belirli kriterlere göre listeleyebilir ve bu listelerin içerisindeki kayıtların ayrıntılı okumasını sağlayabilirsiniz.
Kod:
Get-EventLog security | Out-GridView

SXqOTs.png


→ Biraz da yakın geçmişe daha spesifik bir inceleme yapmaya ne dersiniz. Şimdi yapacağımız işlemle de son 10 log kaydının yazdırılmasını yapacağız. Tabiki buradaki log başlığı ve sayı tamamen değişiktir. Örneğin siz System loglarından son 20 logu incelemek isterseniz koddaki security'i system olarak 10'u ise 20 olarak değiştirebilirsiniz.
Kod:
Get-EventLog security -Newest 10

SXqHUS.png


→ Peki bu log kayıtlarının bir dökümantasyonunu yapmak ve depolama işlemini gerçekleştirmek gerekmez mi ? "$" komutu bu işimize yarayacaktır. " $ = KAYIT_ELDİLECEK_İSİM" şeklinde logların kaydını yapabilir ve tekrardan daha hızlı bir şekilde çağırabiliriz.
Kod:
$saklanacak_log_kayitlari = Get-EventLog security -Newest 10
$saklanacak_log_kayitlari

SXqaOG.png


→ Loglar hızlıca gruplandırılıp sayılabilir. Bunun için aşağıdaki komutu kullanmamız yeterli olacaktır.
Kod:
$saklanacak_log_kayitlari | Group-Object InstanceID

SXqX6t.png


→ Belirli bir log türünde arama yapılıyorsa "-InstanceID" eki kullanılarak araştırma genişletilebilir.
Kod:
Get-EventLog -LogName "Windows PowerShell" -InstanceId 600

SXqgCc.png


→ Kayıtlarımızın ayrıntılarını görüntüleyebiliriz. Bunun için de hemen bir örnek oluşturalım;
Öncelikle "Windows PowerShell" loguna ait son log kaydını tht_edros ismiyle kayıt edelim. (Buralardaki bütün isimlendirmeler, sayı adetleri ve araştırma başlıkları örnektir, siz amacınıza yönelik değişikliklere gidebilirsiniz.)
Kod:
$tht_edros = Get-EventLog -LogName "Windows PowerShell" -Newest 1
Sonrasında kaydımızı bi kontrol edelim.
Kod:
$tht_edros

Şimdi bu kaydımızı tüm ayrıntısı ile inceleyelim. Komutun sonundaki *; "tüm ayrıntılar ile incelenmesi" anlamına gelmektedir. Konunun devamında buranın detaylandırılmasından da bahsedeceğim.
Kod:
$tht_edros | Select-Object -Property *

SXqite.png


→ Bir önceki basamakta bahsedilen ayrıntılandırma işlemini gerçekleştirelim. Ayrıntı olarak kayıt olmuş logdaki Makine ismini ve kayıt tarihini yazdıralım. Sizler buraları kendi amaç ve istekleriniz doğrultusunda revize edebilirsiniz.
Kod:
$tht_edros | Select-Object -Property MachineName,TimeGenerated

SXqhsR.png


→ Son olarak da belirli bir zaman dilimindeki kayıtların dökümantasyonunun nasıl yapıldığından bahsedelim. Konunun genelinden de kavranacağı üzere önce bir kayıt dizini oluşturarak işlemimize başlayalım;
Kod:
$gecen_ay_kayitlari = (Get-Date).AddDays(-30)
Yazdığımız koddaki işlem emrinden de anlayacağımız üzere gecen_ay_kayitlari adındaki kayıt dizinimize bir log kayıt yığını atadık. Bu log kayıt yığınında şuanki tarihin üzerine -30 gün ekleyerek yani 1 ay geriye giderek kayıtların taranmasını istedik. Buradaki sayılar ve işlemler de değişiklik gösterebilir.
Şimdi bu kayıtlarımızı ekrana yazdıralım.
Kod:
Get-EventLog -LogName security -After $gecen_ay_kayitlari

SXqBVN.png



Bir konunun daha sonuna geldik. Umarım işinize yarayacak bir döküman oluşturmayı becerbilmişimdir. :) Log kayıtlarınızın resmi ve adli bir delil olduğunu unutmamanızı, özellikle temizlenmeleri işleminde azami şekilde dikkatli davranmanızı tavsiye ederim. Mutlu günler diliyorum... :)

TurkHackTeam.Net/Org
CwX2sp.png

Saygılarımla...:Smiley1007:
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.