OverTheWire--bandit--level0~level33

 

开门见山


 

1.Level 0

最开始的任务,使用ssh连接到目标,

 OverTheWire--bandit--level0~level33_第1张图片


 

2.Level 0 ->Level 1

查看文件内容

 

使用ssh登录bandit1

 


 

3.Level 1 → Level 2

查看,

 

linux“-”代表的是进入此目录之前所在的目录,所以不能直接使用”cat -“来查看。加上文件的路径就可以了

 

ssh连接

 


 

4.Level 2 → Level 3

查看,存在有空格文件名的文件

 OverTheWire--bandit--level0~level33_第2张图片

合理使用转义字符

 

ssh连接

 


 

5.Level 3 → Level 4

查看inhere文件夹,存在一个隐藏文件

 OverTheWire--bandit--level0~level33_第3张图片

查看文件内容

 

ssh连接

 


 

6.Level 4 → Level 5

查看文件夹内容

 OverTheWire--bandit--level0~level33_第4张图片

查看全部文件内容,存在乱码

 

可以用file这个命令。file命令就是用来查看文件类型的,也可用来辨别一些文件的编码格式。它是通过查看文件的头部信息来获取文件类型。

 OverTheWire--bandit--level0~level33_第5张图片

其他为二进制格式文件,查看文件07

 

ssh连接

 


 

7.Level 5 → Level 6

查看文件夹中的文件

 OverTheWire--bandit--level0~level33_第6张图片

存在条件

 OverTheWire--bandit--level0~level33_第7张图片

可以使用find命令查找

 

查看文件

 

ssh连接


 

8.Level 6 → Level 7

条件

 OverTheWire--bandit--level0~level33_第8张图片

find条件查找

 OverTheWire--bandit--level0~level33_第9张图片

在根目录下查找会经常有很多权限的报错信息,可以2>/dev/null这种方式将错误信息重定向到黑洞中

 

查看

 

HKBPTKQnIay4Fw76bEy8PVxKEDQRKTzs

ssh连接


 

9.Level 7 → Level 8

查看,用grep匹配关键词

 

也可以用vin/匹配关键词

 OverTheWire--bandit--level0~level33_第10张图片

cvX2JJa4CFALtqS87jk27qwqGhBM9plV

ssh连接

 OverTheWire--bandit--level0~level33_第11张图片


 

10.Level 8 → Level 9

查找

 

也可以用-c列出出现的次数,然后从中找到是1的那一行即可

 

 OverTheWire--bandit--level0~level33_第12张图片

UsvVyFSfZZWbi6wgC7dAFyFuR6jQQUhR

ssh连接

 


 

11.Level 9 → Level 10

查找

 OverTheWire--bandit--level0~level33_第13张图片

truKLdjsbJ5g7yyJ2X2R0o3a5HQJFuLk

ssh连接

 


 

12.Level 10 → Level 11

查找得到base64并解码

 OverTheWire--bandit--level0~level33_第14张图片

IFukwKGsFW8MOq3IRFqrxE1hxTNEbUPR

ssh连接

 


 

13.Level 11 → Level 12

查找,字母的的顺序旋转了13个位置,就相当去26个字母的前13个位置与后13个位置调换了。那么我们就是用tr命令进行调换

 OverTheWire--bandit--level0~level33_第15张图片

5Te8Y4drgCRfCx8ugdwuEX8KFC6k2EUu

ssh连接

 


 

14.Level 12 → Level 13

查看文件类型

 

尝试用xxd转成bin提示权限不够

 

复制一遍

 OverTheWire--bandit--level0~level33_第16张图片

需要解压多次,查看文件类型再解压

 OverTheWire--bandit--level0~level33_第17张图片

 OverTheWire--bandit--level0~level33_第18张图片

 

 OverTheWire--bandit--level0~level33_第19张图片

 OverTheWire--bandit--level0~level33_第20张图片

 

 OverTheWire--bandit--level0~level33_第21张图片

 OverTheWire--bandit--level0~level33_第22张图片

8ZjyCRiBWFYkneahHwxCv3wb2a1ORpYL

ssh连接

 


 

15.Level 13 → Level 14

