帕鲁杯-应急挑战(一)

帕鲁杯-应急响应挑战

​ 第二届“Parloo杯”-CTF网络安全应急响应挑战赛由济南市委网信办指导,“知攻善防实验室”“OneFox安全团队”“solar应急响应团队”联合承办,以“提升应急响应能力、强化安全防护”为宗旨,通过模拟真实应急场景,搭建技术交流与人才培养平台,检验参赛选手应急处置能力,推动网络安全应急技术与行业生态建设,助力筑牢安全防线、培育专业人才。

​ 我觉得对于我们安全人员,掌握应急响应的技巧是非常有必要的,当遇到事件排查时,不至于手足无措。

赛事题目分为:Web、Misc、Crypto、Reverse、应急响应。下面详细记录一下应急响应的相关题目【畸形的爱,应急响应题目】。

certificate

畸形的爱

赛前准备,下载好压缩包,对比压缩包hash是否有问题。自己用虚拟机的方式搭建环境。

网络拓扑

在应急响应中,了解网络拓扑是非常有必要的,我们可以根据网络拓扑不同,使用相对应的排查方式。

image-20250531231056371


主机名 操作系统登录 服务登录
WebServer root/root webserver/webserver
SQL服务器 sql/sql
Windows7 PC 1 administrator/wmx666
Windows10 PC2 administrator/zjl@123

题目

1-1

提交攻击者使用的攻击IP地址1

首先,find / -name html找到网站的根目录位置,查看这些文件,是否有恶意文件。a.php为一句话木马,恶意文件,查看日志,上传文件的IP地址

image-20250531231844717

image-20250531232351862

找到nginx日志位置,分析日志 /var/log/nginx/access.log(可能不同,仅供参考)

image-20250531233033521

palu{192.168.31.240}

1-2

提交攻击使用的IP地址2

根据题目1,我们发现服务器有docker环境,docker环境映射的网站位置和nginx不同,我们分析下docker映射到本机的位置,查看是否有恶意文件。发现存在两个恶意文件,一个为clean.sh,一个为shell.php。

有时候,我们找不到这个docker目录,但是我们可以确定攻击的大概时间,我们可以,查看在此期间修改的文件内容来进行分析

1
2
3
查找在2025-05-01和2025-06-01期间修改文件的内容的文件有哪些

find / -type f -name "*.php" -newermt "2025-05-01" ! -newermt "2025-06-01"

image-20250531233722519

palu{192.168.31.11}

1-3

题解攻击者暴力破解开始时间。

暴力破解,首先我们观察本地环境的文件,都访问一下,没用发现有可以爆破的地方。根据上面有docker环境,我们猜测暴力破解的地方可能在docker环境,我们需要启动docker环境来查看,是否有暴力破解的地方,然后查看访问日志。

查看历史命令,然后启动docker环境,访问8080端口,发现phpmyadmin环境

image-20250531235721791

进入docker环境的命令

1
docker exec -it <container_id_or_name> /bin/bash

进入docker后,找到日志位置,然后查看,发现不能输出,发现日志被docker重定向输出出去了

image-20250601000151402

查看docker日志命令

1
docker logs <容器ID或容器名>

image-20250601000837346

palu{2025:03:05:58}

1-4

提交攻击者留下的flag

常见的排查思路,存在于定时任务中

image-20250601112558239

image-20250601112626058

flag1 palu{pc3_zgsfqwerlkssaw}

1-5

提交攻击者留下的flag2

定时任务运行了文件,a.bat,分析该文件

image-20250601112730432

image-20250601112830630

flag2 palu{nizhidaowoyouduoainima}

1-6

提交攻击者留下的flag3

image-20250601120102595

image-20250601115920172

image-20250601120122016

flag3 palu{sqlaabbccsbwindows}

1-7

提交钓鱼文件的哈希32位大写

image-20250601120930408

image-20250601120946486

image-20250601121123777

1
certutil -hashfile 简历.exe md5

palu{2977CDAB8F3EE5EFDDAE61AD9F6CF203}

1-8

提交攻击者留下的webshell-1密码

根据上述为:palu{hack}

1-9(略)

提交攻击者开放端口

image-20250601123858302

1
crontab -l

image-20250601125441452

人家可以找到

image-20250601125504222

找到一个端口

查看连接找到第二个端口

根目录反弹shell:192.168.31.11:1133

PC2传简历给PC1横向192.168.31.11:8084

webserver的/tmp/r.sh下存在反弹shell:192.168.31.11:1144

palu{1133,1144,8084}

1-10

提交攻击者留下的webshell密码2

根据上述为:palu{00232}

1-11

提交攻击者留下的隐藏账户的密码

palu{wmx_love}

首先通过工具在windows10 pc2上发现了这个system$隐藏用户

排查隐藏账户和克隆账户区别

隐藏账户:就是在创建账户后面加一个$

这种用命令net user就看不见,但是可以进入本地用户和组可以看到

克隆用户:是指通过技术手段复制或模仿某个用户的身份、权限或行为特征的行为

创建账户->根据账户的administrator注册表F键值替换掉原先创建的账户的F键值->启用账户

1
2
3
1.先创建了一个普通账户,此时他的账户是启用状态的
2.进入注册表,复制administrator对应的user下的文件,把原先普通用户的的F值替换为管理员的F值。此时,普通用户的账户是禁用状态,且他的用户组仍然属于普通用户的users组,但是他拥有管理员的权限。
3.启用账户: net user 用户名 /active:yes //启用账户(NO禁用账户)
1
compmgmt.msc打开本地用户和组

image-20250601131110807

发现有一个隐藏用户

参考网上的wp,写一下

这里直接启动一个kali连到同一网段,利用msf生成一个windows木马并上传到windows中

执行反弹shell

image.png

通过getsystem提权

img

通过hashdump获取到system$的hash值然后到md5网站上去解码

img

对dbae99beb48fd9132e1cf77f4c746979 解码得到答案:wmx_love

或者使用D盾进行排查

image-20250601131400758

1-12

[溯源]攻击者的邮箱.

上传微步,分析简历.exe

image-20250601131620095

API接口查询

获取目标 Github 用户名,替换下面链接中的<name> 进行查询:

1
https://api.github.com/users/<name>/events/public

访问:https://api.github.com/users/n0k4u/events/public

image-20250601131914908

palu{n0k4u@outlook.com}

1-13

提交溯源后得到的flag

palu{loveyouibiejv}

社工黑客

image-20250601132016480

找到黑客的日记

image-20250601132034158

image-20250601132103999

solar_linux后门排查

跳板机疑似被遗留后门,请排查
1、找到可疑进程完整路径
2、找到被横向的服务器IP
3、连接被横向服务器
flag格式为 flag{base64{完整路径}|服务器IP|服务器中flag文本}