美文网首页
OverTheWire Bandit Writeup (1-10

OverTheWire Bandit Writeup (1-10

作者: 蚁景科技 | 来源:发表于2018-08-08 09:56 被阅读37次

    OverTheWire是一个wargame网站。其中Bandit是一个适合学习Linux指令的游戏,主要是考察一些基本的Linux命令行操作。规则是每一关利用提供的主机加端口和上一关得到的密码通过ssh进入指定的环境,按照要求拿到指定的key,而得到的key又作为下一关的密码。 

    网站:http://overthewire.org/wargames/bandit/


    Level0-1

    描述:需要你使用ssh登陆bandit.labs.overthewire.org端口是2220.用户名和密码都是bandit0,然后使用ls,cd,cat,file,du,find等命令,查看一个叫readme的文件,里面存储了到下一关的密码。

    sshbandit0@bandit.labs.overthewire.org-p2220

    登录之后,就看到欢迎界面,和一些列说明,包括一些规则说明,提示等等

    查看文件,找到有用的信息

    bandit0@bandit:~$ls

    readme

    bandit0@bandit:~$catreadme

    boJ9jbbUNNfktd78OOpsqOltutMc3MY1

    bandit0@bandit:~$

    Level1→2

    通过上一关得到的密码登录bandit1

    bandit0@bandit:~$sshbandit1@localhost

    描述:下一关的密码存储在家目录下的“-”文件中。

    这里考察是我们对linux目录操作的理解,因为linux中“-”代表的是“进入此目录之前所在的目录”,所以不能直接使用”cat-“来查看。加上文件的路径就可以了

    bandit1@bandit:~$ls-al//查看当前目录下所有文件

    bandit1@bandit:~$cat./-

    CV1DtqXWVFXTvM2F0k09SHz0YwRINYA9

    Level2→3

    使用前一关的密码登录bandit2

    bandit0@bandit:~$sshbandit2@localhost

    描述:下一关的密码存储在家目录下一个含有空格的文件中。这里考察我们对linuxshell转义符的理解,我们只需要把空格进行转义即可,或者用”“包裹也可以。

    Level3→4

    使用前一关的密码登录bandit3//后续就不再重复写了,每一关都是这样

    描述:下一关的密码存储在inhere目录下的一个隐藏文件中。这里考察的是ls命令的用法,默认情况不显示隐藏文件,只要加上-a就好了,隐藏文件是以”.“开头的,然后cat查看。

    bandit3@bandit:~$lsinhere/

    bandit3@bandit:~$

    bandit3@bandit:~$ls-ainhere/

    ....hidden

    bandit3@bandit:~$catinhere/.hidden

    pIwrPrtPN36QITSp3EQaw936yaFoFgAB

    Level4→5

    描述:下一关的密码存储在inhere目录中,是一个人类可以阅读的文件(严格来说是ASCII字符)。

    先来看下有哪些文件吧?

    bandit4@bandit:~$ls./inhere/-l

    total40

    -rw-r-----1bandit5bandit433Dec282017-file00

    -rw-r-----1bandit5bandit433Dec282017-file01

    -rw-r-----1bandit5bandit433Dec282017-file02

    -rw-r-----1bandit5bandit433Dec282017-file03

    -rw-r-----1bandit5bandit433Dec282017-file04

    -rw-r-----1bandit5bandit433Dec282017-file05

    -rw-r-----1bandit5bandit433Dec282017-file06

    -rw-r-----1bandit5bandit433Dec282017-file07

    -rw-r-----1bandit5bandit433Dec282017-file08

    -rw-r-----1bandit5bandit433Dec282017-file09

    有十个文件,要怎么才能知道哪一个文件是我们人可以看得懂的呢?难道一个个去看?这就太低效率了吧。这时候我们可以用file这个命令。file命令就是用来查看文件类型的,也可用来辨别一些文件的编码格式。它是通过查看文件的头部信息来获取文件类型。

    bandit4@bandit:~$file./inhere/*

    ./inhere/-file00:data

    ./inhere/-file01:data

    ./inhere/-file02:data

    ./inhere/-file03:data

    ./inhere/-file04:data

    ./inhere/-file05:data

    ./inhere/-file06:data

    ./inhere/-file07:ASCII text

    ./inhere/-file08:data

    ./inhere/-file09:data

    可以看到除了"-file07"之外,其他都是二进制格式的文件,我们知道二进制格式只有机器看得懂。人类肯定看不懂。

    bandit4@bandit:~$cat./inhere/-file07

    koReBOKuIDDepwhWk7jZC0RTdopnAYKh

    Level5→6

    描述:下一关的密码存储在inhere目录中一个文件中,但是这个文件必须满足三个条件,分别是:人类可阅读;大小是1033bytes;不是可执行文件。

    这么多目录,难道一个个去找,当然不是这样的。

    这里考察的就是find命令的用法,我们通过find命令指定查找文件的大小就能快速找到

    bandit5@bandit:~/inhere$find.-size1033c

    ./maybehere07/.file2

    bandit5@bandit:~/inhere$cat./maybehere07/.file2

    DXjZPULLxYr17uwoI01bNLQbtFemEgo7

    Level6→7

    描述:下一关密码文件存储在服务器的某个位置,但是有三个特征,1、文件拥有者是bandit7;2、文件所属组是bandit6;3、文件大小是33bytes。

    这里考察的是find的更高级的用法,指定文件所属的用户,用户组

    bandit6@bandit:~$find/-userbandit7-groupbandit6-size33c2>/dev/null

    /var/lib/dpkg/info/bandit7.password

    bandit6@bandit:~$cat/var/lib/dpkg/info/bandit7.password

    HKBPTKQnIay4Fw76bEy8PVxKEDQRKTzs

    Tips:这里因为输出太多,所以把多余的输出重定向到了/dev/null

    Level7→8

    描述:下一关的密码存储在data.txt文件中millionth单词旁边,可能用到的命令:grep,sort,uniq,strings,base64,tr,tar,gzip,bzip2,xxd

    从这一关开始考察我们对linux文件内容的操作了

    bandit7@bandit:~$ls-al

    total4108

    drwxr-xr-x2rootroot4096Dec282017.

    drwxr-xr-x42rootroot4096Jul2218:42..

    -rw-r--r--1rootroot220Sep12015.bash_logout

    -rw-r--r--1rootroot3771Sep12015.bashrc

    -rw-r--r--1rootroot655Jun242016.profile

    -rw-r-----1bandit8bandit74184396Dec282017data.txt

    bandit7@bandit:~$grep"millionth"./data.txt//使用grep命令过滤关键字找到密码

    millionthcvX2JJa4CFALtqS87jk27qwqGhBM9plV

    Level8→9

    描述:下一关密码存储在data.txt文件中,内容是文件中只出现过一次的行。并且提示给出了需要用到管道和重定向这里我们可以使用uniq查找文件中唯一的行,通常和sort命令一起使用,首先使用sort进行排序,然后用uniq找出唯一不重复的行。

    bandit8@bandit:~$sortdata.txt|uniq-u//-u:仅显示出一次的行列

    UsvVyFSfZZWbi6wgC7dAFyFuR6jQQUhR

    Level9→10

    描述:下一关的密码存储在data.txt文件中,里面只有极少的人类可以阅读的字符,并且是以几个”=“开头。

    这里我们可以用strings命令,strings命令在对象文件或二进制文件中查找可打印的字符串,也就是人类可阅读的字符((ASCII字符中的可见字符,也叫可打印字符)。然后用grep过滤关键字

    bandit9@bandit:~$stringsdata.txt|grep"=="

    ==========theP`

    ==========password

    L==========isA

    ==========truKLdjsbJ5g7yyJ2X2R0o3a5HQJFuLk


    文章仅用于普及网络安全知识,提高小伙伴的安全意识的同时介绍常见漏洞的特征等,若读者因此做出危害网络安全的行为后果自负,与合天智汇以及原作者无关,特此声明。

    相关文章

      网友评论

          本文标题:OverTheWire Bandit Writeup (1-10

          本文链接:https://www.haomeiwen.com/subject/nnrtbftx.html