运维圣经:Webshell应急响应指南

news2024/11/29 0:30:43

目录

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?

  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.采用白名单机制上传文件,不在白名单内的一律禁止上传,上传目录权限遵循最小权限原则

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/646457.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

kubesphere jenkins 构建java项目报错Could not parse metadata

kubesphere jenkins 构建java项目报错Could not parse metadata 问题描述: [ERROR] Failed to execute goal org.apache.maven.plugins:maven-install-plugin:2.4:install (default-install) on project common-plugin-starter: Failed to install metadata com.n…

struct | 详解C语言结构体

结构体(struct)是由一系列具有相同类型或不同类型的数据构成的数据集合,也叫结构。 结构体和其他类型基础数据类型一样,例如 int 类型,char类型;只不过结构体可以做成你想要的数据类型,以方便日后的使用。 在实际项目…

STM32单片机(六)TIM定时器 -> 第二节:TIM定时中断练习(定时器定时中断和定时器外部时钟)

❤️ 专栏简介:本专栏记录了从零学习单片机的过程,其中包括51单片机和STM32单片机两部分;建议先学习51单片机,其是STM32等高级单片机的基础;这样再学习STM32时才能融会贯通。 ☀️ 专栏适用人群 :适用于想要…

vivado:引脚已约束但是报错

一、问题引入 报错信息如下: [DRC UCIO-1] Unconstrained Logical Port: 3 out of 3 logical ports have no user assigned specific location constraint (LOC). This may cause I/O contention or incompatibility with the board power or connectivity affect…

msvc编译qt源码(qt6之前版本)

配置环境 根据源码里的readme(D:\Qt\Qt5.9.9\5.9.9\Src\readme)安装对应的依赖环境,如果是整个源码编译必须都安装 Qt for Windows - Requirements | Qt 5.15 Qt for Windows - Building from Source | Qt 5.15 Qt WebEngine Platform Not…

day02--java基础编程:变量,数据类型,类型转换,运算规则,运算符,分支结构,循环(随机数),方法,重载,可变参数,递归,数组,冒泡排序

1 Day02–变量数据类型类型转换 1.1 前言 1.1.1 标识符 可以简单的理解为一个名字。在Java中,我们需要标识代码的很多元素,包括包名、类名、方法、字段、变量等。我们选择的名称就称为标识符,并且遵循以下规则: A.标识符可以由…

docker-compose部署单点apm链路追踪

一.docker-compose 安装下载 1、登入 GitHub ,找到对应版本 curl -L https://github.com/docker/compose/releases/download/1.27.4/docker-compose-uname -s-uname -m -o /usr/local/bin/docker-compose2、将下载后的文件放到 /usr/local/bin 目录下,并…

客服部2023年中总结|用心服务,稳步提升用户体验

一、人工智能相辅相成:提升服务效能 2023年上半年,CSDN人工客服处理客诉总量为26859条,同比去年客诉量38695,下降30.59%;问题解决效率为72min,同比下降19%。 客诉量TOP5: 付费专栏质量问题退费博文审核未…

一文吃透低代码平台的衍生历程、优势及未来趋势

一、低代码概念 低代码开发平台是一种无需编码或者只需要少量代码即可快速生成应用程序的开发平台,通过可视化进行应用程序开发的方法,让不同经验水平的开发人员可以通过图形化的用户界面,使用拖拽组件和模型驱动的逻辑来创建网页和移动应用程…

Unity3D:场景可见性

推荐:将 NSDT场景编辑器 加入你的3D工具链 3D工具集: NSDT简石数字孪生 场景可见性 Unity 的场景可见性控件可用于在 Scene 视图中快速隐藏和显示游戏对象,而无需更改它们在游戏中的可见性。 这可用于处理难以查看和选择特定游戏对象的大型或…

Pytorch中的数据操作和预处理

Pytorch中的数据操作和预处理 整体概述 在Pytorch中的torch.util.data模块包含着一些常用的数据预处理的操作,主要用于数据的读取、切分、准备等 常用的数据操作类如下表所示 类功能torch.utils.data.TensorDataset()将数据处理为张量torch.utils.data. ConcatDat…

sqli-labs靶场通关(11-20)

接着上一条博客 Less-11 打开题我们发现界面发生了明显的变化,变成了登录界面。前十关的注入点都在上方的url中(get型),从11关开始就变为了post型,本题的注入点就在输入框中。 我们随便输入比如1,会出现以下界面,上方…

外贸企业必备的客户服务系统!

客户服务已经成为现在市场中,各个企业关注的重点对象。特别是对于外贸企业来讲,优质的客户服务不仅能为客户留下好的印象,提升企业的品牌形象,还能为企业带来长期的收益。而想要做好客户服务,选择一款合适的客户服务系…

验证码就用它,一键接入,优雅又有趣

现在登录什么账号,基本都用到验证码,多数是短信验证码,不知道大家是什么感受,了不起倒不太喜欢这种操作,每次一登录一个账号就要去手机清理一下短信,不然小红点看着难受。不过近两年行为验证码异军突起&…

估计一个点云的表面法线

包含相关头文件 #include <pcl/io/pcd_io.h> #include <pcl/point_types.h> #include <pcl/features/normal_3d.h> #include <pcl/visualization/pcl_visualizer.h> 定义了两个类型别名 PointT 和 PointNT&#xff0c;用于表示输入点云和输出点云中各…

Splashtop 在2023年 IT Europa 渠道奖评选活动中当选“特别推荐供应商”

2023年5月24日 加利福尼亚州库比蒂诺 Splashtop 最近在 IT Europa 渠道奖评选活动中&#xff0c;因与 Beyond Digital Solutions 合作的创新客户应用程序而当选年度垂直应用解决方案类别的“特别推荐供应商”。 Beyond Digital Solutions 是一家综合广告公司&#xff0c;主要…

SpringBoot + K8S 中的滚动发布、优雅停机、弹性伸缩、应用监控、配置分离

来源&#xff1a;blog.csdn.net/qq_14999375/article/details/123309636 前言 配置 健康检查 滚动更新 弹性伸缩 Prometheus集成 配置分离 汇总配置 业务层面 运维层面 前言 K8s SpringBoot实现零宕机发布&#xff1a;健康检查滚动更新优雅停机弹性伸缩Prometheus监控…

基于java jsp+mybatis+Spring+的SSM二手交易网站设计实现

基于java jspmybatisSpring的SSM二手交易网站设计实现 博主介绍&#xff1a;5年java开发经验&#xff0c;专注Java开发、定制、远程、指导等,csdn特邀作者、专注于Java技术领域 作者主页 超级帅帅吴 Java项目精品实战案例《500套》 欢迎点赞 收藏 ⭐留言 文末获取源码联系方式 …

如何做好软件开发项目管理?

软件越来越多地出现在我们的生活中。为了快速向大众提供这些产品&#xff0c;软件公司必须知道如何有效管理他们的软件项目。 本文将讨论软件项目管理的重要性&#xff0c;以及投资软件项目管理平台的一些好处。 什么是软件开发的项目管理&#xff1f; 软件项目是创建完整的…

车辆管理系统为企业带来4大作用,原来拥有该系统也如此简单

什么是车辆管理系统 车辆管理系统&#xff08;Vehicle Management System&#xff09;是一种用于管理车辆、驾驶员和交通管理的系统。它可以便捷地管理车辆信息&#xff0c;包括车辆的基本信息、行驶记录、保养维修记录、司机信息以及车辆运营成本等。车辆管理系统可以为车队管…