WindowsIIS日志文件分析程序用于分析和检测IIS日志里针对某个URL地址进行攻击的IP地址。对于用户维护自己电脑的网络安全有一定的作用,具体内容如下所述。
WindowsServer具有事件日志记录的功能,其IIS日志文件里记录了包括下列信息:谁访问了您的站点,访问者查看了哪些内容等等。通过定期检查这些日志文件,网站管理员可以检测到服务器或站点的哪些方面易受攻击或存在其他安全隐患。
不过,目前的日志分析工具并不是很完善,有些功能并不具备,特别是针对某个URL地址进行攻击的分析并不多,下面是一个VBScript程序,保存为VBS程序后可以在服务器上运行,用于分析和检测IIS日志里针对某个URL地址进行攻击的IP地址。
'代码开始
- targeturl="/archives/2761.html"'受攻击网站的URL地址。
- logfilepath="C:\LogFiles\W3SVC\ex110813.log"'受攻击网站的日志路径。
- OnErrorResumeNext
- Setfileobj=CreateObject("scripting.filesystemobject")
- Setfileobj2=CreateObject("scripting.filesystemobject")
- Setmyfile=fileobj2.opentextfile(logfilepath,1,False)
- DoWhilemyfile.atendofstream<>True
- myline=myfile.readline()
- myline2=Split(myline,"")
- newip=myline2(9)
- myurl=myline2(5)
- Iftargeturl=myurlThen
- writelognewip
- EndIf
- Loop
- myfile.Close
- Setfileobj2=Nothing
- Msgbox"结束."
- Subwritelog(errmes)
- ipfilename="blockip.txt"
- Setlogfile=fileobj.opentextfile(ipfilename,8,True)
- logfile.writelineerrmes
- logfile.Close
- Setlogfile=Nothing
- EndSub
'代码结束
分析出来的IP如果出现异常,可以通过程序,将其批量添加到IIS的屏蔽IP列表里,下面是网上找到的一段VBScript代码,将其改名为vbs后,把上面那段程序的IP导入,即可批量屏蔽攻击者的IP地址。
'代码开始
- '/*=========================================================================
- '*IntroVBScript使用ADSI为IIS批量添加屏蔽或允许访问的IP
- '*FileNameVBScript-ADSI-IIS-Add-Deny-Grant-IP-Change-MetaBase.xml.vbs
- '*==========================================================================*/
- 'AddDenyIP2All"192.168.1.106,255.255.255.0"
- 'AddDenyIP"123456","127.0.0.1"
- 'AddDenyIP2All"14.113.226.116"
- '添加要屏蔽的IP或一组计算机,到一个指定站点上
- SubAddDenyIP(strWebNo,strDenyIp)
- OnErrorResumeNext
- SetSecObj=GetObject("IIS://LocalHost/W3SVC/"&strWebNo&"/Root")
- SetMyIPSec=SecObj.IPSecurity
- MyIPSec.GrantByDefault=True
- IPList=MyIPSec.IPDeny
- i=UBound(IPList)+1
- ReDimPreserveIPList(i)
- IPList(i)=strDenyIp
- MyIPSec.IPDeny=IPList
- SecObj.IPSecurity=MyIPSec
- SecObj.Setinfo
- EndSub
- '添加要屏蔽的IP或一组计算机,到IIS公共配置,以应用到所有站点
- '如果之前对有些站点单独做过屏蔽IP设置,在些设置不会生效,得在总的网站上设置一下,然后覆盖所有子结点
- SubAddDenyIP2All(strDenyIp)
- OnErrorResumeNext
- SetSecObj=GetObject("IIS://LocalHost/W3SVC")
- SetMyIPSec=SecObj.IPSecurity
- MyIPSec.GrantByDefault=True
- IPList=MyIPSec.IPDeny
- i=UBound(IPList)+1
- ReDimPreserveIPList(i)
- IPList(i)=strDenyIp
- MyIPSec.IPDeny=IPList
- SecObj.IPSecurity=MyIPSec
- SecObj.Setinfo
- EndSub
- '添加允许的IP或一组计算机,到一个指定站点上
- SubAddGrantIP(strWebNo,strGrantIp)
- OnErrorResumeNext
- SetSecObj=GetObject("IIS://LocalHost/W3SVC/"&strWebNo&"/Root")
- SetMyIPSec=SecObj.IPSecurity
- MyIPSec.GrantByDefault=False
- IPList=MyIPSec.IPGrant
- i=UBound(IPList)+1
- ReDimPreserveIPList(i)
- IPList(i)=strGrantIp
- MyIPSec.IPGrant=IPList
- SecObj.IPSecurity=MyIPSec
- SecObj.Setinfo
- EndSub
'添加允许的IP或一组计算机,到IIS公共配置,以应用到所有站点
'如果之前对有些站点单独做过屏蔽IP设置,在些设置不会生效,得在总的网站上设置一下,然后覆盖所有子结点
- SubAddGrantIP2All(strGrantIp)
- OnErrorResumeNext
- SetSecObj=GetObject("IIS://LocalHost/W3SVC")
- SetMyIPSec=SecObj.IPSecurity
- MyIPSec.GrantByDefault=False
- IPList=MyIPSec.IPGrant
- i=UBound(IPList)+1
- ReDimPreserveIPList(i)
- IPList(i)=strGrantIp
- MyIPSec.IPGrant=IPList
- SecObj.IPSecurity=MyIPSec
- SecObj.Setinfo
- EndSub
'显示IIS公共配置里禁止访问的IP
- SubListDenyIP()
- SetSecObj=GetObject("IIS://LocalHost/W3SVC")
- SetMyIPSec=SecObj.IPSecurity
- IPList=MyIPSec.IPDeny'IPGrant/IPDeny
- WScript.EchoJoin(IPList,vbCrLf)
- 'Fori=0ToUBound(IPList)
- 'WScript.Echoi+1&"-->"&IPList(i)
- 'Next
- EndSub
总结:
希望本文介绍的WindowsIIS日志文件分析程序避免安全隐患的内容能够对读者有所帮助,更多有关操作系统的知识还有待于读者去探索和学习。
【编辑推荐】