IIS日志文件分析程序源码(VBS代码)

2011-08-14 13:48:52来源:月光博客作者:

  Windows Server具有事件日志记录的功能,其IIS日志文件里记录了包括下列信息:谁访问了您的站点,访问者查看了哪些内容等等。通过定期检查这些日志文件,网站管理员可以检测到服务器或站点的哪些方面易受攻击或

  Windows Server具有事件日志记录的功能,其IIS日志文件里记录了包括下列信息:谁访问了您的站点,访问者查看了哪些内容等等。通过定期检查这些日志文件,网站管理员可以检测到服务器或站点的哪些方面易受攻击或存在其他安全隐患。

  不过,目前的日志分析工具并不是很完善,有些功能并不具备,特别是针对某个URL地址进行攻击的分析并不多,下面是一个VB Script程序,保存为VBS程序后可以在服务器上运行,用于分析和检测IIS日志里针对某个URL地址进行攻击的IP地址。

ASP/VB Code复制内容到剪贴板
  1. targeturl = "/archives/2761.html"  '受攻击网站的URL地址。   
  2. logfilepath = "C:\LogFiles\W3SVC\ex110813.log"  '受攻击网站的日志路径。   
  3.   
  4. On Error Resume Next  
  5. Set fileobj = CreateObject("scripting.filesystemobject")   
  6. Set fileobj2 = CreateObject("scripting.filesystemobject")   
  7. Set myfile = fileobj2.opentextfile(logfilepath, 1, False)   
  8.      
  9. Do While myfile.atendofstream <> True  
  10. myline = myfile.readline()   
  11. myline2 = Split(myline, " ")   
  12. newip = myline2(9)   
  13. myurl = myline2(5)   
  14. If targeturl = myurl Then  
  15.       writelog newip   
  16. End If  
  17. Loop  
  18.   
  19. myfile.Close   
  20. Set fileobj2 = Nothing  
  21. Msgbox "结束."  
  22.   
  23. Sub writelog(errmes)   
  24. ipfilename = "blockip.txt"  
  25. Set logfile = fileobj.opentextfile(ipfilename, 8, True)   
  26. logfile.writeline errmes   
  27. logfile.Close   
  28. Set logfile = Nothing  
  29. End Sub  

 

  分析出来的IP如果出现异常,可以通过程序,将其批量添加到IIS的屏蔽IP列表里,下面是网上找到的一段VBScript代码,将其改名为vbs后,把上面那段程序的IP导入,即可批量屏蔽攻击者的IP地址。

ASP/VB Code复制内容到剪贴板
  1. '/*=========================================================================   
  2. ' * Intro VBScript使用ADSI为IIS批量添加屏蔽或允许访问的IP    
  3. ' * FileName VBScript-ADSI-IIS-Add-Deny-Grant-IP-Change-MetaBase.xml.vbs    
  4. ' *==========================================================================*/    
  5. 'AddDenyIP2All "192.168.1.106,255.255.255.0"    
  6. 'AddDenyIP "123456","127.0.0.1"    
  7. 'AddDenyIP2All "14.113.226.116"   
  8.     
  9.   
  10. '添加要屏蔽的IP或一组计算机,到一个指定站点上    
  11. Sub AddDenyIP(strWebNo, strDenyIp)    
  12. On Error Resume Next    
  13. Set SecObj = GetObject("IIS://LocalHost/W3SVC/" & strWebNo & "/Root")    
  14. Set MyIPSec = SecObj.IPSecurity    
  15. MyIPSec.GrantByDefault = True    
  16. IPList = MyIPSec.IPDeny    
  17. i = UBound(IPList) + 1    
  18. ReDim Preserve IPList(i)    
  19. IPList(i) = strDenyIp    
  20. MyIPSec.IPDeny = IPList    
  21. SecObj.IPSecurity = MyIPSec    
  22. SecObj.Setinfo    
  23. End Sub    
  24. '添加要屏蔽的IP或一组计算机,到IIS公共配置,以应用到所有站点    
  25. '如果之前对有些站点单独做过屏蔽IP设置,在些设置不会生效,得在总的网站上设置一下,然后覆盖所有子结点    
  26.   
  27. Sub AddDenyIP2All(strDenyIp)    
  28. On Error Resume Next    
  29. Set SecObj = GetObject("IIS://LocalHost/W3SVC")    
  30. Set MyIPSec = SecObj.IPSecurity    
  31. MyIPSec.GrantByDefault = True    
  32. IPList = MyIPSec.IPDeny    
  33. i = UBound(IPList) + 1    
  34. ReDim Preserve IPList(i)    
  35. IPList(i) = strDenyIp    
  36. MyIPSec.IPDeny = IPList    
  37. SecObj.IPSecurity = MyIPSec    
  38. SecObj.Setinfo    
  39. End Sub    
  40. '添加允许的IP或一组计算机,到一个指定站点上    
  41. Sub AddGrantIP(strWebNo, strGrantIp)    
  42. On Error Resume Next    
  43. Set SecObj = GetObject("IIS://LocalHost/W3SVC/" & strWebNo & "/Root")    
  44. Set MyIPSec = SecObj.IPSecurity    
  45. MyIPSec.GrantByDefault = False    
  46. IPList = MyIPSec.IPGrant    
  47. i = UBound(IPList) + 1    
  48. ReDim Preserve IPList(i)    
  49. IPList(i) = strGrantIp    
  50. MyIPSec.IPGrant = IPList    
  51. SecObj.IPSecurity = MyIPSec    
  52. SecObj.Setinfo    
  53. End Sub    
  54. '添加允许的IP或一组计算机,到IIS公共配置,以应用到所有站点    
  55. '如果之前对有些站点单独做过屏蔽IP设置,在些设置不会生效,得在总的网站上设置一下,然后覆盖所有子结点    
  56.   
  57. Sub AddGrantIP2All(strGrantIp)    
  58. On Error Resume Next    
  59. Set SecObj = GetObject("IIS://LocalHost/W3SVC")    
  60. Set MyIPSec = SecObj.IPSecurity    
  61. MyIPSec.GrantByDefault = False    
  62. IPList = MyIPSec.IPGrant    
  63. i = UBound(IPList) + 1    
  64. ReDim Preserve IPList(i)    
  65. IPList(i) = strGrantIp    
  66. MyIPSec.IPGrant = IPList    
  67. SecObj.IPSecurity = MyIPSec    
  68. SecObj.Setinfo    
  69. End Sub    
  70. '显示IIS公共配置里禁止访问的IP    
  71. Sub ListDenyIP()    
  72. Set SecObj = GetObject("IIS://LocalHost/W3SVC")    
  73. Set MyIPSec = SecObj.IPSecurity    
  74. IPList = MyIPSec.IPDeny 'IPGrant/IPDeny    
  75. WScript.Echo Join(IPList, vbCrLf)    
  76. ' For i = 0 To UBound(IPList)    
  77. ' WScript.Echo i + 1 & "-->" & IPList(i)    
  78. ' Next    
  79. End Sub  

 

关键词:IIS日志分析

赞助商链接: