红日靶场五 WP | ThinkPHP RCE 如何实现内核提权导致域控沦陷?
摘要:本文为红日靶场五的完整渗透测试记录。目标环境为一台运行 phpStudy 集成环境的 Windows 7 域成员机,对外暴露 80 和 3306 端口。攻击链从 ThinkPHP 5.0.22 的 RCE 漏洞入手获取 Webshell,借
一、靶场信息
我打的是无境靶场中的红日靶场五,其靶机地址和本机地址分别为:
靶场的相关注意事项:
二、信息搜集
1、TCP 全端口扫描 + 指纹识别 + 操作系统识别:
命令:
sudo rustscan -a 192.168.111.150 -r 1-65535 -- -sV -O -Pn -n -oA 192.168.111.150_TCP_ports
输出(仅列举有效信息):
PORT STATE SERVICE REASON VERSION
80/tcp open http syn-ack ttl 127 Apache httpd 2.4.23 ((Win32) OpenSSL/1.0.2j PHP/5.5.38)
3306/tcp open mysql? syn-ack ttl 127
OS: Windows Server 2008 R2 or Windows 7 SP1 (96%)
这些信息凝聚成一块得到的结论就是:集成环境
为什么?
原生生态冲突: Windows Server 的“亲儿子”生态是什么?是 IIS Web 服务器 + ASP.NET + MSSQL 数据库。而 Apache + PHP + MySQL 是 Linux 环境下的“黄金搭档”(即经典的 LAMP 架构)。
部署成本考量: 在 Linux 上,用包管理器(apt/yum)安装 Apache/PHP/MySQL 非常丝滑。但如果你尝试过在 Windows 环境下纯手工分别下载 Apache、配置 PHP 模块、再挂载 MySQL 服务,你会知道那是一件非常繁琐且容易踩坑的事情。因此,正常的大型企业生产环境,极少会煞费苦心地在 Windows Server 上手工搭建一套异构的 Apache+PHP 环境。如果他们真要用 PHP,通常会直接开一台 Linux 虚拟机。
为了解决上述痛点,国内外的厂商推出了“一键安装包”,比如 phpStudy、WampServer、宝塔面板 (Windows 版)、XAMPP 等等。
因此,当看到这三样组件同时出现在 Windows 上,且版本相对老旧时,99% 的概率它就是一个一键安装的集成环境。
2、UDP 高价值端口扫描 + 指纹识别
命令:
sudo nmap -Pn -sU -sV -n --top-ports 20 192.168.111.150 -oA 192.168.111.150_UDP_ports
输出:
PORT STATE SERVICE VERSION
53/udp open|filtered domain
67/udp open|filtered dhcps
68/udp open|filtered dhcpc
69/udp open|filtered tftp
123/udp open|filtered ntp
135/udp open|filtered msrpc
137/udp open|filtered netbios-ns
138/udp open|filtered netbios-dgm
139/udp open|filtered netbios-ssn
161/udp open|filtered snmp
162/udp open|filtered snmptrap
445/udp open|filtered microsoft-ds
500/udp open|filtered isakmp
514/udp open|filtered syslog
520/udp open|filtered route
631/udp open|filtered ipp
1434/udp open|filtered ms-sql-m
1900/udp open|filtered upnp
4500/udp open|filtered nat-t-ike
49152/udp open|filtered unknown
都是 open|filtered(开放或者被过滤),这基本等于没信息。
决策:先处理 TCP 端口,如果没有突破,再回到 UDP 端口,用特定的工具或者脚本去侦察。
