OverTheWire--bandit--level0~level33


 

開門見山


 

1.Level 0

最開始的任務,使用ssh連接到目標,

 


 

2.Level 0 ->Level 1

查看文件內容

 

使用ssh登錄bandit1

 


 

3.Level 1 → Level 2

查看,

 

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

 

ssh連接

 


 

4.Level 2 → Level 3

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

 

合理使用轉義字符

 

ssh連接

 


 

5.Level 3 → Level 4

查看inhere文件夾,存在一個隱藏文件

 

查看文件內容

 

ssh連接

 


 

6.Level 4 → Level 5

查看文件夾內容

 

查看全部文件內容,存在亂碼

 

可以用file這個命令。file命令就是用來查看文件類型的,也可用來辨別一些文件的編碼格式。它是通過查看文件的頭部信息來獲取文件類型。

 

其他為二進制格式文件,查看文件07

 

ssh連接

 


 

7.Level 5 → Level 6

查看文件夾中的文件

 

存在條件

 

可以使用find命令查找

 

查看文件

 

ssh連接


 

8.Level 6 → Level 7

條件

 

find條件查找

 

在根目錄下查找會經常有很多權限的報錯信息,可以2>/dev/null這種方式將錯誤信息重定向到黑洞中

 

查看

 

HKBPTKQnIay4Fw76bEy8PVxKEDQRKTzs

ssh連接


 

9.Level 7 → Level 8

查看,用grep匹配關鍵詞

 

也可以用vin/匹配關鍵詞

 

cvX2JJa4CFALtqS87jk27qwqGhBM9plV

ssh連接

 


 

10.Level 8 → Level 9

查找

 

也可以用-c列出出現的次數,然后從中找到是1的那一行即可

 

 

UsvVyFSfZZWbi6wgC7dAFyFuR6jQQUhR

ssh連接

 


 

11.Level 9 → Level 10

查找

 

truKLdjsbJ5g7yyJ2X2R0o3a5HQJFuLk

ssh連接

 


 

12.Level 10 → Level 11

查找得到base64並解碼

 

IFukwKGsFW8MOq3IRFqrxE1hxTNEbUPR

ssh連接

 


 

13.Level 11 → Level 12

查找,字母的的順序旋轉了13個位置,就相當去26個字母的前13個位置與后13個位置調換了。那么我們就是用tr命令進行調換

 

5Te8Y4drgCRfCx8ugdwuEX8KFC6k2EUu

ssh連接

 


 

14.Level 12 → Level 13

查看文件類型

 

嘗試用xxd轉成bin提示權限不夠

 

復制一遍

 

需要解壓多次,查看文件類型再解壓

 

 

 

 

 

 

 

 

8ZjyCRiBWFYkneahHwxCv3wb2a1ORpYL

ssh連接

 


 

15.Level 13 → Level 14

利用私鑰直接連接bandit14

 

查看

 

4wcYUJFw0k0XLShlDzztnTBHiqxU3b3e


 

16.Level 14 → Level 15

telnet連接,然后提交密鑰

 

BfMYroe26WYalil77FoDi9qh59eK5xNr

ssh連接

 


 

17.Level 15 → Level 16

openssl,提交密鑰得到下級密鑰

 

cluFn7wTiGryunymYOu4RcffSxQluehd

ssh連接

 


 

18.Level 16 → Level 17

namp掃端口

 

其中3151831790開放了ssl服務

 

openssl連接提交密鑰查看回顯,31790端口能回顯私鑰

 

 

保存私鑰

 

用私鑰連接下級,私鑰的權限需要設置

 

查看

 

xLYVMN9WE5zQ5vHacb0sZEVqbrp7nBTn


 

19.Level 17 → Level 18

diff 比較兩個文件的不同

 

kfBf3eYk5BPBRzwjqutbbfE887SVc5Yd

ssh連接,加-T參數得到偽終端

 


 

20.Level 18 → Level 19

