第二届“Parloo”CTF应急响应挑战赛-应急相应方向-WriteUp
畸形的爱
攻击者ip地址1
nginx日志 31网段之外的基本都是内网ip,所以不考虑
palu{192.168.31.240}
攻击者ip地址2
这道题目没做出来,主要原因是光做主线了,这个简单过了一下,没有在意到docker容器,在webserver中有一个webdata容器,开启会报错,原因是在题目创建时绑定了一个当时主机的ip,复现的虚拟机因为环境问题无法从挂起状态恢复导致虚拟机的ip被本地的dhcp更换了,所以开启不了,具体报错如下
1 | root@ubuntu:/var/www/html# docker start WebData |
通过下面命令可以临时加一条对应的ip让其临时开启容器进入里面查看数据
1 | sudo ip addr add 192.168.87.101/24 dev ens33 |
进入机器后发现反弹的后门ip
palu{192.168.31.11}
暴力破解开始时间
这道题目也没做出来没注意到容器,这个日志是通过
1 | docker logs phpmyadmin |
获取到的,在这个容器中存在大量爆破日志
palu{2025:03:05:58}
flag1
win10直接搜索
palu{pc3_zgsfqwerlkssaw}
flag2
win10的最近使用里
palu{nizhidaowoyouduoainima}
flag3
这个也没做出来,具体原因似乎是没怎么在乎数据库的内容,光去看webserver了,从webserver的网页代码中获取到数据库的账号密码
通过账号密码连接数据库查看数据库数据,发现很多base64
挨个解码后发现第三个内容如下
1 | [{"item_id":1,"item_name":"flag3palu{sqlaabbccsbwindows}","quantity":2,"price":199.99},{"item_id":3,"item_name":"英国复印","quantity":1,"price":59.99}] |
palu{sqlaabbccsbwindows}
提交钓鱼文件的哈希32位大写
在回收站中有一个奇怪的zip恢复后
沙箱分析
palu{2977CDAB8F3EE5EFDDAE61AD9F6CF203}
webshell密码1
没做出来,没看容器,在容器中直接就能看到webshell密码
palu{hack}
攻击者开放3个端口
没接出来,这个本来是想法查网络端口,但是没有思路,好多端口都开放。首先是第一个在攻击者ip2中,在清理脚本中就发现了一个反弹shell的脚本,上面就有端口
1133,其他目前没找到,然后据群友说有一个是在/tmp/r.sh
位置,在第一次开机的时候存在
好像是1144,等官方题解吧。
webshell密码2
网站目录下
palu{00232}
隐藏账户的密码
没解出来,没发现隐藏账户。。赛后才发现
在win10中通过工具发现额外的账户
通过LaZagne获取出他的hash
然后通过kali跑一下字典,这个在cmd5中是可以查询到的,但是是付费的,直接通过万能群友直接出了
palu{wmx_love}
还有就是john就不要试了,我跑了15分钟都没出…
[溯源]攻击者的邮箱
没有解出来,没想到是这种方法。。。根据病毒侵害的主机得知王美欣的名字,去github搜索拿到githubid
并且同通过id可以去github用户反查api中得知他的邮箱为
palu{n0k4u@outlook.com}
[溯源]flag4
没解出来,上面搜索仓库拿到一个密语
这是一个qq号直接去添加拿到flag4
palu{loveyouibiejv}
solar_Linux后门排查
通过命令ss -tulnpa
查看连接发现后门
通过pid直接拿到文件
直接连接过去这台机器
直接就出flag了
取证主线
1.提交堡垒机中留下的flag
flag:palu{2025_qiandao_flag}
2.提交WAF中隐藏的flag
palu{2025_waf}
3.提交Mysql中留下的flag
palu{Mysql_@2025}
4.提交攻击者的攻击IP
5.提交攻攻击者最早攻击时间
提交攻攻击者最早攻击时间flag格式为palu{xxxx-xx-xx-xx-xx-xx},这个时间格式是错误的。。。一直没交上,最后半小时才说格式不对。。
palu{2025-05-05-00:04:40}
6.提交web服务泄露的关键文件名
在waf的静态网站文件中有一个key.txt
palu{key.txt}
7.题解泄露的邮箱地址
在key.txt中最后面有邮箱
palu{parloo@parloo.com}
8.提交立足点服务器ip地址
palu{192.168.20.108}
服务端的爆破流量
堡垒机中的ssh爆破流量也来自108lastb
9.提交攻击者使用的提权的用户和密码
在sshserver中的passwd中发现parloo用户,通过john直接爆破出flag
palu{parloo/parlook}
10.提交攻击者留下的的文件内容作为flag提交
在sshserver中,在parloo用户的家目录中发现flag
11.提交权限维持方法的名称
没做出来,具体原因是没有思路。。。题目太多了就做别的题目了。。在sshserver中通过命令
1 | systemctl list-units --type=service --state=running |
列出了所有已经在运行的服务,发现有两个奇怪的服务
仔细看一下这个服务发现问题
运行的b4b40c44ws,这个在受感染的机器中可以找到,放入沙箱之后可以发现这是一个木马。
palu{rootset}
12.提交攻击者攻击恶意服务器连接地址作为flag提交
在Server01中发现后门用户的家目录中发现aa程序
ida分析
palu{47.101.213.153}
13.找到系统中被劫持的程序程序名作为flag提交
没解出来,在sshserver中,通过下面命令
1 | find ./ -ytpe f -newermt "2025-05-6" ! -newermt "2025-05-010" |
搜索近期5月份被修改的文件可以找到
题目说是被劫持的,所以是
palu{id}
14.找到系统中存在信息泄露的服务运行端口作为flag提交
在面板中或者服务器使用ss -tnl
都可以发现额外的端口,直接访问
palu{8081}
15.提交Parloo公司项目经理的身份证号作为flag提交
在server01主机的8081端口中可以直接发现,可以直接编辑
palu{310105198512123456}
16.提交存在危险功能的操作系统路径作为flag提交
没做出来…在waf中发现有一个应用路由如下
发现可以执行命令
palu{/admin/parloo}
17.提交进源机器中恶意程序的MD5作为flag进行提交。
没做出来,火绒剑中可以看到启动项中存在一个奇怪的内容
文件拖入到沙箱中发现是恶意程序
palu{8cc6fc843882735e1c1152b383e35e3b}
18.提交攻击者留下的恶意账户名称md5后作为flag进行提交
在登录的时候就有hack 在用户目录下也发现了
palu{d78b6f30225cdc811adfe8d4e7c9fd34}
19.提交内部群中留下的flag并提交
palu{nbq_nbq_parloo}
20.请提交攻击者使用维护页面获取到的敏感内容作为flag进行提交
没出 在17题中,发现了软件的被代理端是server服务器上的,通过查看端口(waf中其实写好了是8080)->通过端口查pid-》id拿到文件位置-》拿到位置发现有日志
查看日志发现是空的,又通过用户记录发现了一个相同文件名字,查看拿到flag
日志很乱直接过滤flag就可以出了
palu{Server_Parloo_2025}
21.提交获取敏感内容IP的第一次执行命令时间作为flag进行提交
没出
对应20,日志第一条就是flag
palu{192.168.20.1}
22.提交攻击者使用的恶意ip和端口
没做出,通过下面命令拿到反弹shell地址
1 | cat /var/log/parloo/command.log |grep -e "^\[" |awk -F "|" '{print $2}' |
palu{10.12.12.13:9999}
23.提交重要数据的内容作为flag提交
没做出,在PC3机器发现重要数据,直接提交没用
具体的解密脚本在gitea的hack仓库中具体的进入私人仓库的方法可以在39问中找到,当时想到了可能是这个加密的,但是做其他的题目给忘了。。。具体的加密逻辑如下
1 | def custom_encrypt(text, key): |
这里只是加密脚本需要自己推回来解密脚本,我这里直接通过ai出
1 | def custom_decrypt(encrypted_text, key): |
现在还缺少一个密钥,因为flag的格式是palu{
他这里的几秒也是按位进行的,直接把条件给ai让他去推
前缀是MySec,最后面是一个k,我就不多加ai的截图了线索就是MySec*k
这大概率是单词,后面可以菜是key中间大概率是秘密慢慢试就出了MySecretKey
完整脚本如下
1 | def custom_encrypt(text, key): |
palu{Password-000}
24.提交恶意维权软件的名称作为flag进行提交
没做出,同17问
palu{svhost}
25.提交恶意程序的外联地址
在palu3中家目录里有一个ipconfig
反编译后拿到原代码
敏感信息
palu{88.173.90.103}
26.提交攻击这使用的恶意dnslog域名作为flag进行提交
没做出,在22问的命令中,可以发现下面命令
肯定是他们其中一个,palu{np85qqde.requestrepo.com}
27.提交寻找反序列化漏洞的端口作为flag进行提交
没做出,可以在waf的反序列化攻击类型中找到相应的日志,然后日志不多就两页,挨个排查,出现404的基本不能存在反序列化漏洞了,嫌疑最大的就是9999
palu{9999}
28.提交web服务泄露的密钥作为flag进行提交
在server里有一个adminaf.jar,jadx反编译后拿到flagpalu{QZYysgMYhG6/CzIJlVpR2g==}
29.提交攻击者开始攻击的时间作为flag进行提交
这个没出,到现在也没出,看其他师傅的wp也都没出。。。
30.提交攻击者在server中留下的账户密码作为flag进行提交
在server主机的passwd中发现
通过 john拿到密码
palu{parloohack/123456}
31.提交攻击者维权方法的名称作为flag进行提交
在server主机中parloohack用户的bash_history中发现下面内容
采用服务的方式
palu{parloohack_script.service}
32.提交攻击者留下的木马md5后作为flag进行提交
在server主机中parloohack用户家目录中发现奇怪文件
通过沙箱发现是木马
palu{4123940b3911556d4bf79196cc008bf4}
33.提交攻击者留下的溯源信息作为flag进行提交
palu{X5E1yklz1oAdyHBZ}
34.提交攻击者的githubID作为flag进行提交
没出,在33题中的用户名是一个qq号,查看qq空间内容如下
palu{ParlooSEc}
35.提交攻击者在github下留下的的内容作为flag进行提交
没出,在34题中拿到id进入他的仓库拿到flag
palu{s5o3WkX33hptyJjk}
36.提交恶意用户的数量作为flag进行提交
palu{99}
37.提交恶意用户的默认密码作为flag进行提交
似乎不对,因为我是在java后门中找到的在server1主机中发现了一adminAF.jar反编译发现默认用户名是admin密码是123456
palu{123456}
这道题目是意外出的,按理说这个程序似乎是人家公司自己的,不是恶意用户。。。意外的。。。
38.提交业务数据中攻击者留下的信息作为flag进行提交
mysql主机的gitea的用户表中
palu{crP1ZIVfqrkfdhGy}
39.提交私人git仓库中留下的内容作为flag进行提交
重置admin密码
1 | 224d7f8df25c:/$ gitea admin user change-password --username "admin" --password "Qwer1234" |
登录发现flag(base64解码)
palu{FO65SruuTukdpBS5}
40.提交存在在mysql服务器中的恶意程序的MD5作为flag进行提交
没出,这个没仔细看…炒
在mysql的root目录下,存在下面内容
.a很可疑,ida反编译出下面内容
数据输出就是创建隐藏文件。。
palu{ba7c9fc1ff58b48d0df5c88d2fcc5cd1}
41.提交恶意程序中模拟c2通信的函数名称作为flag进行提交
没出,同40题目程序
palu{simulate_network_communication}
42.提交恶意程序创建隐藏文件的名称作为flag提交
没出,同40题目程序
palu{.malware_log.txt}
43.提交恶意程序中模拟权限提升的函数作为flag进行提交
没出,同40题目程序
palu{simulate_privilege_escalation}
44.提交被钓鱼上线的用户名作为flag进行提交
只有在子怡的PC(PC2)中发现了浏览器的记录并且存在访问记录
palu{Parloo-子怡}
45.提交恶意程序的所在路径作为flag进行提交
没出,在PC2的聊天记录中发现
程序拖入沙箱是个木马
palu{C:\Users\Public\Nwt\cache\recv\Parloo-沉沉}
46.分析恶意程序的反连地址作为flag进行提交
没出,很奇怪这道题我怎么没出。。都找到了。。。依旧是在浏览器的账号管理中,44题的截图
palu{47.101.213.153}
47.提交恶意c2的服务器登录的账号密码作为flag进行提交。
palu2 谷歌浏览器中直接获取
palu{admin/admin@qwer}
写在后面
除了应急响应方向的应急1的攻击者开放3个端口
和应急2的29
基本在赛后都出了,应急响应的比赛打得太少了,赛后复现感觉好多题目都能出,还得好好练练…
预览: