Una vez que hayamos introducido el contexto del módulo usando el comando use seguido del nombre del módulo, necesitaremos configurar parámetros. Es buena práctica usar el comando sho options para obtener una lista de los parámetros requeridos.
Todos se configuran usando la misma sintaxis: set NOMBRE_PARÁMETRO VALOR.
Antes de continuar está bien comprobar el prompt para asegurarse de que estamos en el contexto correcto. Al usar Metasploit podemos ver 5 prompts diferentes:
- El prompt normal: No puedes usar comandos de Metasploit aquí.
- El prompt msfconsole: msf6 es el prompt, pero sin contexto, no se pueden usar comandos específicos de contexto, como configurar parámetros.
- El prompt de contexto: Una vez decidido el módulo y seleccionado con
usepodemos usar comandos comoset. - El prompt de Meterpreter: Meterpreter es un payload muy potente que veremos después. Esto quiere decir que el sistema objetivo se conectó a ti mediante una agente de Meterpreter.
- Una consola en el sistema objetivo: Una vez que el exploit se ha completado, puede que ganes acceso a una así. Todos los comandos ejecutados en esta consola se ejecutan en el sistema objetivo.
Con show options puedes ver los parámetros requeridos y con set configurarlos. Los parámetros que usarás normalmente son:
- RHOSTS: Host remoto, la IP del sistema objetivo. Puedes hacerlo con notación CIDR (/16, /24), con rango (10.10.10.X - 10.10.10.x) o con un archivo que tomará un objetivo por linea.
- RPORT: Puerto remoto, el puerto objetivo del sistema objetivo.
- PAYLOAD: La carga de código que usaremos con el exploit.
- LHOST: Host local, la IP de nuestro equipo.
- LPORT: Puerto local, el puerto de nuestro equipo elegido para las comunicaciones.
- SESSION: Cada conexión establecida con el sistema objetivo con Metasploit tendrá un ID, que usarás con los módulos de post explotación para re conectarte a una sesión existente.
Puedes sobrescribir cualquier parámetro usando el comando set con un valor nuevo o borrarlo usando el comando unset. Si quieres borrarlos todos usa unset all.
Puedes usar el comando setg para establecer valores que se usarán para todos los módulos. Se diferencia en eso del comando set.
El siguiente ejemplo usa el siguiente flujo:
- Usamos el explotable
ms17_010_eternalblue. - Configuramos
RHOSTSusando el comandosetg. - Usamos el comando
backpara dejar el contexto. - Usamos un
auxiliary(este módulo es un escáner para para descubrir vulnerabilidades deMS17-010). - El comando
show optionsmuestra que el parámetroRHOSTSya tiene configurada la IP del sistema objetivo.
msf6 > use exploit/windows/smb/ms17_010_eternalblue [*] No payload configured, defaulting to windows/x64/meterpreter/reverse_tcp msf6 exploit(windows/smb/ms17_010_eternalblue) > setg rhosts 10.10.165.39 rhosts => 10.10.165.39 msf6 exploit(windows/smb/ms17_010_eternalblue) > back msf6 > use auxiliary/scanner/smb/smb_ms17_010 msf6 auxiliary(scanner/smb/smb_ms17_010) > show options Module options (auxiliary/scanner/smb/smb_ms17_010): Name Current Setting Required Description ---- --------------- -------- ----------- CHECK_ARCH true no Check for architecture on vulnerable hosts CHECK_DOPU true no Check for DOUBLEPULSAR on vulnerable hosts CHECK_PIPE false no Check for named pipe on vulnerable hosts NAMED_PIPES /opt/metasploit-framework-5101/data/wordlists/named_pipes.txt yes List of named pipes to check ******RHOSTS 10.10.165.39****** yes The target host(s), range CIDR identifier, or hosts file with syntax 'file:' RPORT 445 yes The SMB service port (TCP) SMBDomain . no The Windows domain to use for authentication SMBPass no The password for the specified username SMBUser no The username to authenticate as THREADS 1 yes The number of concurrent threads (max one per host) msf6 auxiliary(scanner/smb/smb_ms17_010) >
Lo que se configura con setg se mantiene hasta que sales de metasploit o hasta que usas el comando unsetg (o hasta que cambias su valor).
Usar módulos
Una vez que todos los parámetros de los módulos estén configurados, podemos lanzar el módulo usando el comando exploit. También podemos hacerlo con el comando run. El comando exploit puede ser usado sin parámetros o usando el parámetro -z para lanzar el exploit y poner la sesión en segundo plano tan pronto como se abra.
Esto nos devolverá al prompt del contexto desde el que hemos ejecutado el exploit. Algunos módulos soportan la opción check, la cual comprobará si el sistema es vulnerable sin necesidad de explotarlo.
Sesiones
Una vez que una vulnerabilidad ha sido explotada exitosamente, se creará una sesión. Este es el canal de comunicación entre el sistema objetivo y metasploit. Puedes usar el comando background para poner en segundo plano tu sesión actual. De forma alternativa Ctrl + Z puede se usado para el mismo propósito.
El comando sessions puede ser usado desde el prompt de msfconsole o cualquier contexto para ver las sesiones existentes. Para interactuar con cualquiera de las sesiones puedes usar el comando sessions -i seguido del ID de la sesión.
