遇到个有意思的靶机,这台有两种提权方法,就记录一下
靶机地址:https://download.vulnhub.com/prime/Prime_Series_Level-1.rar
打点
还是先netdiscover
nmap扫端口
爆破目录
发现了wordpress 并且 index.php 和 image.php 的长度不一样
打开网页发现 image.php 虽然和 index.php 显示的页面没有差别 但是细节上有点 可能就是在提示这两个页面有不同的作用 接收不同的参数
还是在 /secret.txt 发现了一些信息 让我们模糊测试一下 并且还推荐了工具
根据他给的字典参考 进行测试 用burp什么都一样 burp字典太大会卡
找到了个长度不一样的 确实有东西
打开看看吧
根据之前的提示将 location.txt 带入
得到如下的提示
之前爆破出来的有两个php文件 一个是 index.php 一个是image.php 还有一堆wordpress里面的php
很明显他说的php文件为 image.php
带入参数试试
http://192.168.2.193/image.php?secrettier360=
response : finaly you got the right parameter
带点值发现是任意文件读取 http://192.168.2.193/image.php?secrettier360=/etc/passwd
在我找有效用户的时候发现了一些问题 他在 /etc/passwd 里出现了一些不一样的东西 为了看得清楚我整理了一下
password.txt file in my directory:/home/saket
按照他的提示读取一下 找到了一个密码
follow_the_ippsec
在 passwd 里找到了两个有家目录的用户名
victor
saket
读取一下他们的家目录的 .bash_history 文件,发现读取不了
于是我开始用ssh尝试使用上面的密码登录这两个账号,登不上去
这时候其实还有个wordpress 来测试下 wordpress
wordpress 这里还是 wpscan 扫一下用户名
只找到 victor 用户,尝试在 wp-admin 使用上面的密码登录
登陆成功了 查看权限为 administrator
先找个上传点吧 发现过不去
上传主题吧,貌似也传不了
再尝试一下修改主题
没有写入权限,挨个看一遍这些 php 文件
这个可以写入 修改完访问弹个 shell 出来吧
监听:nc -lvnp 9999
访问:
http://192.168.2.193/wordpress/wp-content/themes/twentynineteen/secret.php
提权
成功拿到shell
先把基本的流程走一遍
sudo -l
sudo -s 没有密码执行不成功
uname -r
cat /etc/*-release
find / -perm -u=s -type f 2>/dev/null
这里写出上面命令我收集到的有用信息
User www-data may run the following commands on ubuntu:
(root) NOPASSWD: /home/saket/encubuntu 16.04
4.10.0-28-generic
第一种提权:
这个挺符合的 查看用法就是 gcc 编译运行即可
python 起个 http 服务
第二种提权:
User www-data may run the following commands on ubuntu:
(root) NOPASSWD: /home/saket/enc
试了很多 密码一直错误 就没管
后面用第一种提权拿下之后 看到了/root/enc.cpp 也就是源码,里面的密码为 backup_password 并且复制了/root 下面的两个文件到该用户目录
sudo ./enc 输入密码 复制的两个文件如下
按照要求将 ippsec md5 得到366a74cb3c959de17d61db30591c39d1
试了一遍aes解了出来
通过对话得知 这是由 Victor 留给saket 的话,告诉了我们saket的密码为 tribute_to_ippsec
ssh直接连上去 因为 data权限 不能su切换用户
进来先 sudo -l 一下,获取到有意思的东西
(root) NOPASSWD: /home/victor/undefeated_victor
运行一下提示如下 很明显他要利用 /tmp/challenge 因为报错not found 所以我们可以去建一个文件看看是怎么回事
写入成功后
chmod 777 challenge 给予权限
sudo /home/victor/undefeated_victor 再次调用
那看来就是执行 challenge 里面的命令了 重新写入 su root
提权成功
后记
密码获取方法是不对的 我看了其他人写的wp 是要查找 backup 文件
find / -name '*backup*' 2>/dev/null
搜索包含 backup 名称的文件然后就可以搜索到
密码就在里面
这一点确实没想过
enc.cpp 源码,很简单的写法,普通用户可以获取到enc这个应用程序,逆向出来源码应该也可以找到密码吧,我不会逆向就没搞
undefeated_victor bash的代码
就是一个命令执行 给了个s和root的权限