应急响应-Webshell

news2025/1/11 11:18:24

文章目录

  • 一、Webshell概述
    • 什么是Webshell
    • Webshell分类
      • 基于编程语言
      • 基于文件大小/提供的功能多少
    • Webshell 检测方法
  • 二、常规处置方法
  • 三、技术指南
    • 1、初步预判
    • 2、 Webshell排查
    • 3、Web日志分析(查找攻击路径及失陷原因)
    • 4、系统排查
      • 4.1 Windows
      • 4.2 Linux
    • 5、系统日志
    • 6、流量分析
  • 案例


一、Webshell概述

什么是Webshell

shell的概念源于操作系统,就是一个解析字符串命令并执行的程序。为了动态执行某些功能,编程语言一般会提供一些函数,将用户输入的字符串解析为语言代码,或解析为操作系统命令。典型的PHP一句话木马

<?php
	eval($_GET['cmd']);
?>

通过网络IO(socket API),获得cmdeval()cmd字符串当作操作系统命令执行。Webshell就是指JSP、ASP、PHP等编程语言(网页脚本)的程序,一般带有命令执行、文件操作等功能。通过Web服务器来通信和调用,并具有shell的功能,称为Webshell。
在这里插入图片描述

Webshell分类

基于编程语言

理论上只要是编程语言都可以,只要实现相应的Web框架就行。

基于文件大小/提供的功能多少

  • 大马
  • 小马
  • 一句话木马

Webshell 检测方法

  • 基于流量:通过流量还原数据包,并对HTTP数据包中的字符串做正则匹配
  • 基于文件:
    • 计算文件的哈希值,创建Webshell样本hash库
    • 检测文件属性(创建时间、文件权限等)
  • 基于日志:分析日志中进行了什么可疑行为,溯源Webshell

二、常规处置方法

  1. 入侵时间确定
    • Webshell 文件的创建时间 —> 攻击的时间范围(根据此时间进行溯源分析、追踪攻击者活动路径)
  2. Web日志分析
    • 重点关注入侵时间前后的日志记录,寻找攻击路径、所利用的漏洞
  3. 漏洞分析
    • 通过日志中发现的问题,针对攻击者的活动路径,排查网站存在的漏洞,进行分析
  4. 漏洞复现
    • 对发现的漏洞进行复现,还原攻击者的活动路径
  5. 漏洞修复
    • 清除Webshell,修复存在的漏洞

三、技术指南

1、初步预判

1)事件表现:植入webshell,系统可能出现的异常现象
- 网页被篡改
- 安全设备告警

2)判断Webshell事件发生时间
- 根据异常现象发生能时间,结合Webshell创建时间,定位事件发生的时间段
3)判断系统架构(定位系统可能存在的漏洞)
项目内容
服务器Windows、Linux等
CMSJeecms、Wordpress、Drupal、TRS WCM、Phpcms、Dedecms等
中间件Tomcat、IIS、Apache、WebLogics、JBoss、Websphere、Jetty等
框架Struts2、Thinkphp、Spring、Shiro、Fastjson等
数据库MySQL
脚本语言ASP、PHP、JSP等
业务架构前端网页是否是后端通过FTP上传的 等

2、 Webshell排查

Windows:D盾、河马
Linux:河马、常用搜索命令
在这里插入图片描述

3、Web日志分析(查找攻击路径及失陷原因)

Windows下常见的中间件/Web服务器/HTTP服务器/Web容器默认日志路径
在这里插入图片描述
Linux下的路径
在这里插入图片描述
常用日志检索的命令:
在这里插入图片描述

4、系统排查

攻击者上传Webshell之后,往往还会执行进一步操作,如提权、添加用户、写入系统后门等,实现持久化驻留。因此还需要做系统排查。

4.1 Windows

到了系统排查这一步,其实是利用操作系统提供的相关组件与配置信息,查找攻击者的痕迹。在Win10里,Windows提供的相关工具在C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Administrative Tools都有相应快捷方式,打开到文件所在目录,这些工具几乎都在C:\Windows\system32目录下。其他版本的,请自行百度
在这里插入图片描述
在Windows Server 2019下,按win键,直接搜索“管理工具”,
在这里插入图片描述

