[Hacking walkthrough] THM: CTF 100 – Stage 2

[Hacking walkthrough] THM: CTF 100 – Stage 2

Greeting there, welcome to another CTF 100 write-up. Today, we are going to a full walkthrough on stage 2. The theme for this stage is HTTP which also known as simple HTTP and POP3 mail server. For your information, there is only 1 person who solved the entire stage 2 (as for 10/11/2019). Guess this might be a suitable time to release stage 2 write-up. Without further ado, let start the challenge.

  1. Flag-19
  2. Flag-20
  3. Flag-21
  4. Flag-22
  5. Flag-23
  6. Flag-24
  7. Flag-25
  8. Flag-26
  9. Flag-27
  10. Flag-28
  11. Flag-29
  12. Flag-30
  13. Flag-31
  14. Flag-32
  15. Flag-33

Task 2: Stage 2

Deploy the machine and telnet to the port 9999. Be sure to enter the port sequence which you obtained from stage 1.

After that, fire up your Nmap scanner with the following command.

$ nmap -Pn -v --min-parallelism 100 <Machine IP>

Looks like we have port 1111 opened on the machine. A further scan on the port leads us to an HTTP server.

Task 2-1: Flag 19 – Find and replace

At first glance, the page is overload with ‘alert!’. In order to obtain Flag 19, you need to copy the entire text into a text editor (notepad or Gedit, prefer notepad++). After that, replace the word to nothing.

Voila, you just get the first flag of the stage.

Answer: j4dnbdewgwgy5r7kjtnd

Task 2-2: Flag 20 – Robots

The flag is hidden inside the robots.txt. Basically robots.txt used to tell the search engine such as Google not to index a certain directory.

Answer: 2re645f4n2ex85g3b2fw

Task 2-3: Flag 21 – Bust the directory part 1

Every time you encounter an HTTP server (Not HTTPS), enumerate the server for any hidden directory. For starter, I recommend common.txt from dirb. Use the following command to start the enumeration.

$ gobuster dir -u http://<target IP>:1111 -w /usr/share/dirb/wordlists/common.txt

It seems that we have a hidden directory inside the server.

That’s all? Where is the flag? Another rule of HTTP, check the comment.

Answer: 5tjdmdawe35dsacmunqa

Task 2-4: Flag 22 – Bust the directory part 2

Something enumerate the directory with common.txt alone is not enough. There are other wordlists available in the kali machine. Simply go to /usr/share in kali and you will found tons of wordlists. For this task, we are going to use big.txt from dirb.

$ gobuster dir -u http://<target IP>:1111 -w /usr/share/dirb/wordlists/big.txt

It going to take a while. After that, we get another hidden directory.

Take note of the base encoding like strings. I marked it as base 1.

Answer: 35x7axg8xd7n4geyxp2t

Task 2-5: Flag 23 – Bust the directory part 3

This is the final part of busting the directory. We are going to use directory-list-lowercase-2.3-medium.txt from dirbuster.

We found the third hidden directory.

Actually, there is a base hidden inside the page. You can inspect it either highlight the entire page or press F12 to inspect the element. I purposely disabled the right-click.

Answer: 5vttxb43qpsh9ctbfzrd

Task 2-6: Flag 24 – POP3 mail server

The encoded texts are the key to the pop3 mail server. Notice that the two marked bases,

1) UHJvY2VlZCB3aXRoIHRoZSBuZXh0IGNoYWxQMFZXG53POJSDUIDUNBSV6ZLOMQ======
2) KVZWK4TOMFWWKORAM5QW2ZLPOZSXEIDsZW5nZTogODc2OSwgOTQ1MywgNjEyMywgOTkxMy4=

For base 1, you noticed all letters are in the capital letters at the end of the string. On the other hand, most of the capital letters can be found at the beginning of base 2. For your information, the encoded base32 is made up of capital letters. Hence, we need to exchange part of the strings in between base 1 and base 2. Problem is, how to exchange? If you read the source code, the string is separated by a style tag and that is the breaking point.

You should get the following bases.

UHJvY2VlZCB3aXRoIHRoZSBuZXh0IGNoYWxsZW5nZTogODc2OSwgOTQ1MywgNjEyMywgOTkxMy4=
KVZWK4TOMFWWKORAM5QW2ZLPOZSXEIDQMFZXG53POJSDUIDUNBSV6ZLOMQ======

Decode the bases and move on to the port 9999 to unlock the POP3 mail server.

Access the POP3 mail server or Port 110 via telnet. After that, enter the credential and read the first mail.

Answer: phzppg952hsxaarspjfs

Task 2-7: Flag 25 – Ook esolang

Read the second mail to capture the flag 25.

Basically this is an Ook esolang and you need to perform two steps to make it right

Step 1: Remove the extra dot

For your information, each Ook is a brainfuck variation and made up of 2 sets of 4 letters. However, if you notice the first Ook of each line, the string is made up of 6 letters. Hence, you are required to remove two extra dots. For example, the first line

...... .... .... .... .... .... .... .... .... .... .... .... .... .... ....

Should become

.... .... .... .... .... .... .... .... .... .... .... .... .... .... ....

Step 2: Replace dot to Ook

The next step is to replace the first 3 dots to Ook. Use ‘find and replace’. For example

.... .... .... .... .... .... .... .... .... .... .... .... .... .... ....

