AD

CC攻击原理、现象、防护之防护

CC的防护:

第一种方法:

前面讲到,CC攻击是使用的真实IP,真实IP比较固定,可以使用一个小的程序来读取网站的IIS日志,分析出其中的IP地址,最后使用安全策略封禁。

VBS代码:

Set fileobj=CreateObject("Scripting.filesystemobject")

logfilepath="E:w3logW3SVC237ex070512old.log"    '注意指定受攻击网站的日志路径。

'如果是虚拟主机,要查是哪个网站受攻击,可以查看:C:WINDOWSsystem32LogFilesHTTPERR ,根据错误日志很容易分析出来。

writelog "netsh ipsec static add policy name=XBLUE"

writelog "netsh ipsec static add filterlist name=denyip"

overip=""

f_name=logfilepath

'指定日志文件

'程序功能:把logfiles中的IP提取成ipsec需要的过滤格式,导入ipsec中过滤。适合某个网站受大量CC攻击的情况。

set fileobj88=CreateObject("Scripting.FileSystemObject")

Set MYFILE=fileobj88.OpenTextFile(f_name,1,false)

contentover=MYFILE.ReadAll()

contentip=lcase(contentover)

MYFILE.close

set fileobj88=nothing

on error resume next

myline=split(contentip,chr(13))

for i=0 to ubound(myline)-1

    myline2=split(myline(i),"")

    newip=myline2(6)

    '指定分离的标识字符串!

    if instr(overip,newip)=0 then '去除重复的IP。

        overip=overip&newip

       dsafasf=split(newip,".")

        if ubound(dsafasf)=3 then

            writelog "netsh ipsecstatic add filter filterlist=denyip srcaddr="&newip&"dstaddr=Me dstport=80 protocol=TCP"

        end if

    else

        wscript.echo newip &" isexits!"

    end if

next

writelog "netsh ipsec static add filteraction name=denyact action=block"

writelog "netsh ipsec static add rule name=kill3389 policy=XBLUEfilterlist=denyip filteraction=denyact"

writelog "netsh ipsec static set policy name=XBLUE assign=y"

Sub writelog(errmes)  '导出IPsec的策略文件为一个bat文件。

   ipfilename="denyerrorip.bat"

    Setlogfile=fileobj.opentextfile(ipfilename,8,true)

    logfile.writeline  errmes

    logfile.close

    Set logfile=nothing

End Sub

把上述代码存为一个.vbs文件,设置好其中日志的路径。双击运行即可,运行完毕后生成一个denyerrorip.bat文件,这个是ipsec所需要的策略文件,直接双击运行即可。


第二种方法:

    使用Cookie认证,有人说,CC里面也允许Cookie,但是这里的Cookie是所有连接都使用的,所以启用IP+Cookie认证就可以了。 


第三者方法:

  利用Session,这个判断比Cookie更加方便,不光可以IP认证,还可以防刷新模式,在页面里判断刷新,是刷新就不让它访问,没有刷新符号给它刷新符号.给些示范代码吧,Session: 

  程序代码: 

  〈% 

  if session(“refresh”)〈〉 1 then 

  Session(“refresh”)=session(“refresh”)+1 

  Response.redirect “index.asp” 

  End if 

  %〉 

  这样用户第一次访问会使得Refresh=1,第二次访问,正常,第三次,不让他访问了,认为是刷新,可以加上一个时间参数,让多少时间允许访问,这样就限制了耗时间的页面的访问,对正常客户几乎没有什么影响。 


第四种方法:

  通过代理发送的HTTP_X_FORWARDED_FOR变量来判断使用代理攻击机器的真实IP,这招完全可以找到发动攻击的人,当然,不是所有的代理服务器都发送,但是有很多代理都发送这个参数。详细代码: 

  程序代码: 

  〈% 

  Dim fsoObject 

  Dim tsObject 

  dim file 

  if Request.ServerVariables("HTTP_X_FORWARDED_FOR")="" then 

  response.write "无代理访问" 

  response.end 

  end if 

  Set fsoObject = Server.CreateObject("Scripting.FileSystemObject") 

  file = server.mappath("CCLog.txt") 

  if not fsoObject.fileexists(file) then 

  fsoObject.createtextfile file,true,false 

  end if 

  set tsObject = fsoObject.OpenTextFile(file,8) 

  tsObject.Writeline Request.ServerVariables("HTTP_X_FORWARDED_FOR") 

  &"["Request.ServerVariables("REMOTE_ADDR")&"]"&now() 

  Set fsoObject = Nothing 

  Set tsObject = Nothing 

  response.write "有代理访问" 

  %〉 

  这样会生成CCLog.txt,它的记录格式是:真实IP [代理的IP] 时间,看看哪个真实IP出现的次数多,就知道是谁在攻击了.将这个代码做成Conn.asp文件,替代那些连接数据库的文件,这样所有的数据库请求就连接到这个文件上,然后马上就能发现攻击的人。 


其他方法:

  还有一个方法就是把需要对数据查询的语句做在Redirect后面,让对方必须先访问一个判断页面,然后Redirect过去。 

  在存在多站的服务器上,例如虚拟主机,严格限制每一个站允许的IP连接数和CPU使用时间,这是一个很有效的方法。 但这种方法其实解决的是服务器压力,对于受攻击的网站,没有太大作用。


  CC的防御要从代码做起,其实一个好的页面代码都应该注意这些东西,还有SQL注入,不光是一个入侵工具,更是一个DDOS缺口,大家都应该在代码中注意。举个例子吧,某服务器,开动了5000线的CC攻击,没有一点反应,因为它所有的访问数据库请求都必须一个随机参数在Session里面,全是静态页面,没有效果。突然发现它有一个请求会和外面的服务器联系获得,需要较长的时间,而且没有什么认证,开800线攻击,服务器马上满负荷了。 

  

扩展:

       在IIS 6.0中,记录日志的功能已经改为由http.sys实现,http.sys在内核模式下运行。这一改进加快了日志写入速度,同时避免了多个工作进程争用同一日志文件。某些特殊的情况下,http.sys会遇到错误,这时它应该但却不能将日志信息写入Web网站的日志,例如,工作进程正在被回收,禁止http.sys处理用户请求,或者用户试图连接到服务器,但请求中只提供了IIS所需信息的一部分。如果出现这类情况,http.sys将把事件写入一个新的日志文件httperr.log。

  在排解故障、优化IIS 6.0的过程中,httperr.log日志文件是十分重要的。默认情况下,httperr.log文件保存在system32logfiles目录,但可以修改,修改方法是找到“HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesHTTPParameters”注册子键,在它下面添加一个名为“ErrorLoggingDir”的字符串值,在ErrorLoggingDir中设置保存日志文件的完整路径。在httperr.log日志文件中可以找到的信息包括:所有的503(服务不可用)错误,空闲连接超时,解析URL时出现的各种错误,最后10个提交给失败的应用程序池的请求。


CC攻击原理


CC攻击现象

评论

此博客中的热门博文

简单粗暴导出小米便签

我——终于一个人了

Ubiquiti_Networks_UniFi_Cloud_Key_authed_rce