OverTheWire Bandit 靶场通关解析(下)

介绍

OverTheWire Bandit 是一个针对初学者设计的网络安全挑战平台,旨在帮助用户掌握基本的命令行操作和网络安全技能。Bandit 游戏包含一系列的关卡,每个关卡都需要解决特定的任务来获取进入下一关的凭证。通过逐步挑战更复杂的问题,用户可以逐步提升其 Linux 系统操作和安全技能。

一、平台概述

OverTheWire 是一个提供各种网络安全游戏的平台,Bandit 是其最受欢迎的系列之一。Bandit 主要关注 Linux 系统基础知识,通过一系列逐步递进的任务,引导用户学习基本的命令行操作、文件管理、权限控制、脚本编写等技能。

二、如何参与 Bandit 挑战

  1. 注册和登录:无需注册,直接通过 SSH 连接到指定的服务器即可开始挑战。
  2. 连接服务器:每一关的连接方式和凭证会在上一关完成时提供,通常通过 SSH 连接。
  3. 解决任务:每一关都有特定的任务,用户需要通过执行正确的命令来解决问题并获取下一关的凭证。
  4. 获取下一关凭证:成功完成任务后,会得到进入下一关的密码,通过该密码登录下一关的服务器。

三、总结

OverTheWire Bandit 是一个极佳的学习和实践 Linux 基础知识的平台,逐步引导用户从简单的命令行操作到更复杂的文件和权限管理。通过完成 Bandit 的挑战,用户不仅能够提升自己的技术水平,还能够培养解决问题的思维能力。

主要技能包括

  • 基本的命令行操作(如 ls, cat, file, find 等)
  • 文件和目录管理
  • 权限控制和操作
  • 处理特殊文件名和字符
  • 脚本编写和自动化任务

Bandit 为学习网络安全的初学者提供了一个良好的起点,通过一步步的挑战,用户可以打下坚实的基础,为更高级的安全研究和实践做好准备。

一、Bandit Level 25

先用上一关的密码登录

命令和之前一样 

#!/bin/bash

myname=$(whoami)

cd /var/spool/$myname/foo
echo "Executing and deleting all scripts in /var/spool/$myname/foo:"
for i in * .*;
do
    if [ "$i" != "." -a "$i" != ".." ];
    then
        echo "Handling $i"
        owner="$(stat --format "%U" ./$i)"
        if [ "${owner}" = "bandit23" ]; then
            timeout -s 9 60 ./$i
        fi
        rm -f ./$i
    fi
done

从中我们了解到,文件夹“bandit24”中保存的任何文件都会被执行,如果文件是由“bandit23”创建的,则执行 60 秒后文件将被删除。如果我们想要“bandit24”的密码,我们需要编写一个将从 bandit24 文件夹执行的脚本。我们编写的脚本应该获取密码并保存在我们可以访问的位置(/tmp目录) 

拿到密码

gb8KRRCsshuZXI0tUuR6ypOFjiZbf3G8

二、Bandit Level 26

使用上一关密码登录成功

这一关需要自己编写爆破脚本(通过 for 循环一次一次尝试) 

#!/bin/bash

for i in {0000..9999}
do
        echo gb8KRRCsshuZXI0tUuR6ypOFjiZbf3G8 $i >> possibilities.txt
done

cat possibilities.txt | nc localhost 30002 > result.txt

思路是先将组合的密码存放入一个字典,再用字典爆破并保存结果

拿到密码 

iCi86ttT4KSNe1armKiwbQNmB3YJP3q4

三、Bandit Level 27

使用上一关密码登录成功

家目录下有个 key 文件,直接连接是不行的

通过查看配置文件可以看到 bandit26 的 shell 

bandit25@bandit:~$ cat /etc/passwd


bandit26:x:11026:11026:bandit level 26:/home/bandit26:/usr/bin/showtext

查看其内容 

#!/bin/sh

export TERM=linux

