WindowsIIS日志文件分析程序避免安全隱患
WindowsIIS日志文件分析程序用于分析和檢測(cè)IIS日志里針對(duì)某個(gè)URL地址進(jìn)行攻擊的IP地址。對(duì)于用戶(hù)維護(hù)自己電腦的網(wǎng)絡(luò)安全有一定的作用,具體內(nèi)容如下所述。
WindowsServer具有事件日志記錄的功能,其IIS日志文件里記錄了包括下列信息:誰(shuí)訪問(wèn)了您的站點(diǎn),訪問(wèn)者查看了哪些內(nèi)容等等。通過(guò)定期檢查這些日志文件,網(wǎng)站管理員可以檢測(cè)到服務(wù)器或站點(diǎn)的哪些方面易受攻擊或存在其他安全隱患。
不過(guò),目前的日志分析工具并不是很完善,有些功能并不具備,特別是針對(duì)某個(gè)URL地址進(jìn)行攻擊的分析并不多,下面是一個(gè)VBScript程序,保存為VBS程序后可以在服務(wù)器上運(yùn)行,用于分析和檢測(cè)IIS日志里針對(duì)某個(gè)URL地址進(jìn)行攻擊的IP地址。
'代碼開(kāi)始
- targeturl="/archives/2761.html"'受攻擊網(wǎng)站的URL地址。
- logfilepath="C:\LogFiles\W3SVC\ex110813.log"'受攻擊網(wǎng)站的日志路徑。
- 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"結(jié)束."
- Subwritelog(errmes)
- ipfilename="blockip.txt"
- Setlogfile=fileobj.opentextfile(ipfilename,8,True)
- logfile.writelineerrmes
- logfile.Close
- Setlogfile=Nothing
- EndSub
'代碼結(jié)束

分析出來(lái)的IP如果出現(xiàn)異常,可以通過(guò)程序,將其批量添加到IIS的屏蔽IP列表里,下面是網(wǎng)上找到的一段VBScript代碼,將其改名為vbs后,把上面那段程序的IP導(dǎo)入,即可批量屏蔽攻擊者的IP地址。
'代碼開(kāi)始
- '/*=========================================================================
- '*IntroVBScript使用ADSI為IIS批量添加屏蔽或允許訪問(wèn)的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或一組計(jì)算機(jī),到一個(gè)指定站點(diǎn)上
- 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或一組計(jì)算機(jī),到IIS公共配置,以應(yīng)用到所有站點(diǎn)
- '如果之前對(duì)有些站點(diǎn)單獨(dú)做過(guò)屏蔽IP設(shè)置,在些設(shè)置不會(huì)生效,得在總的網(wǎng)站上設(shè)置一下,然后覆蓋所有子結(jié)點(diǎn)
- 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或一組計(jì)算機(jī),到一個(gè)指定站點(diǎn)上
- 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或一組計(jì)算機(jī),到IIS公共配置,以應(yīng)用到所有站點(diǎn)
'如果之前對(duì)有些站點(diǎn)單獨(dú)做過(guò)屏蔽IP設(shè)置,在些設(shè)置不會(huì)生效,得在總的網(wǎng)站上設(shè)置一下,然后覆蓋所有子結(jié)點(diǎn)
- 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公共配置里禁止訪問(wèn)的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
總結(jié):
希望本文介紹的WindowsIIS日志文件分析程序避免安全隱患的內(nèi)容能夠?qū)ψx者有所幫助,更多有關(guān)操作系統(tǒng)的知識(shí)還有待于讀者去探索和學(xué)習(xí)。
【編輯推薦】