OverTheWire Bandit 怎么刷:34 关分段考点、连接参数与后续靶场

教程资源2小时前发布 一方
1 00

OverTheWire 的 Bandit 是一套免费、在线、不用注册的命令行闯关练习。它从一次 ssh 登录开始,一关一关往下走,下一关的密码就藏在上一关能碰到的地方。考的是 ls、cat、grep、find、ssh 这类日常命令,不是渗透攻击。适合刚接触 Linux、想把命令真正用熟的人。

它是什么,适合谁

官方对 Bandit 的定位很直接:面向纯新手,教的是玩其他靶场之前必须具备的基础。游戏按关卡组织,通关一关就拿到进入下一关的信息。

每一关在官网都有独立页面,写明目标与「你可能会用到的命令」。所以它更像一本带检查点的命令手册,而不是考试。页面也不给提示答案,只给方向。

它不需要注册,也没有账号体系。第 0 关的用户名和密码都公开写在页面上,连上去就算开局。题目也不涉及漏洞利用,绝大多数关卡只是「找到那个文件,把它读出来」。

官方在开场提示里就说了:你会遇到很多完全不知道要干什么的情况,别慌,这个游戏的目的就是让你学会读新东西。这句话值得先接受,前几关的茫然是设计的一部分。

连接:一条 ssh 命令和三个参数

第 0 关页面给的连接信息只有四项。主机 bandit.labs.overthewire.org,端口 2220,用户名 bandit0,密码 bandit0。

端口不是默认的 22,这一点最容易漏。命令因此长这样:ssh bandit0@bandit.labs.overthewire.org -p 2220。首次连接会问是否信任主机指纹,输 yes 之后输入密码即可。密码输入时屏幕不显示,这是正常的。

两个坑要提前知道。用虚拟机且网卡是 NAT 模式时,可能反复遇到 broken pipe。官方给的解法是在 /etc/ssh/ssh_config 里加一行 IPQoS throughput,仍不行就改桥接模式。

另一个坑在客户端。Windows 上用 PowerShell 连 ssh,到第 25 关那一关可能会卡住,官方建议换成命令提示符。这不是网络问题,是 PowerShell 的行为差异。

每关通关后拿到的字符串,就是下一个用户的密码。官网把各关密码统一放在 /etc/bandit_pass 目录下,权限按关卡收窄,你能读到的通常只有自己这一级和下一级。

34 关分三段:每段在考什么

关卡编号从 0 到 33,一共 34 级。这个数字容易数错:官网最后一级页面是「Level 33 → Level 34」。而 bandit34 那一页只写了一句「level 34 does not exist yet」,所以能玩的止于 33。

关卡区间主要考点常见命令
0 → 10登录、目录结构、按属性找文件ssh、ls、cat、file、find、du
11 → 20编码与压缩、配置陷阱、setuidtr、base64、xxd、tar、gzip、bzip2、strings
21 → 33受限 shell 与逃逸、git 仓库ssh、more、vi、id、git

前一段的节奏慢。第 4 关要你在一个目录里找出其中可读的文件,考的是 file 与 find 的组合。

第 11 关开始上强度。data.txt 被 rot13 旋转过,官方建议的命令列表里同时给了 grep、sort、uniq、strings、base64、tr、tar、gzip、bzip2、xxd,因为那串数据要一层层剥。

第二段开始出现「环境本身跟你作对」的题。第 18 关的 home 目录里,.bashrc 被人改过,一登录就把你踢出去,得想办法在不进交互 shell 的前提下读文件。第 19 关换成 setuid 二进制:执行时不带参数,它会告诉你怎么用,用它去读 /etc/bandit_pass 里的密码。

最后一段考的是跳出舒适区。第 25 关的用户 shell 不是 /bin/bash,得先搞清楚它是什么、怎么工作,再想办法逃出来,常用的是 more 和 vi 里的命令执行。

第 31 关换成 git。仓库地址是 ssh://bandit31-git@bandit.labs.overthewire.org/home/bandit31-git/repo,端口仍是 2220。这一关要在你自己的机器上 clone,所以本地得装 git。

