帕鲁杯2025-应急响应
畸形的爱
解压密码
1 | Parloo&zgsfsys&onefox&solar**juyt |

| 主机名 | 操作系统登录 | 服务登录 |
|---|---|---|
| WebServer | root/root | https://192.168.20.102:9443/ admin/VF6NXMs7 |
| SQL服务器 | sql/sql | |
| Windows7 PC 1 | administrator/wmx666 | |
| Windows10 PC2 | administrator/zjl@123 |
1.提交攻击者使用的攻击ip地址1
在webserver查看nginx日志
1 | cat /var/log/nginx/access.log.1 | grep 'GET' |

1 | palu{192.168.31.240} |
2.提交攻击者使用的攻击ip地址2
在PC2的回收站发现简历.zip,压缩包里面有一个简历.exe
放到安恒云沙箱检测

1 | palu{192.168.31.11} |
3.提交攻击者暴力破解开始时间
查看docker启动的服务
1 | root@ubuntu:/home/webserver# docker ps -a |
查看phpmyadmin的日志
1 | docker logs 6801404902b1 |

发现大量访问记录
1 | palu{2025:03:05:58} |
4.提交攻击者留下的flag1
查看PC2的任务计划程序
1 | taskschd.msc |


1 | palu{pc3_zgsfqwerlkssaw} |
5.提交攻击者留下的flag2
在PC2的C盘下搜索字符串
1 | findstr /s /i "palu{" *.* 2>nul |

发现flag在a.bat里
1 | palu{nizhidaowoyouduoainima} |
6.提交攻击者留下的flag3
在webserver的/var/www/html/index.php中发现数据库密码TOOR@123

在mysql登录
1 | sql@ubuntu:~$ mysql -u root -p |

分别拿到下面几条order_content
1 | W3siaXRlbV9pZCI6MSwiaXRlbV9uYW1lIjoi5bCP5pe25aSN5Y2wIiwicXVhbnRpdHkiOjIsInByaWNlIjoxOTkuOTl9LHsiaXRlbV9pZCI6MywiaXRlbV9uYW1lIjoi6Iux5Zu95aSN5Y2wIiwicXVhbnRpdHkiOjEsInByaWNlIjo1OS45OX1d |

flag在最后一条里
1 | palu{sqlaabbccsbwindows} |
7.提交钓鱼文件的哈希32位大写
第2题的检测结果里面有:安恒云沙箱
1 | palu{2977CDAB8F3EE5EFDDAE61AD9F6CF203} |
8.提交攻击者留下的webshell-1密码
从第1题可以知道两个webshell分别是shell.php和a.php,分别搜索后查看
1 | find / -name "shell.php" |

1 | palu{hack} |
9.提交攻击者开放端口
webserver下的/var/lib/docker/overlay2/4bc4b1046f364a2489bc8a2636f6be58ae1620139c2198b10610563e4860313f/diff/var/www/html/clean.sh找到端口1133
webserver下的/tmp/r.sh找到端口1144
PC2下的简历.exe请求的端口8084
1 | palu{1133,1144,8084} |
10.提交攻击者留下的webshell密码2
同第8题
1 | palu{00232} |
11.提交攻击者留下的隐藏账户的密码

1 | palu{wmx_love} |
12.[溯源]攻击者的邮箱
逆向病毒简历.exe找到用户名n0k4u

搜索发现仓库n0k4u/whatthis: 这是嘛呀?
然后先找到了第13题的QQ号Add files via upload · n0k4u/whatthis@9fde50f

这条commit的链接后面加.patch
1 | From 9fde50f0bc13cc2bf916ecc95ca912bc7f0cd114 Mon Sep 17 00:00:00 2001 |
1 | palu{n0k4u@outlook.com} |
13.提交溯源后得到的flag
从第12题得到QQ号3834239649
搜索添加好友

1 | palu{loveyouibiejv} |
应急响应主线
解压密码
1 | Skills@@@Skills@@@Skills |

