ESCALANDO PRIVILEGIOS SOBRE UN SISTEMA COMPROMETIDO CON METASPLOIT FRAMEWORK

Una vez un atacante ha conseguido comprometer un objetivo, probablemente las primeras actividades que llevará a cabo serán el escalado de privilegios para realizar tareas de administración sobre el objetivo, borrar sus rastros y finalmente garantizar que el acceso a la maquina comprometida no se interrumpe, lo que implica que en la medida de lo posible se deberá evitar ser detectado por sistemas de AV, Firewalls, IDS, etc. (Sobre técnicas de evasión hablaré en profundidad en próximas entradas)

Una vez obtenida una consola meterpreter por medio de uno de los PAYLOAD (tal como reverse_tcp) se puede usar la extensión priv en el caso de que no se encuentre ya cargada.

meterpreter> use priv
meterpreter > getsystem -h
Usage: getsystem [options]
Attempt to elevate your privilege to that of local system.
OPTIONS:
-h Help Banner.
-t The technique to use. (Default to ‘0’).
0 : All techniques available
1 : Service – Named Pipe Impersonation (In Memory/Admin)
2 : Service – Named Pipe Impersonation (Dropper/Admin)
3 : Service – Token Duplication (In Memory/Admin)
4 : Exploit – KiTrap0D (In Memory/User)

Como se puede apreciar existen diferentes técnicas empleadas por la extensión priv para elevar los privilegios de la consola actual, se puede utilizar una de las técnicas o todas, si no se especifica ningun parámetro ningún parámetro se utilizan todas.

meterpreter > getsystem
…got system (via technique 1).
meterpreter > getuid
Server username: NT AUTHORITY\SYSTEM
meterpreter >

Una vez obtenida una consola Meterpreter con los privilegios adecuados se pueden realizar algunas operaciones adicionales con el fin de garantizar futuros accesos a la maquina remota comprometida, sin embargo es necesario escalar privilegios… anteriormente se utilizaba el comando getsystem de meterpreter y se utilizaba incognito para “impersonalizar” sesiones de usuario, sin embargo en ocasiones no es posible obtener una consola “cruda” de windows con los privilegios de system adecuados, en estos casos se dispone del script service_permissions_escalate

meterpreter > run service_permissions_escalate

Este script permitirá abrir tantas sesiones metepreter como sea posible por medio de búsqueda y recolección de permisos de acuerdo a programas instalados en la maquina objetivo, una vez terminado el comando, se puede cerrar la consola meterpreter que se encuentra actualmente abierta y abrir una nueva (cualquiera de las que ha creado el script) e intentar ejecutar el comando:

meterpreter > execute -f cmd -i

De esta forma se puede obtener una consola “cruda” con los permisos de SYSTEM necesarios para realizar diferentes tipos de tareas (como por ejemplo establecer backdoors por medio del registro del sistema o desactivar AV).

Una vez abierta esta consola se pueden listar los procesos en ejecución de la maquina objetivo con el comando tasklist y se puede terminar cualquiera de ellos con el comando taskkill. Aunque se pueden ver los procesos e inclusive matar algunos de ellos, en algunos casos pueden haber procesos son resilientes o persistentes que no permiten ser detenidos por mecanismos convencionales, tal es el caso de un antivirus fuerte que detecte código malicioso y otras vulnerabilidades y amenazas que puedan poner en peligro el sistema, por lo tanto en dichos casos es muy recomendable, intentar desactivar el antivirus desde la sesión abierta para garantizar que no va a destruir las traseras traseras establecidas.