卡住的处理:先查手册,再决定看不看攻略

官方给的求助顺序值得照做。知道命令但不会用,先 man 命令名;命令没有手册页,多半是 shell 内建,用 help 加命令名;还是不明白,再去搜。

页面里还贴了一份 Ubuntu 的用户命令入门手册,适合完全没碰过终端的人先读一遍。读完再进第 0 关,会少走很多弯路。

密码本身不构成学习成果,思路才是。很多人在第 12 关那一串压缩包里直接找现成命令,跳过以后遇到第 26 关的 shell 逃逸照样卡住,因为缺的是「先观察再动手」的习惯。

跳过可以有,但要讲方法。某一关卡超过四十分钟仍无进展,可以看一眼攻略的「用了哪个命令」,然后退回去自己敲完剩下步骤。直接抄整条命令,等于把这一关的练习题变成阅读题。

官方还提供了聊天室,卡死时去问人比翻十篇博客快。另外网上攻略里的密码经常和当前机器对不上,因为各关密码会随环境调整,所以攻略只用来对照思路。

刷完接什么:Natas、Leviathan 与命令行文档

官网的靶场总览给了一条推荐顺序。先 Bandit 打 Unix/Linux 基础,然后从 Natas、Krypton、Leviathan 里挑一个。

三者的方向各不相同。Natas 是服务端 Web 安全,Krypton 是密码学,Leviathan 是逆向工程。再往后是 Narnia、Behemoth、Utumno、Maze 这一串二进制利用。

如果想顺着命令行继续走,Leviathan 是最平滑的过渡。它只有 8 关,官方标称难度 1/10,要求「不需要编程知识,只要常识和基础 nix 命令」。

登录方式同样是固定账号:用户 leviathan0,主机 leviathan.labs.overthewire.org,端口 2223,密码也是 leviathan0。它开始让你用 ltrace、strace 观察程序行为,为后面的逆向铺路。

如果更想往 Web 方向走,就换 Natas。它和前两个不一样,没有 SSH 登录。每关是一个独立站点 http://natasX.natas.labs.overthewire.org,用 natas0 / natas0 起步,密码存在 /etc/natas_webpass 下。

基础文档方面,最省事的是把 man 当教材:每关页面列出的命令,逐个 man 一遍,看 SYNOPSIS 和几个例子就够。补终端手感可以看Missing Semester 那九讲。手边只有手机时,Termux 使用指南能让你在安卓上练同一套命令。

节奏安排与上手建议

按每天三到五关算,34 关大约两周走完,遇到 shell 逃逸和 git 那几关可以多留一天。每关别急着往下冲,先把「为什么是这个命令」写一句在笔记里,比记密码有用。

适合的人群很明确。刚装完 Linux、看得懂报错但不知道下一步敲什么的人;准备转运维或安全、需要补命令行底子的人;想找一个有即时反馈、又不想注册账号的练习场的人。

不适合两类人。已经熟练使用 find、grep、管道和权限位的人,前二十关会显得太慢;想学漏洞利用的人,Bandit 里没有提权链和内存破坏,那部分要从 Narnia 往后走。

上手就三件事:把 ssh 命令和 2220 端口抄在便签上,把 man 的用法练熟,把每关的命令记一行。剩下的,交给那 34 级台阶。


相关地址

以下为文中站点的官方入口,关卡列表、连接参数与后续靶场以这些页面为准。

  • OverTheWire 主站:https://overthewire.org/
  • Wargames 总览与推荐顺序:https://overthewire.org/wargames/
  • Bandit 首页(关卡列表):https://overthewire.org/wargames/bandit/
  • Bandit 第 0 关(连接信息):https://overthewire.org/wargames/bandit/bandit0.html
  • Natas(Web 安全):https://overthewire.org/wargames/natas/
  • Leviathan(逆向入门):https://overthewire.org/wargames/leviathan/
  • 用户命令入门手册(Ubuntu manpages):https://manpages.ubuntu.com/manpages/noble/man1/intro.1.html
© 版权声明

相关文章