| 主机名 | IP 地址 | 操作系统登录 | 服务登录 |
|---|---|---|---|
| JumpServer | 192.168.20.100 | ubuntu/ubuntu | http://192.168.20.100/ admin/Skills@2020 |
| sshServer | 192.168.20.108 | ubuntu/Skills@sshserver | |
| Server01 | 192.168.20.103 | ubuntu/Skills@server | http://192.168.20.103:16303/9bbe149955 c394c5de46/e36c392092 http://192.168.20.102:3000/ admin@qq.com/未知 |
| Mysql | 192.168.20.101 | ubuntu/Skills@mysql | http://192.168.20.101:20221/4a883f0c56 64a44f8137/f8941f8eb7 root/mysql_QPiS8y |
| Waf | 192.168.20.102 | ubuntu/Skills@waf | https://192.168.20.102:9443/ admin/VF6NXMs7 |
| palu01 | 192.168.20.200 | Parloo/Skills@01 | |
| palu02 | 192.168.20.201 | Parloo/Skills@02 | |
| palu03 | 192.168.20.202 | Parloo/Skills@03 | 此靶机为”近源”对应靶机 |
solar_Linux后门排查
跳板机疑似被遗留后门,请排查
1、找到可疑进程完整路径
2、找到被横向的服务器IP
3、连接被横向服务器
flag格式为 flag{base64{完整路径}|服务器IP|服务器中flag文本}
root:Solar@2025_05_palu!
查看当前建立的网络连接
1 | sudo ss -antup |

得到pid是11,被横向的服务器IP是49.232.112.164
查找pid是11的进程
1 | ps aux | grep 11 |

得到可疑进程完整路径是/usr/lib/systemd/systemd-login
1 | ssh 49.232.112.164 |

ssh连接得到flag文件内容为ZX0001S
1 | flag{L3Vzci9saWIvc3lzdGVtZC9zeXN0ZW1kLWxvZ2lu|49.232.112.164|ZX0001S} |
1.提交堡垒机中留下的flag
标签列表

1 | palu{2025_qiandao_flag} |
2.提交WAF中隐藏的flag
身份验证->配置

1 | palu{2025_waf} |
3.提交Mysql中留下的flag
从说明手册拿到MySQL的登录信息root/mysql_QPiS8y,然后用Navicat连

1 | palu{Mysql_@2025} |
4.提交攻击者的攻击IP

1 | palu{192.168.20.107} |
5.提交攻攻击者最早攻击时间
第4题的图里有
1 | palu{2025-05-05-00:04:40} |
6.提交web服务泄露的关键文件名
在防护应用下四个服务的应用路由里找

1 | palu{key.txt} |
7.提交泄露的邮箱地址
访问第7题找到的关键文件 http://192.168.20.102/bak/key.txt

1 | palu{parloo@parloo.com} |
8.提交立足点服务器ip地址
第4题图里的日志
1 | palu{192.168.20.108} |
9.提交攻击者使用的提权的用户和密码
1 | cat /etc/shadow |
查找sshserver下的用户

1 | parloo:$y$j9T$bLw/vAsrL.71gbi6NQPhI/$lpN9vHI0MYs/YL19ERrpaRpdrC37f5ya520xeG9BGiC:20212:0:99999:7::: |
把parloo:$y$j9T$bLw/vAsrL.71gbi6NQPhI/$lpN9vHI0MYs/YL19ERrpaRpdrC37f5ya520xeG9BGiC保存到hash.txt用john爆破
1 | john --format=crypt hash.txt |

1 | palu{parloo/parloo} |
10.提交攻击者留下的的文件内容作为flag提交
1 | find / -iname "flag" 2>/dev/null |

在/home/parloo找到parloo_flag01
1 | cat /home/parloo/parloo_flag01 |
1 | palu{hi_2025_parloo_is_hack} |
11.提交权限维持方法服务的名称
1 | systemctl list-units --type=service --state=running |
先查看正在运行的服务

