Informe_Metaesploit
description
Transcript of Informe_Metaesploit
R i o b a m b a - E c u a d o r
2014
ATAQUE DE PENETRACIÓN CON METASPLOIT
FRAMEWORK Seguridad de Redes
FIE-EIE-TEL
ESCUELA SUPERIOR POLITÉCNICA DE CHIMBORAZO
ESCUELA SUPERIOR POLITÉCNICA DE CHIMBORAZO
ESCUELA DE INGENIERIA ELECTRÓNICA
TELECOMUNICACIONES Y REDES
1
MATERIA: Seguridad de Redes
DOCENTE: David Garcés, Ing.
ESTUDIANTE: Adrian Siguenza
Achic León
Freddy Aguilar
Carlos Chamba
FECHA: 2014-12-01
TEMA: Ataque de penetración con Metasploit Framework.
Indice
Introducción .......................................................................................................................................... 1
Objetivo……………………………………………………………………………………………………………………………………2
Marco Teórico...........................................................................................................................................................2
Prueba de
concepto……………………………………………………………………………………….………………………………9
Conclusión…………………………………………………………………………………………………………………..18
Bibliografía ...........................................................................................................................................18
Introducción
El manejo de información ha tomado un interés crucial en cuanto a seguridad se
refiere, ya que nos encontramos expuestos a la sustracción de nuestra información
o suplantación de identidad, por parte de los delincuentes de la red.
En el siguiente trabajo de investigación se realizará un escaneo de red, y mediante
un testeo de las vulnerabilidades existentes en el sistema operativo Windows
ingresaremos a la red a través del puerto samba, ya que por defecto siempre se
encuentra habilitado dentro de los equipos que utilizan dicho sistema operativo,
para lograr nuestro objetivo se usará la herramienta Metasploit Framework.
Se realizaran pruebas en una red doméstica y la primera fue con un host con
sistema operativo Windows XP.
ESCUELA SUPERIOR POLITÉCNICA DE CHIMBORAZO
ESCUELA DE INGENIERIA ELECTRÓNICA
TELECOMUNICACIONES Y REDES
2
Al finalizar las pruebas se espera tener el control total de un host con sistema
operativo Windows XP que se encuentre en la misma red implementada para las
pruebas.
Objetivo:
Penetrar un Sistema Operativo Windows XP, mediante el puerto 139 (samba).
Marco Teórico:
PRUEBA DE PENETRACIÓN
Las pruebas de penetración , a menudo llamado " pentesting " , " pruebas de
penetración " , o " pruebas de seguridad " , es la práctica de atacar a su propia
cuenta o sistemas de TI de sus clientes de la misma manera que un hacker podría
identificar agujeros de seguridad.
Por supuesto, esto se hace sin llegar a dañar la red. La persona que lleva a cabo una
prueba de penetración se llama un probador de penetración o pentester.
METASPLOIT
Según David Kennedy, Metasploit es un sistema de pruebas de intrusión como una
plataforma de desarrollo para la creación de herramientas de seguridad y exploits
(Kennedyet. al, 2011).
Este se divide en lo siguiente:
Exploits: donde encontramos todos los exploits disponibles en MSF y que
podemos utilizar.
Payloads: acción que se va a realizar si se logra explotar la vulnerabilidad que
seleccionamos.
Ejemplo: Windows/shell/reverse_tcp y con esto obtendríamos una Shell inversa.
ESCUELA SUPERIOR POLITÉCNICA DE CHIMBORAZO
ESCUELA DE INGENIERIA ELECTRÓNICA
TELECOMUNICACIONES Y REDES
3
Auxiliary: son scripts con diferentes funciones.
Utilizando un scanner de puertos tcp, obtendríamos el estado de puertos y el
servicio que está corriendo bajo este mismo.
Metasploit: Es un proyecto open source de seguridad informática que
proporciona información acerca de vulnerabilidades de seguridad y ayuda en tests
de penetración y en el desarrollo de firmas para sistemas de detección de intrusos.
Su subproyecto más conocido es el Metasploit Framework, una herramienta para
desarrollar y ejecutar exploits contra una máquina remota.
ARQUITECTURA DE METASPLOIT
- Modulo auxiliary: Permite la interacción de herramientas externas como
pueden ser escaners de vulnerabilidades, sniffers, etc., con el framework de
Metasploit.
- Modulo encoders: Proporciona algoritmos para codificar y ofuscar los payloads
que utilizaremos tras haber tenido éxito el exploit.
ESCUELA SUPERIOR POLITÉCNICA DE CHIMBORAZO
ESCUELA DE INGENIERIA ELECTRÓNICA
TELECOMUNICACIONES Y REDES
4
- Modulo exploits: Aquí es donde se encuentran todos los exploits disponibles en
el framework para conseguir acceso a los diferentes SOs.
- Modulo payloads: Nos proporciona gran cantidad de códigos “maliciosos” que
podremos ejecutar una vez haya tenido éxito el exploit.
- Modulo post: Nos proporciona funcionalidades para la fase de post explotación.
- Modulo nops: Nos permite realizar u obtener operaciones nop.
COMANDOS DE MSFCONSOLE
MetaSploit permite ser ejecutado de diferentes formas, desde línea de comandos
con msfcli, en donde se aceptan cada uno de los comandos metasploit de forma
independiente, por interfaz web (deprecada en las últimas versiones y disponible
únicamente en versiones antiguas), o por medio de la consola unificada
de metasploit llamada msfconsole (se trata de un intérprete de comandos bastante
robusto que es el sustituto de la interfaz web), esta última es la más utilizada por
aquellos que utilizan metasploit para realizar sus pruebas de penetración.
Help: Tal como su nombre indica permite obtener ayuda en un contexto
determinado (exploit o module).
Back: Permite salir del contexto actual de ejecución (exploit o module)
Check: Aunque no todos los exploits lo soportan, permite ver si un objetivo
determinado es vulnerable al exploit que se encuentra actualmente seleccionado
en la consola.
Connect: Al igual que realizamos una conexión por medio de telnet o netcat, este
comando nos permite conectarnos a un host remoto y enviar ficheros si es lo que
deseamos, también soporta SSL si se le indica la opción -s
msf> connect 192.168.1.34 23
ESCUELA SUPERIOR POLITÉCNICA DE CHIMBORAZO
ESCUELA DE INGENIERIA ELECTRÓNICA
TELECOMUNICACIONES Y REDES
5
Exploit: Comando utilizado para realizar la ejecución del exploit cargado en el
contexto de la consola.
Run: Comando utilizado para realizar la ejecución del módulo/auxiliary cargado
en el contexto de la consola.
Irb: Permite ejecutar el interprete de Ruby para metasploit, de este modo se
pueden ingresar comandos y crear scripts al vuelo, esta característica es muy
interesante para conocer la estructura interna del framework.
Jobs: Se trata de módulos que se encuentran en ejecución en “background” este
comando permite listar y terminar comandos existentes.
Load: Permite cargar un plugin desde el directorio de plugins ubicado en la ruta de
instalación, recibe como parámetro el nombre del plugin.
Unload: Descarga un plugin cargado, recibe como parámetro el nombre
del plugin a descargar.
Loadpath: Trata de cargar un directorio donde se encuentran ubicados
módulos, plugins o exploits externos al framework, de esta forma podemos tener
exploits, payloads, etc. en un directorio independiente.
Resource: Carga un fichero de script que es posteriormente utilizado por
algún exploit o modulo que depende de él.
Route: Permite establecer las tablas de enrutamiento de las sesiones de Metasploit
generadas. Funciona similar al comando route de Linux, permite
adicionar subredes, mascaras de red y gateways.
Info: Despliega información adicional de un módulo o exploit seleccionado
ESCUELA SUPERIOR POLITÉCNICA DE CHIMBORAZO
ESCUELA DE INGENIERIA ELECTRÓNICA
TELECOMUNICACIONES Y REDES
6
anteriormente en la consola, incluyendo todas las opciones, objetivos y otra
información.
Set: Permite establecer opciones del modulo o exploit seleccionado con el fin de
suministrar los datos necesarios para su correcta ejecución.
Unset: Elimina el valor actual de una variable del exploit o módulo en uso.
Sessions: Permite listar, interactuar y terminar sesiones generadas por módulos
o exploits, estas sesiones pueden ser consolas a máquinas remotas VNC, etc. con la
opción -l se pueden listar las sesiones generadas, -i <number> permite iniciar la
interacción con el número de consola establecido.
Search: permite ejecutar una búsqueda basada en expresiones regulares con un
texto que pueda coincidir con el nombre de un módulo o exploit.
Show: Permite mostrar las diferentes opciones para módulos, exploits y payloads.
msf> show auxiliary
msf> show exploits
msf> show payloads
msf> show options
msf> show targets
msf> show advanced
msf> show encoders
msf> show nops
msf> show evasion
Setg: Permite definir variables globales que serán empleadas por todos los
módulos o exploits cargados, de esta forma es posible definir variables bastante
comunes como LHOST, RHOST, LPORT, RPORT, etc. en una única interacción con la
consola sin escribir lo mismo una y otra vez.
ESCUELA SUPERIOR POLITÉCNICA DE CHIMBORAZO
ESCUELA DE INGENIERIA ELECTRÓNICA
TELECOMUNICACIONES Y REDES
7
Save: Permite almacenar de forma permanente las variables globales establecidas
con el comando setg y las variables específicas de cada exploit en uso.
Use: Permite establecer el exploit o modulo a usar en la consola de metasploit.
SAMBA
Es una implementación libre del protocolo de archivos compartidos de Microsoft
Windows (antiguamente llamado SMB, renombrado recientemente a CIFS) para
sistemas de tipo UNIX.
De esta forma, es posible que computadoras con GNU/Linux,Mac OS X o Unix en
general se vean como servidores o actúen como clientes en redes de Windows.
Samba también permite validar usuarios haciendo de Controlador Principal de
Dominio (PDC), como miembro de dominio e incluso como un dominioActive
Directory para redes basadas en Windows; aparte de ser capaz de servir colas de
impresión, directorios compartidos y autentificar con su propio archivo de
usuarios.
Entre los sistemas tipo Unix en los que se puede ejecutar Samba, están las
distribuciones GNU/Linux, Solaris y las diferentes variantes BSD entre las que
podemos encontrar el Mac OS X Server de Apple.
HASHDUMP
Comando hashdump, para poder hablar de él, antes se debe explicar el método de
autenticación de Windows, NT Lan Manager, este es vulnerable a diversos ataques,
ya que no es necesario descifrar su contraseña, sino que es posible iniciar sesión
capturando el hash, así que "da igual que la contraseña sea de 10 caracteres o de
50, como den con el hash estas perdido", porque pueden realizar una
inpersonalización de usuarios.
ESCUELA SUPERIOR POLITÉCNICA DE CHIMBORAZO
ESCUELA DE INGENIERIA ELECTRÓNICA
TELECOMUNICACIONES Y REDES
8
Normalmente en las grandes compañías todos los PC tienen las mismas
contraseñas, con lo cual es posible realizar una inpersonalización de usuarios y
escalar privilegios.
SNIFFER
Básicamente, un sniffer de red es un programa que puede ver toda la información
pasando por una red a la cual esta conectado. Según los flujos de datos van y
vienen por la red, el programa hace una vigilancia de ello, o “captura”
los paquetes que atraviesan los dispositivos de red.
Como ya hemos comentado en otros artículos, un paquete es una parte de un
mensaje que ha sido partido para poder ir de un sitio a otro. Normalmente, un
ordenador solo hace caso de paquetes con direcciones destinadas a el, e ignora el
resto del tráfico de la red.
Sin embargo, cuando un sniffer de red es configurado en un equipo u ordenador, el
interfaz de red es puesto en modo promiscuo para el sniffer. Esto significa que está
vigilando todo lo que atraviesa ese interfaz.
La cantidad de tráfico depende mucho en la localización delordenador en la red.
Un sistema cliente en una parte aislada de la red, solo ver un pequeño segmento
del tráfico de red, mientras que el servidor de dominio principal ve prácticamente
todo. Un sniffer de red puede ser configurado en dos modos:
Filtrado (captura todos los paquetes) y no filtrado (captura solo aquellos paquetes
contendiendo elementos de datos específicos).
Los paquetes que contienen datos que se filtran, son copiados al disco duro según
pasan. Estas copias pueden ser analizadas con tranquilidad después para
encontrar una información específica.
ESCUELA SUPERIOR POLITÉCNICA DE CHIMBORAZO
ESCUELA DE INGENIERIA ELECTRÓNICA
TELECOMUNICACIONES Y REDES
9
PRUEBA DE CONCEPTO
1. Descripción del Escenario
Nuestra máquina virtual victima tiene abierto los puertos por defecto samba lo
cual nos facilita conseguir acceso a un PC utilizando Metasploit.
2. Análisis del Caso
Se trata de un servicio que tiene múltiples vulnerabilidades bajo sistemas
Windows y que frecuentemente es el punto de acceso de un pentester, en el
caso de GNU/Linux ocurre lo mismo, también es posible explotar
vulnerabilidades existentes en el servicio de Samba, especialmente cuando no
se encuentra correctamente parcheado.
3. Pre-Requisitos y Herramientas
Hardware
Una pc con el software necesario.
Software
Kali Linux como atacante
Una maquina virtual con un Windows XP como víctima
ESCUELA SUPERIOR POLITÉCNICA DE CHIMBORAZO
ESCUELA DE INGENIERIA ELECTRÓNICA
TELECOMUNICACIONES Y REDES
10
Demostración:
Paso 1: Escaneo de la red: nmap –sP 192.168.1.0/26
Paso 2: Análisis del equipo que vamos a atacar, IP: nmap –sP 192.168.1.15/26
ESCUELA SUPERIOR POLITÉCNICA DE CHIMBORAZO
ESCUELA DE INGENIERIA ELECTRÓNICA
TELECOMUNICACIONES Y REDES
11
Paso 3: Para entrar a Metasploit es necesario ingresar a la consola, para esto utilizaremos el
comando msfconsole, una vez a dentro digitamos otro comando: search samba que me
permite obtener el listado de posibles exploits.
Paso 4: Una vez ejecutados estos comando tendremos una descripción de exploit similar a esta
pantalla.
ESCUELA SUPERIOR POLITÉCNICA DE CHIMBORAZO
ESCUELA DE INGENIERIA ELECTRÓNICA
TELECOMUNICACIONES Y REDES
12
Paso 5: Elegimos la vulnerabilidad a utilizar y la buscamos por el nombre, nos indicará cual es
el exploit que debemos utilizar así que lo seleccionamos y procedemos a la configuración.
Paso 6: Podemos ayudarnos del comando show options para saber las opciones que tenemos
con nuestro exploit, en este caso existen 2 opciones, la primera es RHOST que sirve para
seleccionar la ip objetivo y la segunda es RPORT, que nos permite seleccionar el puerto.
ESCUELA SUPERIOR POLITÉCNICA DE CHIMBORAZO
ESCUELA DE INGENIERIA ELECTRÓNICA
TELECOMUNICACIONES Y REDES
13
Paso 6: Para nuestra demostración utilizaremos ip target (set rhost 192.168.15, set rhost
192.168.1.14), procederemos a ejecutar el exploit, ya que por defecto el RPORT (puerto) que
viene configurado en este es el puerto 139, así que se ejecutada directamente en la terminal
con el comando: exploit y podemos observar que hemos logrado abrir un sesión.
Paso 7: Usamos el comando dir y nos dará los directorios por los que podremos movernos
en la máquina vulnerada en nuestro caso obtendremos del sistema el listado de usuarios y
contraseñas: hashdump (El módulo post "hashdump 'volcará el contenido de la base de datos
SAM).
ESCUELA SUPERIOR POLITÉCNICA DE CHIMBORAZO
ESCUELA DE INGENIERIA ELECTRÓNICA
TELECOMUNICACIONES Y REDES
14
Paso 8: Configuramos remotamente un sniffer que me permita obtener todo el tráfico que se
genera en mi maquina víctima.
ALGUNAS ACCIONES LUEGO DE LA PENETRACIÓN QUE PODEMOS REALIZAR:
Navegación en la maquina atacada.
ESCUELA SUPERIOR POLITÉCNICA DE CHIMBORAZO
ESCUELA DE INGENIERIA ELECTRÓNICA
TELECOMUNICACIONES Y REDES
15
Captura y descarga de paquetes.
Análisis de paquetes capturados.
ESCUELA SUPERIOR POLITÉCNICA DE CHIMBORAZO
ESCUELA DE INGENIERIA ELECTRÓNICA
TELECOMUNICACIONES Y REDES
16
Filtro y localización de usuario y contraseña capturada
Creación de una carpeta en la maquina atacada.
ESCUELA SUPERIOR POLITÉCNICA DE CHIMBORAZO
ESCUELA DE INGENIERIA ELECTRÓNICA
TELECOMUNICACIONES Y REDES
17
Verificación de carpeta en la maquina atacada.
Método de protección.
El método de defensa más eficaz contra la ingeniería es la concienciación del
usuario, es necesario parchar todos los puertos que no se estén utilizando e
identificar la autensidad de petición, finalmente podemos usar:
serwindows/browser/ms10_046_shortcut_icon_dllloader (el fallo de los .lnk), el
cual vamos a explotar a través de Internet Explorer.
Como payload usaremos windows/shell_reverse_tcp para obtener el control del
equipo remoto mediante consola de comandos.
Patriot nos avisa de que ha detectado una ventana oculta del proceso cmd.exe y
una nueva conexión abierta por el proceso svchost.exe. Esto significa que en un
principio el ataque está funcionando, ya que si cmd.exe se está ejecutando quiere
decir que el payload se ha cargado.
ESCUELA SUPERIOR POLITÉCNICA DE CHIMBORAZO
ESCUELA DE INGENIERIA ELECTRÓNICA
TELECOMUNICACIONES Y REDES
18
CONCLUSIÓN:
Como mencionamos al principio uno de nuestros objetivos era tomar el
control total de un host ubicado en nuestra red ya que mediante la
identificación de la versión del servicio se pudo encontrar
el exploit adecuado, Al utilizar la herramienta meterpreter no se encuentran
dificultades con el antivirus, ya que este trabaja a nivel de memoria.
BIBLIOGRAFIA:
http://highsec.es/2013/09/penetrar-un-servidor-unix-por-el-puerto-139/
http://es.wikipedia.org/wiki/Metasploit
http://en.wikipedia.org/wiki/Metasploit_Project
http://es.docs.kali.org/general-use-es/iniciando-el-metasploit-framework
http://www.estacion-informatica.com/2013/03/migrate-y-hashdump-en-
metasploit.html
http://hardc0dexploit.blogspot.com/2014/06/hablando-un-poco-de-metasploit-
y.html
http://books.google.com.ec/books?id=QcuMSdfC_0AC&pg=PR7&lpg=PR7&dq=pue
rto+samba+con+metasploit&source=bl&ots=Z5Qw_zL3wT&sig=XjzUKrBsJXgk3Fjh
ZBuHzM7PHGc&hl=es-419&sa=X&ei=QFd8VIWkCfGLsQTd-
4DoBQ&ved=0CFcQ6AEwCQ#v=onepage&q&f=false