【流量分析】Godzilla分析

一、哥斯拉流量的特点:

1.User-Agent (弱特征)

哥斯拉客户端使用JAVA语言编写,在默认的情况下,如果不修改User-Agent,User-Agent会类似于Java/1.8.0_121(具体什么版本取决于JDK环境版本)。但是哥斯拉支持自定义HTTP头部,这个默认特征是可以很容易去除的。

2.Accept(弱特征)
Accept为text/html, image/gif, image/jpeg, *; q=.2, /; q=.2

3.Cookie (强特征)
哥斯拉的作者应该还没有意识到,在请求包的Cookie中有一个非常致命的特征,最后的分号。

4.请求体特征 (较强特征)
因为无法准确识别加密的请求体,所以只能采用比较宽泛的匹配条件去匹配请求体特征,宽泛的匹配思路其实就是基于区别大部分正常的数据包,加密数据包自身体现的特征。这种宽泛的匹配在一些情况下可能会带来误报,因此有时候难以作为一种非常有效的检测手法。

哥斯拉支持对加密的数据进行base64编码以及原始的加密raw两种形式的通讯数据,对于请求体的检测也要考虑两种情况。

哥斯拉在进行初始化时会产生一个比较大的数据包,后面进行命令执行等操作时产生的base64数据包会比较比较小。在长度上做一个匹配条件在一定程度上也可以降低误报率。
对于原始加密raw请求体,没想到比较好的方法,目前只想到到了匹配较多的不可见字符的思路。
和请求体一样,请求响应体也分两个格式,base64编码的和原始加密raw数据。如果请求体采用base64编码,响应体返回的也是base64编码的数据。在使用base64编码时,响应体会出现一个很明显的固定特征。这个特征是客户端和服务端编写的时候引入的。

从代码可以看到会把一个32位的md5字符串按照一半拆分,分别放在base64编码的数据的前后两部分。整个响应包的结构体征为:md5前十六位+base64+md5后十六位。

5.哥斯拉会相应3次
01 通过Burp抓包可知,第1个请求会发送大量数据,该请求不含有任何Cookie信息,服务器响应报文不含任何数据,但是会设置PHPSESSID,后续请求都会自动带上该Cookie。
在这里插入图片描述
02 可以看到,第2个请求中已经自动带上了第1个请求中服务器响应返回的Cookie值,并且第2个请求中只有少量的数据。
在这里插入图片描述
第3个请求

第3个请求与第2个请求完全一致。
在这里插入图片描述
6.哥斯拉加密的方式
在这里插入图片描述
7.哥斯拉会长时间有 Connection: keep-alive

二、题目:hw-典型哥斯拉流量

在这里插入图片描述
一开始可以发现:

188一直在向180发送syn包 是188在Ping180,看端口有没有开启,要看180有没有回包 rst ack seq=1 ack=1 win=0 len=0
在这里插入图片描述
(ip.src == 192.168.162.180 ) && (ip.proto == 6) 输入筛选条件,红色的是没有开放的;看返回包,返回包协议中携带syn、ack的包是正常通信的。
在这里插入图片描述
在这里插入图片描述
综上第一题的答案是 80,888,8888

在这里插入图片描述
追踪流量查看用户做了什么,很多都是404的,后面上传了shell.jsp后才有一些是200的

···
GET /index.jsp?pwd=admin&cmd=ls HTTP/1.1
Host: 192.168.162.180
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:100.0) Gecko/20100101 Firefox/100.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,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
Accept-Encoding: gzip, deflate
Connection: keep-alive
Cookie: JSESSIONID=9467B2C71C4B258B7BFB8CCCA6C7C564
Upgrade-Insecure-Requests: 1HTTP/1.1 200 
Server: nginx
Date: Mon, 30 May 2022 14:38:24 GMT
Content-Type: text/html;charset=ISO-8859-1
Content-Length: 17
Connection: keep-alive
X-Cache: MISS<h1>Hello world!
GET /test.jsp?pwd=admin&cmd=ls HTTP/1.1
Host: 192.168.162.180
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:100.0) Gecko/20100101 Firefox/100.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,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
Accept-Encoding: gzip, deflate
Connection: keep-alive
Cookie: JSESSIONID=9467B2C71C4B258B7BFB8CCCA6C7C564
Upgrade-Insecure-Requests: 1HTTP/1.1 200 
Server: nginx
Date: Mon, 30 May 2022 14:38:31 GMT
Content-Type: text/html;charset=GBK
Transfer-Encoding: chunked
Connection: keep-alive
Vary: Accept-Encoding
X-Cache: MISS
Content-Encoding: gzip<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>..........</title></head><body><pre>bin
boot
cdrom
dev
etc
flag
home在这里插入代码片

