春秋云境靶场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 是一个目录,存在目录遍历漏洞: 但是没什么有价值的信息。
阅读全文