用户信息排查

  • 用户排查:
    • net user查看用户信息 (看不到隐藏用户)
    • net user username 查看某个账户的详细信息
  • 隐藏用户排查
    • 打开【计算机管理】->【本地用户和组】(家庭版无该组件)

进程排查

  • 进程名称(异常、不常见的名称要注意)
  • 进程的路径、CPU占用信息

服务排查

  • 服务说到底就是进程。比较新的Windows可以直接在任务管理器中看到服务
  • 在这里插入图片描述
  • 我们可以在【系统信息】->【软件环境】->【服务】下,看到服务的启动情况及其对应启动文件

网络连接排查

  • netstat -ano -->查看当前网络连接情况,定位可疑的ESTABLISHED连接

启动项
可以在按win键搜【系统配置】,也可以在命令行输msconfig,下图为我新装的win server 2019
在这里插入图片描述

计划任务
任务计划日志通常存放在C:\Windows\System32\Tasks目录,可以直接打开系统的【任务计划程序】进行查看
在这里插入图片描述
文件排查
攻击想进一步扩大战果,就要上传一些远控木马等恶意文件。我们需要排查相关敏感目录,确定是否存在异常文件。

  • temp相关目录
    • C:\Windows\temp
    • C:\users\Administrator\AppData\Local\temp
  • recent 相关目录
    • C:\Documents and Settings\Administrator\recent
    • C:\Documents and Settings\Default User\recent

重点查看攻击时间范围内的文件,比如在非系统System32和Syswow64目录下的svchost.exe文件基本为恶意文件,.ps1为Powershell文件,可以直接编辑查看。

4.2 Linux

用户排查

  • cat /etc/passwd,是否有未知用户
  • 重点分析UID为 0 的用户
    在这里插入图片描述
    进程排查
  • ps aux , 优先关注CPU、内存占用比较高的进程
    在这里插入图片描述
  • 根据PID,使用ls -alh /proc/PID,查看其对应可执行程序,或使用lsof -p PID

  • 在这里插入图片描述

  • lsof -i:port,查看指定端口对应的可执行程序

  • 在这里插入图片描述

  • 查看隐藏进程,需下载unhide工具

  • 查看系统运行的服务systemctl --type service

网络连接

  • netstat -anp,优先关注对外连接的进程,或连接高危端口的进程
    netstat 命令详解
    在这里插入图片描述
    在这里插入图片描述

启动项
Linux中,系统启动内核挂载跟文件系统,然后启动并运行一个init程序,init 是非内核进程中第一个被启动运行的,PID为1。init 读取其配置文件来进行初始化工作,init 的配置文件如下

