前言~
Bandit是一个学习linux命令的闯关游戏平台,比较类似于ctf,通过闯关的模式,不断的学习新的命令,对于程序员亦或者安全爱好者来说都是一个不错的学习平台
目录导航
Level 0 → Level 1 | Level 5 → Level 6 |
---|---|
Level 1 → Level 2 | Level 6 → Level 7 |
Level 2 → Level 3 | Level 7→ Level 8 |
Level 3 → Level 4 | Level 8→ Level 9 |
Level 4 → Level 5 | Level 9 → Level 10 |
根据给出的提示信息,使用xshell登录或者linux直接远程连接ssh登录
SSH信息
主机:bandit.labs.overthewire.org
端口:2220
开始闯关
Level 0 → Level 1
这里采用的是linux命令行远程ssh,命令行输入: ssh -p 2220 [email protected]
回车后,输入password:bandit0
远程连接测试平台
ssh命令格式:
ssh + -p ssh开放端口 + 客户端用户名@服务器ip地址或者域名
连接成功后,直接ls查看当前命令下的文件,然后cat读取下一关密码即可
关于 ls命令的其它参数用法可以参考我的另一篇博客:
Level 1 → Level 2
利用上一关得到的密码ssh登陆
这次登陆的用户为bandit1,命令行输入:ssh -p 2220 [email protected]
接着利用上一关得到的密码ssh登陆
ls发现文件名是一个-,但是这个在linux中有特殊意义导致直接cat不好用
使用./来注明是当前路径下的,就可以读取到了
通关命令:cat ./-
密码:CV1DtqXWVFXTvM2F0k09SHz0YwRINYA9
Level 2 → Level 3
ls查看,发现文件名中有空格,可以用双引号把文件名包裹起来,绕过空格
通关命令:cat "spaces in this filename"
密码:cat "spaces in this filename"
Level 3 → Level 4
查看提示
有时候linux命令行登陆ssh会出bug,导致一直链接不上练习平台,这时候新建一个终端重新登陆即可
查看了说明,通关密码存放于hidden目录下,直接cd到该目录下,然后ls -a查看隐藏文件,cat读取即可
通关命令:cat .hidden
密码:pIwrPrtPN36QITSp3EQaw936yaFoFgAB
Level 4 → Level 5
老规矩,先看说明
捕抓到关键字,人类可读,咋感觉有种ctf套路的样子
ls -al
查看所有文件,接着根据关键字,使用命令:file ./*
查看当前目录下的所有文件类型,接着发现txt类型的文件,在回想人类可读,不难想出密码就存放于此
通关密码:koReBOKuIDDepwhWk7jZC0RTdopnAYKh
Level 5 → Level 6
跟上一关套路差不多只是多了点条件
根据给出的条件,切换到inhere目录下,使用ls -r 时发现有足足有20个目录,一个一个的找是不存在的,既然题目给出了文件的大小,直接使用find命令查找即可
通关命令:find . -type f -size 1033c
这里我解释一下该命令的具体参数及作用
-type f
指定要搜索的文件为普通文件(人类可读嘛~),-size 1033c
指定搜索的文件大小为1033字节,更多的其它参数用法可以参考我另一篇博客文章:
通过秘钥:DXjZPULLxYr17uwoI01bNLQbtFemEgo7
19.09.22
Level 6 → Level 7
距离上一次更新过去了一个多月了,因为工作原因,所以一直没更新到,回来,话不多说,下面开始更新
老规矩,先看题目
使用第5关得到的秘钥远程连接测试平台
链接上去之后,我们根据提示找文件
通关命令:find / -user bandit7 -group bandit6 -size 33c 2>/dev/null
这里-user
指定user组,-group
指定group组,-size
指定大小,后面的2>/dev/null因为find命令在根目录下查找会经常有很多权限的报错信息,所有在linux中通常用这种方式将错误信息重定向到“黑洞中”,也就是如果你的命令出错的话,错误报告直接就删除了,不会显示在屏幕上
不理解2>/dev/null
的含义可以参考以下文章
第六关通关秘钥:HKBPTKQnIay4Fw76bEy8PVxKEDQRKTzs
Level 7 → Level 8
老规矩,先看题目要求
题目说通关秘钥紧靠单词millionth,那么我们使用管道符在data.txt中搜索这个单词即可
关于管道符的使用可以参考以下文章
通关命令:cat data.txt |grep millionth
通关秘钥:cvX2JJa4CFALtqS87jk27qwqGhBM9plV
Level 8 → Level 9
这关需要用到sort和uniq命令,不懂该命令的可以先参考以下文章
题目要求:
这题还是在data.txt文件里面找内容,并且捕抓到关键字唯一一行,第一时间想到了uniq
命令了,但是使用之前需要用sort命令对文本进行排序,因为uniq命令是通过判断上下两行是否一样来判断的,所以用sort排序一下然后在uniq就能找到唯一出现的那一行了,uniq -u
选项的意思是仅显示出一次的行列
通过命令:sort -n data.txt |uniq -u
通过秘钥:UsvVyFSfZZWbi6wgC7dAFyFuR6jQQUhR
Level 9 → Level 10
这题又出现了人类可读,并且多了个特殊符号" = ",我感觉到了一股浓浓的ctf味道
直接使用cat命令后出现了一堆乱码,我就知道没那么简单
本来想直接使用vim 打开然后搜索关键字" = ",但是打开后直接卡死,根本没法进行搜索,这里推荐使用strings命令,过滤掉乱码,获取可打印的字符。这里解释一下strings命令,它主要用来提取和显示非文本文件中的文本字符串,比如在对象文件或二进制文件中查找可打印的字符串
通关命令:cat data.txt |strings
输入命令后根据提示寻找以几个“ =”字符 相关的字符串
通关秘钥:truKLdjsbJ5g7yyJ2X2R0o3a5HQJFuLk
2019.10.25