Should become

Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.

Step 3: Roundup

The final Ook string should be the following pattern

Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook. Ook? Ook. Ook. Ook. Ook? Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook?
Ook. Ook? Ook. Ook? Ook. Ook! Ook! Ook? Ook! Ook. Ook? Ook. Ook? Ook. Ook?
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook! Ook. Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook.
Ook! Ook. Ook. Ook? Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook! Ook. Ook? Ook. Ook? Ook. Ook! Ook. Ook. Ook? Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook! Ook. Ook. Ook? Ook. Ook. Ook! Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook! Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook! Ook! Ook.
Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook?
Ook. Ook. Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook! Ook!
Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook. Ook? Ook. Ook! Ook! Ook! Ook! Ook!
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook! Ook. Ook? Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook.
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook.
Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook? Ook! Ook! Ook!
Ook! Ook! Ook! Ook! Ook. Ook! Ook! Ook! Ook. Ook? Ook. Ook? Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook.
Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook! Ook. Ook? Ook. Ook? Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook?
Ook. Ook? Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook! Ook! Ook! Ook. Ook! Ook!
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook. Ook! Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook! Ook! Ook! Ook!
Ook! Ook! Ook. Ook? Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook. Ook? Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook! Ook! Ook! Ook! Ook!
Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook?
Ook. Ook? Ook. Ook! Ook. Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook! Ook! Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook! Ook. Ook.
Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook!
Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook! Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook.
Ook. Ook. Ook! Ook. Ook? Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook! Ook. Ook. Ook? Ook! Ook! Ook! Ook!
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook. Ook. Ook! Ook. Ook. Ook?
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook! Ook!
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook.
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook! Ook! Ook! Ook! Ook!
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook!
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook! Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook.

Decode the esolang to plaintext using an online decoder.

Answer: nsknvw33cx4kfzhdbveb

Task 2-8: Flag 26 – Rearrange the text

Hints on the subject, 264315. Basically you need to rearrange the text according to the numbering.

zf7b75uung8afcyfj3t2
26431526431526431521

The repeating key is 2 and 1 for the last two letters (removing 3,4,5,6). Rearrange the letters according to the number and obtain the flag.

Answer: 7zb75f8ugnaujffy3c2t

Extra: You can rearrange the letter to get the hidden username or find it in message 4.

sareuneaawmkaakw
2643152643152431

Translate to: username wakawaka

Task 2-9: Flag 27 – Rail fence cipher

The ciphertext is ciphered with rail fence cipher. According to the subject (hint), the rail key is 2.

Answer: cvkwvjtzvnvpwznqxwsb

Task 2-10: Flag 28 – Hydra bruteforce

We have obtained the hidden username for the POP3 mail server in the previous task. Time to brute force the password. For your information, the password of wakawaka can be found on rockyou.txt. Also, in order to minimize the brute-forcing time, the password is somehow located in between line 4500 to 5500 and we have to use the sed command to extract the line.

$ sed -n 4500,5500p /usr/share/wordlists/rockyou.txt > wakawaka.txt

Next, launch your hydra with the following command.

$ hydra -t 64 -l wakawaka -P wakawaka.txt pop3://<target IP>

After that, revisit the port 110 with the newly found credential.

Read the first message and capture the flag.

Answer: 3yy9e7wwe2b8fy65sgxb

Task 2-11: Flag 29 – SMS in the old day

This is an SMS tap code and the 3310 is referred to the famous Nokia 3310 cell phone. If you have an old phone with keypad, notice that tapping number 3 for 3 times result in letter f and 0 for space, etc. Use the online tool to decode the message.

FLAG TWENTYNINE IS WSPAMWRZHNCHRWRXEUJH NEXT PORT IS THREE ONE THREE THREE ZERO

Please take note of the port number as you need it for the next stage.

Answer: WSPAMWRZHNCHRWRXEUJH

Task 2-12: Flag 30 – Keyboard shift cipher

This flag can be solved by just looking at your keyboard. For example, the left key of g is f, the left key of ; is l and etc. Or, you can just use an online decoder.

flag thirty is fypsqrufpsxubywakqtj. Next port is five one nine six zero

Answer: fypsqrufpsxubywakqtj

Task 2-13: Flag 31 – Bubble babble

This is a serial number like encoding text which is called bubble babble. Use the online decoder to decode the message.

Answer: 5u3rfa3vm6zzh7pzyqpe

Task 2-14: Flag 32 – JSFuck

This is another esolang called JSFuck. Copy the text and paste to any JSFuck translator.

Answer: 3j9c8utp2ag6bwbrkmkn

Task 2-15: Flag 33 – ASCII shift

It is similar to the ROT cipher but involved with all ASCII code from the ASCII table. Use the following online tool to decode the message.

Answer: 4w4v5bg7pzgzafvuv7fr

Task 2-16: Until the next challenge.

Did you notice the numbering on the last 5 tasks? That is the port knocking sequence for stage three. The order should be

31330 51960 61111 10101 32212

Use this number to unlock the port on stage 2. IF you have doubts about the sequence, you can perform a check on port 9999.

Answer: 31330 51960 61111 10101 32212

Conclusion

That concludes the CTF 100 stage 2 write-up. Stage 3 write-up coming soon. See ya 😉

Share the knowledge

Leave a Reply