直接在偽終端查看

 

IueksS7Ubh8G3DCwVzrTd8rAVOwq3M5x

ssh連接

 


 

21.Level 19 → Level 20

查看

 

屬主的權限為rws, s是特殊權限位,允許一般用戶用root權限執行這個文件。
通過文件名是想我們用bandit20這個用戶執行這個命令讀取密碼,通過id 命令查看到bandit20用戶的uid11020,運行這個文件–help 命令查看用法可得用法,最后讀取密碼

 

 

GbKksEFF4yrVs6il55v6gwY5aVje5f0j

ssh連接

 


 

22.Level 20 → Level 21

開放一個監聽的端口,然后suconnect 文件訪問這個端口如果得到和這關相同的密碼就會返回下一關的密碼,用nc將本關的密碼反饋給連接端口命令如下

 

gE269g2h3mw3pwgrj0Ha9Uoqen1c9DGr

ssh連接

 


 

23.Level 21 → Level 22

一步一步查看文件內容

 

Yk7owGAcWjwMVRwrTesJEwB7WVOiILLI


 

24.Level 22 → Level 23

查看文件內容

 

實現的功能是取當前用戶名,然后計算 I am user $當前用戶名 的md5值,將bandit22密碼的復制到tmp目錄下的對應的md5值的文件中,

 

I am user bandit23hash值就是下一關密碼

 

jc1udXuA1tiHqjIsL8yaapX5XIAI6i0n

ssh連接

 


 

25.Level 23 → Level 24

查看腳本內容

 

 

/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

 

這時候在/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)

運行

 

uNG9O58gUE7snukf3bvZ0rxhtnjzSGzG

ssh連接

 


 

27.Level 25 → Level 26

直接用密鑰來連接,發現不行

 

查看

 

 

 

系統關閉連接的原因是這個exit 0, 在這個exit 之前執行我們想要的命令就可以達到我們想要的效果了。
more 命令執行之前可以執行命令即可,把會話的終端縮小到幾行,然后用文件連接bandit26,這樣可以出發自動more, more命令還沒有結束的時候按v進入vim編輯模式。再就是用vim特有的:e filevim模式下的e命令可以導入文件到編輯器內,我們知道密碼的所在,因此就可以用e命令來導入密碼文件

 

 

 

5czgV9L3Xx8JPOyRbXh6lQbmIOWvPT6Z

ssh連接

 


 

28.Level 26 → Level 27

與上題套路相似,先設置shell的目錄

 

 

查看

 

 

3ba3118a22e93127a4ed485be72ef5ea

ssh連接

 


 

29.Level 27 → Level 28

git克隆

 

查看

 

0ef186ac70e04ea33b4c1853d2526fa2

ssh連接

 


 

30.Level 28 → Level 29

git克隆與上題一樣

 

查看

 

git log查看提交歷史,然后對應版本提交id, 查找區別,得出密碼。

 

 

bbc96594b4e001778eee9975372716b2

ssh連接

 


 

31.Level 29 → Level 30

git克隆

 

查看

 

利用git branch -a 命令可以查詢分支,發現總共有四個分支

 

git checkout 可以切換分支,當切換到dev查看git log 可以發現,最新的版本里面有個data needed for development

 

查看

 

5b90576bedb2cc04c86a9e924ce42faf

ssh連接

 


 

32.Level 30 → Level 31

git克隆后查看

 

git show-ref可以現實本地存儲庫的所有可用的引用以及關聯的提交ID

 

47e603bb428404d265f59c42920d81e5

ssh連接

 


 

33.Level 31 → Level 32

git克隆,查看

 

創建key.txt提交到git

 

 

56a9bf19c63d650ce78e6ec0354ee45e

ssh連接

 


 

34.Level 32 → Level 33

連接的最后直接給了你一個大寫的終端可以用$0進入正常終端

 

查看

 

c9c3199ddf4121b10cf581a98d51caee

ssh連接

 

 

 


 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM