靶机开放了22/ssh , 80/http端口服务
没有啥发现
登陆80web页面,进行信息收集,在源代码和页面中似乎都没发现什么信息
其中webdav很有意思,我们看看这是什么东西,非常有用
同时目录扫描我们可以再完善一下,gobuster的扫描默认没有如下几种类型,往往可能遗漏一些有价值的信息,可以-x来指定
gobuster dir -u http://192.168.88.137 -x rar,,zip,sql,txt -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt
有个tips.txt值得关注,去看看发现提示了有个creds.txt,但是并不知道在哪儿
这时候我们没思路了,想到再试试UDP协议下面有没有突破,我们再扫描一遍试试,发现69端口可能是开放的,而且是个tftp协议
我们试一试tfcp,一般也用它来传输文件,出题经常会用这个协议。但是它无法列出文件有啥
只能用报错的方式才知道有什么文件,但是我们想到之前提示看到的有个creds.txt文件,我们可以get下来,上面同样也有webdav的账号密码
访问webdav目录,发现需要用户名密码登陆,于是我们使用kali下的字典生成器cewl工具爬取该页面存在的密码,并生成字典txt文件
生成密码本后,我们使用kali中hydra九头蛇工具,指定txt密码本,对目标进行爆破
hydra -L 1.txt -P 1.txt 192.168.88.137 http-get /webdav -v
(-L 指定用户名 -P 指定密码 http-get 请求方式)
爆破出账号密码yamdoot:Swarg
最新kali之davtest_davtest用法-CSDN博客
遇到webdav就要想到用davtest看看有哪些权限,扫描得到结果,重点看检测到的有执行权限的文件,发现php是有执行权限的
davtest -url http://192.168.88.137/webdav -auth yamdoot:Swarg
搜到了一个cadaver的工具,简单来说就是作用于cadaver-Unix的命令行WebDAV客户端
那么我们就可以用cadaver工具连接webdav,用爆破出的密码用户登录
cadaver http://192.168.88.137/webdav
既然前面可以执行权限的php,那么我们就上传的shell文件
监听并且访问页面拿到初始权限shell
我们看看当前用户有哪些文件是可以写的
find / -writable -type f 2>/dev/null
有很多无用的信息,我们尝试删除一些。后面发现的第一个文件就很有意思,尤其是这种shell的文件有一些权限,还有motd这种应用的也是很重要的
先看一下hell.sh有哪些信息
得到一串brainfuck的密文,解密出来猜测是一个密码
看看有哪些用户,发现了 另外两个inferno,narak用户
那么我们就登录一下ssh试试,发现这可以登录到inferno用户
Linux motd详解-CSDN博客
进去到我们之前看的/etc/update-motd.d/文件里面,在motd里面登录ssh或者啥总是要提供一些欢迎信息,总之00header都是排在最先去显示出来的,而update是对motd进行更新的这样一组脚本,所有我们首先想到要利用这样能够脚本执行性的这样一个应用
.d指的是目录,目录里面是脚本,这个linux目录结构规定的一个常规的做法
所以我们看这个00header
看里面的内容,显示是执行的sh,里面还有这个printf语句。那么我们就可以把我们的反弹shell写上去
成功,就是靶机root权限,直接拿下靶场
参考视频:
「红队笔记」靶机精讲:Narak:不懂tftp、dav和motd渗透,就真的会觉得很brainfuck。_哔哩哔哩_bilibili