其中的rootset-test.service十分可疑
1 | systemctl cat rootset-test.service |
查看它的配置文件:
1 | [Unit] |
/usr/bin/b4b40c44ws非常可疑,文件名看起来像是随机生成的,很可能是恶意程序。
Restart=always无论服务退出的原因是什么,都会自动重启,可能是攻击者用来维持后门的。
基本可以确定rootset-test就是用于维持权限的了,但是把这个提交了发现不对。
注意到有一个名字很像的rootset.service,查看它的配置文件:
1 | [Unit] |
和rootset-test的几乎一模一样,提交上去这回正确了。
1 | palu{rootset} |
12.提交攻击者攻击恶意服务器连接地址作为flag提交

把b4b40c44ws提取出来丢奇安信情报沙箱分析

1 | palu{47.101.213.153} |
13.找到系统中被劫持的程序程序名作为flag提交

按时间排序,发现id近期被修改过
提取出来丢到奇安信情报沙箱发现也是恶意程序
1 | palu{id} |
14.找到系统中存在信息泄露的服务运行端口作为flag提交

1 | palu{8081} |
15.提交Parloo公司项目经理的身份证号作为flag提交
上题找到的http://192.168.20.103:8081/

1 | palu{310105198512123456} |
16.提交存在危险功能的操作系统路径作为flag提交
1 | / # cat /etc/passwd |
直接修改会由于是root用户而修改失败,因此使用别的用户进行操作
1 | / # su git |
接下来就可以用admin/12345678登录gitea了
在parloo-code/main.go 位于 main - parloo-code - Gitea: Git with a cup of tea找到后门入口

1 | palu{/admin/parloo} |
17.提交近源机器中恶意程序的MD5作为flag进行提交

检测结果:奇安信情报沙箱
1 | palu{0f80a82621b8c4c3303d198d13776b34} |
18.提交攻击者留下的恶意账户名称md5后作为flag进行提交

1 | palu{d78b6f30225cdc811adfe8d4e7c9fd34} |
19.提交内部群中留下的flag并提交
看聊天记录

1 | palu{nbq_nbq_parloo} |
20.请提交攻击者使用维护页面获取到的敏感内容作为flag进行提交
进入维护页面http://192.168.20.102:8081/admin/parloo

在面板直接搜command.log就行

1 | palu{Server_Parloo_2025} |
21.提交获取敏感内容IP的第一次执行命令时间作为flag进行提交
从上一题就知道攻击者的IP是192.168.20.1

搜索这个IP然后从上往下一条条看
1 | palu{2025-05-04:15:30:38} |
22.提交攻击者使用的恶意ip和端口flag格式为

1 | palu{10.12.12.13:9999} |
23.提交重要数据的明文内容作为flag提交
在PC3桌面找到重要的数据.txt,密文如下:
1 | c3a1c3c13e326020c3919093e1260525045e |
在encode/encode.py 位于 main - encode - Gitea: Git with a cup of tea找到加密代码

