0x00 引子
某日在安全客上刷到了这个文章《我是如何拿到OSCP认证的?》,读完之后感觉太TM励志了,教练我也考OSCP,说干就干,于是随手搜索了一些备战OSCP的分享,看了一些准备知识,先从靶场练起。
0x01 准备工作
注册HTB(Hack The Box)的过程就不说了,网上也有很多教程,在登陆之后,看了一眼大概有100多台靶机,我挑了一个评分比较高,难度比较低的开始入手。靶机名字为【Postman】,名字看不出什么端倪,先连接HTB指定的v*n,下载好v*n配置,直接用命令进行连接:
$ openv*n yourfile.ov*n
因为我这里用的kali,所以直接有这个命令,如果你用的其他系统,可以在网上搜索一些客户端。但是我建议大家都在Kali上进行渗透。
0x02 User权限
nmap一把梭,上来先扫一通。
开了两个web服务,80端口是一个应该是一个静态页面,仔细查找一番发现没什么利用点。
10000端口是Webmin,今年有几个远程RCE漏洞暴露出来,应该有突破点。直接访问10000端口,是webmin的后台的登陆地址,先试试几个弱口令,没想到会提示尝试次数过多,看来**是不行了。
网上又搜了新爆出来都几个相关EXP,发现都需要登陆,看来这条路暂时也不通。尝试扫描更多的端口,这时候突然看到6379的端口开着,显示Redis4.x版本。
直接上MSF利用4.X&5.X的未授权远程代码执行,没想到一直报错,显示漏洞利用成功,却没有建立会话。
google一下错误原因,显示可能是版本问题,于是更新msf到最新版。
$ apt update
$ apt install metasploit-framework
然后尝试还是显示没有建立会话,目前还不清楚哪里有问题,于是用vulhub在本地建立起redis的服务,试了一下,msf没有问题。同时还用了vulhub提供的exp,也同样没有问题,但是在这个靶机上怎么也不起作用。
目测可能要手工利用,由于我是新安装的Kali,需要先安装redis。
$ apt install redis-server
关于redis核心利用点是,通过没有身份校验的redis服务进行登陆,同时指定config dir和config dbfilename的路径与名称,达到把本地公钥存储到远程服务器上,这时候在通过ssh进行远程登陆。可以获得名为redis的shell。
首先在本地生成sshkey
$ ssh-******
然后进行redis登陆
$ redis-cli -h 10.10.10.16
查看 config dir的路径和config dbfilename的名称
10.10.10.160:6379> config get dir
10.10.10.160:6379> config get dbfilename
发现dir的路径已经放在redis用户的.ssh目录下了,同时dbfilename也已经设置为authorized_keys,然后添加本地的公钥到redis上,并保存。
10.10.10.160:6379> set key "\n\n\nssh-key\n\n\n" #在前后加上三个\n
10.10.10.160:6379> save
这个时候,可以直接用ssh登录名为redis的账号了,目前是一个权限比较低的shell。
$ ssh -i id_rsa [email protected]
尝试查看/home下的user flag,发现没有权限,但是已经找到user的名称了。
随便翻看了几个目录,没有发现有用信息,先看看 .bash_history 文件,突然发现一个备份的文件,直觉告诉我,这个应该就是突破口了。
查找该文件,发现是一个ssh的私钥的备份,有了私钥,就直接可以**密码了。
$ find / -name id.rsa.bak
首先是用ssh2john生成可**的hash值
$ /usr/share/john/ssh2john.py id_rsa > crake.txt
然后利用john**密码
$ john --wordlist=/usr/share/wordlists/rockyou.txt crake.txt
这时候尝试用ssh登陆,发现登陆不上去。在.bash_history看到修改过ssh_config和sshd_config猜测应该是做了限制。
这时候直接用redis权限通过su切换Matt用户。
0x03 Root权限
回头看Webmin,用刚拿到的Matt账号和密码登陆,没想到直接登陆成功了。
直接用msf尝试最近爆出的几个漏洞。
没想到第一个就成功了,root是白送的
0x04 总结
在整个渗透的过程中,思路是对的,但是走了很多弯路,浪费不少时间。对这次渗透总结了下面几点:
- 1.对某个漏洞的研究,一定要深入到原理,这样才能做到心中有数,随机应变。
- 2.不要过度工具与脚本,有时候还需要手工测试。
- 3.前期准备工作做足,不要存在侥幸心理,有时候正确方向可能就在那里。
- 4.学会英语,学会交流。
0x05 附录
涉及知识点
- Redis 4.x/5.x 未授权访问漏洞
- Webmin软件包更新远程命令执行
- john
- ssh2john
- ssh
相关课程推荐
戳我限时免费观看
↓
M1系列课丨WEB安全入门急速训练营 1-5 《黑客是如何入侵服务器实现批量挖矿》
全套可点击下方链接
↓
本文参考链接
Beginners Guide for John the Ripper (Part 2)
linux ssh_config和sshd_config配置文件