WindowsIIS日志文件分析程序避免安全隱患
WindowsIIS日志文件分析程序用于分析和檢測IIS日志里針對某個URL地址進(jìn)行攻擊的IP地址。對于用戶維護(hù)自己電腦的網(wǎng)絡(luò)安全有一定的作用,具體內(nèi)容如下所述。
WindowsServer具有事件日志記錄的功能,其IIS日志文件里記錄了包括下列信息:誰訪問了您的站點,訪問者查看了哪些內(nèi)容等等。通過定期檢查這些日志文件,網(wǎng)站管理員可以檢測到服務(wù)器或站點的哪些方面易受攻擊或存在其他安全隱患。
不過,目前的日志分析工具并不是很完善,有些功能并不具備,特別是針對某個URL地址進(jìn)行攻擊的分析并不多,下面是一個VBScript程序,保存為VBS程序后可以在服務(wù)器上運(yùn)行,用于分析和檢測IIS日志里針對某個URL地址進(jìn)行攻擊的IP地址。
'代碼開始
- 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é)束

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