Un meterpreter es una carga útil avanzada, sigilosa, multifacética y dinámicamente extensible que funciona inyectando DLL reflectante en una memoria de destino. Los scripts y complementos se pueden cargar dinámicamente en tiempo de ejecución con el fin de extender la actividad posterior a la explotación.
Esto incluye escalado de privilegios, descarga de cuentas del sistema, registro de teclas, servicio de puerta trasera persistente, habilitación de escritorio remoto y muchas otras extensiones. Además, toda la comunicación de la shell meterpreter está encriptada de forma predeterminada.
Dado que Meterpreter proporciona un entorno completamente nuevo, cubriremos algunos de los comandos Meterpreter esenciales para ayudarlo a comenzar y ayudarlo a familiarizarse con esta herramienta más poderosa.
- Comando 1-Cargar archivo en Destino de Windows
- Comando 2: Descargar archivo desde el destino de Windows
- Comando 3 – Ejecutar .archivo exe en Destino
- Comando 4: Crea un nuevo canal con CMD
- Comando 5-Mostrar procesos
- Comando 6-Obtener shell CMD en el objetivo
- Comando 7-Obtener privilegios de administrador
- Comando 8-Volcar todos los Hashes con Hashdump
- Comando 9-Volcado de Hashes con Credcollect
- Comando 10-Crear reenvío de puerto
- Comando del 11 – Eliminar Port Forward
- Comando 12-Buscar archivos en el destino
- El comando 13-Get User ID
- Comando 14-Obtener Información del sistema
- Comando 15-Suplantar a cualquier Usuario (Manipulación de Tokens)
Comando 1-Cargar archivo en Destino de Windows
De forma sencilla, puede cargar cualquier archivo desde su máquina local a su máquina de destino remota.
Sintaxis: cargar <archivo> <destino>
Nota: Usando el interruptor-r para subir directorios recursivamente y sus contenidos.
Comando 2: Descargar archivo desde el destino de Windows
El comando descargar descarga un archivo desde el equipo remoto.
Sintaxis: descargar < archivo> < ruta a guardar>
Tenga en cuenta el uso de las barras dobles al dar la ruta de Windows.
En el caso de que necesitemos descargar recursivamente un directorio completo, usamos el comando download-r.
Comando 3 – Ejecutar .archivo exe en Destino
También es posible ejecutar una aplicación en la máquina de destino ejecutando el comando execute.
La sintaxis de este comando es execute-f <file> , que ejecuta el archivo dado en la máquina de destino. Opciones:
Sintaxis: execute-f < ruta>
Comando 4: Crea un nuevo canal con CMD
Por ejemplo, si desea ejecutar el símbolo del sistema en la máquina de destino, el comando sería:
Sintaxis: execute-f cmd-c
Comando 5-Mostrar procesos
El comando ps muestra una lista de procesos en ejecución en el destino.
Sintaxis: ps
Comando 6-Obtener shell CMD en el objetivo
El comando shell le presentará un shell estándar en el sistema de destino.
Sintaxis: shell
Comando 7-Obtener privilegios de administrador
El comando getsystem le dará privilegios de sistema local.Sintaxis
: getsystem
Comando 8-Volcar todos los Hashes con Hashdump
Usemos el poder de meterpreter shell y volquemos las cuentas y contraseñas actuales del sistema en poder del objetivo. Estos se mostrarán en formato hash NTLM y se pueden revertir mediante varias herramientas y técnicas en línea.
Para su referencia y comprensión, visite https://hashkiller.co.uk/ntlm-decrypter.aspx.
Sintaxis: hashdump
La salida de cada línea está en el siguiente formato: Nombre de usuario: SID: LM hash: NTLM hash:::, por lo que esta ejecución produjo 5 cuentas de usuario: Administrador, Invitado, Asistente de ayuda, Propietario y SUPPORT_388945a0.
Comando 9-Volcado de Hashes con Credcollect
Un script similar credential_collector también reúne tokens de la máquina de destino.
Sintaxis: ejecutar credcollect
Comando 10-Crear reenvío de puerto
El comando portfwd desde el shell Meterpreter se usa más comúnmente como una técnica pivotante, que permite el acceso directo a máquinas que de otro modo serían inaccesibles desde el sistema atacante.
La opción agregar agregará el reenvío de puertos a la lista y esencialmente creará un túnel.
Tenga en cuenta que este túnel también existirá fuera de la consola de Metasploit, por lo que estará disponible para cualquier sesión de terminal.
Sintaxis: portfwd agregar -l <portnumber> -p <portnumber> -r <IP de Destino>
Comando del 11 – Eliminar Port Forward
se eliminan las Entradas muy similar al comando anterior.Sintaxis
: portfwd delete-l < número de puerto>- p < número de puerto> – r < IP de destino>
En caso de que desee enumerar todas las entradas, el comando es «portfwd list» y para eliminar todas las entradas, también puede usar el comando «portfwd flush».
Comando 12-Buscar archivos en el destino
Los comandos de búsqueda proporcionan una forma de localizar archivos específicos en el host de destino. El comando es capaz de buscar en todo el sistema o en carpetas específicas.
Por ejemplo, si desea buscar en todos .archivos txt en la máquina de destino, entonces el comando meterpreter es:
Sintaxis: search-f*.txt
El comando 13-Get User ID
Al ejecutar getuid, se mostrará el usuario en el que se está ejecutando el servidor Meterpreter en el host.
Sintaxis: getuid
Comando 14-Obtener Información del sistema
El comando sysinfo le dará la información sobre el sistema explotador, como el Nombre, el Tipo de sistema operativo, la Arquitectura, el Idioma, etc.Sintaxis
: sysinfo
Comando 15-Suplantar a cualquier Usuario (Manipulación de Tokens)
Este proceso es muy útil para atacar sistemas distribuidos como Microsoft Active Directory, donde tener acceso local solo no es de gran beneficio, pero poder pasar a las credenciales para ese sistema, especialmente las credenciales administrativas, son de gran valor.
Incognito era originalmente una aplicación independiente que le permitía hacerse pasar por tokens de usuario cuando comprometía un sistema con éxito. Esto se integró en Metasploit y, en última instancia, en Meterpreter.
- Simplemente cargue el módulo en nuestra sesión Meterpreter ejecutando el comando usar de incógnito.
- Escriba el comando list_tokens-u para listar todos los tokens válidos.
- Ahora necesitamos suplantar a este token para asumir sus privilegios. Tenga en cuenta también que después de suplantar con éxito un token, verificamos nuestro ID de usuario actual ejecutando el comando getuid.
Sintaxis: use incognito
Sintaxis: list_tokens-u
Sintaxis: impersonate_token «Máquina \ \ usuario»