windows日誌的保護與偽造

來源:互聯網
上載者:User

windows日誌的保護與偽造
原創:netone(cexo)

windows日誌的保護與偽造
日誌對於系統安全的作用是顯而易見的,無論是網路系統管理員還是駭客都非常重視日誌,一個有經驗的管理員往往能夠迅速通過日誌瞭解到系統的安全效能,而一個聰明的駭客往往會在入侵成功後迅速清除掉對自己不利的日誌。下面我們就來討論一下日誌的安全和建立問題。
一:概述:Windows2000的系統記錄檔有應用程式記錄檔,安全日誌、系統日誌、DNS伺服器日誌等等,應用程式記錄檔、安全日誌、系統日誌、DNS日誌預設位置:%systemroot%/system32/config,預設檔案大小512KB。
安全記錄檔:%systemroot%/system32/config/SecEvent.EVT
系統記錄檔:%systemroot%/system32/config/SysEvent.EVT
應用程式記錄檔檔案:%systemroot%/system32/config/AppEvent.EVT
這些LOG檔案在註冊表中的:
HKEY_LOCAL_MACHINE/System/CurrentControlSet/Services/Eventlog
有的管理員很可能將這些日誌重定位。其中EVENTLOG下面有很多的子表,裡面可查到以上日誌的定位目錄。

 

二:作為網路系統管理員:
1。日誌的安全配置:
預設的條件下,日誌的大小為512KB大小,如果超出則會報錯,並且不會再記錄任何日誌。所以首要任務是更改預設大小,具體方法:註冊表中HKEY_LOCAL_MACHINE/System/CurrentControlSet/Services/Eventlog對應的每個日誌如系統,安全,應用程式等均有一個maxsize子鍵,修改即可。
下面給出一個來自微軟網站的一個指令碼,利用VMI來設定日誌最大25MB,並允許日誌自行覆蓋14天前的日誌:
該指令碼利用的是WMI對象, WMI(Windows Management Instrumentation)技術是微軟提供的Windows下的系統管理工具。通過該工具可以在本地或者管理用戶端系統中幾乎一切的資訊。很多專業的網路管理工具都是基於WMI開發的。該工具在Win2000以及WinNT下是標準工具,在Win9X下是擴充安裝選項。所以以下的代碼在2000以上均可運行成功。

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate,(Security)}!//" & _
strComputer & "/root/cimv2") '獲得VMI對象
Set colLogFiles = objWMIService.ExecQuery _
("Select * from Win32_NTEventLogFile")
For each objLogfile in colLogFiles
strLogFileName = objLogfile.Name
Set wmiSWbemObject = GetObject _
("winmgmts:{impersonationLevel=Impersonate}!//./root/cimv2:" _
& "Win32_NTEventlogFile.Name='" & strLogFileName & "'")
wmiSWbemObject.MaxFileSize = 2500000000
wmiSWbemObject.OverwriteOutdated = 14
wmiSWbemObject.Put_
Next
將上述指令碼用記事本存檔為vbs為尾碼的即可使用。
另外需要說明的是代碼中的strComputer="."在windows指令碼中的含義相當於localhost,如果要在遠程主機上執行代碼,只需要把"."改動為主機名稱,當然首先得擁有對方主機的管理員權限並建立IPC串連.本文中的代碼所出現的strComputer均可作如此改動.
2。日誌的查詢與備份:
一個優秀的管理員是應該養成備份日誌的習慣,如果有條件的話還應該把日誌轉存到備份機器上或直接轉儲到印表機上,筆者還有一篇文章《利用指令碼編程格式化輸出系統日誌》,詳細的講述了利用windows指令碼把日誌轉儲並輸出成html頁已便於查詢,有興趣的可以查看,在這裡推薦微軟的resourceKit工具箱中的dumpel.exe,他的常用方法:
dumpel -f filename -s //server -l log
-f filename 輸出日誌的位置和檔案名稱
-s //server 輸出遠端電腦日誌
-l log log 可選的為system,security,application,可能還有別的如DNS等
如要把目標伺服器server上的系統日誌轉存為backupsystem.log可以用以下格式:
dumpel //server -l system -f backupsystem.log
再利用計劃任務可以實現定期備份系統日誌。
另外利用指令碼編程的VMI對象也可以輕而易舉實現記錄備份:
下面給出備份application日誌的代碼:
backuplog.vbs
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate,(Backup)}!//" & _
strComputer & "/root/cimv2") '獲得 VMI對象
Set colLogFiles = objWMIService.ExecQuery _
("Select * from Win32_NTEventLogFile where LogFileName='Application'") '擷取日誌對象中的應用程式記錄檔
For Each objLogfile in colLogFiles
errBackupLog = objLogFile.BackupEventLog("f:/application.evt") '將記錄備份為f:/application.evt
If errBackupLog <> 0 Then
Wscript.Echo "The Application event log could not be backed up."
else Wscript.Echo "success backup log"
End If
Next
程式說明:如果備份成功將視窗提示:"success backup log" 否則提示:"The Application event log could not be backed up",此處備份的日誌為application 備份位置為f:/application.evt,可以自行修改,此處備份的格式為evt的原始格式,用記事本開啟則為亂碼,這一點他不如dumpel用得方便。