可以看到用户挂马之后看了下根目录下有啥,
确实有个flag
查看的内容都是通过shell.jsp来实现的

01 通过Burp抓包可知,第1个请求会发送大量数据,该请求不含有任何Cookie信息,服务器响应报文不含任何数据,但是会设置PHPSESSID,后续请求都会自动带上该Cookie。
在这里插入图片描述在这里插入图片描述
02 可以看到,第2个请求中已经自动带上了第1个请求中服务器响应返回的Cookie值,并且第2个请求中只有少量的数据。cookie还是呆分号的
在这里插入图片描述
在这里插入图片描述
可以判断为哥斯拉流量。

三、哥斯拉流量的加密方式

from Crypto.Cipher import AES
import binascii
import zlib# 密钥,与 JSP 代码中的密钥相同
key = b'748007e861908c03'# 要解密的加密数据(十六进制形式)
encrypted_hex_data = "b5c1fadbb7e28da08572486d8e6933a84c5144463f178b352c5bda71cff4e8ffe919f0f115a528ebfc4a79b03aea0e31cb22d460ada998c7657d4d0f1be71ffa"def decode(data, key):cipher = AES.new(key, AES.MODE_ECB)decrypted_data = cipher.decrypt(data)return decrypted_datadef ungzip(in_str):s = zlib.decompress(in_str, 16 + zlib.MAX_WBITS).decode()print("Decoded and Unzipped:\n", s)# 将十六进制数据转换为字节序列
encrypted_bytes = bytes.fromhex(encrypted_hex_data)# 解密数据并解压缩
decrypted_data = decode(encrypted_bytes, key)
ungzip(decrypted_data)

得到结果可得

在这里插入图片描述在这里插入图片描述

所谓的加密是一个aes形式的ecb加密外加unzip的形式:
对响应包截取该md5后的前16位以及后16位
对截取后的响应包内容进行 base64解码/raw原始数据形式 + aes解密 + gzip解压缩
在这里插入图片描述
1.一定要是http的形式
2.截取的内容一定是分段后的内容也就是数据运输的内容
3.请求包相应包都是如此
4.一定要是原始数据
我们把挂着哥斯拉jsp马的数据全部都读取以下并翻译
在这里插入图片描述

