春秋云境靶场ThinkPHP RCE如何一步步实现域控沦陷?
摘要:本文为春秋云境「Initial」仿真靶场的完整渗透测试记录。从外网 80 端口入手,利用 ThinkPHP V5.0.23 RCE 漏洞获取 Webshell,通过 sudo 提权拿到 root 权限后上线 MSF;随后借助 Fscan 对
正文开始前,在此夹带一点点“私货”:我最近动手搭了一个属于自己的个人博客!虽然目前还是个“毛坯房”,主题和排版还在慢慢打磨中(可能有些地方功能还不全面、甚至可能报错😅),但这毕竟是我在互联网上的独立小天地。这篇文章也同步归档在我的小站里,除了长篇 WP,我以后也会在那边发一些零碎的踩坑记录。欢迎大家来我的小站串门、挑错。
我的个人博客:https://beini-faxianl.github.io/
一、靶场介绍 & 环境信息
春秋云境 $\to$ 仿真场景 $\to$ 专业徽章 $\to$ Initial:
开启场景后,给了一个 IP 地址:
39.99.151.82
重要提醒:
由于我写 WP 并非一次性写完,而靶场一直开着会消耗沙砾(╯︿╰),每次重开靶场给的目标 IP 地址会有区别,请大家见谅。但是,内网地址都是稳定。
二、信息搜集
Rustscan 配合 Nmap 进行 TCP 全端口扫描 + 指纹识别 + 操作系统识别:
sudo rustscan -a 39.99.151.82 -r 1-65535 -- -sV -O -Pn -n -oA 39.99.151.82_TCP_Ports
结果信息:
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.5 (Ubuntu Linux; protocol 2.0)
80/tcp open http Apache httpd 2.4.41 ((Ubuntu))
根据端口指纹可以判断对方的操作系统是 Ubuntu。
补一波 UDP 高价值端口(20个)扫描 + 指纹识别:
sudo nmap -sV -sU --top-ports 20 39.99.151.82 -Pn -n -oA 39.99.151.82_UDP_Ports
结果:
所有端口的状态都是“open|filtered”
目前来看,处理 UDP 端口并不是最高的优先级,等 TCP 端口没有突破再回到 UDP 端口用特定的工具对高价值端口进行精细扫描。
根据上述信息搜集结果,最优先考虑的就是 80 端口了。
三、80 端口
1、假的登入界面
用浏览器访问:
是一个登入界面,但是其功能并不完善:
输入任意账户密码都是跳转到 /login.hrml,而目标上根本没有这个页面
“注册”功能也是假的,根本点不动
查看页面源码,看到注释信息中暴露了一个后端端口:
http://localhost:8080/powers/pow/regUsers"
直接访问:
http://39.99.151.82:8080/powers/pow/regUsers
但是访问不到:
应该只有内网才能访问这个接口。
直接访问 8080 也是同样的结果。
2、目录爆破
既然没什么发现,扫一扫目录、爆一爆文件:
ffuf -u http://39.99.151.82/FUZZ -w /usr/share/seclists/Discovery/Web-Content/raft-medium-directories.txt -e .php,.phtml,.html,.txt,.bak,.old,.swp -ac -recursion -recursion-depth 2
robots.txt
static
router.php
访问 robots.txt,并没有用的内容:
User-agent: *
Disallow:
static 是一个目录,存在目录遍历漏洞:
但是没什么有价值的信息。
