Bandit靶场网址:overthewire.org/wargames/ba…
Bandit Level 0
这个关卡的目标是让你使用SSH登录游戏。您需要连接的主机是bandit.labs.overthewire.org,端口为2220。用户名是bandit0,密码是bandit0。登录后,转到1级页面,了解如何击败1级。
ssh -p 2220 bandit0@bandit.labs.overthewire.org
密码是bandit0
成功登录
Bandit Level 0 → Level 1
下一级的密码存储在主目录中名为readme文件的文件中。使用此密码通过SSH登录bandit1。每当你找到一个关卡的密码时,使用SSH(在端口2220上)登录到该关卡并继续游戏。
bandit0@bandit:~$ ls
readme
bandit0@bandit:~$ cat readme
NH2SXQwcBdpmTEzi3bvBHMM9H66vVXjL
ssh -p 2220 bandit1@bandit.labs.overthewire.org
密码NH2SXQwcBdpmTEzi3bvBHMM9H66vVXjL
Bandit Level 1 → Level 2
下一级的密码存储在主目录中名为-的文件中。
bandit1@bandit:~$ pwd
/home/bandit1
bandit1@bandit:~$ cat ./-【使用相对路径访问文件】
rRGizSaX8Mk1RTb1CNQoXTcYZWU6lgzi
ssh -p 2220 bandit2@bandit.labs.overthewire.org
密码rRGizSaX8Mk1RTb1CNQoXTcYZWU6lgzi
Bandit Level 2 → Level 3
下一级的密码存储在一个名为spaces的文件中,该文件名位于主目录中。
bandit2@bandit:~$ ls
spaces in this filename
bandit2@bandit:~$ cat spaces\ in\ this\ filename【使用反斜杠转义空格】
aBZ0W5EmUfAf7kHTQeOwd8bauFJ2lAiG
ssh -p 2220 bandit3@bandit.labs.overthewire.org
密码aBZ0W5EmUfAf7kHTQeOwd8bauFJ2lAiG
Bandit Level 3 → Level 4
下一级的密码存储在inhere目录的隐藏文件中。
bandit3@bandit:~$ ls
inhere
bandit3@bandit:~$ cd inhere
bandit3@bandit:~/inhere$ ls -al
total 12
drwxr-xr-x 2 root root 4096 Apr 23 18:04 .
drwxr-xr-x 3 root root 4096 Apr 23 18:04 ..
-rw-r----- 1 bandit4 bandit3 33 Apr 23 18:04 .hidden
bandit3@bandit:~/inhere$ cat ./.hidden【访问隐藏文件】
2EW7BBsr6aMMoJ2HjW067dm8EgX26xNe
ssh -p 2220 bandit4@bandit.labs.overthewire.org
密码2EW7BBsr6aMMoJ2HjW067dm8EgX26xNe
Bandit Level 4 → Level 5
下一级的密码存储在inhere目录中唯一可读的文件中。提示:如果你的终端出了问题,试试“reset”命令。
bandit4@bandit:~$ ls
inhere
bandit4@bandit:~$ cd inhere
bandit4@bandit:~/inhere$ ls
-file00 -file01 -file02 -file03 -file04 -file05 -file06 -file07 -file08 -file09
bandit4@bandit:~/inhere$ cat ./-file07【file命令可以查看文件属性】
lrIWWI6bB37kxfiCQZqUdOIYfr6eEeqR
ssh -p 2220 bandit5@bandit.labs.overthewire.org
密码lrIWWI6bB37kxfiCQZqUdOIYfr6eEeqR
Bandit Level 5 → Level 6
下一级的密码存储在inhere目录下的某个文件中,并具有以下所有属性:人类可读的、大小为1033字节、不可执行。
bandit5@bandit:~$ ls
inhere
bandit5@bandit:~$ cd inhere
bandit5@bandit:~/inhere$ find . -type f -size 1033c
./maybehere07/.file2
bandit5@bandit:~/inhere$ cat ./maybehere07/.file2
P4L4vucdmLnm8I7Vl7jG1ApGSfjYKqJU
ssh -p 2220 bandit6@bandit.labs.overthewire.org
密码P4L4vucdmLnm8I7Vl7jG1ApGSfjYKqJU
Bandit Level 6 → Level 7
下一级别的密码存储在服务器上的某个位置,并具有以下所有属性:属于用户bandit7、属于组bandit6、33 bytes in size。
find / -user bandit7 -group bandit6 -size 33c
bandit6@bandit:~$ cat /var/lib/dpkg/info/bandit7.password
z7WtoNQU2XfjmMtWA8u5rN4vzqu4v99S
ssh -p 2220 bandit7@bandit.labs.overthewire.org
密码z7WtoNQU2XfjmMtWA8u5rN4vzqu4v99S
Bandit Level 7 → Level 8
下一级别的密码存储在文件data.txt中单词millionth的旁边。
bandit7@bandit:~$ ls
data.txt
bandit7@bandit:~$ cat ./data.txt | grep millionth
millionth TESKZC0XvTetK0S9xNwm25STk5iWrBvP
ssh -p 2220 bandit8@bandit.labs.overthewire.org
密码TESKZC0XvTetK0S9xNwm25STk5iWrBvP
Bandit Level 8 → Level 9
下一级别的密码存储在文件data.txt中,并且是唯一只出现一次的文本行。
bandit8@bandit:~$ ls
data.txt
bandit8@bandit:~$ sort ./data.txt | uniq -u【仅显示一次的行】
EN632PlfYiZbn3PhVK3XOGSlNInNE00t
ssh -p 2220 bandit9@bandit.labs.overthewire.org
密码EN632PlfYiZbn3PhVK3XOGSlNInNE00t
Bandit Level 9 → Level 10
下一个级别的密码存储在文件data.txt中,它是少数几个人类可读的字符串之一,前面有几个'='字符。
bandit9@bandit:~$ strings ./data.txt【strings可以从对象文件和二进制文件中读取人类可读内容】
G7w8LIi6J3kTb8A7j9LgrywtEUlyyp6s
ssh -p 2220 bandit10@bandit.labs.overthewire.org
密码G7w8LIi6J3kTb8A7j9LgrywtEUlyyp6s
Bandit Level 10 → Level 11
下一级的密码存储在data.txt文件中,其中包含base64编码的数据。
bandit10@bandit:~$ ls
data.txt
bandit10@bandit:~$ cat data.txt
VGhlIHBhc3N3b3JkIGlzIDZ6UGV6aUxkUjJSS05kTllGTmI2blZDS3pwaGxYSEJNCg==
bandit10@bandit:~$ base64 -d ./data.txt
The password is 6zPeziLdR2RKNdNYFNb6nVCKzphlXHBM
ssh -p 2220 bandit11@bandit.labs.overthewire.org
密码6zPeziLdR2RKNdNYFNb6nVCKzphlXHBM
Bandit Level 11 → Level 12
下一级别的密码存储在data.txt文件中,其中所有小写(a-z)和大写(A-Z)字母都已旋转了13个位置。
bandit11@bandit:~$ ls
data.txt
bandit11@bandit:~$ cat data.txt
Gur cnffjbeq vf WIAOOSFzMjXXBC0KoSKBbJ8puQm5lIEi
bandit11@bandit:~$ cat data.txt | tr 'a-zA-Z' 'n-za-mN-ZA-M'【ROT13加密问题】
The password is JVNBBFSmZwKKOP0XbFXOoW8chDz5yVRv
ssh -p 2220 bandit12@bandit.labs.overthewire.org
密码JVNBBFSmZwKKOP0XbFXOoW8chDz5yVRv
Bandit Level 12 → Level 13
下一个级别的密码存储在文件data.txt中,该文件是一个经过反复压缩的文件的十六进制转储。对于这个级别,在/tmp下创建一个目录可能很有用,您可以在其中使用mkdir。举例来说:mkdir /tmp/myname123。然后使用cp复制数据文件,并使用mv重命名它(阅读手册页!)
bandit12@bandit:~$ mkdir /tmp/bandit12
bandit12@bandit:~$ cp ./data.txt /tmp/bandit12/data【去掉txt后缀】
bandit12@bandit:~$ cd /tmp/bandit12
bandit12@bandit:/tmp/bandit12$ ls
data
bandit12@bandit:/tmp/bandit12$ file data
data: ASCII text
bandit12@bandit:/tmp/bandit12$ xxd -r ./data ./data.out【16进制转2进制,out为2进制后缀】
bandit12@bandit:/tmp/bandit12$ ls
data data.out
bandit12@bandit:/tmp/bandit12$ file data.out
data.out: gzip compressed data, was "data2.bin", last modified: Sun Apr 23 18:04:23 2023, max compression, from Unix, original size modulo 2^32 581
bandit12@bandit:/tmp/bandit12$ mv data.out ./data.gz
bandit12@bandit:/tmp/bandit12$ ls
data data.gz
bandit12@bandit:/tmp/bandit12$ gzip -d ./data.gz ./data.out
bandit12@bandit:/tmp/bandit12$ file data
data: bzip2 compressed data, block size = 900k
bandit12@bandit:/tmp/bandit12$ mv ./data ./data.bz2
bandit12@bandit:/tmp/bandit12$ file data
data: gzip compressed data, was "data4.bin", last modified: Sun Apr 23 18:04:23 2023, max compression, from Unix, original size modulo 2^32 20480
bandit12@bandit:/tmp/bandit12$ mv ./data ./data.gz
bandit12@bandit:/tmp/bandit12$ gzip -d data.gz
bandit12@bandit:/tmp/bandit12$ ls
data
bandit12@bandit:/tmp/bandit12$ file data
data: POSIX tar archive (GNU)
bandit12@bandit:/tmp/bandit12$ mv data data.tar
bandit12@bandit:/tmp/bandit12$ tar xvf data.tar
data5.bin
bandit12@bandit:/tmp/bandit12$ file data5.bin
data5.bin: POSIX tar archive (GNU)
bandit12@bandit:/tmp/bandit12$ ls
data5.bin data.tar
bandit12@bandit:/tmp/bandit12$ rm data.tar
bandit12@bandit:/tmp/bandit12$ mv data5.bin data.tar
bandit12@bandit:/tmp/bandit12$ tar xvf data.tar
data6.bin
bandit12@bandit:/tmp/bandit12$ mv data6.bin data.tar
bandit12@bandit:/tmp/bandit12$ tar xvf data.tar
data8.bin
bandit12@bandit:/tmp/bandit12$ file data8.bin
data8.bin: gzip compressed data, was "data9.bin", last modified: Sun Apr 23 18:04:23 2023, max compression, from Unix, original size modulo 2^32 49
bandit12@bandit:/tmp/bandit12$ zcat data8.bin
The password is wbWdlBxEir4CaE8LaPhauuOo6pwRmrDw
【如果遇到file的结果是gzip compressed data, was "xxx.bin"这种提示的时候,可以使用zcat提取内容】
ssh -p 2220 bandit13@bandit.labs.overthewire.org
密码wbWdlBxEir4CaE8LaPhauuOo6pwRmrDw
Bandit Level 13 → Level 14
下一级的密码存储在/etc/bandit_pass/bandit14中,只能由用户bandit14读取。对于这个级别,您不会获得下一个密码,但是您会获得一个私有SSH密钥,该密钥可用于登录到下一个级别。注意:localhost是一个主机名,它指的是您正在使用的机器。
bandit13@bandit:~$ ssh -p 2220 -i ./sshkey.private bandit14@localhost
bandit14@bandit:~$ cat /etc/bandit_pass/bandit14
fGrHPx402xGC7U7rXKDaxiWFTOiF0ENq
Bandit Level 14 → Level 15
通过将当前级别的密码提交到localhost上的端口30000,可以检索下一级别的密码。
bandit14@bandit:~$ nc localhost 30000【借助nc发送密码】
fGrHPx402xGC7U7rXKDaxiWFTOiF0ENq
Correct!
jN2kgmIXJ6fShzhT2avhotn4Zcka6tnt
bandit14@bandit:~$ telnet -l bandit15 localhost 30000
ssh -p 2220 bandit15@bandit.labs.overthewire.org
密码jN2kgmIXJ6fShzhT2avhotn4Zcka6tnt
Bandit Level 15 → Level 16
通过使用SSL加密将当前级别的密码提交到localhost上的端口30001,可以检索下一级别的密码。
有用提示:得到“HEARTBEATING”和“Read R BLOCK”?使用-ign_eof并阅读手册页中的“CONNECTED COMMANDS”部分。在'R'和'Q'旁边,'B'命令也适用于该命令的此版本。
bandit14@bandit:~$ openssl s_client -connect localhost:30001 -ign_eof
密码JQttfApK4SeyHwDlI9SXGR50qclOAil1
ssh -p 2220 bandit16@bandit.labs.overthewire.org
密码JQttfApK4SeyHwDlI9SXGR50qclOAil1
Bandit Level 16 → Level 17
通过将当前级别的密码提交到localhost上31000到32000范围内的端口,可以检索下一级别的凭据。首先找出这些端口中的哪些端口上有服务器侦听。然后找出哪些人说SSL,哪些人不。只有一台服务器会给予下一个凭证,其他服务器会简单地将您发送的任何内容发送回给您。
bandit16@bandit:~$ nmap -sV localhost -p 31000-32000
Starting Nmap 7.80 ( nmap.org ) at 2023-08-18 10:20 UTC
PORT STATE SERVICE VERSION
31046/tcp open echo
31518/tcp open ssl/echo
31691/tcp open echo
31790/tcp open ssl/unknown
31960/tcp open echo
bandit16@bandit:~$ openssl s_client -connect localhost:31790 -ign_eof
sshkey.private的样式
vim中ESC后输入%d可以删除全文
mkdir /tmp/aaa
在/tmp/aaa中创建sshkey.private【复制sshkey的时候从空行处开始复制,避免格式出问题】
chmod 600 sshkey.private
bandit16@bandit:/tmp/aaa$ ssh -p 2220 -i ./sshkey.private bandit17@localhost
bandit17@bandit:~$ cat /etc/bandit_pass/bandit17
VwOSWtCA7lRKkTfbr2IDh6awj9RNZM5e