cmdLinewhoami
www
cmdLinecat /www/wwwroot/test.com/key
the key is 1****y
cmdLine ifconfig
docker0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
ether 02:42:13:c6:39:05 txqueuelen 0 (以太网)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 27 bytes 4460 (4.4 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.162.180 netmask 255.255.255.0 broadcast 192.168.162.255
inet6 fe80::3c58:317b:f1ee:d5fc prefixlen 64 scopeid 0x20
inet6 fe80::8925:adf7:1d2a:2c41 prefixlen 64 scopeid 0x20
ether 00:0c:29:df:95:a8 txqueuelen 1000 (以太网)
RX packets 2360170 bytes 3041706453 (3.0 GB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 608498 bytes 43248948 (43.2 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

ens38: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.101.132 netmask 255.255.255.0 broadcast 192.168.101.255
inet6 fe80::68af:1a5:a54c:7366 prefixlen 64 scopeid 0x20
ether 00:0c:29:08:04:93 txqueuelen 1000 (以太网)
RX packets 31049 bytes 2298483 (2.2 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 749 bytes 65158 (65.1 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 1000 (本地环回)
RX packets 80607 bytes 17837506 (17.8 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 80607 bytes 17837506 (17.8 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

veth038e57f: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::1cf7:44ff:fea5:1deb prefixlen 64 scopeid 0x20
ether 1e:f7:44:a5:1d:eb txqueuelen 0 (以太网)
RX packets 10 bytes 1199 (1.1 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 172 bytes 27148 (27.1 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

cmdLinenmap
Cannot run program “nmap”: error=13, 权限不够
cmdLinels /
bin
boot
cdrom
dev
etc
flag
home
lib
lib32
lib64
libx32
lost+found
media
mnt
opt
patch
proc
root
run
sbin
snap
srv
swapfile
sys
tmp
usr
var
www
cat /flag
flag{9236b29d-5488-41e6-a04b-53b0d8276542}

对于http流其实可以一个个查看回头输入http会自动光标定位到刚才的位置
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

XML—标记语言

什么是XML&#xff1f; Extensible Markup Language&#xff0c;可扩展标记语言。 那标记语言是什么&#xff1f; 用文字做标记表达一些效果或携带一些数据。比如&#xff1a;HTML、XML 我的理解&#xff1a;用倾盆大雨表达雨很大 那XML为什么说是可扩展的呢&#xff1f; 还…

vue2项目中表格的增删查改

我们在项目中经常会用到对于表格的增删查改操作&#xff0c;以下使用vue2elementui来实现表格的增删查改 表格的基本属性 基础表格如下:(其中需要注意的是当el-table元素中注入data对象数组后&#xff0c;在el-table-column中用prop属性来对应对象中的键名即可填入数据&#x…

PDF制作成翻页电子书

在日常工作中&#xff0c;大部分人使用的都是PDF文档发送给客户&#xff0c;但是PDF文档通常是静态的&#xff0c;缺乏交互性和视觉吸引力。那你有没有想过把它转换成翻页的电子书呢&#xff1f; 小编将告诉你操作步骤&#xff0c;非常简单 1.搜索FLBOOK在线制作电子杂志平台 …

【C修炼计划】卷壹 · 初识C语言

文章目录 卷壹 初识C语言一 C语言的起源二 C语言的特性三 C语言的应用范围四 C语言程序结构五 C语言书写规范六 C语言编译器安装附 参考资料 卷壹 初识C语言 一 C语言的起源 C语言的前生是B语言&#xff08;BCPL&#xff0c;一种早期的高级语言&#xff09;。下图描…

VMware虚拟机---Ubuntu无法连接网络该怎么解决?

在学习使用Linux系统时&#xff0c;由于多数同学们的PC上多是Windows系统&#xff0c;故会选择使用VMware创建一个虚拟机来安装Linux系统进行学习。 安装完成之后&#xff0c;在使用时总是会遇到各种各样的问题。本片随笔就主要针对可能出现的网络问题进行一个总结&#xff0c;…

物种气候生态位动态量化与分布特征模拟

在全球气候快速变化的背景下&#xff0c;理解并预测生物种群如何应对气候变化&#xff0c;特别是它们的地理分布如何变化&#xff0c;已经变得至关重要。利用R语言进行物种气候生态位动态量化与分布特征模拟&#xff0c;不仅可以量化描述物种对环境的需求和适应性&#xff0c;预…

限流算法深入

限流定义及目的 当系统流量达到系统或下游承受能力的阈值时对系统进行限流控制以防止系统或下游挂掉&#xff0c;减少影响面。 限流组成&#xff1a;阈值及限流策略。阈值是指系统单位时间接收到的请求qps总数&#xff1b;限流策略是指限流行业触发后对应的系统行为&#xff…

FPGA GTX全网最细讲解,aurora 8b/10b协议,HDMI板对板视频传输,提供2套工程源码和技术支持

目录 1、前言免责声明 2、我这里已有的 GT 高速接口解决方案3、GTX 全网最细解读GTX 基本结构GTX 发送和接收处理流程GTX 的参考时钟GTX 发送接口GTX 接收接口GTX IP核调用和使用 4、设计思路框架视频源选择IT6802解码芯片配置及采集动态彩条视频数据组包GTX aurora 8b/10b数据…

Django(5)-视图函数和模板渲染

Django 中的视图的概念是「一类具有相同功能和模板的网页的集合」 在我们的投票应用中&#xff0c;我们需要下列几个视图&#xff1a; 问题索引页——展示最近的几个投票问题。 问题详情页——展示某个投票的问题和不带结果的选项列表。 问题结果页——展示某个投票的结果。 投…

SVN 项目管理笔记

SVN 项目管理笔记 主要是介绍 SVN 管理项目的常用操作&#xff0c;方便以后查阅&#xff01;&#xff01;&#xff01; 一、本地项目提交到SVN流程 在SVN仓库下创建和项目名同样的文件夹目录&#xff1b;选中本地项目文件&#xff0c;选择SVN->checkout,第一个是远程仓库项…

大数据Flink实时计算技术

1、架构 2、应用场景 Flink 功能强大&#xff0c;支持开发和运行多种不同种类的应用程序。它的主要特性包括&#xff1a;批流一体化、精密的状态管理、事件时间支持以及精确一次的状态一致性保障等。在启用高可用选项的情况下&#xff0c;它不存在单点失效问题。事实证明&#…

vue 学习笔记 简单实验

1.代码(html) <script src"https://unpkg.com/vuenext" rel"external nofollow" ></script> <div id"counter">Counter: {{ counter }} </div> <script> const Counter {data() {return {counter: 5}} } Vue.cr…

java-便签

--其实最痛的。不是离别。而是离别后的那些回忆。 java length( ) javalength中文占多长 1.一个中文字符或符号 2 个字节&#xff0c;一个英文字符或符号 1 个字节。 System.out.println("abc你好&#xff0c;".getBytes("gbk").length); System.out.pr…

【Linux】【驱动】驱动挂载的时候给驱动传递参数

【Linux】【驱动】驱动挂载的时候给驱动传递参数 绪论1.什么是驱动传参驱动传参就是传递参数给我们的驱动举例:2.驱动传参数有什么作用呢?3. 传递单个参数使用如下的数组4. 传递数组使用以下函数&#xff1a; 传递数字值代码指令 传递数组代码传递数组指令 绪论 1.什么是驱动…

如何拼接两个视频在一起?

如何拼接两个视频在一起&#xff1f;在度过一个美好周末的时候&#xff0c;我和朋友一起拍摄了两组视频&#xff0c;准备将两个视频合并成一个并发布到朋友圈。这个想法非常棒&#xff0c;但是我在第一步就遇到了麻烦&#xff1a;如何将这两个视频拼接在一起&#xff1f;这听起…

7天GMV达220万美元!TikTok Shop爆品榜出炉。

7天GMV达220万美元&#xff01;TikTok Shop爆品榜出炉 8月28日消息&#xff0c;据跨境指南联合TikTok数据分析平台EchoTik发布的数据&#xff0c;监测了上周TikTok Shop印尼、马来西亚、泰国、美国市场GMV前10的商品。上周在印尼市场GMV排名前10的商品中&#xff1a;FREE ONGK…

基于微服务、Java、Springcloud、Vue、MySQL开发的智慧工地管理系统源码

智慧工地聚焦施工现场岗位一线&#xff0c;围绕“人、机、料、法、环”五大要素&#xff0c;数字化工地平台与现场多个子系统的互联实现了工地业务间的互联互通和协同共享。数字化工地管理平台能够盘活工地各大项目之间孤立的信息系统&#xff0c;实现数据的统一接入、处理与维…

辉瑞乡村振兴战略下传统村落文化旅游设计小红书中美德少许

辉瑞乡村振兴战略下传统村落文化旅游设计小红书中美德少许

你会使用druid数据库连接池吗???

1.下载架包。下载地址&#xff1a;https://note.youdao.com/ynoteshare/index.html?id61e2cc939390acc9c7e5017907e98044&typenote&_time1693296531722 2.将架包加入项目文件。 创建一个lib目录&#xff0c;将架包复制进去 右键点击lib目录&#xff0c;将其添加为库。…

前端 -- 基础 VSCode 工具生成骨架标签新增代码 解释详解

目录 文档类型声明标签 Lang 语言种类 字符集 文档类型声明标签 <!DOCTYPE> 文档类型声明&#xff0c;作用就是告诉浏览器 当前的页面是 使用哪种 HTML 版本 来显示的网页 HTML 版本也很多呀 &#xff0c;比如 &#xff1a; HTML5 ,HTML4&#xff0c;XHTML 等…