当前位置: 首页 > news >正文

Web应急响应

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网络安全应急响应

相关文章:

  • typescript 实现RabbitMQ死信队列和延迟队列 订单10分钟未付归还库存
  • 【python】常用函数汇总(持续更新……)
  • loopvar 改动不同版本的影响-基础循环
  • 【Web】NSSCTF Round#20 Basic 个人wp
  • 将jupyter notebook文件导出为pdf(简单有效)
  • 7-294 筛法求素数(埃式筛、欧拉筛)
  • 信号处理--情绪分类数据集DEAP预处理(python版)
  • Redis基础命令集详解
  • C#(winform) 调用MATLAB函数
  • 【jenkins+cmake+svn管理c++项目】jenkins回传文件到svn(windows)
  • Django安装及第一个项目
  • 小白从0学习ctf(web安全)
  • Day53:WEB攻防-XSS跨站SVGPDFFlashMXSSUXSS配合上传文件添加脚本
  • 【微服务篇】深入理解微服务网关原理以及Spring Gateway
  • 蓝桥杯第七届大学B组详解
  • Java Agent 学习笔记
  • java中的hashCode
  • Nacos系列:Nacos的Java SDK使用
  • redis学习笔记(三):列表、集合、有序集合
  • Service Worker
  • Spring技术内幕笔记(2):Spring MVC 与 Web
  • 第三十一到第三十三天:我是精明的小卖家(一)
  • 动态规划入门(以爬楼梯为例)
  • 测评:对于写作的人来说,Markdown是你最好的朋友 ...
  • ###51单片机学习(2)-----如何通过C语言运用延时函数设计LED流水灯
  • (22)C#传智:复习,多态虚方法抽象类接口,静态类,String与StringBuilder,集合泛型List与Dictionary,文件类,结构与类的区别
  • (a /b)*c的值
  • (Oracle)SQL优化技巧(一):分页查询
  • (二)PySpark3:SparkSQL编程
  • (六)激光线扫描-三维重建
  • (十一)图像的罗伯特梯度锐化
  • (四)Controller接口控制器详解(三)
  • (一)u-boot-nand.bin的下载
  • (转)淘淘商城系列——使用Spring来管理Redis单机版和集群版
  • .net core 控制台应用程序读取配置文件app.config
  • .net framework4与其client profile版本的区别
  • .Net Redis的秒杀Dome和异步执行
  • .NET 中的轻量级线程安全
  • .net2005怎么读string形的xml,不是xml文件。
  • .NET8.0 AOT 经验分享 FreeSql/FreeRedis/FreeScheduler 均已通过测试
  • ?.的用法
  • @GlobalLock注解作用与原理解析
  • @media screen 针对不同移动设备
  • []Telit UC864E 拨号上网
  • [23] GaussianAvatars: Photorealistic Head Avatars with Rigged 3D Gaussians
  • [AMQP Connection 127.0.0.1:5672] An unexpected connection driver error occured
  • [Android Pro] listView和GridView的item设置的高度和宽度不起作用
  • [bzoj1038][ZJOI2008]瞭望塔
  • [BZOJ3223]文艺平衡树
  • [EFI]英特尔 冥王峡谷 NUC8i7HVK 电脑 Hackintosh 黑苹果efi引导文件
  • [JavaWeb玩耍日记]Maven的安装与使用
  • [java基础揉碎]方法的重写/覆盖
  • [LeetCode] NO. 169 Majority Element
  • [linux] 创建用户
  • [POJ2728] Desert King