最近闲下来啦,可以想学什么学什么了,可能近期会频繁更blog,涉及各个不同的方向(我要多开!)。这篇学习一下应急响应相关的知识,感觉挺有趣的~
WebShell
大概就是可以通过Web交互的shell吧?将WebShell放入网站服务器的Web目录后,就可以利用工具连接shell,获取到目标服务器的命令执行环境。
常见的WebShell形式有PHP,ASP,JSP,ASPX,JSPX等
最熟悉的也就是PHP的一句话木马:1
@eval($_POST['pwd']);
如果是入侵者想利用WebShell控制服务器,得有几个前提:
- WebShell被成功放入服务器的Web目录,且攻击者知道WebShell的具体位置并能访问。
- WebShell能被正常解析
- WebShell没有被清除
如何发现WebShell
我的认知理解就是,既然WebShell常见的有PHP等类型,那首先我们可以通过寻找这些文件来排查,看看有没有命名可疑的相关文件,或者最近有过修改的文件:其次就是根据WebShell的一些常见特征去寻找,比如说危险函数1
find /var/www/html --name '*.jsp'
eval(),或者是对文件,网络进行操作的函数,还有进行编码的。 - PHP: eval(), system(), exec(), shell_exec(), passthru(), assert(), fopen(),fwrite(),file_get_contents(),base64_decode(), file_put_contents(),curl_exec(),fsockopen()
- ASP: Execute(), Eval(), CreateObject(),FileSystemObject,WinHttp.WinHttpRequest
- JSP: Runtime.getRuntime().exec()
如果是WebShell做了混淆,认不出来,该怎么办?
可以先看看有无可以的进程在运行,或者可以根据WebShell特有的HTTP请求/响应去识别是否为WebShell。还可以根据网站的Web日志来分析可疑的连接。
还可以用D盾等工具进行排查。
持续更新中…