利用私钥直接连接bandit14

 OverTheWire--bandit--level0~level33_第23张图片

查看

 

4wcYUJFw0k0XLShlDzztnTBHiqxU3b3e


 

16.Level 14 → Level 15

telnet连接,然后提交密钥

 OverTheWire--bandit--level0~level33_第24张图片

BfMYroe26WYalil77FoDi9qh59eK5xNr

ssh连接

 


 

17.Level 15 → Level 16

openssl,提交密钥得到下级密钥

 OverTheWire--bandit--level0~level33_第25张图片

cluFn7wTiGryunymYOu4RcffSxQluehd

ssh连接

 


 

18.Level 16 → Level 17

namp扫端口

 

其中3151831790开放了ssl服务

 OverTheWire--bandit--level0~level33_第26张图片

openssl连接提交密钥查看回显,31790端口能回显私钥

 

 OverTheWire--bandit--level0~level33_第27张图片

保存私钥

 

用私钥连接下级,私钥的权限需要设置

 OverTheWire--bandit--level0~level33_第28张图片

查看

 

xLYVMN9WE5zQ5vHacb0sZEVqbrp7nBTn


 

19.Level 17 → Level 18

diff 比较两个文件的不同

 OverTheWire--bandit--level0~level33_第29张图片

kfBf3eYk5BPBRzwjqutbbfE887SVc5Yd

ssh连接,加-T参数得到伪终端

 OverTheWire--bandit--level0~level33_第30张图片


 

20.Level 18 → Level 19

直接在伪终端查看

 

IueksS7Ubh8G3DCwVzrTd8rAVOwq3M5x

ssh连接

 


 

21.Level 19 → Level 20

查看

 OverTheWire--bandit--level0~level33_第31张图片

属主的权限为rws, s是特殊权限位,允许一般用户用root权限执行这个文件。
通过文件名是想我们用bandit20这个用户执行这个命令读取密码,通过id 命令查看到bandit20用户的uid11020,运行这个文件–help 命令查看用法可得用法,最后读取密码

 

 

GbKksEFF4yrVs6il55v6gwY5aVje5f0j

ssh连接

 


 

22.Level 20 → Level 21

开放一个监听的端口,然后suconnect 文件访问这个端口如果得到和这关相同的密码就会返回下一关的密码,用nc将本关的密码反馈给连接端口命令如下

 OverTheWire--bandit--level0~level33_第32张图片

gE269g2h3mw3pwgrj0Ha9Uoqen1c9DGr

ssh连接

 


 

23.Level 21 → Level 22

一步一步查看文件内容

 OverTheWire--bandit--level0~level33_第33张图片

Yk7owGAcWjwMVRwrTesJEwB7WVOiILLI


 

24.Level 22 → Level 23

查看文件内容

 

实现的功能是取当前用户名,然后计算 I am user $当前用户名 的md5值,将bandit22密码的复制到tmp目录下的对应的md5值的文件中,

 

I am user bandit23hash值就是下一关密码

 

jc1udXuA1tiHqjIsL8yaapX5XIAI6i0n

ssh连接

 


 

25.Level 23 → Level 24

查看脚本内容

 OverTheWire--bandit--level0~level33_第34张图片

 OverTheWire--bandit--level0~level33_第35张图片

/var/spool/cron/ 这个目录下存放的是每个用户包括rootcrontab任务,每个任务以创建者的名字命名,比如tom建的crontab任务对应的文件就是/var/spool/cron/tom。一般一个用户最多只有一个crontab文件。

/var/spool/bandit24目录下就可以运行bandit24的定时任务
创建一个放在改目录下的脚本就可以执行了
vim getpass.sh进入vim编辑模式输入脚本
写入cat /etc/bandit_pass/bandit24 > /tmp/bandit24pass

 OverTheWire--bandit--level0~level33_第36张图片

这时候在/var/spool/bandit24目录下不一定能看见你写的脚本,就像前面的定时任务脚本里面写的,执行完脚本这个就任务就删除了这个时候说明我们的脚本已经执行了,可以去/tmp目录查看我们的密码了

 