操作系统配置文件
CentOS 5/etc/inittab
CentOS 6/etc/inittab、/etc/init/*.conf
CentOS 7/etc/systemd/ststem、/usr/lib/systemd/system

init 进程的会运行开机启动程序,Linux 为不同的场合分配不同的开机启动程序,有称为“运行级别”(runlevel)

运行级别说明
运行级别0系统停机状态,系统默认运行级别不能为0,否则不能正常启动
运行级别1单用户工作状态,root 权限,用于系统维护,禁止远程登录
运行级别2多用户状态(没有NFS)
运行级别3完全的多用户状态(有NFS),登陆后进入控制台命令行模式
运行级别4系统未使用,保留
运行级别5X11 控制台,登陆后进入GUI模式
运行级别6系统正常关闭并重启,系统默认运行级别不能为6,否则将不能正常启动

7个运行级别对应7个目录,在/et/c/rc[0-6].d,里面的软链接,真实文件都在/etc/rc.d/init.d(内核较新或者不同发行版目录会有差异)。init.d目录通常存放一些脚本,类似Windows中的注册表;rc.local文件会在用户登陆前读取,每次系统启动时都会执行一次。(内核较新的都用systemd,这些文件会舍弃,下图是rc.local文件的内容)
关于systemd
在这里插入图片描述

  • cat /etc/init.d/rc.local
  • cat /etc/rc.local
  • ls -alt /etc/init.d

任务计划

有空再写

文件排查

5、系统日志

6、流量分析

案例

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

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

相关文章

本地工具是什么意思?本地工具与远程工具一样吗?

不少刚入行的小伙伴&#xff0c;不知道本地工具是什么意思&#xff1f;以为本地工具与远程工具是一样的、今天我们小编就给大家来简单说说。 本地工具是什么意思&#xff1f;本地工具与远程工具一样吗&#xff1f; 【回答】&#xff1a;本地工具是指软件安装在每个用户终端上&…

Keil开发STM32单片机项目的三种方式

STM32单片机相比51单片机&#xff0c;内部结构复杂很多&#xff0c;因此直接对底层寄存器编码&#xff0c;相对复杂&#xff0c;这个需要我们了解芯片手册&#xff0c;对于复杂项目&#xff0c;这些操作可能需要反复编写&#xff0c;因此出现了标准库的方式&#xff0c;对寄存器…

医药反腐正当时!以此为鉴,企业采购腐败怎么防?

近日&#xff0c;医药行业正在经历一场力度空前的反腐风暴。今年以来&#xff0c;全国通报的多起医药腐败案件中&#xff0c;主要涉及通过在药品采购、医疗器械及耗材采购等事项上为他人谋取利益&#xff0c;收受贿赂等问题&#xff0c;涉及金额算下来更是惊人。 医药行业的采购…

深入源码分析kubernetes informer机制(三)Resync

[阅读指南] 这是该系列第三篇 基于kubernetes 1.27 stage版本 为了方便阅读&#xff0c;后续所有代码均省略了错误处理及与关注逻辑无关的部分。 文章目录 为什么需要resyncresync做了什么 为什么需要resync 如果看过上一篇&#xff0c;大概能了解&#xff0c;client数据主要通…

OpenSSL 远程升级到 3.2.1

OpenSSL 远程升级到 3.2.1 文章目录 OpenSSL 远程升级到 3.2.1背景升级 OpenSSL1. 查看 OpenSSL版本2. 下载最新稳定版本 OpenSSL3. 解压缩&#xff0c;安装4. 配置 背景 最近的护网行动&#xff0c;被查出来了好几个关于OpenSSH的漏洞。需要升级OpenSSH&#xff0c;升级OpenS…

Postman通用接口加密解决方案

前言&#xff1a; 很对小伙伴对于psotman接口加密不知道如何解决&#xff0c;这里给大家出了一个全网最详细的解决方案&#xff0c;希望能帮助到大家 问题 postman内置加密Api&#xff0c;但不支持RSA加解密码。如何用postman进入rsa加解密&#xff1f;postman中request对象…

【机器学习5】数据处理(二)Pandas:表格处理

Pandas:表格处理 &#x1f31f;&#x1f31f;Pandas三种数据类型✨✨Series数据结构✨✨ DataFrame数据结构&#x1f319;&#x1f319;DataFrame数据的选取&#x1f315;&#x1f315;DataFrame的构建&#x1f315;&#x1f315;选取多行&#x1f315;&#x1f315;选取某一列…

Qt应用开发(基础篇)——滚屏区域类 QScrollArea

一、前言 QScrollArea类继承于QAbstractScrollArea&#xff0c;QAbstractScrollArea继承于QFrame&#xff0c;是Qt滚动视图的常用部件。 滚屏区域基类 QAbstractScrollArea 框架类 QFrame QScrollArea类提供了对另一个小部件的滚动视图&#xff0c;基础功能、滚动条控制、界面策…

Java后端开发需要学什么知识?这些足以影响你的成就

Java后端开发需要学什么知识?如果你的理想是成为一名优秀的Java程序员&#xff0c;那么确实是需要具备一定的技术实力的&#xff0c;后端开发涉及到处理服务器端逻辑、数据库操作、性能优化、安全性等方面&#xff0c;因此需要掌握一定的技术知识和技能。 需要掌握哪些后端开发…

数据分片概述、环境准备、部署MyCAT服务、全局表、分片表、ER表

Top NSD DBA DAY08 案例1&#xff1a;部署mycat服务案例2&#xff1a;测试配置 1 案例1&#xff1a;部署mycat服务 1.1 问题 把主机mysql60 配置为 MySQL59 的从服务器把主机mysql62 配置为 MySQL61 的从服务器把主机mycat63 配置为mycat服务器客户端192.168.88.50访问myca…

实验记录——TT

8月份的小小实验 安装虚拟环境下载相关软件功能快捷键合理的创建标题&#xff0c;有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个注脚注释也…

Flask Web开发实战(狼书)| 笔记第1、2章

前言 2023-8-11 以前对网站开发萌生了想法&#xff0c;又有些急于求成&#xff0c;在B站照着视频敲了一个基于flask的博客系统。但对于程序的代码难免有些囫囵吞枣&#xff0c;存在许多模糊或不太理解的地方&#xff0c;只会照葫芦画瓢。 而当自己想开发一个什么网站的时&…

关于 Windows 11 的云端备份

一、Windows 云端备份不是Windows 11专享 Windows 11即将正式推出一项云端备份功能&#xff0c;它的作用是为您备份几乎所有内容 - 不仅仅是您的文件和文件夹&#xff0c;还包括应用程序、系统设置、登录详细信息等&#xff0c;以便您可以立即启动并运行新电脑。这些详细信息与…

【Vue2】动态组件的使用-切换组件和keep-alive,以及异步组件

目录 想实现切换不同列表展示不同数据方法一方法二&#xff0c;动态组件动态组件的父组件如何传的值动态组件的子组件如何接受传的值 认识keep-alive缓存组件的生命周期 异步组件&#xff0c;单独打包&#xff0c;实现webpack分包&#xff0c;如何对组件进行单独打包&#xff0…

实习笔记(一)

自定义注解&#xff1a; 自定义注解中有三个元注解Target,Retention,Document /*** 系统日志注解** author Mark sunlightcsgmail.com*/ Target(ElementType.METHOD) Retention(RetentionPolicy.RUNTIME) Documented public interface SysLog {String value() default "…

react-router-dom6 路由不合法

1、昨天用react-router-dom6搭建了个项目&#xff0c;简直了&#xff0c;一个bug直接给我应用干废了&#xff01; 2、我试了试不合法的url是如何处理的&#xff0c;随意输入了个反斜杠 http://localhost:8089/#/\ 3、结果应用搞岔气了&#xff0c; 意思是我的url不合法。 这没问…

Qt creator之对齐参考线——新增可视化缩进功能

Qt creator随着官方越来越重视&#xff0c;更新频率也在不断加快&#xff0c;今天无意中发现qt creator新版有了对齐参考线&#xff0c;也称可视化缩进Visualize Indent&#xff0c;默认为启用状态。 下图为旧版Qt Creator显示设置栏&#xff1a; 下图为新版本Qt Creator显示设…

ctfshow—萌新—web1

0x00 前言 CTF 加解密合集CTF Web合集 0x01 题目 0x02 Write Up 解法1 标准的数字型注入 查列名 http://cc3ecc3f-8c42-4624-979e-277a51ea85d2.challenge.ctf.show/?id1%20union%20select%20table_name,column_name,3%20from%20information_schema.columns%20where%20t…

Linux—LVM基础

Linux—LVM 一、什么是LVM二、LVM名词解释三、LVM的写入模式四、LVM的工作原理五、LVM的优缺点六、创建PV/VG/LV的方法补充说明 一、什么是LVM LVM&#xff08;Logical Volume Manager&#xff09;&#xff0c;即逻辑卷管理&#xff0c;是Linux环境下对磁盘分区进行管理的一种…

校园宿舍管理系统java学生楼层宿管 jsp源代码

本项目为前几天收费帮学妹做的一个项目&#xff0c;Java EE JSP项目&#xff0c;在工作环境中基本使用不到&#xff0c;但是很多学校把这个当作编程入门的项目来做&#xff0c;故分享出本项目供初学者参考。 一、项目描述 校园宿舍管理系统 系统有1权限&#xff1a;管理员 二…