Post

OverTheWire: Bandit Level 8 → Level 9

The Bandit wargames are aimed at absolute beginners. It will teach the basics needed to be able to play other wargames.

Level Goal

The password for the next level is stored in the file data.txt and is the only line of text that occurs only once

Commands you may need to solve this level

grep, sort, uniq, strings, base64, tr, tar, gzip, bzip2, xxd

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
> whatis grep  
grep (1)             - print lines that match patterns

> whatis sort  
sort (1)             - sort lines of text files

> whatis uniq  
uniq (1)             - report or omit repeated lines

> whatis strings  
strings (1)          - print the sequences of printable characters in files

> whatis base64  
base64 (1)           - base64 encode/decode data and print to standard output

> whatis tr  
tr (1)               - translate or delete characters

> whatis tar  
tar (1)              - an archiving utility

> whatis gzip  
gzip (1)             - compress or expand files

> whatis bzip2  
bzip2 (1)            - a block-sorting file compressor, v1.0.8

> whatis xxd  
xxd (1)              - make a hexdump or do the reverse.

Note: All commands don’t have to be used to complete level

Helpful Reading Material

Learn Piping and Redirection - Linux Tutorial

Back to Basics: Sort and Uniq | Linux Journal

Solution

View the contents of the current working directory

1
2
bandit8@bandit:~$ ls  
data.txt

Peek at the data that is present in the file. This can be achieved using the head command

1
2
3
4
5
6
7
8
9
10
11
bandit8@bandit:~$ head -n 10 data.txt   
VkBAEWyIibVkeURZV5mowiGg6i3m7Be0  
zdd2ctVveROGeiS2WE3TeLZMeL5jL7iM  
sYSokIATVvFUKU4sAHTtMarfjlZWWj5i  
ySvsTwlMgnUF0n86Fgmn2TNjkSOlrV72  
NLWvtQvL7EaqBNx2x4eznRlQONULlCYZ  
LfrBHfAh0pP9bgGAZP4QrVkut3pysAYC  
U0NYdD3wHZKpfEg9qGQOLJimAJy6qxhS  
flyKxCbHB8uLTaIB5LXqQNuJj3yj00eh  
TThRArdF2ZEXMO47TIYkyPPLtvzzLcDf  
cIPbot7oYveUPNxDMhv1hiri50CqpkTG

(The -n flag allows us to specify how many lines to print from the start of the file. We can use the tail command to look at the last n lines of a file)

Since we know there are repeating lines in the file. We can use the uniq command with the -u flag to print the unique line. Uniq command expects the repeating (similar) lines to be next to each other (adjacent) so we need to sort our data before we can find the unique line.

For sorting we can use the sort command which will sort the data in the file line-wise. Finally, we can combine all these commands into a one-liner using the | (pipe) operator

(For more reference on these commands refer to the attached websites)

1
2
bandit8@bandit:~$ cat data.txt | sort | uniq -u  
UsvVyFSfZZWbi6wgC7dAFyFuR6jQQUhR

Note: The cat command is used to read the data from the file which is then passed as input to the next command in the line using pipes

We have found the password for the next level !!

Logout of the current session and use the password of user bandit9 to access the next level

1
2
3
4
> ssh bandit9@bandit.labs.overthewire.org -p 2220  
This is a OverTheWire game server. More information on http://www.overthewire.org/wargames

bandit9@bandit.labs.overthewire.org's password: UsvVyFSfZZWbi6wgC7dAFyFuR6jQQUhR
This post is licensed under CC BY 4.0 by the author.