1 | def custom_encrypt(text, key): |
写个脚本爆破一下
1 | import string |
密钥太长了爆破不现实。根据palu{解出密钥的前半段是MySec,可以进一步猜到密钥以MySecret开头,然后再以MySecret开头进行爆破

爆出来一堆palu{Pas***rd-000}格式的符合条件的结果,不难猜到明文是palu{Password-000}
用palu{Password-000}推出来的密钥是MySecretKey
1 | palu{Password-000} |
24.提交恶意维权软件的名称作为flag进行提交

启动项里的未知程序
经过奇安信情报沙箱检测发现是恶意程序
1 | palu{svhost} |
25.提交恶意程序的外联地址

一眼Python打包的,解包后在线分析

1 | palu{88.173.90.103} |
26.提交攻击者使用的恶意dnslog域名作为flag进行提交
同第20题在面板直接搜command.log

1 | palu{np85qqde.requestrepo.com} |
27.提交寻找反序列化漏洞的端口作为flag进行提交

各试一遍就知道了
1 | palu{9999} |
28.提交web服务泄露的密钥作为flag进行提交

http://192.168.20.102:9999/actuator/heapdump
发现存在 heapdump 泄露,用 whwlsfb/JDumpSpider 分析

1 | palu{QZYysgMYhG6/CzIJlVpR2g==} |
29.提交攻击者开始攻击的时间作为flag进行提交
访问日志的第一条

1 | palu{2025/05/13:16:45:19} |
30.提交攻击者在server中留下的账户密码作为flag进行提交
1 | cat /etc/shadow |
把密码信息提取出来
1 | parloohack:$y$j9T$RlIs4rqy6D2PI46ntcuwZ0$WFD6WgX3XC4zp/5Y.Jq9yLcfhHK5Rdg6IeDq2Rrl791:20221:0:99999:7::: |
hashcat还不支持yescrypt,用john爆破,把上面的哈希保存到hash.txt后运行john hash.txt --wordlist=./wordlists/rockyou.txt --format=crypt
1 | Using default input encoding: UTF-8 |
1 | palu{parloohack/123456} |
31.提交攻击者维权方法的名称作为flag进行提交
查看server的所有服务单元
1 | systemctl list-units --type=service --all |

1 | palu{parloohack_script.service} |
32.提交攻击者留下的木马md5后作为flag进行提交

1 | palu{4123940b3911556d4bf79196cc008bf4} |
33.提交攻击者留下的溯源信息作为flag进行提交
PC2的谷歌浏览器里面查看密码

1 | palu{X5E1yklz1oAdyHBZ} |
34.提交攻击者的githubID作为flag进行提交
上一题的用户名是QQ号,查看他的QQ空间

1 | palu{ParlooSEc} |
35.提交攻击者在github下留下的的内容作为flag进行提交
ParlooSEc/fffflllgggg: fffflllgggg
1 | palu{s5o3WkX33hptyJjk} |
36.提交恶意用户的数量作为flag进行提交
PC1

从parloo01开始的,所以是99个
1 | palu{99} |
37.提交恶意用户的默认密码作为flag进行提交
不知道为啥用mimikatz提取失败了,所以这里用R-Studio把它们提出来分析
在C:\Windows\System32\config提取出SAM和SYSTEM
1 | lsadump::sam /sam:sam /system:system |

全都是32ed87bdb5fdc5e9cba88547376818d4

1 | palu{123456} |
38.提交业务数据中攻击者留下的信息作为flag进行提交
gitea的数据库

1 | palu{crP1ZIVfqrkfdhGy} |
39.提交私人git仓库中留下的内容作为flag进行提交

base64解码
1 | palu{FO65SruuTukdpBS5} |
40.提交存在在mysql服务器中的恶意程序的MD5作为flag进行提交

1 | more .bash_history |
查看执行过的命令
发现攻击者计算过~下的.a的md5值,并将其复制到/home/ubuntu后将/home/ubuntu/.a删除

1 | palu{ba7c9fc1ff58b48d0df5c88d2fcc5cd1} |
41.提交恶意程序中模拟c2通信的函数名称作为flag进行提交
提出来逆向分析

1 | palu{simulate_network_communication} |
42.提交恶意程序创建隐藏文件的名称作为flag提交

1 | palu{.malware_log.txt} |
43.提交恶意程序中模拟权限提升的函数作为flag进行提交

1 | palu{simulate_privilege_escalation} |
44.提交被钓鱼上线的用户名作为flag进行提交

1 | palu{Parloo-子怡} |
45.提交恶意程序的所在路径作为flag进行提交
上一题的图有
1 | palu{C:\Users\Public\Nwt\cache\recv\Parloo-沉沉} |
46.分析恶意程序的反连地址作为flag进行提交

1 | palu{47.101.213.153} |
47.提交恶意c2的服务器登录的账号密码作为flag进行提交
PC2的谷歌浏览器里面查看密码

1 | palu{admin/admin@qwer} |
- 标题: 帕鲁杯2025-应急响应
- 作者: Aristore
- 创建于 : 2025-05-28 22:55:00
- 更新于 : 2025-05-28 22:50:06
- 链接: https://www.aristore.top/posts/palucup2025IR/
- 版权声明: 版权所有 © Aristore,禁止转载。