作为一名参与过多届网络安全竞赛的老兵,这次帕鲁杯的应急响应赛题让我眼前一亮。整个赛题设计紧密结合企业真实场景,从JumpServer到各类业务服务器,再到WAF、MySQL等基础设施,构建了一个完整的攻防演练环境。下面我将从技术角度详细拆解每个环节的排查过程与解题思路。
比赛环境模拟了一个中型企业的网络架构,包含以下关键组件:
网络拓扑显示各节点通过192.168.20.0/24网段互联,部分服务器存在外联行为。这种设计非常贴近真实企业网络,考察选手对混合架构的应急响应能力。
提示:在实际应急中,建议首先绘制网络拓扑图,明确各节点关系和通信路径,这对后续排查至关重要。
登录JumpServer后首先进行基础检查:
bash复制# 查看异常用户
cat /etc/passwd | grep -v "nologin"
# 检查最近登录记录
last -n 20
# 查找flag文件
find / -name "*flag*" 2>/dev/null
在/home目录发现首个flag:palu{2025_qiandao_flag}。值得注意的是,JumpServer的SSH转发功能异常,这可能是攻击者故意破坏的痕迹。
通过sshServer发现关键线索:
bash复制# 查看用户信息
grep parloo /etc/passwd
# 提取密码hash
grep parloo /etc/shadow
bash复制netstat -antp | grep ESTABLISHED
发现与47.101.213.153:8084的持久连接,这是典型的C2服务器特征。
在Server01上发现异常:
bash复制# 查找隐藏进程
ps -ef | grep "[a-z]\{5\}"
# 检查定时任务
crontab -l
发现aa进程持续占用CPU,并在/tmp目录下找到恶意脚本,其MD5为0f80a82621b8c4c3303d198d13776b34。
通过分析各服务器日志,还原攻击过程:
攻击者采用多阶段攻击:
在各节点发现的flag和线索:
bash复制iptables -A INPUT -s 47.101.213.153 -j DROP
bash复制userdel -r parloohack
bash复制systemctl disable rootset
bash复制# 监控异常外联
tcpdump -i eth0 'dst net not 192.168.20.0/24'
这次应急响应赛题有几个值得注意的难点:
在实际比赛中,我建议:
最后分享一个排查小技巧:当遇到大量干扰项时(如99个parloo用户),可以按创建时间排序快速定位异常账户:
bash复制ls -lt /home | head -n 10