Bandit–边玩边学Linux操作,网站:https://overthewire.org/wargames/bandit/。还是一名新手,错误之处欢迎指正。
ssh -p port username@remote,使用ssh命令连接到练习服务器上。
在Xshell上建立一个new session,输入题目给的信息即可进入。
使用ls显示当前目录下的文件,发现readme文件,cat查看文件内容。
bandit0@bandit:~$ ls
readme
bandit0@bandit:~$ cat readme
boJ9jbbUNNfktd78OOpsqOltutMc3MY1
密码:boJ9jbbUNNfktd78OOpsqOltutMc3MY1
ls查看当前目录下的文件,对于以“-”命名的文件不能直接用cat命令,需加上合适的前缀,如./-FILENAME。
bandit1@bandit:~$ ls
-
bandit1@bandit:~$ cat ./-
CV1DtqXWVFXTvM2F0k09SHz0YwRINYA9
密码:CV1DtqXWVFXTvM2F0k09SHz0YwRINYA9
文件名中含有空格,可以用双引号将文件名括起来或者使用“\”将空格转义。
bandit2@bandit:~$ ls
spaces in this filename
bandit2@bandit:~$ cat "spaces in this filename"
UmHadQclWmgdLOKQ3YNgjWxGoRMb5luK
bandit2@bandit:~$ cat spaces\ in\ this\ filename
UmHadQclWmgdLOKQ3YNgjWxGoRMb5luK
密码:UmHadQclWmgdLOKQ3YNgjWxGoRMb5luK
使用ls -al命令查看包含隐藏文件在内的所有文件,直接cat该文件。
bandit3@bandit:~$ cd inhere/
bandit3@bandit:~/inhere$ ls -al
total 12
drwxr-xr-x 2 root root 4096 Oct 16 2018 .
drwxr-xr-x 3 root root 4096 Oct 16 2018 ..
-rw-r----- 1 bandit4 bandit3 33 Oct 16 2018 .hidden
bandit3@bandit:~/inhere$ cat .hidden
pIwrPrtPN36QITSp3EQaw936yaFoFgAB
密码:pIwrPrtPN36QITSp3EQaw936yaFoFgAB
使用file命令查看当前目录下所有文件的类型,其中-file07是以ASCII格式编码,是我们要找的文件。
bandit4@bandit:~$ cd inhere/
bandit4@bandit:~/inhere$ file ./-file0*
./-file00: data
./-file01: data
./-file02: data
./-file03: data
./-file04: data
./-file05: data
./-file06: data
./-file07: ASCII text
./-file08: data
./-file09: data
bandit4@bandit:~/inhere$ cat ./-file07
koReBOKuIDDepwhWk7jZC0RTdopnAYKh
密码:koReBOKuIDDepwhWk7jZC0RTdopnAYKh
使用find命令,其中.表示当前目录即其子目录,-type f查找普通文件,-size 1033c查找1033字节大小。
bandit5@bandit:~$ cd inhere
bandit5@bandit:~/inhere$ find . -type f -size 1033c
./maybehere07/.file2
bandit5@bandit:~/inhere$ cat ./maybehere07/.file2
DXjZPULLxYr17uwoI01bNLQbtFemEgo7
密码:DXjZPULLxYr17uwoI01bNLQbtFemEgo7
继续使用find命令,“2”表示标准错误,“/dev/null”是dev/下的一个特殊文件,这个文件接受的所有数据都会被丢弃。“2>/dev/null”表示将错误的输出信息丢弃。
bandit6@bandit:~$ find / -user bandit7 -group bandit6 -size 33c 2>/dev/null
/var/lib/dpkg/info/bandit7.password
bandit6@bandit:~$ cat /var/lib/dpkg/info/bandit7.password
HKBPTKQnIay4Fw76bEy8PVxKEDQRKTzs
密码:HKBPTKQnIay4Fw76bEy8PVxKEDQRKTzs
直接grep。
bandit7@bandit:~$ grep "millionth" data.txt
millionth cvX2JJa4CFALtqS87jk27qwqGhBM9plV
密码:cvX2JJa4CFALtqS87jk27qwqGhBM9plV
uniq -u显示只出现过一次的行,但当重复的行并不相邻时,uniq 命令是不起作用的。所以使用sort对data.txt文件以默认方式(ASCII)进行排序。“|”将上一条命令的输出作为下一条命令的输入。
bandit8@bandit:~$ sort data.txt | uniq -u
UsvVyFSfZZWbi6wgC7dAFyFuR6jQQUhR
密码:UsvVyFSfZZWbi6wgC7dAFyFuR6jQQUhR
strings 命令在文件中查找可打印的字符串。
bandit9@bandit:~$ strings data.txt | grep "====*"
2========== the
========== password
========== isa
========== truKLdjsbJ5g7yyJ2X2R0o3a5HQJFuLk
密码:truKLdjsbJ5g7yyJ2X2R0o3a5HQJFuLk
base64 -d 解码数据。
bandit10@bandit:~$ cat data.txt
VGhlIHBhc3N3b3JkIGlzIElGdWt3S0dzRlc4TU9xM0lSRnFyeEUxaHhUTkViVVBSCg==
bandit10@bandit:~$ base64 -d data.txt
The password is IFukwKGsFW8MOq3IRFqrxE1hxTNEbUPR
密码:IFukwKGsFW8MOq3IRFqrxE1hxTNEbUPR
(百度百科)ROT13是一种简易的替换式密码,套用ROT13到一段文字上仅仅只需要检查字元字母顺序并取代它在13位之后的对应字母,有需要超过时则重新绕回26英文字母开头即可。
tr命令用于转换文件中的字符。
bandit11@bandit:~$ cat data.txt | tr [a-zA-Z] [n-za-mN-ZA-M]
The password is 5Te8Y4drgCRfCx8ugdwuEX8KFC6k2EUu
密码:5Te8Y4drgCRfCx8ugdwuEX8KFC6k2EUu
因为data.txt文件以十六进制格式存储,使用xxd将文件转化为二进制。
bandit12@bandit:xxd -r data.txt > data
使用file查看data文件,发现是一个gzip压缩文件,将data重命名data.gz,使用gunzip命令解压缩。
bandit12@bandit:/tmp/data_13$ file data
data: gzip compressed data, was "data2.bin", last modified: Tue Oct 16 12:00:23 2018, max compression, from Unix
bandit12@bandit:/tmp/data_13$ mv data data.gz
bandit12@bandit:/tmp/data_13$ gunzip data.gz
继续查看解压缩后的文件,发现是一个bzip2压缩文件,重复上述操作。
bandit12@bandit:/tmp/data_13$ file data
data: bzip2 compressed data, block size = 900k
bandit12@bandit:/tmp/data_13$ mv data.gz2 data.bz2
bandit12@bandit:/tmp/data_13$ bzip2 -d data.bz2
bandit12@bandit:/tmp/data_13$ file data
data: gzip compressed data, was "data4.bin", last modified: Tue Oct 16 12:00:23 2018, max compression, from Unix
bandit12@bandit:/tmp/data_13$ mv data data.gz
bandit12@bandit:/tmp/data_13$ gunzip data.gz
bandit12@bandit:/tmp/data_13$ file data
data: POSIX tar archive (GNU)
bandit12@bandit:/tmp/data_13$ mv data data.tar
重复操作直到:
bandit12@bandit:/tmp/data_13$ file data8.bin
data8.bin: gzip compressed data, was "data9.bin", last modified: Tue Oct 16 12:00:23 2018, max compression, from Unix
bandit12@bandit:/tmp/data_13$ mv data8.bin data8.gz
bandit12@bandit:/tmp/data_13$ gunzip data8.gz
bandit12@bandit:/tmp/data_13$ cat data8
The password is 8ZjyCRiBWFYkneahHwxCv3wb2a1ORpYL
密码:8ZjyCRiBWFYkneahHwxCv3wb2a1ORpYL