目录
Webshell简介
Webshell检测手段
Webshell应急响应指南
一. Webshell排查
二. 确定入侵时间
三. Web日志分析
四. 漏洞分析
五. 漏洞复现
六. 清除Webshell并修复漏洞
七. Webshell防御方法
Webshell简介
Webshell通常指以JSP、ASP、 PHP等网页脚本文件形式存在的一种服务器可执行文件,一般带有文件操作、命令执行功能,是一种网页后门。攻击者在入侵网站后,通常会将Webshell后门文件与网站服务器Web目录下正常的网页文件混在一起,使用浏览器或专用客户端进行连接,从而得到一个服务器操作环境,以达到控制网站服务器的目的。
Webshell检测手段
基于流量的Webshell检测
基于流量的Webshel检测方便部署,我们可通过流量镜像直接分析原始信息。基于payload的行为分析,我们不仅可对已知的Webshell进行检测,还可识别出未知的、伪装性强的Webshell,对Webshell的访问特征 (IP/UA/Cookie) 、payload特征、 path特征、 时间特征等进行关联分析,以时间为索引,可还原攻击事件。
基于文件的Webshell检测
我们通过检测文件是否加密(混淆处理) ,创建Webshell样本hash库,可对比分析可疑文件。对文件的创建时间、修改时间、文件权限等进行检测,以确认是否为Webshell。
基于日志的Webshell检测
对常见的多种日志进行分析,可帮助我们有效识别Webshell的上传行为等。通过综合分析,可回溯整个攻击过程。
Webshell应急响应指南
如何判断被植入了Webshell?
- 网页被篡改,或在网站中发现非管理员设置的内容;
- 出现攻击者恶意篡改网页或网页被植入暗链的现象;
- 安全设备报警,或被上级部门通报遭遇Webshell等。
一. Webshell排查
利用Webshell扫描工具(如D盾)对应用部署目录进行扫描,如网站D: \WWW\目录,或者将当前网站目录文件与此前备份文件进行比对,查看是否存在新增的不一致内容,确定是否包含Webshell相关信息, 并确定Webshel位置及创建时间。然后利用文本文件打开,进一步分析发现可疑内容。
在Linux系统中也可以用命令:
//搜索目录下适配当前应用的网页文件,查看内容是否有Webshell特征
find ./ type f -name "*.jsp" | xargs grep "exec("
find ./ type f -name "*.php" | xargs grep "eval("
find ./ type f -name "*.asp" | xargs grep "execute("
find ./ type f -name "*.aspx" | xargs grep "eval("
//对于免杀Webshell,可以查看是否使用编码
find ./ type f -name "*.php" | xargs grep "base64_decode"
二. 确定入侵时间
根据异常现象发生时间,结合网站目录中Webshell文件的创建时间,可大致定位事件发生的时间段。以便后续依据此时间进行溯源分析、追踪攻击者的活动路径。
三. Web日志分析
需要对Web日志进行分析,以查找攻击路径及失陷原因,常见Web中间件默认地址
Windows
Apache
apache\logs\error.log
apache\logs\access.log
IIS
C:\inetpub\logs\LogFiles
C:\WINDOWS\system32\LogFiles
Tomcat
tomcat\access_log
Linux
Apache
/etc/httpd/logs/access_log
/var/log/httpd/access_log
Nginx
/usr/local/nginx/logs
在Linux日志排查时,为方便日志检索及溯源分析,列举了常用日志检索命令
定位具体的IP地址或文件名
find . access_log | grep xargs ip
find . access_log | grep xargs filename
查看页面访问前10的IP地址
cat access.log | cut -f1 -d " " | sort | uniq -c | sort -k 1 -r | head -10
查看页面访问前10的URL地址
cat access.log | cut -f4 -d " " | sort | uniq -c | sort -k 1 -r | head -10
四. 漏洞分析
通过日志分析发现的问题,针对攻击者的活动路径,可排查网站中存在的漏洞,并进行分许
五. 漏洞复现
复现攻击者的攻击路径
六. 清除Webshell并修复漏洞
- 处置时先断网,清理发现的 Webshell
- 如果网站被挂黑链或者被篡改首页,那么应删除篡改内容,同时务必审计源码,保证源码中不存在恶意添加的内容
- 在系统排查后,及时清理系统中隐藏的后门及攻击者操作的内容,存在 rootkit 后门,则建议重装系统
- 对排查过程中发现的漏利用点进行修补,必要时可以做黑盒渗透测试,全面发现应用漏洞
- 待上述操作处置完成,重新恢复网站运行
七. Webshell防御方法
- 配置必要的防火墙,并开启防火墙策略,防止暴露不必要的服务为攻击者提供利用条件
- 对服务器进行安全加固,例如,关闭远程桌面功能、定期更换密码、禁止使用最高权限用户运行程序、使用 HTTPS 加密协议等
- 加强权限管理,对敏感目录进行权限设置,限制上传目录的脚本执行权限,不允许配置执行权限
- 安装 Webshell 检测工具,根据检测结果对已发现的可疑 Webshell 痕立即隔离查杀,并排查漏洞
- 排查程序存在的漏洞,并及时修补漏洞
- 时常备份数据库等重要文件防止糟糕的事情发生重装系统
- 需要保持日常维护,并注意服务器中是否有来历不明的可执行脚本文件8.采用白名单机制上传文件,不在白名单内的一律禁止上传,上传目录权限遵循最小权限原则