三:作為駭客
1。日至清除
一個入侵系統成功後的駭客第一件事便是清除日誌,如果以圖形介面遠端控制對方機器或是從終端登陸進入,刪除日誌不是一件困難的事,由於日誌雖然也是作為一種服務運行,但不同於http,ftp這樣的服務,可以在命令列下先停止,再刪除,在m命令列下用net stop eventlog是不能停止的,所以有人認為在命令列下刪除日誌是很困難的,實際上不是這樣,下面介紹幾種方法:
1.藉助第三方工具:如小榕的elsave.exe遠程清除system,applicaton,security的軟體,使用方法很簡單,首先利用獲得的管理員帳號與對方建立ipc會話,net use //ip pass /user: user
然後命令列下:elsave -s //ip -l application -C,這樣就刪除了安全日誌。
其實利用這個軟體還可以進行備份日誌,只要加一個參數 -f filename就可以了,在此不再詳述。
2.利用指令碼編程中的VMI,也可以實現刪除日誌,首先獲得object對象,然後利用其clearEventLog() 方法刪除日誌。原始碼:
cleanevent.vbs
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate,(Backup)}!//" & _
strComputer & "/root/cimv2")
dim mylogs(3)
mylogs(1)="application"
mylogs(2)="system"
mylogs(3)="security"
for Each logs in mylogs
Set colLogFiles = objWMIService.ExecQuery _
("Select * from Win32_NTEventLogFile where LogFileName='"&logs&"'")
For Each objLogfile in colLogFiles
objLogFile.ClearEventLog()
Next
next
在上面的代碼中,建立一個數組,為application,security,system如果還有其他日誌也可以加入數組。
然後用一個for 迴圈,刪除數組中的每一個元素,即各個日誌.
2。建立日誌:
刪除日誌後,任何一個有頭腦的管理員面對空空的日誌,馬上就會反應過來被入侵了,所以一個聰明的駭客的學會如何
偽造日誌:
1。利用指令碼編程中的eventlog方法是創造日誌變得非常簡單;下面看一個代碼
createlog.vbs
set ws=wscript.createobject("Wscript.shell")
ws.logevent 0 ,"write log success" '建立一個成功執行日誌
這個代碼很容易閱讀,首先獲得wscript的一個shell對象,然後利用shell對象的logevent方法
logevent的用法:logevent eventtype,"description" [,remote system]
eventtype 為日誌類型,可以使用的如下:0 代表成功執行,1 執行出錯 ,2 警告 , 4,資訊 ,8 成功審計 16 故障審計
所以上面代碼中,把0改為1,2,4,8,16均可,引號下的為日誌描述。
這種方法寫的日誌有一個缺點,只能寫到應用程式記錄檔,而且日至來源只能為wsh,即windows scripting host,所以不能起太多的隱蔽作用。
2,微軟為了方便系統管理員和程式員,在xp下有個新的命令列工具,eventcreate.exe,利用它,建立日誌更加簡單。
eventcreate -s server -l logname -u username -p password -so source -t eventtype -id id -d description
含義:-s 為遠程主機建立日誌: -u 遠程主機的使用者名稱 -p 遠程主機的使用者密碼
-l 日誌;可以建立system和application 不能建立security日誌,
-so 日誌來源,可以是任何日誌 -t 日誌類型 如information資訊,error錯誤,warning 警告,
-d 日誌描述,可以是任意語句 -id 自主日誌為1-1000之內
例如,我們要本地建立一個系統日誌,日至來源為admin,日誌類型是警告,描述為"this is a test",事件ID為500
可以用如下參數
eventcreate -l system -so administrator -t warning -d "this is a test" -id 500
這個工具不能建立安全日誌。至於如何建立安全日誌,希望大家能夠找到一個好方法!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.