exec more ~/text.txt
exit 0
  1. exec more ~/text.txt

    • exec 命令用于执行指定的命令,但不同之处在于它不会创建新的进程,而是用新命令替换当前 shell 进程。这意味着,如果 more 命令成功执行,脚本将不会返回到其后续命令(如果有的话),因为 exec 之后的命令(在这个例子中是 exit 0)将不会被执行。
    • more 是一个常用的 Unix/Linux 命令,用于分页显示文件内容。当用户按空格键时,它会显示下一页的内容。按 q 键可以退出 more
    • ~/text.txt 是文件路径,~ 表示当前用户的家目录。所以,这行代码的作用是分页显示当前用户家目录下的 text.txt 文件的内容。
  2. exit 0

    • 这是一个 shell 命令,用于退出当前 shell 或脚本。退出状态码 0 通常表示成功执行。但由于前面的 exec 命令,这行代码实际上永远不会被执行,除非 more 命令由于某种原因失败(但这种情况很少见)。

因为 more 在终端上显示的内容量超过终端的大小,则更多工具将进入交互模式,直到我们没有查看文件中的所有内容或我们没有手动退出程序,命令才会退出

为了不让程序进行到 exit 0,我们应该停留在 more 阶段

ssh bandit26@bandit.labs.overthewire.org -p 2220 -i bandit26.sshkey

按“v”键将在由 VISUAL 和 EDITOR 环境变量定义的编辑器中打开当前行。如果这两个变量均未设置,则将使用 Vim。让我们看看按“v”会得到哪个编辑器 

应该是使用 Vim 编辑器,这样我们可以修改 shell

:set shell=/bin/bash

查看密码 

拿到密码

s0773xxkk0MXfdqOfPRVr9L3jJBUOgCZ

四、Bandit Level 28

接上一关

我们会看到该文件归 bandit27 所有,并且该文件的 SUID 位也已设置。这意味着如果我们使用二进制文件运行任何其他命令,该命令将具有与二进制文件所有者相同的权限(在这种情况下,命令将具有 bandit27 权限) 

拿到密码 

upsNCc7vzaRDx6oZC6GiR6ERwe1MowGB

五、Bandit Level 29

使用上一关的密码登录成功

在克隆前先创建文件夹 

