OverTheWire Bandit Writeup (1-10)

访客 327 0
本文来源:蚁景科技

原创: Lof_x 合天智汇

 网站: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转义符的理解,我们只需要把空格进行转义即可,或者用”“包裹也可以。

OverTheWire Bandit Writeup (1-10)-第1张图片-网盾网络安全培训

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

未完待续......

标签: 合天智汇

发表评论 (已有0条评论)

还木有评论哦,快来抢沙发吧~