玄机靶场通过笔记:第九章-实战篇-运维杰克 解题报告
玄机靶场 · 第九章-实战篇-运维杰克 解题报告
挑战名称: 第九章-实战篇-运维杰克
难度等级: 中等
靶机信息: 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 流量中还出现了包含 JavaRuntime类的可疑请求,这是 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 |
四、防御建议
- 文件上传防护:严格校验上传文件的 MIME 类型和扩展名,禁止上传可执行脚本文件;对上传目录设置不可执行权限(
noexec)。 - 日志监控:定期分析 Web 访问日志,对高频访问 IP 及异常 User-Agent 进行告警。
- SUID 权限管控:定期执行
find / -perm -u=s -type f审计 SUID 文件,移除非必要的 SUID 权限。 - Crontab 审计:定期检查所有用户的定时任务(
crontab -l -u <user>),以及/etc/cron.*目录下的脚本。 - 账户管理:定期审计
/etc/passwd和/etc/shadow,及时发现并清除异常账户。 - 网络隔离:对 Web 服务器实施出站流量白名单策略,阻止反弹 Shell 等异常外联行为。
更多推荐
所有评论(0)