windows2000的系统日志,分为应用程序日志,安全日志,系统日志,DNS服务器日志。。位置在%systemroot%\system32\config 默认大小为512K 相对应为
security %systemroot%\system32\config\secevent.evt
system %systemroot%\system32\config\sysevent.evt
application %systemroot%\system\config\appevent.evt
这些LOG文件在注册表中的
hkey_local_machine\system\currentcontrolset\services\eventlog
system32\config 默认大小为512K,可以改变他的大小,要不日志超出就会报错
注册表 hkey_local_machine\system\currentcontrolset\services\eventlog对应的每个日志,个日志均有一个maxsize的子键。修改即可
1---日志配置
还可以利用微软的脚本来设定日志最大为25M,并允许自行覆盖14天前的日志
脚本利用WMI对象,WMI(windows management instrumentation)是微软提供的windows下的系统管理工具
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 = "." localhost
要在远程主机执行"."改为主机名(当然,你要建立IPC连接和拥有管理员权限)
2---日志查询与备份
此处提到了微软resourcekit工具箱中的dumpel.exe,不过还没有找到:P
可先了解一下其用法!
估计是在cmd下操作的东东。。
dumpel -f filename -s \\server -l log
-f filename
-s \\server 远程计算机日志
-l log log include system,security,application and DNS
例如把目标服务器server 的system日志转存为backupsystem.log可以
dumpel -s \\server -l system -f backupsystem.log
也可以用WMI来实现
Example :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 "or "The Application event log could not be backed up"
不过备份格式也是*.evt用notepad打开后是乱码,没有用dumpel方便!(看来要想看到config里面的东东,还需要dumpel,哎,真麻烦!)
3--日志清除
作为黑客来说这个就显很重要了,当然自己也没有真正涉及到这类问题,毕竟自己只在LAN中玩过些把戏罢了:),好了废话少说,这个反正也是写给自己以后查阅用的,不必那么死板!
第一点,当然是用TOOL 拉!小榕的elsave.exe自己不知道有没有收录,需要有管理员权限,和IPC连接 (这不TMD是废话吗,都入侵了,能JB没有吗,哈哈)
CMD
elsave -s \\ip -l application -C ("c"是什么东东,等找到elsave.exe 在说了)
在有就是利用WMI了,有是写东东,MB,但是首先获得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 循环,删除数组中的每一个元素,即各个日志.
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
这个工具不能创建安全日志。至于如何创建安全日志,希望大家能够找到一个好方法!
补充一个定期存储log的方法,不过还是要利用resource Kit中的dumpel.exe,而且还需要利用wscript.shell中的run来执行
dumpel.exe的使用方法上面应该说的很清楚了,在此在补充一下
dumpel -f file -s \\server -l log(到时候找到此tool,看下就知道了)
具体代码,因为本人不懂得wscript.shell,不能完全看明白,具体代码copy如下
logreport.js
month=new Array(12)
month[1]="一月"
month[2]="二月"
month[3]="三月"
month[4]="四月"
month[5]="五月"
month[6]="六月"
month[7]="七月"
month[8]="八月"
month[9]="九月"
month[10]="十月"
month[11]="十一月"
month[12]="十二月"
days=new Array(7)
days[1]="星期日"
days[2]="星期一"
days[3]="星期二"
days[4]="星期三"
days[5]="星期四"
days[6]="星期五"
days[7]="星期六"
function theData(aDate)
{
var currentday=days[aDate.getDay()+1]
var currentmonth=month[aDate.getMonth()+1]
return currentday+","+currentmonth+","+aDate.getDate()
}
var result;result=0
var ws=WScript.CreateObject("WScript.shell")
c=ws.expandenvironmentstrings("%computername%")
netdrive="\\\\date\\backup"
today=new Date()
var logday=today.getDate()
var logmonth=today.getMonth()
logarray=new Array(2)
logarray[0]="system"
logarray[1]="application"
logarray[2]="security"
for (l in logarray) {
ws.run("dumpel.exe /s \\\\server /l "+logarray[l]+" /f "+netdrive+"\\\\"+c+"-"+logmonth+"-"+logday()+"-"+logarray[l]+".log /d 1",
0,"TRUE")
}
ForReading=1
ForAppending=8
for (l in logarray) {
var fs=new ActiveXObject("scripting.FileSystemObject")
var f=fs.opentextfile(""+netdrive+"\\\\"+c+"-"+logmonth+"-"+logday()+"-"+logarray[l]+".log",ForReading,"TRUE")
fContents=f.ReadAll()
f.Close()
var f=fs.OpenTextFile(""+netdrive+"\\\\"+c+"-"+logmonth+"-"+logday()+"-"+logarray[l]+".htm",ForAppending,"TRUE")
fHeader="<html><head><title>Daily "
fHeader+=logarray[l]
fHeader+=c
fHeader+="</title></head>"
fHeader+="<body bgcolor=#ffffff text=#000000>"
fHeader+="<h1>daily"
fHeader+=logarray[l]
fHeader+=" log report for "
fHeader+=c
fHeader+="</h1>"
fHeader+="<h3>"
fHeader+=theData(today)
fHeader+="</h3>"
fHeader+="<pre>"
f.Write(fHeader)
f.Write(fContents)
fFooter="</pre></body></html>"
fWrite(fFooter)
f.Close()
}
存为*.js,和dumpel.exe放在一起,执行就可以了
要实现此功能还可以通过windows图形化的计划任务来完成,或是"at"命令!
at \\\\server /every m,t,w,th,f,s,su 0:00 "path\\logport.js"
server is logport.js
path is logport.js 默认是%systemroot%