0


运维圣经: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?

  1. 网页被篡改,或在网站中发现非管理员设置的内容;
  2. 出现攻击者恶意篡改网页或网页被植入暗链的现象;
  3. 安全设备报警,或被上级部门通报遭遇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并修复漏洞

  1. 处置时先断网,清理发现的 Webshell
  2. 如果网站被挂黑链或者被篡改首页,那么应删除篡改内容,同时务必审计源码,保证源码中不存在恶意添加的内容
  3. 在系统排查后,及时清理系统中隐藏的后门及攻击者操作的内容,存在 rootkit 后门,则建议重装系统
  4. 对排查过程中发现的漏利用点进行修补,必要时可以做黑盒渗透测试,全面发现应用漏洞
  5. 待上述操作处置完成,重新恢复网站运行

七. Webshell防御方法

  1. 配置必要的防火墙,并开启防火墙策略,防止暴露不必要的服务为攻击者提供利用条件
  2. 对服务器进行安全加固,例如,关闭远程桌面功能、定期更换密码、禁止使用最高权限用户运行程序、使用 HTTPS 加密协议等
  3. 加强权限管理,对敏感目录进行权限设置,限制上传目录的脚本执行权限,不允许配置执行权限
  4. 安装 Webshell 检测工具,根据检测结果对已发现的可疑 Webshell 痕立即隔离查杀,并排查漏洞
  5. 排查程序存在的漏洞,并及时修补漏洞
  6. 时常备份数据库等重要文件防止糟糕的事情发生重装系统
  7. 需要保持日常维护,并注意服务器中是否有来历不明的可执行脚本文件8.采用白名单机制上传文件,不在白名单内的一律禁止上传,上传目录权限遵循最小权限原则

本文转载自: https://blog.csdn.net/qq_61553520/article/details/131208576
版权归原作者 貌美不及玲珑心,贤妻扶我青云志 所有, 如有侵权,请联系我们删除。

“运维圣经:Webshell应急响应指南”的评论:

还没有评论