← All articles
Date Published: May 2026

Level 15-19

Levels from Level 15 to 19 focuses on networking concepts.

Level 15

This level is similar to Level 14 expcept we have to use SSL/TLS encryption to establish the connection to port 30001 on localhost.

In SSL/TLS encryption, there is a trusted certificate issuing authoritity. The server pays the server to issue an ceritifcate which consists of meta data of server along with a sign which consists of servers public key and issuing authoritity private key.

When client connects it recives the certificate, and using the issuing authoritity public key verifies the signature. And then using their own public key they use a mathematical algorithm to generate a shared key which would be used for symmetric encryption of data.

In spirit, this is how TLS works except more advanced mathematical algorithms are used

shell

                $ openssl s_client -connect localhost:30001
                

Level 16

This level requires us to identify the correct port based on certain properties and submit the current password to that port using TLS encryption.

To perform this we use nmap:

shell

                $ nmap localhost -p31000-32000 -sV
                

Here -p is used to establish a range of ports and -sV is used to determine service version. Based on this we determine the correct port ( read the otw page ).

Now when we connect via tls encryption we encounter "KEYUPDATE" which means an update of the keys for the current TLS connection and this event is triggered by k or K ( K is used to force keyupdate ). To fix this we use a special flag -ign_eof

shell

                $ openssl s_client localhost:31790 -ign_eof
                

Level 17

This level requires us to find the unique line of text in between two files. We use `diff` utility which compares two files line by line.

shell

                $ diff password.new password.old
                

Level 18

This level requires us to read the readme file in home directory. The challenge being here is that .bashrc file is modified which causes one to logout as soon as they login.

The .bashrc is a special file which executes everytime we open a shell session. Whenever we login, a shell session is opened and the .bashrc file is executed which closes the connection.

To fix this, we use -t flag of ssh which allows us to execute command in a pseudo terminal. To read more about pseudo terminal click here

shell

                $ ssh bandit18@bandit.labs.overthewire.org -p 2220 -t "cat readme"
                

Level 19

Coming Soon!