使用 git clone 克隆(注意:要加上端口,详情见图

进入文件夹查看文件内容 

拿到密码

Yz9IpL0sBcCeuG7m9uQFt8ZNpS4HZRcN

六、Bandit Level 30

克隆的仓库但是看不到密码 

查看历史提交记录 

回复到之前的提交历史

成功拿到密码

4pT1t5DENaYuqnqvadYs1oE4QLCdjmJ7

七、Bandit Level 31

使用上一关的方式无法得到密码 

可以先查看分支,然后切换分支

查看提交历史 

恢复到某个历史记录 

成功拿到密码

qp30ex3VLz5MDG1n91YowTv4Q8l7CDZL

八、Bandit Level 32

和之前一样,这次分支并没有线索,但 git 还有个特性就是标签

成功拿到密码

fb5S2xb7bRyFmAvQYQGEqsbhVyJqhnDy

九、Bandit Level 33

这次您的任务是将一个文件推送到远程存储库 

并没有拿到密码,查看隐藏文件发现有 .gitignore

我们在文件中看到一行,*.txt这意味着如果在存储库文件夹中创建了任何扩展名为“.txt”的文件,则不应将其视为存储库的一部分。因此,如果我们尝试添加我们创建的新文件,它将不会被推送到远程存储库。因此,让我们删除此文件,然后推送该文件。 

成功拿到密码

3O9RfhqyAlVBEZpVb6LYStshZoqoSx5K

十、Bandit Level 34

使用上一关密码成功登录

输入命令测试,结果报错,将其转为了大写 

  • 当你运行 bash $0 时,bash 是一个命令,它会启动一个新的 Bash shell。
  • $0 作为参数传递给 bash,表示要运行的脚本名。因此,这个命令会创建一个新的 shell 并执行当前脚本,从而产生一个新的 shell 进程

接下来就是查看密码了 

成功拿到密码

tQdtbs5D5i2vJwkO8mEyYEyTL8izoeJ0

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Dison夏令营 Day 03】使用 Python 创建我们自己的 21 点游戏

21 点(英文:Blackjack)是一种在赌场玩的纸牌游戏。这种游戏的参与者不是互相竞争,而是与赌场指定的庄家竞争。在本文中,我们将从头开始创建可在终端上玩的玩家与庄家之间的二十一点游戏。 二十一点规则 我们将为从未玩过二十一点的读者提供…

【Python实战因果推断】6_元学习器1

目录 Metalearners for Discrete Treatments T-Learner 简单回顾一下,在之前的部分中,你们的重点是干预效果的异质性,也就是确定各单位对治疗的不同反应。在此框架下,您希望估算 或连续情况下的 。换句话说,您想知道…

“深入解析操作系统核心:进程管理与并发艺术“

操作系统中最核心的概念是进程:这是对正在运行程序的ー个抽象 并行 并发 “在任何多道程序设计系统中,CPU由一个进程快速切换至另ー个进程,使每个进程各运行几十或几百毫秒。严格地说,在某ー个瞬间,CPU只能运行ー个进程。但在1秒钟内,它可能运行多个进程,这样就产生并行的错觉…

【RAG】FoRAG:面向网络增强型长形式问答的事实性优化RAG

一、解决问题 在基于网络的长形式问答(Web-enhanced Long-form Question Answering, LFQA)任务中,现有RAG在生成答案时存在的问题: 事实性不足:研究表明,现有系统生成的答案中只有大约一半的陈述能够完全得…

SpringBoot学习04-[定制SpringMVC]

定制SpringMVC 定制SpringMvc的自动配置定制springmvc-configurePathMatch配置定制SpringMVC-拦截器Interceptor定制SpringMVC-CORS配置全局cors配置针对某个方法加跨域解决 WebMvcConfigurer原理定制SpringMVC-JSONJSON开发jackson的使用定制化json序列化和反序列化 JSON国际化…

Kafka面试必备:深度解析Replica副本的作用与机制

我是小米,一个喜欢分享技术的29岁程序员。如果你喜欢我的文章,欢迎关注我的微信公众号“软件求生”,获取更多技术干货! Hey大家好!我是小米,一个超级喜欢分享技术干货的大哥哥!今天咱们来聊聊阿里巴巴面试题中的一个热门话题:Kafka中的Replica副本作用。这可是个既基础…

供应商关系管理(SRM)中的供应商绩效评估

供应商绩效评估是供应商关系管理(SRM)的核心组成部分,它涉及到对供应商在合作过程中的表现进行全面的分析和评价。一个有效的供应商绩效评估系统不仅可以帮助企业识别和解决供应链中的潜在问题,还可以促进供应商的持续改进和优化&…

npm创建一个空的vue3项目的方法或者pnpm创建vue3项目

1、前提我们已经安装了npm,或者pnpm 2、我们用npm来创建vue3项目 快速上手 | Vue.js 官网地址 这里我安装是的 node v18.20.3 以下是安装过程 : npm create vuelatest 根据自己的需要进行创建即可。 3、我们用pnpm来创建vite vue3项目 pnpm create …

【算法专题--栈】栈的压入、弹出序列 -- 高频面试题(图文详解,小白一看就懂!!)

目录 一、前言 二、题目描述 三、解题方法 💧栈模拟法💧-- 双指针 ⭐ 解题思路 ⭐ 案例图解 四、总结与提炼 五、共勉 一、前言 栈的压入、弹出序列 这道题,可以说是--栈专题--,最经典的一道题,也是在…

LinkedIn被封原因和解封方法

对于初识领英和对领英生态规则不熟悉的人来说,很容易造成领英账号被封号(被限制登录)的情况,那么如何才能避免和解决领英帐号被封号(被限制登录)的难题呢? 领英帐号被封号或被限制登录主要会有两类情况。 首先要搞清楚, Linkedi…

“ONLYOFFICE 8.1版本评测:功能更强大,用户体验更佳”

最新版本的在线编辑器已经发布 ONLYOFFICE在线编辑器的最新版本8.1已经发布,整个套件带来了30多个新功能和432个bug修复。这个强大的文档编辑器支持处理文本文档、电子表格、演示文稿、可填写的表单和PDF,并允许多人在线协作,同时支持AI集成…

IP白名单及其作用解析

在网络安全领域,IP白名单是一项至关重要的策略,它允许特定的IP地址或地址范围访问网络资源,从而确保只有受信任的终端能够连接。下面,我们将深入探讨IP白名单的定义、作用以及实施时的关键考虑因素。 一、IP白名单的定义 IP白名单…

利用python爬取上证指数股吧评论并保存到mongodb数据库

大家好,我是带我去滑雪! 东方财富网是中国领先的金融服务网站之一,以提供全面的金融市场数据、资讯和交易工具而闻名。其受欢迎的“股吧”论坛特别适合爬取股票评论,东方财富网的股吧聚集了大量投资者和金融分析师,他们…

GOROOT GOPATH GOPROXY GO111MODULE

GOROOT GOROOT代表Go的安装目录。可执行程序go(或go.exe)和gofmt(或gofmt.exe)位于 GOROOT/bin目录中。 配置GOROOT环境变量,其值为Go的安装目录;然后在环境变量PATH中添加GOROOT/bin路径。 注意:GOROOT变量只是代表了安装目录,不…

DiskGeniusV5.6.0.1565发布!

DiskGenius是一款功能强大的磁盘管理和数据恢复工具,V5.6.0.1565上线。新版本变化比较大,增加新的功能,修正已经问题,值得试一下。提醒大家,磁盘管理软件涉及数据安全,请始终使用最新版本! 下面…

Linux开发讲课18--- “>file 2>1“ 和 “2>1 >file“ 的区别

在 Bash 脚本和命令行操作中,输出重定向是一项基本且强大的功能。它允许用户控制命令的输出流,将数据从一个地方转移到另一个地方,实现更加灵活和高效的工作流程。本文旨在记录 Bash 中几种常见的输出重定向方法,包括: -. > fi…

计算机Java项目|基于SpringBoot的新闻稿件管理系统

作者主页:编程指南针 作者简介:Java领域优质创作者、CSDN博客专家 、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、腾讯课堂常驻讲师 主要内容:Java项目、Python项目、前端项目、人工智能与大数据、简…

密码学:用随机函数隐藏指纹

英文中e的出现频率高,加密后,频率最高的那个符号代表e。这是历史上的一次真实案例。这些符号的概率,叫做“指纹”。 把e加密成2个符号,用随机函数选择,例如70%概率下选择符号1,30%选择符号2。解密时&#…

启智畅想:AI集装箱箱号识别系统,解决方案提供商

AI集装箱箱号识别系统 当前,智能卡口管理行业正处于快速发展的阶段。随着物联网、大数据、人工智能等技术的不断进步,智能卡口管理系统已经能够实现对集装箱运输的全程跟踪、监控和管理,大大提高了管理效率和安全性。然而,市场上现有的智能卡口管理系统仍然存在一些痛点问题,如…

Spring容器的启动过程及留给开发者的可拓展点

一、Spring容器启动经过了哪些过程? 1、首先需要加载读取到应用环境中的配置,比如要加载的bean的class的包路径等信息。 【读取配置】 2、再就需要找到哪些类是需要spring进行类实例创建并管理的,扫描到具体的Class及Class元信息上的一些注…