Administración de Sistemas de Manera Remota
Una vez que hemos comprometido una máquina remota, se inicia el proceso de Postexplotación.
La fase de Postexplotación se encuentra separada por una delgada línea de la fase de explotación. El motivo es que las dos fases son prácticamente idénticas, la única diferencia es que en la fase de Postexplotación ya partimos de un primer sistema comprometido y nuestro objetivo será poder administrar el equipo de la víctima de manera remota, utilizarlo para pivotar en la red o establecer ciertas opciones de persistencias que nos garanticen accesos sucesivos al equipo.
Dependiendo del sistema operativo de la víctima puede que tengamos más posibilidades de gestión. Esto es debido a que existen payloads mucho más avanzados para los sistemas Microsoft que para los sistemas Linux.
Además, el tipo de acciones que podremos realizar en el sistema remoto será mucho mayor si el usuario con el que se ha conseguido el acceso tiene privilegios elevados en el sistema remoto dado que hay ciertas tareas administrativas que sólo se pueden realizar si el payload se está ejecutando con un usuario privilegiado.
Meterpreter
Meterpreter es un payload avanzado de tipo shellcode presente en Metasploit.
Es extensible de manera dinámica mediante la inyección de librerías dlls. Esto quiere decir que se pueden cargar módulos en el equipo comprometido de manera dinámica en caso de que fueran requeridos para realizar alguna acción concreta en la fase de Postexplotación.
Además, Meterpreter se ejecuta enteramente en memoria sin dejar ningún tipo de traza en disco. Por otro lado, puede inyectarse en distintos procesos siempre que dispongamos de privilegios elevados para modificar el contexto del proceso en el que se inyecta.
Normalmente lo utilizaremos meterpreter seleccionándolo como payload en la explotación de sistemas Windows (también hay versiones para Java y Android)
A continuación se muestran los comandos de meterpreter más utilizados:
Comandos básicos y manipulación del sistema de ficheros
Son comandos básicos que acceden al sistema de ficheros del equipo remoto:
- ls: Listar ficheros y directorios en el equipo remoto.
- mkdir: Crea un directorio en el sistema de ficheros remoto.
- upload file: Transfiere un fichero al sistema remoto.
- download file: Descarga un fichero en del equipo remoto.
- background: Pone la sesión de meterpreter en background y regresa a la consola de Metasploit.
Comandos del sistema
Son comandos que permiten interactuar con los procesos del sistema, incluso generar nuevos procesos.
- getpid: Indica el proceso al que está inyectado la shellcode meterpreter.
- ps: Lista todos los procesos del sistema remoto.
- migrate “id_proceso”: Migra el proceso de meterpreter a otro proceso. Normalmente se migra a un proceso que esté siempre activo como “explorer.exe”
- execute “comando”: Ejecuta un comando en el sistema remoto.
- getuid: Muestra el contexto del usuario con el que se está ejecutando meterpreter.
Se utilizan para comprobar los datos de red en el equipo remoto:
- ipconfig: Muestra las propiedades de red del equipo remoto.
- netstat: Muestra las conexiones establecidas actualmente en formato IP:Puerto de origen IP:Puerto destino
Realiza una carga dinámica de módulos que no vienen precargados por defecto en meterpreter.
- load kiwi: Carga el módulo Mimikatz para extraer información sensible de la memoria RAM de Windows, se pueden extraer hashes, credenciales en claro, tokens, etc.
- load incognito: Carga el módulo de incognito, para impersonar usuarios que tuvieran una sesión iniciada en el equipo remoto impersonando los tickets de Kerberos.
- load priv: Carga un módulo específico para realizar técnicas de elevación de privilegios.
- load sniffer: Carga un módulo para capturar y monitorizar toda la actividad en red del sistema remoto. Luego se puede utilizar la herramienta wireshark para acceder a las capturas de red recopiladas.
Inicia un keylogger en la máquina remota para capturar todas las pulsaciones de teclado.
- keyscan_start: Inicia el Keylogger en la máquina remota.
- keyscan_dump: Vuelca todas las pulsaciones de teclado desde el último dump realizado.
- keyscan_stop: Finaliza el Keylogger.
Elevación de privilegios
- getsystem: Comando que utiliza 4 técnicas diferentes para intentar una elevación de privilegios en los sistemas Microsoft Windows.
Volcar hashes
En caso de disponer de un acceso privilegiado vuelca los hashes (representación criptográfica de las credenciales de un sistema remoto) de las contraseñas de los usuarios de Microsoft Windows.
- hashdump: Recoge los hashes de los usuarios de Windows de la máquina remota. Estos hashes se pueden crackear para obtener la contraseña del usuario o incluso utilizarse para autenticarse en el sistema mediante técnicas de “Pass the Hash”.
Borrado de huellas
Elimina trazas que se hubieran quedado en el equipo remoto, también se necesita un acceso privilegiado.
- clearev: Borra logs del registro de eventos de Microsoft Windows.