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

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

  Windows Server具有事件日志記錄的功能,其IIS日志文件里記錄了包括下列信息:誰訪問了您的站點,訪問者查看了哪些內(nèi)容等等。通過定期檢查這些日志文件,網(wǎng)站管理員可以檢測到服務器或站點的哪些方面易受攻擊或

  Windows Server具有事件日志記錄的功能,其IIS日志文件里記錄了包括下列信息:誰訪問了您的站點,訪問者查看了哪些內(nèi)容等等。通過定期檢查這些日志文件,網(wǎng)站管理員可以檢測到服務器或站點的哪些方面易受攻擊或存在其他安全隱患。

  不過,目前的日志分析工具并不是很完善,有些功能并不具備,特別是針對某個URL地址進行攻擊的分析并不多,下面是一個VB Script程序,保存為VBS程序后可以在服務器上運行,用于分析和檢測IIS日志里針對某個URL地址進行攻擊的IP地址。

ASP/VB Code復制內(nèi)容到剪貼板
  1. targeturl = "/archives/2761.html"  '受攻擊網(wǎng)站的URL地址。   
  2. logfilepath = "C:\LogFiles\W3SVC\ex110813.log"  '受攻擊網(wǎng)站的日志路徑。   
  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如果出現(xiàn)異常,可以通過程序,將其批量添加到IIS的屏蔽IP列表里,下面是網(wǎng)上找到的一段VBScript代碼,將其改名為vbs后,把上面那段程序的IP導入,即可批量屏蔽攻擊者的IP地址。

ASP/VB Code復制內(nèi)容到剪貼板
  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設置,在些設置不會生效,得在總的網(wǎng)站上設置一下,然后覆蓋所有子結點    
  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設置,在些設置不會生效,得在總的網(wǎng)站上設置一下,然后覆蓋所有子結點    
  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日志分析

贊助商鏈接: