本文最后更新于:星期三, 一月 2日 2019, 3:47 下午

这是一个让人熟悉linux操作的一个wargame,挺有意思的 网站

bandit0

直接ssh连上去,cat readme 拿到下一关的密码

密码:boJ9jbbUNNfktd78OOpsqOltutMc3MY1

bandit1

这一关它将密码藏在 - 文件中,以’-‘作为文件名,代表标准输入流或者标准输出流,要显示 ‘-‘文件的内容

需要用 cat ./- 来打印出来

密码:CV1DtqXWVFXTvM2F0k09SHz0YwRINYA9

bandit2

这关它将密码存在 spaces in this filename这个文件中,但是直接cat 的话不行,要在文件名左右加上”,

通过 cat “spaces in this filename”打印密码

密码:UmHadQclWmgdLOKQ3YNgjWxGoRMb5luK

bandit3

进到inhere的目录下,ls发现没有东西。通过 ls -al 将隐藏的文件也显示出来,发现有个.hidden文件。在linux下文件名以.开头的都默认会隐藏起来。 通过 cat .hidden打印密码

密码:pIwrPrtPN36QITSp3EQaw936yaFoFgAB

bandit4

发现inhere中有好多个文件,文件名都以’-‘开头,所以不能直接 用cat命令+文件名,文件名前加./

用file 命令查看目录下文件的类型,发现有个ASCII text和别的都不一样,密码就在这个文件里面

bandit4@bandit:~$ ls
inhere
bandit4@bandit:~$ cd inhere/
bandit4@bandit:~/inhere$ ls
-file00  -file02  -file04  -file06  -file08
-file01  -file03  -file05  -file07  -file09
bandit4@bandit:~/inhere$ file ./*
./-file00: PGP\011Secret Key -
./-file01: data
./-file02: data
./-file03: data
./-file04: data
./-file05: data
./-file06: data
./-file07: ASCII text
./-file08: data
./-file09: data

密码:koReBOKuIDDepwhWk7jZC0RTdopnAYKh

bandit5

题目给的提示:

The password for the next level is stored in a file somewhere under the inhere directory and has all of the following properties:

human-readable
1033 bytes in size
not executable

进入inhere文件夹,可以发现有很多目录,结合题目给的提示,用find命令查找文件

find -type f -size 1033c
-type设置查找文件的属性 f是普通文件
-size指定查找的大小

bandit5@bandit:~/inhere$ find -type f -size 1033c
./maybehere07/.file2

密码:DXjZPULLxYr17uwoI01bNLQbtFemEgo7

bandit6

题目提示

The password for the next level is stored somewhere on the server and has all of the following properties:

owned by user bandit7
owned by group bandit6
33 bytes in size

文件在服务器的某个位置,文件的用户是 bandit7 群组是 bandit6,大小为33c

用命令

find / -user bandit7 -group bandit6 -size 33c
会出来一堆东西,但是又权限的只有
/var/lib/dpkg/info/bandit7.password
用cat将它内容打印出来

密码:HKBPTKQnIay4Fw76bEy8PVxKEDQRKTzs

bandit7

这关密码存在 data.txt中,并且密码在millionth这个单词后面,用grep命令

grep millionth data.txt
millionth    cvX2JJa4CFALtqS87jk27qwqGhBM9plV

密码:cvX2JJa4CFALtqS87jk27qwqGhBM9plV

bandit8

密码存储在data.txt中,并且只出现一次

用sort命令给data.txt的内容排序,同时用uniq命令忽略文件的重复行

sort data.txt | uniq -u 
-u 参数是只显示出现一次的行列

bandit8@bandit:~$ sort data.txt | uniq -u
UsvVyFSfZZWbi6wgC7dAFyFuR6jQQUhR
bandit8@bandit:~$ 

密码:UsvVyFSfZZWbi6wgC7dAFyFuR6jQQUhR

bandit9

密码存储在data.txt中,并且以几个 “===”开头

用strings 命令打印data.txt的可见字符,用grep命令筛选出包含 “===”的字符串

bandit9@bandit:~$ strings  data.txt | grep "=="
<========== the?
========== password
*========== is
:========== truKLdjsbJ5g7yyJ2X2R0o3a5HQJFuLk

密码 : truKLdjsbJ5g7yyJ2X2R0o3a5HQJFuLk

bandit10

密码存储在data.txt中,并且被base64加密过,这里用到的命令是base64

base64用法:
格式:base64 file
从指定的文件file中读取数据,编码为base64字符串输出。
格式:base64 -d file
从标准输入中读取已经进行base64编码的内容,解码输出。
bandit10@bandit:~$ base64 -d data.txt 
The password is IFukwKGsFW8MOq3IRFqrxE1hxTNEbUPR

密码:IFukwKGsFW8MOq3IRFqrxE1hxTNEbUPR

bandit11

题目提示所有大小写字母位置都旋转了13个位置,这里用到了tr命令

tr  参数 前面的是原字符集,后面的是要替换的字符集
-c或——complerment:取代所有不属于第一字符集的字符;
-d或——delete:删除所有属于第一字符集的字符;
-s或--squeeze-repeats:把连续重复的字符以单独一个字符表示;
-t或--truncate-set1:先删除第一字符集较第二字符集多出的字符。

tr能使用的字符类:
[:alnum:]:字母和数字
[:alpha:]:字母
[:cntrl:]:控制(非打印)字符
[:digit:]:数字
[:graph:]:图形字符
[:lower:]:小写字母
[:print:]:可打印字符
[:punct:]:标点符号
[:space:]:空白字符
[:upper:]:大写字母
[:xdigit:]:十六进制字符


用法:
转换大小写:
echo "HELLO WORLD" | tr 'A-Z' 'a-z'
or 
echo "HELLO WORLD" | tr '[:upper:]' '[:lower:]'

这一题输入的命令

bandit11@bandit:~$ cat data.txt | tr 'a-zA-Z' 'n-za-mN-ZA-M'
The password is 5Te8Y4drgCRfCx8ugdwuEX8KFC6k2EUu

密码:5Te8Y4drgCRfCx8ugdwuEX8KFC6k2EUu

bandit12

未完待续


wargames      bandit

本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!