vulhub Kioptrix4
vulhub Kioptrix4 walkthrough
关于配置只给了vmdk,无vmx,需要自建虚拟机:
新建虚拟机,选择自定义模式,安装来源选择“稍后安装”,然后在客户机操作系统选择“其他”,选择位置为解压后放置vmdk文件的文件夹,设置为1核512M,一路默认,在选择磁盘处选择“使用现有虚拟磁盘”,然后选择vmdk文件,出现提示后选择“保持现有格式”。
0x01 端口扫描
开了两个smb、web、ssh
0x02 smb渗透
可以匿名访问,但是没有有效信息,先放下
0x03 web渗透
目录爆破发现一个数据库文件和登录页,先看sql文件:
创建了members表,其中有username,password,id列,插入
john@1234
的信息
拿john的凭据去登录:
都登录失败,测sql注入:
mypassword处有注入点
一句话可以进,随意修改name值发现cookie不会变,尝试破解cookie
只能老老实实注入了
存在布尔盲注
1 |
|
拿到两个凭据:
- john@MyNameIsJohn
- robert@ADGAdsafdfwt4gadfga==
登录web页面好像什么用也没有,尝试ssh:
1 |
|
全部登录成功,一下两个shell
白高兴,两个全是不能用的shell
尝试注入写马:
反弹shell:
0x04 提权
简单枚举无提权向量,且内核版本很低,考虑内核提权
遗憾的是www-data用户无法使用wget
kshell 修补
横向回到john用户,期望这个用户可以用wget,尝试修补shell环境:
可用指令有echo,使用
echo os.system("/bin/bash")
修补shell:
好好好,可以确定wget是用不了了
查看是否有gcc
没装gcc,果然可以放弃内核提权了
UDF提权
udf提权:上传自定义动态链接库so文件–system_exec达成命令执行,若mysql进程为root名下,则可以root身份命令执行
本机满足的利用条件:
- 数据库管理员权限运行
- 数据库的版本信息不高于 5.5.6
查看对内网开启的端口:
1 |
|
尝试无密码登录:
满足提权要求,开始udf提权:
查看mysql库–func表下是否已经有可命令执行的so文件,发现已经存在,直接利用:
whoami回显为NULL,无须害怕直接弹shell,拿到root shell
0x05 反思补足总结
wget 无法执行(todo)
root shell也无法运行wget
不过可以使用curl -o替代
limited shell绕过
echo os.system('/bin/bash')
vim
:
nmap的smb用户枚举
1 |
|
UDF提权
- 已自带sys_exec函数:见上文
- 未自带需自行上传so文件: blog.csdn.net/m0_66299232/article/details/130823248 、或参照exp1518.c
使用条件:
- 可使用的数据库账户有
select insert create
权限 secure_file_priv
为空:该参数规定了数据库可以操控的目录- 数据库进程在目标(高权限)用户名下:使用UDF命令执行即用该账户命令执行
- (非必要) gcc:在本机或靶机编译为so文件都可
使用linEnum对提权向量初步枚举
可完成大量基础向量枚举,但无法探测内核漏洞,故判断为内核提权时仍需跑linpeas
0x06 靶机总结
- 目录扫描:开启了smb服务、web服务、ssh服务
- smb渗透:没有任何可以查看的共享文件/目录
- web渗透:通过盲注可拿到ssh登录凭据,绕过受限shell即可拿到立足点;或通过注入写马拿到www-data的立足点
- 提权:枚举发现mysql服务为root用户运行,且在网站配置文件拿到数据库root凭据,登录后在mysql库中发现已自带命令执行UDF函数,利用其反弹回root shell