PG靶机 - PayDay
一、 初步侦察与服务探测
1.1 端口扫描与服务识别
首先,对目标主机 192.168.163.39
进行一次全面的端口扫描,以识别其上运行的各项服务。
sudo nmap 192.168.163.39 -p- --min-rate=5000 -A
图 1: Nmap 扫描结果,显示开放 80、445 和 995 等端口
扫描结果显示,目标主机开放了多个端口,包括 HTTP (80)、SMB (445) 和 POP3S (995)。我们将从最常见的攻击面——Web 服务和 SMB 服务入手。
1.2 服务枚举
首先对 SMB 服务进行信息枚举,但并未发现可利用的共享或敏感信息。
图 2: SMB 枚举未发现有用信息
接下来,将注意力转向 80 端口的 Web 服务。访问该网站,发现其运行的是一个名为 CS-Cart 的电子商务平台。页面上有一个管理员登录框,抱着试一试的心态,输入了常见的弱口令 admin:admin
,竟意外登录成功。
图 3: 成功使用弱口令 admin:admin 登录后台
二、 CS-Cart 漏洞利用与初始访问
2.1 漏洞识别与验证
在获得管理员权限后,我们在后台进行了初步探索,但未能直接找到显示当前 CS-Cart 具体版本号的信息。因此,我们转向搜索 CS-Cart 的历史漏洞,并发现一个需要后台管理员权限的远程代码执行(RCE)漏洞,这与我们当前的处境完美契合。
图 4: 发现 CS-Cart 的一个已授权 RCE 漏洞
查阅该漏洞的详细信息,其利用方式是通过后台的模板编辑功能,上传一个包含后门代码的 .phtml
文件,从而绕过文件上传限制,实现代码执行。
图 5: 漏洞利用详情描述
2.2 漏洞利用获取 Webshell
根据漏洞描述,我们导航到后台的模板编辑页面,并上传了一个预先准备好的 PHP 反弹 Shell,将其命名为 .phtml
后缀。
图 6: 在模板编辑页面上传 .phtml 后门文件
系统提示文件上传成功,这表明漏洞确实存在且可被利用。
图 7: 确认后门文件已成功上传
接着,在浏览器中访问该后门文件的路径,同时在本地启动 Netcat 监听。成功接收到反弹 Shell,获得了一个 Web 服务(www-data
)的普通用户权限。
图 8: 成功获取 www-data 权限的 Shell
三、 信息收集与权限提升
3.1 用户枚举与凭据搜寻
在获得的初始 Shell 中,首先查看系统用户列表,发现一个名为 patrick
的普通用户,这成为了我们横向移动的目标。
图 9: 发现系统用户 patrick
为了获取 patrick
的登录凭据,我们回到 Web 应用的目录,寻找可能包含敏感信息的配置文件。在 Web 应用根目录下的 config.php
文件中,我们找到了数据库的连接凭证,用户名为 root
,密码也为 root
。
图 10: 在配置文件中发现数据库凭证
数据库中通常存储着用户信息。利用找到的凭证连接到数据库,在用户表中发现了一个名为 customer
的用户。其密码是加密存储的,看起来像是 MD5 哈希。
图 11: 数据库中发现 customer 用户的 MD5 密码哈希
通过在线 MD5 解密工具,我们破解出该哈希对应的明文密码为 customer
。
图 12: 成功解密出密码为 customer
3.2 凭据猜测与横向移动
至此,我们观察到一个有趣的模式:
- 管理员
admin
的密码是admin
。 - 数据库用户
customer
的密码是customer
。
基于这个规律,我们有理由大胆猜测,系统用户 patrick
的密码可能也是 patrick
吗?尝试使用此凭据进行 SSH 登录,果然成功了!
图 13: 成功使用猜测的密码登录 patrick 用户
四、 Sudo 提权至 Root
成功登录 patrick
用户后,我们立即检查其 sudo
权限。
图 14: patrick 用户拥有完全的 sudo 权限
sudo -l
的输出显示,用户 patrick
拥有 (ALL : ALL) ALL
权限,这意味着他可以以任何用户(包括 root)的身份执行任何命令,且无需输入密码。
这使得提权变得轻而易举。我们直接执行 sudo su root
命令切换到 root 用户。
sudo su root
图 15: 成功提权至 root
成功获取 root 权限,至此完成了对目标主机的完全控制。