UoMYTrfrBFHyQXmg6gzctqAwOmw1IohZ

ssh连接

 


 

26.Level 24 → Level 25

写个脚本跑密码

#/usr/bin/python

from pwn import *

 

conn = remote('localhost', '30002')

badline = conn.recvline()

for i in range(1000):

    tmp = str(i).zfill(4)

    print '[+] Trying pincode: ' + str(tmp)

    conn.sendline('UoMYTrfrBFHyQXmg6gzctqAwOmw1IohZ ' + tmp)

    response = conn.recvline()

    print response

    if "Wrong" not in response

       print "Got Pincode: " + str(tmp)

       response = conn.recvline()

       print response

       exit(0)

运行

 OverTheWire--bandit--level0~level33_第37张图片

uNG9O58gUE7snukf3bvZ0rxhtnjzSGzG

ssh连接

 


 

27.Level 25 → Level 26

直接用密钥来连接,发现不行

 

查看

 

 

 OverTheWire--bandit--level0~level33_第38张图片

系统关闭连接的原因是这个exit 0, 在这个exit 之前执行我们想要的命令就可以达到我们想要的效果了。
more 命令执行之前可以执行命令即可,把会话的终端缩小到几行,然后用文件连接bandit26,这样可以出发自动more, more命令还没有结束的时候按v进入vim编辑模式。再就是用vim特有的:e filevim模式下的e命令可以导入文件到编辑器内,我们知道密码的所在,因此就可以用e命令来导入密码文件

 OverTheWire--bandit--level0~level33_第39张图片

 

 

5czgV9L3Xx8JPOyRbXh6lQbmIOWvPT6Z

ssh连接

 


 

28.Level 26 → Level 27

与上题套路相似,先设置shell的目录

 

 

查看

 

 

3ba3118a22e93127a4ed485be72ef5ea

ssh连接

 


 

29.Level 27 → Level 28

git克隆

 OverTheWire--bandit--level0~level33_第40张图片

查看

 OverTheWire--bandit--level0~level33_第41张图片

0ef186ac70e04ea33b4c1853d2526fa2

ssh连接

 


 

30.Level 28 → Level 29

git克隆与上题一样

 OverTheWire--bandit--level0~level33_第42张图片

查看

 OverTheWire--bandit--level0~level33_第43张图片

git log查看提交历史,然后对应版本提交id, 查找区别,得出密码。

 OverTheWire--bandit--level0~level33_第44张图片

 

bbc96594b4e001778eee9975372716b2

ssh连接

 


 

31.Level 29 → Level 30

git克隆

 OverTheWire--bandit--level0~level33_第45张图片

查看

 OverTheWire--bandit--level0~level33_第46张图片

利用git branch -a 命令可以查询分支,发现总共有四个分支

 OverTheWire--bandit--level0~level33_第47张图片

git checkout 可以切换分支,当切换到dev查看git log 可以发现,最新的版本里面有个data needed for development

 OverTheWire--bandit--level0~level33_第48张图片

查看

 OverTheWire--bandit--level0~level33_第49张图片

5b90576bedb2cc04c86a9e924ce42faf

ssh连接

 


 

32.Level 30 → Level 31

git克隆后查看

 OverTheWire--bandit--level0~level33_第50张图片

git show-ref可以现实本地存储库的所有可用的引用以及关联的提交ID

 OverTheWire--bandit--level0~level33_第51张图片

47e603bb428404d265f59c42920d81e5

ssh连接

 


 

33.Level 31 → Level 32

git克隆,查看

 OverTheWire--bandit--level0~level33_第52张图片

创建key.txt提交到git

 OverTheWire--bandit--level0~level33_第53张图片

 OverTheWire--bandit--level0~level33_第54张图片

56a9bf19c63d650ce78e6ec0354ee45e

ssh连接

 


 

34.Level 32 → Level 33

连接的最后直接给了你一个大写的终端可以用$0进入正常终端

 

查看

 

c9c3199ddf4121b10cf581a98d51caee

ssh连接

OverTheWire--bandit--level0~level33_第55张图片

 

 

 


 

你可能感兴趣的:(OverTheWire--bandit--level0~level33)