玄机靶场 · 第九章-实战篇-运维杰克 解题报告

挑战名称: 第九章-实战篇-运维杰克
难度等级: 中等
靶机信息: Linux,账号 root / root123


一、题目背景

应急响应工程师小王收到安全设备告警,服务器被植入恶意文件,需上机排查。本题模拟了一次完整的 Linux 服务器入侵事件,涵盖漏洞扫描、Webshell 上传、反弹 Shell、权限提升、后门植入及持久化驻留等攻击链路。


二、解题过程

步骤 #1:攻击者使用的漏洞扫描工具(两个)

Flag:flag{fscan-goby}

分析过程:

攻击者在入侵前使用了两款主流漏洞扫描工具进行侦察:

  • Goby:在 HTTP 流量包中,过滤 POST 请求访问 apply_sec.cgi 文件的流量,可发现 Goby 扫描器的特征 User-Agent 和请求指纹。
  • fscan:在 ICMP 协议流量中,发现大量 Echo ping reply 请求,附带特定字符串 101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637,这是 fscan 进行存活探测时的 ICMP payload 特征。此外,HTTP 流量中还出现了包含 Java Runtime 类的可疑请求,这是 fscan 测试 RCE 漏洞的典型特征(nmap 不具备此能力)。

辅助命令:

# 统计访问次数最多的 IP(定位攻击者 IP)
cut -d- -f 1 access.log.1 | sort -nr | uniq -c | sort -nr

步骤 #2:攻击者上传 Webshell 的绝对路径及 User-Agent(MD5)

Flag:flag{14bea1643a4b97600ba13a6dd5dbbd04}

分析过程:

使用 D 盾等 Webshell 扫描工具扫描 Web 目录,定位到恶意文件:

/var/www/html/lot/admin/assets/uploads/maps/1701324180_Shell123.php

在流量包中使用以下过滤条件定位文件上传请求:

http.request.method == "POST" && http.content_type contains "multipart/form-data"

从上传数据包中提取 User-Agent 字段:my_is_user_agent

将路径与 UA 以 - 连接后计算 MD5:

/var/www/html/lot/admin/assets/uploads/maps/1701324180_Shell123.php-my_is_user_agent
echo -n "/var/www/html/lot/admin/assets/uploads/maps/1701324180_Shell123.php-my_is_user_agent" | md5sum
# 输出:14bea1643a4b97600ba13a6dd5dbbd04

步骤 #3:攻击者反弹 Shell 的 IP 及端口

Flag:flag{192.168.150.110:5678}

分析过程:

在 D 盾扫描出的 Webshell 文件内容中,或通过流量包分析反弹 Shell 的 TCP 连接,可以直接获取攻击者控制端的 IP 地址和监听端口。

  • 攻击者 C2 地址: 192.168.150.110
  • 监听端口: 5678

步骤 #4:攻击者利用提权攻击添加的用户名

Flag:flag{zhangsan}

分析过程:

攻击者获取 Webshell 后,利用系统漏洞进行本地提权,并添加了新用户以维持访问权限。

cat /etc/passwd

/etc/passwd 末尾可以发现攻击者添加的用户:zhangsan


步骤 #5:攻击者留下的后门脚本绝对路径(具有 SUID 权限)

Flag:flag{/var/www/html/lot/admin/assets/vendor/.shell/.decodeshell.php}

分析过程:

攻击者将后门脚本隐藏在 Web 目录的隐藏子目录中,并赋予其 SUID 权限以实现提权。

方法一: 使用 D 盾直接扫描 Web 目录,可直接发现该文件。

方法二: 查找所有具有 SUID 权限的文件:

find / -perm -u=s -type f 2>/dev/null

定位到:/var/www/html/lot/admin/assets/vendor/.shell/.decodeshell.php

该文件藏于 .shell 隐藏目录中,文件名以 .decode 开头进行伪装。


步骤 #6:攻击者留下的持续化监控和后门脚本绝对路径

Flag:flag{/opt/.script/.script.sh}

分析过程:

攻击者为实现持久化驻留,在系统中配置了定时任务(Crontab),定期执行恶意脚本以重新写入 Webshell 并维持 SUID 后门。

crontab -l

发现定时任务指向 /opt/.script/.script.sh,查看该脚本内容:

cat /opt/.script/.script.sh

脚本功能:创建 PHP 文件,赋予最高权限(chmod 777),并通过 chmod u+s 设置 SUID 位,实现持久化后门写入。


三、攻击链路总结

阶段行为工具/方法
侦察漏洞扫描与存活探测fscan、Goby
初始访问文件上传漏洞植入 Webshell上传 1701324180_Shell123.php
命令执行反弹 Shell 建立持久连接连接至 192.168.150.110:5678
权限提升添加系统用户添加用户 zhangsan
后门植入隐藏 SUID 后门脚本.decodeshell.php(SUID 权限)
持久化Crontab 定时任务维持后门.script.sh 定时重写 Webshell

四、防御建议

  1. 文件上传防护:严格校验上传文件的 MIME 类型和扩展名,禁止上传可执行脚本文件;对上传目录设置不可执行权限(noexec)。
  2. 日志监控:定期分析 Web 访问日志,对高频访问 IP 及异常 User-Agent 进行告警。
  3. SUID 权限管控:定期执行 find / -perm -u=s -type f 审计 SUID 文件,移除非必要的 SUID 权限。
  4. Crontab 审计:定期检查所有用户的定时任务(crontab -l -u <user>),以及 /etc/cron.* 目录下的脚本。
  5. 账户管理:定期审计 /etc/passwd/etc/shadow,及时发现并清除异常账户。
  6. 网络隔离:对 Web 服务器实施出站流量白名单策略,阻止反弹 Shell 等异常外联行为。
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