Web应急响应

news2024/11/27 15:41:15

2024年护网将至,最近我将分享一些红蓝对抗的一些技巧,应急响应、信息收集相关的知识概念以及相关技巧。

目录

1. 黑客攻击流程

2. webshell流量特征

1.1.菜刀特征

1.2.冰蝎3.0 :

1.3.冰蝎2.0:

1.4.冰蝎3.11流量特征

1.5.蚁剑:

1.6.哥斯拉:

1.7.哥斯拉4.0.1中JAVA_AES_BASE64特征流量特征:

3. 内存马

4. 检测Webshell方法

5. web查杀最佳实践

6. Webshell防范最强准则


1. 黑客攻击流程

信息探测=>准入/xss点=>获取数据=>破解密码=>登陆后台上传webshell=>提权控制服务器=>渗透内网

网站被植入webshell该怎么办

小码:手动输入的命令

大码:功能比较多

当起web服务时候,不管是什么尽量用较低的权限去启动或者下载,这样黑客在拿到webshell时候,用户权限的等级较低,可以给应急一定的响应事件。

//通过webshell连接数据库
<?php
$servername = "localhost";
$username = "username";
$password = "password";
//创建连接
Sconn = new mysali($servername,$username,$password)
//检测连接
if ($conn->connect_error) {
die("连接失败:“$conn->connect_error);
}
echo"连接成功";
?>

文件包含并执行,什么文件格式都可以,包括txt,下面含有phpinfo();也会运行。

<?php include 'shell.png'?>

如果上传文件,那么是以POST进行传参,日志上看不见上传了什么文件。

2. webshell流量特征

常见webshell管理工具交互流量特征都有哪些?


1、菜⼑特征:PHP 类 WebShell流量中eval函数用于执行传递的攻击 payload,流量参数z0、z1、z2
2、冰蝎3.0:默认内置 16 个 user-agent,content-type为application/octet-stream
3、蚁剑:PHP 类 WebShell流量最中明显的特征为 @ini_set ("display_errors","0");

1.1.菜刀特征


默认的webshell中链接密码都是caidao,ua头为百度爬虫、请求体中存在eavl,base64等特征字符
响应包中包含X@Y、php的webshel中流量参数z0、z1、z2

1.2.冰蝎3.0


默认内置 16 个 user-agent,content-type为application/octet-stream** 
请求包中content-length 为5740或5720(可能会根据Java版本而改变)
**每一个请求头中存在Pragma: no-cache,Cache-Control: no-cache**

1.3.冰蝎2.0:


建立连接后 所有请求 **Cookie的格式都为: Cookie: PHPSESSID=; path=/;**
静态分析:
各种语言的webshell中都会存在**16位数的连接密码**,默认变量为key

1.4.冰蝎3.11流量特征

1、header头顺序是颠倒的
2、发送包是base64,返回包是字节数组,所以会乱码
3、如果冰蝎密码不对,会出现两个连接,第一个是post 第二个是get 

1. content-type为application/octet-stream ,请求包中content-length 为5740或5720(可能会根据Java版本而改变),
每一个请求头中存在Pragma: no-cache,Cache-Control: no-cache
2.异常User-Agent---- 出现WOW64等
3. 频繁访问默认的路径/conn.jsp

1.5.蚁剑:

PHP 类 WebShell流量最中明显的特征为 @ini_set ("display_errors","0");
同时会带有base64编码解码等字符特征, **每个请求体都存在@ini_set(“display_errors”, “0”);
@set_time_limit(0)开头**。并且存在base64等字符,响应包的结果返回格式为 随机数 结果 随机数

1.6.哥斯拉:

不修改User-Agent,User-Agent会类似于Java/1.8.0_121(具体什么版本取决于JDK环境版本)
在请求包的Cookie中有一个非常致命的特征,最后的分号
标准的HTTP请求中最后一个Cookie的值是不应该出现;的

1.6.1.请求包的特征:

1. “pass=”起始
2. 请求包较长 响应包为0
3. 一个tcp包里面有三个http

1.6.2.响应包特征:

整个响应包的结构体征为:md5前十六位+base64+md5后十六位

1.7.哥斯拉4.0.1中JAVA_AES_BASE64特征流量特征:

host头
密码和base64字符串是密码=base64字符串的形式
发送包是密码=bae64字符串的形式,返回包是类base64字符串的格式
1. 对称加密算法:JAVA_AES_BASE64是哥斯拉4.0.1使用的对称加密算法;
因此可以根据哥斯拉4.0.1的流量中是否包含JAVA_AES_BASE64来判断是否为哥斯拉4.0.1攻击流量
2. 长度固定:哥斯拉4.0.1使用JAVA_AES_BASE64算法对数据进行加密后,加密后数据的长度是固定的
因此,可以根据攻击流量的长度是否固定来判断是否为哥斯拉4.0.1攻击流量
3. 常见数据前缀:哥斯拉4.0.1加密的数据在明文数据前会添加特定的前缀;
因此,可以根据攻击流量中是否包含常见的数据前缀来判断是否为哥斯拉4.0.1攻击流量。

3. 内存马

判断是通过什么方法注入的内存马,可以先查看web日志是否有可疑的web访问日志
如果是filter或者listener类型就会有**大量url请求路径相同参数不同的,或者页面不存在但是返回200的**,
查看是否有类似哥斯拉、冰蝎相同的url请求,哥斯拉和冰蝎的内存马注入流量特征与普通webshell的流量特征基本吻合
通过查找**返回200的url路径对比web目录下是否真实存在文件,如不存在大概率为内存马**
如在web日志中并未发现异常,可以排查是否为中间件漏洞导致代码执行注入内存马,
排查中间件的error.log日志查看是否有可疑的报错,根据注入时间和方法根据-
业务使用的组件排查是否可能存在java代码执行漏洞以及是否存在过webshell,排查框架漏洞,反序列化漏洞。

java内存马类型:

filter listener servlet websocket javaagent

4. 检测Webshell方法

webshell是有名字的。

webshell是会在日志里留下痕迹的。

webshell是有属性的

webshell是一种脚本功能的展现

web扫描/爬虫/google hack检测

基于web日志的检测

基于文件属性的检测

基于文件内容的检测(关键字段,例如eval)

4.1. 通过文件名检索webshell

通常情况下hacker会起混淆的文件名,或者和业务名称相关的文件名字
baidu_search.php
asdasdasdasdasd.php
cxhsajhdaksfasg.php

4.2.通过日志来检测webshell

1.部分webshell会将操作的目标参数放置在url参数中

例如:www.nxxiake.com/shell.php?x=whoami

2.日志若可记录refere字段,可以搜索referer字段为空的链接,因为大多数webshell无上级链接,入侵者会直接访问webshell文件

操作思路:搜索文件名、命令、write、exec等参数

搜索referer字段为空的日志条目

通过文件属性检测webshell

1.文件创立日期

2.文件最后修改日期

3.文件目录结构以及md5值

4.特殊目录中的特殊文件

5. web查杀最佳实践

1.目录结构md5校验

2.特征码扫描

3.页面title页面关键字

4.流量,人工识别

6. Webshell防范最强准则

可写的目录不可执行

可执行的目录不可写

权限 用户 tty

chroot(让攻击者以为进入到了根目录)

相关拓展参考链接:

网站被植入Webshell的解决方案-腾讯云开发者社区-腾讯云

webshell网络安全应急响应

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

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

相关文章

申请小程序https证书

背景&#xff1a;目前小程序在开发阶段是必须要使用SSL证书实现服务器https访问&#xff0c;在2017年12月30后http将无法调用微信公众平台接口&#xff0c;需要上线微信小程序的个人或企业&#xff0c;需要办理SSL证书&#xff0c;才能实现网站HTTPS化&#xff0c;让小程序顺利…

用python做一个终身免费的听书工具,一文搞定!!!

你好&#xff0c;小编有多年大厂经验&#xff0c;努力构建通俗易懂的、好玩的编程语言教程。 欢迎关注&#xff01;你会有如下收益&#xff1a; 了解大厂经验拥有和大厂相匹配的技术等 希望看什么&#xff0c;评论或者私信告诉我&#xff01; 一、前言 话说某天&#xff0c…

SCTNet 项目排坑

SCTNet 项目排坑 任务过程记录在旧环境下运行重配环境训练测试速度测试 任务 想跑一下最新的实时分割代码。由于这个项目也是基于mmsegmentation的&#xff0c;所以我想先看看之前那个环境是否能直接适配。不行&#xff0c;我再新建环境。 过程记录 在旧环境下运行 必要工作…

16-代码检查:如何进行静态代码检查?

在做Go项目开发的过程中&#xff0c;我们肯定需要对Go代码做静态代码检查。虽然Go命令提供了go vet和go tool vet&#xff0c; 今天我想给你介绍的golangci-lint&#xff0c;是目前使用最多&#xff0c;也最受欢迎的静态代码检查工具 接下来&#xff0c;我就从golangci-lint…

【数据结构】——树和二叉树相关概念(全网超级详解)

创作不易&#xff0c;家人们来一波三连吧&#xff1f;&#xff01; 前言 世界上最大的树--雪曼将军树&#xff0c;这棵参天大树不是最长也不是最宽&#xff0c;是不是很奇怪&#xff0c;大只是他的体积是最大的&#xff0c;看图片肯定是感触不深&#xff0c;大家可以自己去看…

go入门到精通

初识Go语言 Go语言介绍 Go语言是什么 2009年11月10日&#xff0c;Go语言正式成为开源编程语言家庭的一员。 Go语言&#xff08;或称Golang&#xff09;是云计算时代的C语言。Go语言的诞生是为了让程序员有更高的生产效率&#xff0c;Go语言专门针对多处理器系统应用程序的编…

vue2项目安装(使用vue-cli脚手架)

使用npm安装 安装镜像&#xff08;使npm创建项目更快&#xff09;&#xff1a;镜像可更换 npm config set registry https://registry.npmmirror.com1.全局安装vue-cli&#xff08;一次&#xff09; npm install -g vue/cli 2. 查看vue-cli 版本 vue --version 3. 创建项目…

【Pytorch学习笔记(二)】张量的创建(补充)

一、知识回顾 我们在博客《张量的创建与访问》中已经讨论了一些张量的创建方法如torch.CharTensor()、torch.FloatTensor()以及torch.zeros()等张量创建方法&#xff0c;但由于其仅仅介绍了cpu版本torch下张量的创建方法和只有具体数据类型张量&#xff0c;本节内容旨在补充gp…

数字示波器

数字示波器 综述&#xff1a;本文讲述了数字示波器的电路组成。 一&#xff0e;定义 显示电信号波形的仪器 二&#xff0e;组成 由模拟前端处理电路、电源电路、单片机电路、控制电路、触发电路、校准电路组成。 1&#xff09;模拟前端处理电路 将输入的模拟信号处理后传…

2024中国医药企业项目管理大会将于7月在京召开

“创新是企业之魂”&#xff0c;对于医药企业来说药品创新研发能力很大程度上决定了公司核心竞争力和可持续发展能力。新药研发具有高投入、高成本、高风险、高收益、长周期等特点&#xff0c;从药物的发现研发到临床试验到获批生产上市销售是一个充满风险挑战的较为漫长历程&a…

判断点在多边形内的算法

在计算几何中&#xff0c;判定点是否在多边形内&#xff0c;是个非常有趣的问题。通常有两种方法&#xff1a; 一、Crossing Number&#xff08;交叉数&#xff09; 它计算从点P开始的射线穿过多边形边界的次数。当“交叉数”是偶数时&#xff0c;点在外面;当它是奇数时&…

基于8086毫秒数码管计时器仿真设计

**单片机设计介绍&#xff0c;基于8086毫秒数码管计时器仿真设计 文章目录 一 概要二、功能设计三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于8086毫秒数码管计时器仿真设计概要主要关注于利用8086微处理器实现毫秒级别的计时功能&#xff0c;并通过数码管显示时间…

action method

package cn.hello01;import com.opensymphony.xwork2.Action; import com.opensymphony.xwork2.ActionSupport;public class UserAction extends ActionSupport{//增加public String save(){System.out.println("保存");return Action.SUCCESS;}//删除public String …

RESTful的优点

优点 1.通过url对资源定位&#xff0c;语义清晰&#xff1b; 2.通过HTTP谓词表示不同的操作&#xff0c;接口自描述&#xff1b; 3.可以对GET、PUT、DELETE请求重试&#xff08;幂等的&#xff09;&#xff1b; 4.可以对GET请求做缓存&#xff1b; 5.通过HTTP状态码反映服务器端…

SQLite3进行数据库各项常用操作

目录 前言1、SQLite介绍2、通过SQLite创建一个数据库文件3、往数据库文件中插入数据4、数据库文件信息查询5、修改数据库中的内容6、删除数据库中的内容 前言 本文是通过轻量化数据库管理工具SQLite进行的基础操作和一些功能实现。 1、SQLite介绍 SQLite是一个广泛使用的嵌入…

Docker镜像构建

Docker镜像构建 1. docker commit 平常我们都是从公共仓库拉取镜像&#xff0c;我们也可以从容器中构建我们自己的镜像。 需求&#xff1a; 1. 基础镜像centos 2. 安装jdk 3. 安装nginx1.1 创建容器 # 拉取镜像 docker pull centos:7 # 创建容器 docker run -di --name ce…

鸿蒙实战开发-如何使用三方库

使用三方库 在使用三方库之前&#xff0c;需要安装 ohpm&#xff0c;并在环境变量中配置。 在项目目录的Terminal窗口执行ohpm命令下载依赖 ohpm install yunkss/eftool 命令运行成功后&#xff0c;在项目的oh-package.json5文件中会自动添加上依赖&#xff0c;如下所示&am…

Python读取PDF文字转txt,解决分栏识别问题,能读两栏

搜索了一下&#xff0c;大致有这些库能将PDF转txt 1. PyPDF/PyPDF2&#xff08;截止2024.03.28这两个已经合并成了一个&#xff09;pypdf PyPI 2. pdfplumber GitHub - jsvine/pdfplumber: Plumb a PDF for detailed information about each char, rectangle, line, et cete…

react 面试题(2024 最新版)

1. 对 React 的理解、特性 React 是靠数据驱动视图改变的一种框架&#xff0c;它的核心驱动方法就是用其提供的 setState 方法设置 state 中的数据从而驱动存放在内存中的虚拟 DOM 树的更新 更新方法就是通过 React 的 Diff 算法比较旧虚拟 DOM 树和新虚拟 DOM 树之间的 Chan…